From 605bd285b765f8cd5867ddd39eff77a304446185 Mon Sep 17 00:00:00 2001 From: jo-es Date: Wed, 11 Dec 2019 15:23:07 +0100 Subject: [PATCH 1/3] Refactor cyclic schedule generation methods --- artifacts/ACTUSTypes.json | 2 +- artifacts/ANNEngine.json | 6 +- artifacts/BaseEngine.json | 2 +- artifacts/BokkyPooBahsDateTimeLibrary.json | 2 +- artifacts/BusinessDayConvention.json | 2 +- artifacts/CECEngine.json | 2 +- artifacts/CEGEngine.json | 2 +- artifacts/ContractDefaultConvention.json | 2 +- artifacts/ContractRoleConvention.json | 2 +- artifacts/Core.json | 2 +- artifacts/DayCountConvention.json | 2 +- artifacts/EndOfMonthConvention.json | 2 +- artifacts/IEngine.json | 2 +- artifacts/Migrations.json | 2 +- artifacts/PAMEngine.json | 6 +- artifacts/POF.json | 2 +- artifacts/STF.json | 2 +- artifacts/SafeMath.json | 2 +- artifacts/Schedule.json | 2 +- artifacts/SignedMath.json | 2 +- artifacts/SignedSafeMath.json | 2 +- artifacts/TestPOF.json | 3702 ++++++++++++++ artifacts/TestSTF.json | 5035 ++++++++++++++++++++ artifacts/Utils.json | 2 +- contracts/Engines/ANNEngine.sol | 61 +- contracts/Engines/PAMEngine.sol | 65 +- test/Engines/ANN/TestANNEngine.js | 6 + test/Engines/ANN/TestANNSchedules.js | 6 + test/Engines/PAM/TestPAMEngine.js | 6 + test/Engines/PAM/TestPAMSchedules.js | 6 + 30 files changed, 8865 insertions(+), 74 deletions(-) create mode 100644 artifacts/TestPOF.json create mode 100644 artifacts/TestSTF.json diff --git a/artifacts/ACTUSTypes.json b/artifacts/ACTUSTypes.json index 62f7a0d..ef45b15 100644 --- a/artifacts/ACTUSTypes.json +++ b/artifacts/ACTUSTypes.json @@ -23,5 +23,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.680Z" + "updatedAt": "2019-12-11T14:12:09.715Z" } diff --git a/artifacts/ANNEngine.json b/artifacts/ANNEngine.json index 3b261ef..84412dc 100644 --- a/artifacts/ANNEngine.json +++ b/artifacts/ANNEngine.json @@ -2025,12 +2025,12 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a ANN contract implements the STF and POF of the Actus standard for a ANN contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period TODO: add missing contract features: - rate reset - scaling - interest calculation base\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":\"ANNEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0xd25c36fe38a0dfb2f4625578f77dfbf6a545f58c0e25adf2832bd43ace1d8636\",\"urls\":[\"bzzr://7b6c85ca9324b427f7710c5fe043ed77e694764a3f29afc37c5c5cd5227b05ed\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":{\"keccak256\":\"0xe7b7a1bc4ada174dab00381c94de13a935eb0f31cdf0059312f46672f0c6b431\",\"urls\":[\"bzzr://980c6e30c2f69c4c030f8fdd436f8abab8854704f4462487ce90e43559e2b2f1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xf471489f8f14b9afa87185249827d08596aad6870516396c3eb0abde31f5a11d\",\"urls\":[\"bzzr://777e850ddd2c0ae8c6bcbcc39fa5eb3fc527b8b8555d9a29515a828392bbe020\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x38e4250a8728b8778e61512b1f24f6916bab11b5ef3c1366cfd80e44cd9debd7\",\"urls\":[\"bzzr://46ce51e7181503b27b98d642306a457959ffe1d871123789213995b821124544\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0xf1b413836f8f166ffb4d0ddbee551ec2408d616c7afd5749b1a78b18d99e7f25\",\"urls\":[\"bzzr://c57fbca011f3b462c764a1a6f6ace60c5c7374807b1378c84805c34dab475b75\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50614529806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb1161008e578063811322fb146101a0578063aaf5eb68146101b3578063cb1e15fd146101bb578063e05a66e0146101ce578063e49172e0146101e1578063fb8eb230146101f4576100d1565b8063179331f3146100d65780631890068a146100ff5780631ab80df41461011f578063445186161461013f57806355464e371461015f578063725400031461017f575b600080fd5b6100e96100e4366004613871565b610207565b6040516100f6919061421d565b60405180910390f35b61011261010d3660046137bd565b6102d9565b6040516100f6919061420f565b61013261012d3660046139d6565b610305565b6040516100f69190614377565b61015261014d3660046137f8565b610324565b6040516100f69190614201565b61017261016d36600461390c565b61032f565b6040516100f691906141f2565b61019261018d36600461379f565b610481565b6040516100f692919061422b565b6101126101ae3660046138be565b6104cb565b610112610697565b6101326101c93660046139b7565b61069c565b6101126101dc3660046138dc565b610755565b6101126101ef3660046139d6565b61077a565b610172610202366004613952565b610788565b60008084600181111561021657fe5b14156102925761022583610b74565b61022e84610ba2565b14801561027d575060028260200151600581111561024857fe5b1480610263575060038260200151600581111561026157fe5b145b8061027d575060048260200151600581111561027b57fe5b145b1561028a575060006102d2565b5060016102d2565b60018460018111156102a057fe5b14156102ae575060016102d2565b60405160e560020a62461bcd0281526004016102c990614347565b60405180910390fd5b9392505050565b6000806102e584610481565b9150506102fb8184606001518560000151610bbd565b9150505b92915050565b61030d612f42565b61031985858585610d00565b90505b949350505050565b600195945050505050565b610337612fab565b61033f612fab565b6060850151600090610352908686610f3d565b1561037f5761036660058760600151610755565b8261ffff83166040811061037657fe5b60200201526001015b60c0860151156103c5576103988660c001518686610f3d565b156103c5576103ac60108760c00151610755565b8261ffff8316604081106103bc57fe5b60200201526001015b60a08601511561040b576103de8660a001518686610f3d565b1561040b576103f260158760a00151610755565b8261ffff83166040811061040257fe5b60200201526001015b61041a86608001518686610f3d565b15156001141561047857610433600a8760800151610755565b8261ffff83166040811061044357fe5b6020020152608086015160019091019061045f90600890610755565b8261ffff83166040811061046f57fe5b60200201526001015b50949350505050565b6000808060ff7f010000000000000000000000000000000000000000000000000000000000000085041660168111156104b657fe5b92505067ffffffffffffffff83169050915091565b600060058260168111156104db57fe5b14156104e957506014610692565b600f8260168111156104f757fe5b141561050557506019610692565b600882601681111561051357fe5b14156105215750601e610692565b600782601681111561052f57fe5b141561053d57506028610692565b600482601681111561054b57fe5b141561055957506032610692565b600282601681111561056757fe5b14156105755750603c610692565b600982601681111561058357fe5b141561059157506050610692565b601182601681111561059f57fe5b14156105ad5750605a610692565b60128260168111156105bb57fe5b14156105c957506064610692565b60138260168111156105d757fe5b14156105e55750606e610692565b60068260168111156105f357fe5b141561060157506078610692565b601082601681111561060f57fe5b141561061d57506082610692565b601582601681111561062b57fe5b14156106395750608c610692565b601482601681111561064757fe5b141561065557506096610692565b600a82601681111561066357fe5b1415610671575060a0610692565b600082601681111561067f57fe5b141561068e57506103b6610692565b5060005b919050565b601281565b6106a4612f42565b6106ac612f42565b60008152670de0b6b3a764000061014082018190526101208201526101a08301516020808301919091526101c084015160608301526101e0840151908401516106f490610f65565b60000b0260a0820152610200830151610100820152610240830151602084015161071d90610f65565b60000b0260c082015261022083015160e0820152610340830151602084015161074590610f65565b60000b0261016082015292915050565b60008160f884601681111561076657fe5b60ff166001029060020a0217905092915050565b60006103198585858561102c565b610790612fab565b610798612fab565b60088360168111156107a657fe5b14806107bd575060078360168111156107bb57fe5b145b1561099b576101c086015160600151600090151560011480156107e4575061010087015115155b80156107f95750866101800151876101000151105b1561094157610806612fcb565b6108248861010001518961018001518a6101c0015160008b8b611253565b905060005b60108160ff16101561093e578160ff82166010811061084457fe5b602002015115156108545761093e565b6108728260ff83166010811061086657fe5b60200201518989610f3d565b151561087d57610936565b60e0890151158015906108a7575060e08901518260ff83166010811061089f57fe5b602002015111155b1561090a5760e08901518260ff8316601081106108c057fe5b602002015114156108d057610936565b6108ee60078360ff8416601081106108e457fe5b6020020151610755565b8484604081106108fa57fe5b6020020152600190920191610936565b61091e60088360ff8416601081106108e457fe5b84846040811061092a57fe5b60200201526001909201915b600101610829565b50505b60e08701511580159061095c57508661018001518760e00151105b15610999576109708760e001518787610f3d565b156109995761098460078860e00151610755565b82826040811061099057fe5b60200201526001015b505b60048360168111156109a957fe5b1415610a815761022086015160600151600090151560011480156109d1575061016087015115155b15610a7f576109de612fcb565b6109fb88610160015189608001518a610220015160018b8b611253565b905060005b60108160ff161015610a7c578160ff821660108110610a1b57fe5b60200201511515610a2b57610a7c565b610a3d8260ff83166010811061086657fe5b1515610a4857610a74565b610a5c60048360ff8416601081106108e457fe5b848460408110610a6857fe5b60200201526001909201915b600101610a00565b50505b505b600f836016811115610a8f57fe5b1415610319576000610a9f612fcb565b610abc88610180015189608001518a610240015160008b8b611253565b905060005b60108160ff161015610b68578160ff821660108110610adc57fe5b60200201511515610aec57610b68565b610afe8260ff83166010811061086657fe5b1515610b0957610b60565b610b1d600f8360ff8416601081106108e457fe5b848460408110610b2957fe5b6020020152600190920191610b4860088360ff8416601081106108e457fe5b848460408110610b5457fe5b60200201526001909201915b600101610ac1565b50505095945050505050565b6000808080610b8862015180865b04611412565b91945092509050610b9983836114aa565b95945050505050565b60008080610bb36201518085610b82565b9695505050505050565b60006001836008811115610bcd57fe5b1480610be457506003836008811115610be257fe5b145b15610bfa57610bf38483611530565b90506102d2565b6002836008811115610c0857fe5b1480610c1f57506004836008811115610c1d57fe5b145b15610c63576000610c308584611530565b9050610c3b8561158c565b610c448261158c565b1415610c515790506102d2565b610c5b85846115a7565b9150506102d2565b6005836008811115610c7157fe5b1480610c8857506007836008811115610c8657fe5b145b15610c9757610bf384836115a7565b6006836008811115610ca557fe5b1480610cbc57506008836008811115610cba57fe5b145b15610cf8576000610ccd85846115a7565b9050610cd88561158c565b610ce18261158c565b1415610cee5790506102d2565b610c5b8584611530565b509192915050565b610d08612f42565b600080610d1485610481565b90925090506000826016811115610d2757fe5b1415610d4257610d39878783876115f5565b9250505061031c565b6001826016811115610d5057fe5b1415610d6257610d39878783876116cb565b6004826016811115610d7057fe5b1415610d8257610d3987878387611754565b6005826016811115610d9057fe5b1415610da257610d39878783876117b6565b6007826016811115610db057fe5b1415610dc257610d398787838761181b565b6008826016811115610dd057fe5b1415610de257610d39878783876118a5565b600e826016811115610df057fe5b1415610e0257610d39878783876115f5565b6010826016811115610e1057fe5b1415610e2257610d39878783876115f5565b600f826016811115610e3057fe5b1415610e4257610d39878783876118f7565b600a826016811115610e5057fe5b1415610e6257610d39878783876119fa565b600b826016811115610e7057fe5b1415610e8257610d39878783876115f5565b6011826016811115610e9057fe5b1415610ea257610d3987878387611a86565b6012826016811115610eb057fe5b1415610ec257610d3987878387611b1a565b6013826016811115610ed057fe5b1415610ee257610d3987878387611c92565b6015826016811115610ef057fe5b1415610f0257610d3987878387611df5565b6016826016811115610f1057fe5b1415610f2257610d3987878387611e3c565b60405160e560020a62461bcd0281526004016102c990614357565b60008383108015610f4e5750838210155b15610f5b575060016102d2565b5060009392505050565b600080826009811115610f7457fe5b1415610f8257506001610692565b6001826009811115610f9057fe5b1415610f9f5750600019610692565b6006826009811115610fad57fe5b1415610fbb57506001610692565b6007826009811115610fc957fe5b1415610fd85750600019610692565b6004826009811115610fe657fe5b1415610ff457506001610692565b600582600981111561100257fe5b14156110115750600019610692565b60405160e560020a62461bcd0281526004016102c9906142e7565b600080600061103a85610481565b9092509050600082601681111561104d57fe5b141561105e5760009250505061031c565b600182601681111561106c57fe5b141561107d5760009250505061031c565b600782601681111561108b57fe5b141561109c5760009250505061031c565b60118260168111156110aa57fe5b14156110bb5760009250505061031c565b60128260168111156110c957fe5b14156110da5760009250505061031c565b60138260168111156110e857fe5b14156110f95760009250505061031c565b601682601681111561110757fe5b14156111185760009250505061031c565b600482601681111561112657fe5b141561113857610d3987878387611f1d565b600582601681111561114657fe5b141561115857610d3987878387611fd8565b600882601681111561116657fe5b141561117857610d3987878387612022565b600e82601681111561118657fe5b141561119857610d39878783876120a2565b60108260168111156111a657fe5b14156111b857610d39878783876120cf565b600f8260168111156111c657fe5b14156111d857610d3987878387612125565b600a8260168111156111e657fe5b14156111f857610d39878783876121ad565b600b82601681111561120657fe5b141561121857610d39878783876121cb565b601582601681111561122657fe5b141561123857610d39878783876122d4565b60405160e560020a62461bcd0281526004016102c990614287565b61125b612fcb565b611263612fcb565b606086015160009015156112cd5761127c898686610f3d565b15611297578882826010811061128e57fe5b60200201526001015b6112a2888686610f3d565b156112c557600186151514156112c557878282601081106112bf57fe5b60200201525b509050610bb3565b8860005b8982101561133a576112e4828888610f3d565b1561132557600e831061130c5760405160e560020a62461bcd0281526004016102c990614257565b8184846010811061131957fe5b60200201526001909201915b600101611333898c8361232a565b91506112d1565b60018815151415611368576113508a8888610f3d565b15611368578984846010811061136257fe5b60200201525b60008311801561139257506113928460001985016010811061138657fe5b60200201518888610f3d565b15611403576000896040015160018111156113a957fe5b1480156113b65750600183115b80156113c25750818a14155b15611403578383601081106113d357fe5b6020020151846000198501601081106113e857fe5b60200201528383601081106113f957fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561146b57fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806114bb5750816003145b806114c65750816005145b806114d15750816007145b806114dc5750816008145b806114e7575081600a145b806114f2575081600c145b156114ff5750601f6102ff565b6002821461150f5750601e6102ff565b61151883612447565b61152357601c611526565b601d5b60ff169392505050565b6000600182600181111561154057fe5b14156115855761154f8361246c565b600614156115695761156283600261247f565b90506102ff565b6115728361246c565b600714156115855761156283600161247f565b5090919050565b6000808061159d6201518085610b82565b5095945050505050565b600060018260018111156115b757fe5b1415611585576115c68361246c565b600614156115d957611562836001612494565b6115e28361246c565b6007141561158557611562836002612494565b6115fd612f42565b600061163c6116198660200151886060015189600001516124a9565b61162c8689606001518a600001516124a9565b8860400151896101c00151612513565b905061167e61166d826116618860a001518961010001516125d790919063ffffffff16565b9063ffffffff6125d716565b60c08701519063ffffffff61268216565b60c086015260a08501516102a08701516116b9916116a8918491611661919063ffffffff6125d716565b60e08701519063ffffffff61268216565b60e08601525050506020820152919050565b6116d3612f42565b60006116ef6116198660200151886060015189600001516124a9565b905061171461166d826116618860a001518961010001516125d790919063ffffffff16565b60c086015260a08501516102a087015161173e916116a8918491611661919063ffffffff6125d716565b60e0860152505060038352506020820152919050565b61175c612f42565b60006117786116198660200151886060015189600001516124a9565b905061179d61166d826116618860a001518961010001516125d790919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b6117be612f42565b60006117da6116198660200151886060015189600001516124a9565b9050856101e001516117ef8760200151610f65565b60000b0260a086015250505061020083015161010083015260208201526102409091015160c082015290565b611823612f42565b600061183f6116198660200151886060015189600001516124a9565b905061187861166d611867836116618960a001518a61010001516125d790919063ffffffff16565b60c08801519063ffffffff61268216565b50600060c086015260a08501516102a08701516116b9916116a8918491611661919063ffffffff6125d716565b6118ad612f42565b60006118c96116198660200151886060015189600001516124a9565b600060c087015260a08601516102a08801519192506116b9916116a89184916116619163ffffffff6125d716565b6118ff612f42565b600061191b6116198660200151886060015189600001516124a9565b905061194061166d826116618860a001518961010001516125d790919063ffffffff16565b60c086015260a08501516102a087015161196a916116a8918491611661919063ffffffff6125d716565b60e086015260c08501516101608601516119e8916119c4916119919163ffffffff6126cd16565b61199e8960200151610f65565b60000b028760a001516119b48a60200151610f65565b60000b029063ffffffff61271816565b6119d18860200151610f65565b60000b028660a001516126cd90919063ffffffff16565b60a08601525050506020820152919050565b611a02612f42565b6000611a1e6116198660200151886060015189600001516124a9565b9050611a4361166d826116618860a001518961010001516125d790919063ffffffff16565b60c086015260a08501516102a0870151611a6d916116a8918491611661919063ffffffff6125d716565b60e08601525050600060a0840152506020820152919050565b611a8e612f42565b6000611aaa6116198660200151886060015189600001516124a9565b9050611acf61166d826116618860a001518961010001516125d790919063ffffffff16565b60c086015260a08501516102a0870151611af9916116a8918491611661919063ffffffff6125d716565b60e08601525050506102c09290920151610100820152602081019190915290565b611b22612f42565b61028085015161026086015161010086015190840290910190600090611b4f90839063ffffffff6126cd16565b905080876103c00151128015611b72575086610420015160001902876103c00151125b15611b8357506103c0860151611b9f565b86610420015160001902811215611b9f57506104208601516000035b610100860151611bb5908263ffffffff61268216565b915081876103c00151128015611bd45750866103e00151876103c00151125b15611be657866103c001519150611bfc565b866103e00151821215611bfc57866103e0015191505b6000611c3b611c1888602001518a606001518b600001516124a9565b611c2b888b606001518c600001516124a9565b8a604001518b6101c00151612513565b9050611c71611c60826116618a60a001518b61010001516125d790919063ffffffff16565b60c08901519063ffffffff61268216565b60c08801525050610100850152505060006101608301526020820152919050565b611c9a612f42565b6000611cb66116198660200151886060015189600001516124a9565b9050611cdb61166d826116618860a001518961010001516125d790919063ffffffff16565b60c086015260a08501516102a0870151611d05916116a8918491611661919063ffffffff6125d716565b60e086015260048660a001516007811115611d1c57fe5b1480611d37575060058660a001516007811115611d3557fe5b145b80611d51575060068660a001516007811115611d4f57fe5b145b80611d6b575060078660a001516007811115611d6957fe5b145b15611d795760006101208601525b60018660a001516007811115611d8b57fe5b1480611da6575060038660a001516007811115611da457fe5b145b80611dc0575060058660a001516007811115611dbe57fe5b145b80611dda575060078660a001516007811115611dd857fe5b145b15611de85760006101408601525b5050506020820152919050565b611dfd612f42565b6000611e196116198660200151886060015189600001516124a9565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611e44612f42565b60008460400151600014611e5c578460400151611e6f565b611e6f8487606001518860000151610bbd565b61038087015160400151909150839060009015611eaa576000611e9789610380015185612728565b9050808311611ea857600180895291505b505b876103a00151604001518015611ebe575080155b15611eed576000611ed4896103a0015185612728565b9050808311611ee65760028852611eeb565b600388525b505b60408701511515611f1157611f0b8689606001518a60000151610bbd565b60408801525b50949695505050505050565b6000808560e001516001811115611f3057fe5b1415611f6057846102a00151611f498660200151610f65565b8551611f5490612832565b0260000b02905061031c565b611fc2611fb18560a00151611661886102a00151611661611f8e8a602001518c606001518d600001516124a9565b611fa18a8d606001518e600001516124a9565b8c604001518d6101c00151612513565b60e08601519063ffffffff61268216565b8451611fcd90612832565b60000b02905061031c565b6000611ff7856103000151866101e0015161268290919063ffffffff16565b6120048660200151610f65565b855161200f90612832565b026000190260000b029050949350505050565b600061208a61207861166d8660a001516116618861010001516116616120558b602001518d606001518e600001516124a9565b6120688b8e606001518f600001516124a9565b8d604001518e6101c00151612513565b6101208601519063ffffffff6125d716565b845161209590612832565b60000b0295945050505050565b60008360a001516120b68660200151610f65565b85516120c190612832565b506000979650505050505050565b6000611ff76120ff8560a00151611661876101000151611661611f8e8a602001518c606001518d600001516124a9565b60c08601516103208801516121199163ffffffff61268216565b9063ffffffff61268216565b600061208a6121886121588660a001516116618861010001516116616120558b602001518d606001518e600001516124a9565b8660c0015187610160015103036121728860200151610f65565b60000b028660a001516119b48960200151610f65565b6121958760200151610f65565b60000b866101400151026125d790919063ffffffff16565b600061208a8460a001518561014001516125d790919063ffffffff16565b600060018560c0015160038111156121df57fe5b14156121f857846102e00151611f498660200151610f65565b60028560c00151600381111561220a57fe5b141561226b5761225e8460a00151611661876102e0015161166161223b89602001518b606001518c600001516124a9565b61224e898c606001518d600001516124a9565b8b604001518c6101c00151612513565b611f498660200151610f65565b610100840151600090819081121561228857818661010001510390505b6122ae816116618860a001516116616120558b602001518d606001518e600001516124a9565b6122bb8860200151610f65565b87516122c690612832565b0260000b029250505061031c565b60006123046120ff8560a00151611661876101000151611661611f8e8a602001518c606001518d600001516124a9565b6123118660200151610f65565b855161231c90612832565b0260000b0295945050505050565b600080808560200151600581111561233e57fe5b141561235b57612354848487600001510261247f565b905061031c565b60018560200151600581111561236d57fe5b141561238657612354848487600001516007020261247f565b60028560200151600581111561239857fe5b14156123ae576123548484876000015102612858565b6003856020015160058111156123c057fe5b14156123d9576123548484876000015160030202612858565b6004856020015160058111156123eb57fe5b1415612404576123548484876000015160060202612858565b60058560200151600581111561241657fe5b141561242c5761235484848760000151026128cf565b60405160e560020a62461bcd0281526004016102c990614277565b60006004820615801561245c57506064820615155b806102ff57505061019090061590565b6007620151809091046003010660010190565b6201518081028201828110156102ff57600080fd5b6201518081028203828111156102ff57600080fd5b600060038360088111156124b957fe5b14806124d0575060048360088111156124ce57fe5b145b806124e6575060078360088111156124e457fe5b145b806124fc575060088360088111156124fa57fe5b145b156125085750826102d2565b61031c848484610bbd565b6000848410156125385760405160e560020a62461bcd0281526004016102c990614337565b600083600681111561254657fe5b14156125565761235485856128f6565b600183600681111561256457fe5b1415612574576123548585612a0a565b600283600681111561258257fe5b1415612592576123548585612a35565b60048360068111156125a057fe5b14156125b0576123548585612a54565b60038360068111156125be57fe5b14156125cf57612354858584612b15565b50600161031c565b60008215806125e4575081155b156125f1575060006102ff565b82600019148015612605575060ff60020a82145b156126255760405160e560020a62461bcd0281526004016102c990614327565b82820282848281151561263457fe5b05146126555760405160e560020a62461bcd0281526004016102c990614327565b670de0b6b3a764000081058015156102fb5760405160e560020a62461bcd0281526004016102c990614307565b60008282018183128015906126975750838112155b806126ac57506000831280156126ac57508381125b15156102d25760405160e560020a62461bcd0281526004016102c9906142c7565b60008183038183128015906126e25750838113155b806126f757506000831280156126f757508381135b15156102d25760405160e560020a62461bcd0281526004016102c990614367565b6000818313156115855750919050565b600080808460200151600581111561273c57fe5b141561275057610bf383856000015161247f565b60018460200151600581111561276257fe5b141561277957610bf383856000015160070261247f565b60028460200151600581111561278b57fe5b141561279f57610bf3838560000151612858565b6003846020015160058111156127b157fe5b14156127c857610bf3838560000151600302612858565b6004846020015160058111156127da57fe5b14156127f157610bf3838560000151600602612858565b60058460200151600581111561280357fe5b141561281757610bf38385600001516128cf565b60405160e560020a62461bcd0281526004016102c9906142d7565b6000600382600381111561284257fe5b141561285057506000610692565b506001919050565b600080808061286a6201518087610b82565b600c91880160001901828104939093019550910660010192509050600061289184846114aa565b90508082111561289f578091505b620151808706620151806128b4868686612beb565b02019450868510156128c557600080fd5b5050505092915050565b60008080806128e16201518087610b82565b918701945092509050600061289184846114aa565b60008061290284612c51565b9050600061290f84612c51565b9050600061291c86612c6d565b6129285761016d61292c565b61016e5b61ffff1690508183141561295e57612954816129488888612c8f565b9063ffffffff612caa16565b93505050506102ff565b600061296986612c6d565b6129755761016d612979565b61016e5b61ffff16905060006129aa836129488a6129a561299d8a600163ffffffff612d7c16565b600180612da4565b612c8f565b905060006129c7836129486129c188600180612da4565b8b612c8f565b90506129fd6129ed60016129e1888a63ffffffff612dbe16565b9063ffffffff612dbe16565b612119848463ffffffff61268216565b9998505050505050505050565b60006102d261016861294862015180612a29868863ffffffff612dbe16565b9063ffffffff612e0016565b60006102d261016d61294862015180612a29868863ffffffff612dbe16565b6000806000806000806000612a6889612e42565b975095509350612a7788612e42565b945092509050601f861415612a8b57601e95505b82601f1415612a9957601e92505b6000612aab848863ffffffff6126cd16565b90506000612abf848863ffffffff6126cd16565b90506000612ad3848863ffffffff6126cd16565b9050612b0561016861294885612119612af387601e63ffffffff612e6016565b6121198761016863ffffffff612e6016565b9c9b505050505050505050505050565b6000806000806000806000612b298a612e42565b975095509350612b3889612e42565b945092509050612b478a610b74565b861415612b5357601e95505b8789148015612b625750816002145b158015612b765750612b7389610b74565b83145b15612b8057601e92505b6000612b92848863ffffffff6126cd16565b90506000612ba6848863ffffffff6126cd16565b90506000612bba848863ffffffff6126cd16565b9050612bda61016861294885612119612af387601e63ffffffff612e6016565b9d9c50505050505050505050505050565b60006107b2841015612bfc57600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612c626201518085610b82565b509095945050505050565b6000808080612c7f6201518086610b82565b91945092509050610b9983612447565b600081831115612c9e57600080fd5b50620151809190030490565b6000811515612cce5760405160e560020a62461bcd0281526004016102c990614297565b821515612cdd575060006102ff565b670de0b6b3a7640000838102908482811515612cf557fe5b0514612d165760405160e560020a62461bcd0281526004016102c9906142f7565b82600019148015612d2a575060ff60020a84145b15612d4a5760405160e560020a62461bcd0281526004016102c990614267565b60008382811515612d5757fe5b0590508015156102fb5760405160e560020a62461bcd0281526004016102c9906142b7565b6000828201838110156102d25760405160e560020a62461bcd0281526004016102c9906142a7565b600062015180612db5858585612beb565b02949350505050565b60006102d283836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ed5565b60006102d283836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f04565b60008080612e536201518085610b82565b9196909550909350915050565b6000821515612e71575060006102ff565b82600019148015612e85575060ff60020a82145b15612ea55760405160e560020a62461bcd0281526004016102c990614317565b828202828482811515612eb457fe5b05146102d25760405160e560020a62461bcd0281526004016102c990614317565b60008184841115612efc5760405160e560020a62461bcd0281526004016102c99190614246565b505050900390565b600081818411612f2a5760405160e560020a62461bcd0281526004016102c99190614246565b5060008385811515612f3857fe5b0495945050505050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610800604051908101604052806040906020820280388339509192915050565b610200604051908101604052806010906020820280388339509192915050565b60006102d28235614406565b60006102d282356143c0565b60006102d282356143ad565b60006102d28235614411565b60006102d28235614420565b60006102d2823561442f565b60006102d2823561443e565b60006102d2823561444d565b60006102d2823561445c565b60006102d2823561446b565b60006102d2823561447a565b60006102d28235614489565b60006060828403121561308d57600080fd5b6130976060614386565b905060006130a58484613003565b82525060206130b684848301613033565b60208301525060406130ca84828501613033565b60408301525092915050565b600061050082840312156130e957600080fd5b6130f46102a0614386565b90506000613102848461306f565b825250602061311384848301613003565b602083015250604061312784828501613003565b604083015250606061313b84828501613003565b606083015250608061314f84828501613003565b60808301525060a061316384828501613003565b60a08301525060c061317784828501613003565b60c08301525060e061318b84828501613003565b60e0830152506101006131a084828501613003565b610100830152506101206131b684828501613003565b610120830152506101406131cc84828501613003565b610140830152506101606131e284828501613003565b610160830152506101806131f884828501613003565b610180830152506101a061320e84828501613003565b6101a0830152506101c0613224848285016132b5565b6101c08301525061024061323a848285016132b5565b6101e0830152506102c0613250848285016132b5565b61020083015250610340613266848285016132b5565b610220830152506103c061327c848285016132b5565b6102408301525061044061329284828501613324565b610260830152506104a06132a884828501613324565b6102808301525092915050565b6000608082840312156132c757600080fd5b6132d16080614386565b905060006132df8484613003565b82525060206132f084848301613063565b60208301525060406133048482850161301b565b604083015250606061331884828501612ff7565b60608301525092915050565b60006060828403121561333657600080fd5b6133406060614386565b9050600061334e8484613003565b825250602061335f84848301613063565b60208301525060406130ca84828501612ff7565b6000610540828403121561338657600080fd5b613391610440614386565b9050600061339f848461301b565b82525060206133b08484830161303f565b60208301525060406133c48482850161304b565b60408301525060606133d88482850161300f565b60608301525060806133ec8482850161301b565b60808301525060a06134008482850161306f565b60a08301525060c061341484828501613027565b60c08301525060e06134288482850161301b565b60e08301525061010061343d84828501613027565b610100830152506101206134538482850161307b565b610120830152506101806134698482850161307b565b610140830152506101e061347f84828501612feb565b6101608301525061020061349584828501613003565b610180830152506102206134ab84828501613003565b6101a0830152506102406134c184828501613003565b6101c0830152506102606134d784828501613003565b6101e0830152506102806134ed84828501613003565b610200830152506102a061350384828501613003565b610220830152506102c061351984828501613003565b610240830152506102e061352f84828501613003565b6102608301525061030061354584828501613003565b6102808301525061032061355b84828501613003565b6102a08301525061034061357184828501613003565b6102c08301525061036061358784828501613003565b6102e08301525061038061359d84828501613003565b610300830152506103a06135b384828501613003565b610320830152506103c06135c984828501613003565b610340830152506103e06135df84828501613003565b610360830152506104006135f584828501613324565b6103808301525061046061360b84828501613324565b6103a0830152506104c061362184828501613003565b6103c0830152506104e061363784828501613003565b6103e08301525061050061364d84828501613003565b6104008301525061052061366384828501613003565b6104208301525092915050565b60006101a0828403121561368357600080fd5b61368e6101a0614386565b9050600061369c8484613027565b82525060206136ad84848301613003565b60208301525060406136c184828501613003565b60408301525060606136d584828501613003565b60608301525060806136e984828501613003565b60808301525060a06136fd84828501613003565b60a08301525060c061371184828501613003565b60c08301525060e061372584828501613003565b60e08301525061010061373a84828501613003565b6101008301525061012061375084828501613003565b6101208301525061014061376684828501613003565b6101408301525061016061377c84828501613003565b6101608301525061018061379284828501613003565b6101808301525092915050565b6000602082840312156137b157600080fd5b60006102fb8484613003565b60008061056083850312156137d157600080fd5b60006137dd8585613003565b92505060206137ee85828601613373565b9150509250929050565b60008060008060006108c0868803121561381157600080fd5b600061381d8888613003565b955050602061382e88828901613373565b94505061056061384088828901613670565b93505061070061385288828901612ff7565b92505061072061386488828901613670565b9150509295509295909350565b600080600060c0848603121561388657600080fd5b6000613892868661301b565b93505060206138a386828701613003565b92505060406138b4868287016132b5565b9150509250925092565b6000602082840312156138d057600080fd5b60006102fb8484613057565b600080604083850312156138ef57600080fd5b60006138fb8585613057565b92505060206137ee85828601613003565b6000806000610540848603121561392257600080fd5b600061392e86866130d6565b93505061050061394086828701613003565b9250506105206138b486828701613003565b600080600080610560858703121561396957600080fd5b600061397587876130d6565b94505061050061398787828801613003565b93505061052061399987828801613003565b9250506105406139ab87828801613057565b91505092959194509250565b600061054082840312156139ca57600080fd5b60006102fb8484613373565b60008060008061072085870312156139ed57600080fd5b60006139f98787613373565b945050610540613a0b87828801613670565b9350506106e0613a1d87828801613003565b9250506107006139ab87828801613003565b613a38816143b0565b613a41826143ad565b60005b82811015613a7157613a57858351613a87565b613a60826143ba565b602095909501949150600101613a44565b5050505050565b613a81816143c0565b82525050565b613a81816143ad565b613a8181614498565b613a81816144a3565b613a81816144ae565b6000613ab6826143b6565b808452613aca8160208601602086016144b9565b613ad3816144e5565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602d81527f414e4e456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b603681527f414e4e456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a08301906140fe8482613a90565b5060208201516141116020850182613a87565b5060408201516141246040850182613a87565b5060608201516141376060850182613a87565b50608082015161414a6080850182613a87565b5060a082015161415d60a0850182613a87565b5060c082015161417060c0850182613a87565b5060e082015161418360e0850182613a87565b50610100820151614198610100850182613a87565b506101208201516141ad610120850182613a87565b506101408201516141c2610140850182613a87565b506101608201516141d7610160850182613a87565b506101808201516141ec610180850182613a87565b50505050565b61080081016102ff8284613a2f565b602081016102ff8284613a78565b602081016102ff8284613a87565b602081016102ff8284613a99565b604081016142398285613aa2565b6102d26020830184613a87565b602080825281016102d28184613aab565b602080825281016102ff81613ae0565b602080825281016102ff81613b36565b602080825281016102ff81613b8c565b602080825281016102ff81613be2565b602080825281016102ff81613c38565b602080825281016102ff81613c8e565b602080825281016102ff81613cbe565b602080825281016102ff81613d14565b602080825281016102ff81613d6a565b602080825281016102ff81613dc0565b602080825281016102ff81613e16565b602080825281016102ff81613e6c565b602080825281016102ff81613ec2565b602080825281016102ff81613f18565b602080825281016102ff81613f6e565b602080825281016102ff81613fc4565b602080825281016102ff81614040565b602080825281016102ff81614096565b6101a081016102ff82846140ec565b60405181810167ffffffffffffffff811182821017156143a557600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b6000600482106143d157fe5b5090565b6000600282106143d157fe5b6000601782106143d157fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006102ff826143ed565b6000600982106143d157600080fd5b6000600282106143d157600080fd5b6000600482106143d157600080fd5b6000600582106143d157600080fd5b6000600a82106143d157600080fd5b6000600782106143d157600080fd5b6000601782106143d157600080fd5b6000600682106143d157600080fd5b6000600882106143d157600080fd5b60006102ff826143c5565b60006102ff826143d5565b60006102ff826143e1565b60005b838110156144d45781810151838201526020016144bc565b838111156141ec5750506000910152565b601f01601f19169056fea265627a7a72305820309e88b8de3e19685b48b3cf181adf72bff0f6f9a32db1ef65fd5bcd1599f5146c6578706572696d656e74616cf50037", + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a ANN contract implements the STF and POF of the Actus standard for a ANN contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period TODO: add missing contract features: - rate reset - scaling - interest calculation base\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":\"ANNEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0xd25c36fe38a0dfb2f4625578f77dfbf6a545f58c0e25adf2832bd43ace1d8636\",\"urls\":[\"bzzr://7b6c85ca9324b427f7710c5fe043ed77e694764a3f29afc37c5c5cd5227b05ed\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":{\"keccak256\":\"0xa5d2297c80f2cc5d277b7d11fe24260e1c486a44005adcd44a940963810c1711\",\"urls\":[\"bzzr://587ba48d08de99c502f115351b415ee1316d461c25e5f804536177d66c2f77ca\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xf471489f8f14b9afa87185249827d08596aad6870516396c3eb0abde31f5a11d\",\"urls\":[\"bzzr://777e850ddd2c0ae8c6bcbcc39fa5eb3fc527b8b8555d9a29515a828392bbe020\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x38e4250a8728b8778e61512b1f24f6916bab11b5ef3c1366cfd80e44cd9debd7\",\"urls\":[\"bzzr://46ce51e7181503b27b98d642306a457959ffe1d871123789213995b821124544\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0xf1b413836f8f166ffb4d0ddbee551ec2408d616c7afd5749b1a78b18d99e7f25\",\"urls\":[\"bzzr://c57fbca011f3b462c764a1a6f6ace60c5c7374807b1378c84805c34dab475b75\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061459b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb1161008e578063811322fb146101a0578063aaf5eb68146101b3578063cb1e15fd146101bb578063e05a66e0146101ce578063e49172e0146101e1578063fb8eb230146101f4576100d1565b8063179331f3146100d65780631890068a146100ff5780631ab80df41461011f578063445186161461013f57806355464e371461015f578063725400031461017f575b600080fd5b6100e96100e43660046138e3565b610207565b6040516100f6919061428f565b60405180910390f35b61011261010d36600461382f565b6102d9565b6040516100f69190614281565b61013261012d366004613a48565b610305565b6040516100f691906143e9565b61015261014d36600461386a565b610324565b6040516100f69190614273565b61017261016d36600461397e565b61032f565b6040516100f69190614264565b61019261018d366004613811565b610481565b6040516100f692919061429d565b6101126101ae366004613930565b6104cb565b610112610697565b6101326101c9366004613a29565b61069c565b6101126101dc36600461394e565b610755565b6101126101ef366004613a48565b61077a565b6101726102023660046139c4565b610788565b60008084600181111561021657fe5b14156102925761022583610be6565b61022e84610c14565b14801561027d575060028260200151600581111561024857fe5b1480610263575060038260200151600581111561026157fe5b145b8061027d575060048260200151600581111561027b57fe5b145b1561028a575060006102d2565b5060016102d2565b60018460018111156102a057fe5b14156102ae575060016102d2565b60405160e560020a62461bcd0281526004016102c9906143b9565b60405180910390fd5b9392505050565b6000806102e584610481565b9150506102fb8184606001518560000151610c2f565b9150505b92915050565b61030d612fb4565b61031985858585610d72565b90505b949350505050565b600195945050505050565b61033761301d565b61033f61301d565b6060850151600090610352908686610faf565b1561037f5761036660058760600151610755565b8261ffff83166040811061037657fe5b60200201526001015b60c0860151156103c5576103988660c001518686610faf565b156103c5576103ac60108760c00151610755565b8261ffff8316604081106103bc57fe5b60200201526001015b60a08601511561040b576103de8660a001518686610faf565b1561040b576103f260158760a00151610755565b8261ffff83166040811061040257fe5b60200201526001015b61041a86608001518686610faf565b15156001141561047857610433600a8760800151610755565b8261ffff83166040811061044357fe5b6020020152608086015160019091019061045f90600890610755565b8261ffff83166040811061046f57fe5b60200201526001015b50949350505050565b6000808060ff7f010000000000000000000000000000000000000000000000000000000000000085041660168111156104b657fe5b92505067ffffffffffffffff83169050915091565b600060058260168111156104db57fe5b14156104e957506014610692565b600f8260168111156104f757fe5b141561050557506019610692565b600882601681111561051357fe5b14156105215750601e610692565b600782601681111561052f57fe5b141561053d57506028610692565b600482601681111561054b57fe5b141561055957506032610692565b600282601681111561056757fe5b14156105755750603c610692565b600982601681111561058357fe5b141561059157506050610692565b601182601681111561059f57fe5b14156105ad5750605a610692565b60128260168111156105bb57fe5b14156105c957506064610692565b60138260168111156105d757fe5b14156105e55750606e610692565b60068260168111156105f357fe5b141561060157506078610692565b601082601681111561060f57fe5b141561061d57506082610692565b601582601681111561062b57fe5b14156106395750608c610692565b601482601681111561064757fe5b141561065557506096610692565b600a82601681111561066357fe5b1415610671575060a0610692565b600082601681111561067f57fe5b141561068e57506103b6610692565b5060005b919050565b601281565b6106a4612fb4565b6106ac612fb4565b60008152670de0b6b3a764000061014082018190526101208201526101a08301516020808301919091526101c084015160608301526101e0840151908401516106f490610fd7565b60000b0260a0820152610200830151610100820152610240830151602084015161071d90610fd7565b60000b0260c082015261022083015160e0820152610340830151602084015161074590610fd7565b60000b0261016082015292915050565b60008160f884601681111561076657fe5b60ff166001029060020a0217905092915050565b60006103198585858561109e565b61079061301d565b61079861301d565b60088360168111156107a657fe5b14156108c1576101c086015160600151600090151560011480156107ce575061010087015115155b80156107e35750866101800151876101000151105b156108bf576107f061303d565b6108258860e00151600014610809578860e00151610810565b8861010001515b8961018001518a6101c0015160008b8b6112c5565b905060005b60108160ff1610156108bc578160ff82166010811061084557fe5b60200201511515610855576108bc565b6108738260ff83166010811061086757fe5b60200201518989610faf565b151561087e576108b4565b61089c60088360ff84166010811061089257fe5b6020020151610755565b8484604081106108a857fe5b60200201526001909201915b60010161082a565b50505b505b60078360168111156108cf57fe5b1415610a38576101c086015160600151600090151560011480156108f7575061010087015115155b8015610906575060e087015115155b801561091b5750866101800151876101000151105b156109ed5761092861303d565b6109458861010001518960e001518a6101c0015160008b8b6112c5565b905060005b60108160ff1610156109ea578160ff82166010811061096557fe5b60200201511515610975576109ea565b6109878260ff83166010811061086757fe5b1515610992576109e2565b60e08901518260ff8316601081106109a657fe5b602002015114156109b6576109e2565b6109ca60078360ff84166010811061089257fe5b8484604081106109d657fe5b60200201526001909201915b60010161094a565b50505b8661018001518760e001511015610a3657610a0d8760e001518787610faf565b15610a3657610a2160078860e00151610755565b828260408110610a2d57fe5b60200201526001015b505b6004836016811115610a4657fe5b1415610b1e576102208601516060015160009015156001148015610a6e575061016087015115155b15610b1c57610a7b61303d565b610a9888610160015189608001518a610220015160018b8b6112c5565b905060005b60108160ff161015610b19578160ff821660108110610ab857fe5b60200201511515610ac857610b19565b610ada8260ff83166010811061086757fe5b1515610ae557610b11565b610af960048360ff84166010811061089257fe5b848460408110610b0557fe5b60200201526001909201915b600101610a9d565b50505b505b600f836016811115610b2c57fe5b1415610319576000610b3c61303d565b610b5988610180015189608001518a610240015160008b8b6112c5565b905060005b60108160ff161015610bda578160ff821660108110610b7957fe5b60200201511515610b8957610bda565b610b9b8260ff83166010811061086757fe5b1515610ba657610bd2565b610bba600f8360ff84166010811061089257fe5b848460408110610bc657fe5b60200201526001909201915b600101610b5e565b50505095945050505050565b6000808080610bfa62015180865b04611484565b91945092509050610c0b838361151c565b95945050505050565b60008080610c256201518085610bf4565b9695505050505050565b60006001836008811115610c3f57fe5b1480610c5657506003836008811115610c5457fe5b145b15610c6c57610c6584836115a2565b90506102d2565b6002836008811115610c7a57fe5b1480610c9157506004836008811115610c8f57fe5b145b15610cd5576000610ca285846115a2565b9050610cad856115fe565b610cb6826115fe565b1415610cc35790506102d2565b610ccd8584611619565b9150506102d2565b6005836008811115610ce357fe5b1480610cfa57506007836008811115610cf857fe5b145b15610d0957610c658483611619565b6006836008811115610d1757fe5b1480610d2e57506008836008811115610d2c57fe5b145b15610d6a576000610d3f8584611619565b9050610d4a856115fe565b610d53826115fe565b1415610d605790506102d2565b610ccd85846115a2565b509192915050565b610d7a612fb4565b600080610d8685610481565b90925090506000826016811115610d9957fe5b1415610db457610dab87878387611667565b9250505061031c565b6001826016811115610dc257fe5b1415610dd457610dab8787838761173d565b6004826016811115610de257fe5b1415610df457610dab878783876117c6565b6005826016811115610e0257fe5b1415610e1457610dab87878387611828565b6007826016811115610e2257fe5b1415610e3457610dab8787838761188d565b6008826016811115610e4257fe5b1415610e5457610dab87878387611917565b600e826016811115610e6257fe5b1415610e7457610dab87878387611667565b6010826016811115610e8257fe5b1415610e9457610dab87878387611667565b600f826016811115610ea257fe5b1415610eb457610dab87878387611969565b600a826016811115610ec257fe5b1415610ed457610dab87878387611a6c565b600b826016811115610ee257fe5b1415610ef457610dab87878387611667565b6011826016811115610f0257fe5b1415610f1457610dab87878387611af8565b6012826016811115610f2257fe5b1415610f3457610dab87878387611b8c565b6013826016811115610f4257fe5b1415610f5457610dab87878387611d04565b6015826016811115610f6257fe5b1415610f7457610dab87878387611e67565b6016826016811115610f8257fe5b1415610f9457610dab87878387611eae565b60405160e560020a62461bcd0281526004016102c9906143c9565b60008383108015610fc05750838210155b15610fcd575060016102d2565b5060009392505050565b600080826009811115610fe657fe5b1415610ff457506001610692565b600182600981111561100257fe5b14156110115750600019610692565b600682600981111561101f57fe5b141561102d57506001610692565b600782600981111561103b57fe5b141561104a5750600019610692565b600482600981111561105857fe5b141561106657506001610692565b600582600981111561107457fe5b14156110835750600019610692565b60405160e560020a62461bcd0281526004016102c990614359565b60008060006110ac85610481565b909250905060008260168111156110bf57fe5b14156110d05760009250505061031c565b60018260168111156110de57fe5b14156110ef5760009250505061031c565b60078260168111156110fd57fe5b141561110e5760009250505061031c565b601182601681111561111c57fe5b141561112d5760009250505061031c565b601282601681111561113b57fe5b141561114c5760009250505061031c565b601382601681111561115a57fe5b141561116b5760009250505061031c565b601682601681111561117957fe5b141561118a5760009250505061031c565b600482601681111561119857fe5b14156111aa57610dab87878387611f8f565b60058260168111156111b857fe5b14156111ca57610dab8787838761204a565b60088260168111156111d857fe5b14156111ea57610dab87878387612094565b600e8260168111156111f857fe5b141561120a57610dab87878387612114565b601082601681111561121857fe5b141561122a57610dab87878387612141565b600f82601681111561123857fe5b141561124a57610dab87878387612197565b600a82601681111561125857fe5b141561126a57610dab8787838761221f565b600b82601681111561127857fe5b141561128a57610dab8787838761223d565b601582601681111561129857fe5b14156112aa57610dab87878387612346565b60405160e560020a62461bcd0281526004016102c9906142f9565b6112cd61303d565b6112d561303d565b6060860151600090151561133f576112ee898686610faf565b15611309578882826010811061130057fe5b60200201526001015b611314888686610faf565b156113375760018615151415611337578782826010811061133157fe5b60200201525b509050610c25565b8860005b898210156113ac57611356828888610faf565b1561139757600e831061137e5760405160e560020a62461bcd0281526004016102c9906142c9565b8184846010811061138b57fe5b60200201526001909201915b6001016113a5898c8361239c565b9150611343565b600188151514156113da576113c28a8888610faf565b156113da57898484601081106113d457fe5b60200201525b6000831180156114045750611404846000198501601081106113f857fe5b60200201518888610faf565b156114755760008960400151600181111561141b57fe5b1480156114285750600183115b80156114345750818a14155b156114755783836010811061144557fe5b60200201518460001985016010811061145a57fe5b602002015283836010811061146b57fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028115156114dd57fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b6000816001148061152d5750816003145b806115385750816005145b806115435750816007145b8061154e5750816008145b80611559575081600a145b80611564575081600c145b156115715750601f6102ff565b600282146115815750601e6102ff565b61158a836124b9565b61159557601c611598565b601d5b60ff169392505050565b600060018260018111156115b257fe5b14156115f7576115c1836124de565b600614156115db576115d48360026124f1565b90506102ff565b6115e4836124de565b600714156115f7576115d48360016124f1565b5090919050565b6000808061160f6201518085610bf4565b5095945050505050565b6000600182600181111561162957fe5b14156115f757611638836124de565b6006141561164b576115d4836001612506565b611654836124de565b600714156115f7576115d4836002612506565b61166f612fb4565b60006116ae61168b86602001518860600151896000015161251b565b61169e8689606001518a6000015161251b565b8860400151896101c00151612585565b90506116f06116df826116d38860a0015189610100015161264990919063ffffffff16565b9063ffffffff61264916565b60c08701519063ffffffff6126f416565b60c086015260a08501516102a087015161172b9161171a9184916116d3919063ffffffff61264916565b60e08701519063ffffffff6126f416565b60e08601525050506020820152919050565b611745612fb4565b600061176161168b86602001518860600151896000015161251b565b90506117866116df826116d38860a0015189610100015161264990919063ffffffff16565b60c086015260a08501516102a08701516117b09161171a9184916116d3919063ffffffff61264916565b60e0860152505060038352506020820152919050565b6117ce612fb4565b60006117ea61168b86602001518860600151896000015161251b565b905061180f6116df826116d38860a0015189610100015161264990919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b611830612fb4565b600061184c61168b86602001518860600151896000015161251b565b9050856101e001516118618760200151610fd7565b60000b0260a086015250505061020083015161010083015260208201526102409091015160c082015290565b611895612fb4565b60006118b161168b86602001518860600151896000015161251b565b90506118ea6116df6118d9836116d38960a001518a610100015161264990919063ffffffff16565b60c08801519063ffffffff6126f416565b50600060c086015260a08501516102a087015161172b9161171a9184916116d3919063ffffffff61264916565b61191f612fb4565b600061193b61168b86602001518860600151896000015161251b565b600060c087015260a08601516102a088015191925061172b9161171a9184916116d39163ffffffff61264916565b611971612fb4565b600061198d61168b86602001518860600151896000015161251b565b90506119b26116df826116d38860a0015189610100015161264990919063ffffffff16565b60c086015260a08501516102a08701516119dc9161171a9184916116d3919063ffffffff61264916565b60e086015260c0850151610160860151611a5a91611a3691611a039163ffffffff61273f16565b611a108960200151610fd7565b60000b028760a00151611a268a60200151610fd7565b60000b029063ffffffff61278a16565b611a438860200151610fd7565b60000b028660a0015161273f90919063ffffffff16565b60a08601525050506020820152919050565b611a74612fb4565b6000611a9061168b86602001518860600151896000015161251b565b9050611ab56116df826116d38860a0015189610100015161264990919063ffffffff16565b60c086015260a08501516102a0870151611adf9161171a9184916116d3919063ffffffff61264916565b60e08601525050600060a0840152506020820152919050565b611b00612fb4565b6000611b1c61168b86602001518860600151896000015161251b565b9050611b416116df826116d38860a0015189610100015161264990919063ffffffff16565b60c086015260a08501516102a0870151611b6b9161171a9184916116d3919063ffffffff61264916565b60e08601525050506102c09290920151610100820152602081019190915290565b611b94612fb4565b61028085015161026086015161010086015190840290910190600090611bc190839063ffffffff61273f16565b905080876103c00151128015611be4575086610420015160001902876103c00151125b15611bf557506103c0860151611c11565b86610420015160001902811215611c1157506104208601516000035b610100860151611c27908263ffffffff6126f416565b915081876103c00151128015611c465750866103e00151876103c00151125b15611c5857866103c001519150611c6e565b866103e00151821215611c6e57866103e0015191505b6000611cad611c8a88602001518a606001518b6000015161251b565b611c9d888b606001518c6000015161251b565b8a604001518b6101c00151612585565b9050611ce3611cd2826116d38a60a001518b610100015161264990919063ffffffff16565b60c08901519063ffffffff6126f416565b60c08801525050610100850152505060006101608301526020820152919050565b611d0c612fb4565b6000611d2861168b86602001518860600151896000015161251b565b9050611d4d6116df826116d38860a0015189610100015161264990919063ffffffff16565b60c086015260a08501516102a0870151611d779161171a9184916116d3919063ffffffff61264916565b60e086015260048660a001516007811115611d8e57fe5b1480611da9575060058660a001516007811115611da757fe5b145b80611dc3575060068660a001516007811115611dc157fe5b145b80611ddd575060078660a001516007811115611ddb57fe5b145b15611deb5760006101208601525b60018660a001516007811115611dfd57fe5b1480611e18575060038660a001516007811115611e1657fe5b145b80611e32575060058660a001516007811115611e3057fe5b145b80611e4c575060078660a001516007811115611e4a57fe5b145b15611e5a5760006101408601525b5050506020820152919050565b611e6f612fb4565b6000611e8b61168b86602001518860600151896000015161251b565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611eb6612fb4565b60008460400151600014611ece578460400151611ee1565b611ee18487606001518860000151610c2f565b61038087015160400151909150839060009015611f1c576000611f098961038001518561279a565b9050808311611f1a57600180895291505b505b876103a00151604001518015611f30575080155b15611f5f576000611f46896103a001518561279a565b9050808311611f585760028852611f5d565b600388525b505b60408701511515611f8357611f7d8689606001518a60000151610c2f565b60408801525b50949695505050505050565b6000808560e001516001811115611fa257fe5b1415611fd257846102a00151611fbb8660200151610fd7565b8551611fc6906128a4565b0260000b02905061031c565b6120346120238560a001516116d3886102a001516116d36120008a602001518c606001518d6000015161251b565b6120138a8d606001518e6000015161251b565b8c604001518d6101c00151612585565b60e08601519063ffffffff6126f416565b845161203f906128a4565b60000b02905061031c565b6000612069856103000151866101e001516126f490919063ffffffff16565b6120768660200151610fd7565b8551612081906128a4565b026000190260000b029050949350505050565b60006120fc6120ea6116df8660a001516116d38861010001516116d36120c78b602001518d606001518e6000015161251b565b6120da8b8e606001518f6000015161251b565b8d604001518e6101c00151612585565b6101208601519063ffffffff61264916565b8451612107906128a4565b60000b0295945050505050565b60008360a001516121288660200151610fd7565b8551612133906128a4565b506000979650505050505050565b60006120696121718560a001516116d38761010001516116d36120008a602001518c606001518d6000015161251b565b60c086015161032088015161218b9163ffffffff6126f416565b9063ffffffff6126f416565b60006120fc6121fa6121ca8660a001516116d38861010001516116d36120c78b602001518d606001518e6000015161251b565b8660c0015187610160015103036121e48860200151610fd7565b60000b028660a00151611a268960200151610fd7565b6122078760200151610fd7565b60000b8661014001510261264990919063ffffffff16565b60006120fc8460a0015185610140015161264990919063ffffffff16565b600060018560c00151600381111561225157fe5b141561226a57846102e00151611fbb8660200151610fd7565b60028560c00151600381111561227c57fe5b14156122dd576122d08460a001516116d3876102e001516116d36122ad89602001518b606001518c6000015161251b565b6122c0898c606001518d6000015161251b565b8b604001518c6101c00151612585565b611fbb8660200151610fd7565b61010084015160009081908112156122fa57818661010001510390505b612320816116d38860a001516116d36120c78b602001518d606001518e6000015161251b565b61232d8860200151610fd7565b8751612338906128a4565b0260000b029250505061031c565b60006123766121718560a001516116d38761010001516116d36120008a602001518c606001518d6000015161251b565b6123838660200151610fd7565b855161238e906128a4565b0260000b0295945050505050565b60008080856020015160058111156123b057fe5b14156123cd576123c684848760000151026124f1565b905061031c565b6001856020015160058111156123df57fe5b14156123f8576123c684848760000151600702026124f1565b60028560200151600581111561240a57fe5b1415612420576123c684848760000151026128ca565b60038560200151600581111561243257fe5b141561244b576123c684848760000151600302026128ca565b60048560200151600581111561245d57fe5b1415612476576123c684848760000151600602026128ca565b60058560200151600581111561248857fe5b141561249e576123c68484876000015102612941565b60405160e560020a62461bcd0281526004016102c9906142e9565b6000600482061580156124ce57506064820615155b806102ff57505061019090061590565b6007620151809091046003010660010190565b6201518081028201828110156102ff57600080fd5b6201518081028203828111156102ff57600080fd5b6000600383600881111561252b57fe5b14806125425750600483600881111561254057fe5b145b806125585750600783600881111561255657fe5b145b8061256e5750600883600881111561256c57fe5b145b1561257a5750826102d2565b61031c848484610c2f565b6000848410156125aa5760405160e560020a62461bcd0281526004016102c9906143a9565b60008360068111156125b857fe5b14156125c8576123c68585612968565b60018360068111156125d657fe5b14156125e6576123c68585612a7c565b60028360068111156125f457fe5b1415612604576123c68585612aa7565b600483600681111561261257fe5b1415612622576123c68585612ac6565b600383600681111561263057fe5b1415612641576123c6858584612b87565b50600161031c565b6000821580612656575081155b15612663575060006102ff565b82600019148015612677575060ff60020a82145b156126975760405160e560020a62461bcd0281526004016102c990614399565b8282028284828115156126a657fe5b05146126c75760405160e560020a62461bcd0281526004016102c990614399565b670de0b6b3a764000081058015156102fb5760405160e560020a62461bcd0281526004016102c990614379565b60008282018183128015906127095750838112155b8061271e575060008312801561271e57508381125b15156102d25760405160e560020a62461bcd0281526004016102c990614339565b60008183038183128015906127545750838113155b80612769575060008312801561276957508381135b15156102d25760405160e560020a62461bcd0281526004016102c9906143d9565b6000818313156115f75750919050565b60008080846020015160058111156127ae57fe5b14156127c257610c658385600001516124f1565b6001846020015160058111156127d457fe5b14156127eb57610c658385600001516007026124f1565b6002846020015160058111156127fd57fe5b141561281157610c658385600001516128ca565b60038460200151600581111561282357fe5b141561283a57610c658385600001516003026128ca565b60048460200151600581111561284c57fe5b141561286357610c658385600001516006026128ca565b60058460200151600581111561287557fe5b141561288957610c65838560000151612941565b60405160e560020a62461bcd0281526004016102c990614349565b600060038260038111156128b457fe5b14156128c257506000610692565b506001919050565b60008080806128dc6201518087610bf4565b600c918801600019018281049390930195509106600101925090506000612903848461151c565b905080821115612911578091505b62015180870662015180612926868686612c5d565b020194508685101561293757600080fd5b5050505092915050565b60008080806129536201518087610bf4565b9187019450925090506000612903848461151c565b60008061297484612cc3565b9050600061298184612cc3565b9050600061298e86612cdf565b61299a5761016d61299e565b61016e5b61ffff169050818314156129d0576129c6816129ba8888612d01565b9063ffffffff612d1c16565b93505050506102ff565b60006129db86612cdf565b6129e75761016d6129eb565b61016e5b61ffff1690506000612a1c836129ba8a612a17612a0f8a600163ffffffff612dee16565b600180612e16565b612d01565b90506000612a39836129ba612a3388600180612e16565b8b612d01565b9050612a6f612a5f6001612a53888a63ffffffff612e3016565b9063ffffffff612e3016565b61218b848463ffffffff6126f416565b9998505050505050505050565b60006102d26101686129ba62015180612a9b868863ffffffff612e3016565b9063ffffffff612e7216565b60006102d261016d6129ba62015180612a9b868863ffffffff612e3016565b6000806000806000806000612ada89612eb4565b975095509350612ae988612eb4565b945092509050601f861415612afd57601e95505b82601f1415612b0b57601e92505b6000612b1d848863ffffffff61273f16565b90506000612b31848863ffffffff61273f16565b90506000612b45848863ffffffff61273f16565b9050612b776101686129ba8561218b612b6587601e63ffffffff612ed216565b61218b8761016863ffffffff612ed216565b9c9b505050505050505050505050565b6000806000806000806000612b9b8a612eb4565b975095509350612baa89612eb4565b945092509050612bb98a610be6565b861415612bc557601e95505b8789148015612bd45750816002145b158015612be85750612be589610be6565b83145b15612bf257601e92505b6000612c04848863ffffffff61273f16565b90506000612c18848863ffffffff61273f16565b90506000612c2c848863ffffffff61273f16565b9050612c4c6101686129ba8561218b612b6587601e63ffffffff612ed216565b9d9c50505050505050505050505050565b60006107b2841015612c6e57600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612cd46201518085610bf4565b509095945050505050565b6000808080612cf16201518086610bf4565b91945092509050610c0b836124b9565b600081831115612d1057600080fd5b50620151809190030490565b6000811515612d405760405160e560020a62461bcd0281526004016102c990614309565b821515612d4f575060006102ff565b670de0b6b3a7640000838102908482811515612d6757fe5b0514612d885760405160e560020a62461bcd0281526004016102c990614369565b82600019148015612d9c575060ff60020a84145b15612dbc5760405160e560020a62461bcd0281526004016102c9906142d9565b60008382811515612dc957fe5b0590508015156102fb5760405160e560020a62461bcd0281526004016102c990614329565b6000828201838110156102d25760405160e560020a62461bcd0281526004016102c990614319565b600062015180612e27858585612c5d565b02949350505050565b60006102d283836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612f47565b60006102d283836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612f76565b60008080612ec56201518085610bf4565b9196909550909350915050565b6000821515612ee3575060006102ff565b82600019148015612ef7575060ff60020a82145b15612f175760405160e560020a62461bcd0281526004016102c990614389565b828202828482811515612f2657fe5b05146102d25760405160e560020a62461bcd0281526004016102c990614389565b60008184841115612f6e5760405160e560020a62461bcd0281526004016102c991906142b8565b505050900390565b600081818411612f9c5760405160e560020a62461bcd0281526004016102c991906142b8565b5060008385811515612faa57fe5b0495945050505050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610800604051908101604052806040906020820280388339509192915050565b610200604051908101604052806010906020820280388339509192915050565b60006102d28235614478565b60006102d28235614432565b60006102d2823561441f565b60006102d28235614483565b60006102d28235614492565b60006102d282356144a1565b60006102d282356144b0565b60006102d282356144bf565b60006102d282356144ce565b60006102d282356144dd565b60006102d282356144ec565b60006102d282356144fb565b6000606082840312156130ff57600080fd5b61310960606143f8565b905060006131178484613075565b8252506020613128848483016130a5565b602083015250604061313c848285016130a5565b60408301525092915050565b6000610500828403121561315b57600080fd5b6131666102a06143f8565b9050600061317484846130e1565b825250602061318584848301613075565b602083015250604061319984828501613075565b60408301525060606131ad84828501613075565b60608301525060806131c184828501613075565b60808301525060a06131d584828501613075565b60a08301525060c06131e984828501613075565b60c08301525060e06131fd84828501613075565b60e08301525061010061321284828501613075565b6101008301525061012061322884828501613075565b6101208301525061014061323e84828501613075565b6101408301525061016061325484828501613075565b6101608301525061018061326a84828501613075565b610180830152506101a061328084828501613075565b6101a0830152506101c061329684828501613327565b6101c0830152506102406132ac84828501613327565b6101e0830152506102c06132c284828501613327565b610200830152506103406132d884828501613327565b610220830152506103c06132ee84828501613327565b6102408301525061044061330484828501613396565b610260830152506104a061331a84828501613396565b6102808301525092915050565b60006080828403121561333957600080fd5b61334360806143f8565b905060006133518484613075565b8252506020613362848483016130d5565b60208301525060406133768482850161308d565b604083015250606061338a84828501613069565b60608301525092915050565b6000606082840312156133a857600080fd5b6133b260606143f8565b905060006133c08484613075565b82525060206133d1848483016130d5565b602083015250604061313c84828501613069565b600061054082840312156133f857600080fd5b6134036104406143f8565b90506000613411848461308d565b8252506020613422848483016130b1565b6020830152506040613436848285016130bd565b604083015250606061344a84828501613081565b606083015250608061345e8482850161308d565b60808301525060a0613472848285016130e1565b60a08301525060c061348684828501613099565b60c08301525060e061349a8482850161308d565b60e0830152506101006134af84828501613099565b610100830152506101206134c5848285016130ed565b610120830152506101806134db848285016130ed565b610140830152506101e06134f18482850161305d565b6101608301525061020061350784828501613075565b6101808301525061022061351d84828501613075565b6101a08301525061024061353384828501613075565b6101c08301525061026061354984828501613075565b6101e08301525061028061355f84828501613075565b610200830152506102a061357584828501613075565b610220830152506102c061358b84828501613075565b610240830152506102e06135a184828501613075565b610260830152506103006135b784828501613075565b610280830152506103206135cd84828501613075565b6102a0830152506103406135e384828501613075565b6102c0830152506103606135f984828501613075565b6102e08301525061038061360f84828501613075565b610300830152506103a061362584828501613075565b610320830152506103c061363b84828501613075565b610340830152506103e061365184828501613075565b6103608301525061040061366784828501613396565b6103808301525061046061367d84828501613396565b6103a0830152506104c061369384828501613075565b6103c0830152506104e06136a984828501613075565b6103e0830152506105006136bf84828501613075565b610400830152506105206136d584828501613075565b6104208301525092915050565b60006101a082840312156136f557600080fd5b6137006101a06143f8565b9050600061370e8484613099565b825250602061371f84848301613075565b602083015250604061373384828501613075565b604083015250606061374784828501613075565b606083015250608061375b84828501613075565b60808301525060a061376f84828501613075565b60a08301525060c061378384828501613075565b60c08301525060e061379784828501613075565b60e0830152506101006137ac84828501613075565b610100830152506101206137c284828501613075565b610120830152506101406137d884828501613075565b610140830152506101606137ee84828501613075565b6101608301525061018061380484828501613075565b6101808301525092915050565b60006020828403121561382357600080fd5b60006102fb8484613075565b600080610560838503121561384357600080fd5b600061384f8585613075565b9250506020613860858286016133e5565b9150509250929050565b60008060008060006108c0868803121561388357600080fd5b600061388f8888613075565b95505060206138a0888289016133e5565b9450506105606138b2888289016136e2565b9350506107006138c488828901613069565b9250506107206138d6888289016136e2565b9150509295509295909350565b600080600060c084860312156138f857600080fd5b6000613904868661308d565b935050602061391586828701613075565b925050604061392686828701613327565b9150509250925092565b60006020828403121561394257600080fd5b60006102fb84846130c9565b6000806040838503121561396157600080fd5b600061396d85856130c9565b925050602061386085828601613075565b6000806000610540848603121561399457600080fd5b60006139a08686613148565b9350506105006139b286828701613075565b92505061052061392686828701613075565b60008060008061056085870312156139db57600080fd5b60006139e78787613148565b9450506105006139f987828801613075565b935050610520613a0b87828801613075565b925050610540613a1d878288016130c9565b91505092959194509250565b60006105408284031215613a3c57600080fd5b60006102fb84846133e5565b6000806000806107208587031215613a5f57600080fd5b6000613a6b87876133e5565b945050610540613a7d878288016136e2565b9350506106e0613a8f87828801613075565b925050610700613a1d87828801613075565b613aaa81614422565b613ab38261441f565b60005b82811015613ae357613ac9858351613af9565b613ad28261442c565b602095909501949150600101613ab6565b5050505050565b613af381614432565b82525050565b613af38161441f565b613af38161450a565b613af381614515565b613af381614520565b6000613b2882614428565b808452613b3c81602086016020860161452b565b613b4581614557565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602d81527f414e4e456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b603681527f414e4e456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a08301906141708482613b02565b5060208201516141836020850182613af9565b5060408201516141966040850182613af9565b5060608201516141a96060850182613af9565b5060808201516141bc6080850182613af9565b5060a08201516141cf60a0850182613af9565b5060c08201516141e260c0850182613af9565b5060e08201516141f560e0850182613af9565b5061010082015161420a610100850182613af9565b5061012082015161421f610120850182613af9565b50610140820151614234610140850182613af9565b50610160820151614249610160850182613af9565b5061018082015161425e610180850182613af9565b50505050565b61080081016102ff8284613aa1565b602081016102ff8284613aea565b602081016102ff8284613af9565b602081016102ff8284613b0b565b604081016142ab8285613b14565b6102d26020830184613af9565b602080825281016102d28184613b1d565b602080825281016102ff81613b52565b602080825281016102ff81613ba8565b602080825281016102ff81613bfe565b602080825281016102ff81613c54565b602080825281016102ff81613caa565b602080825281016102ff81613d00565b602080825281016102ff81613d30565b602080825281016102ff81613d86565b602080825281016102ff81613ddc565b602080825281016102ff81613e32565b602080825281016102ff81613e88565b602080825281016102ff81613ede565b602080825281016102ff81613f34565b602080825281016102ff81613f8a565b602080825281016102ff81613fe0565b602080825281016102ff81614036565b602080825281016102ff816140b2565b602080825281016102ff81614108565b6101a081016102ff828461415e565b60405181810167ffffffffffffffff8111828210171561441757600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b60006004821061444357fe5b5090565b60006002821061444357fe5b60006017821061444357fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006102ff8261445f565b60006009821061444357600080fd5b60006002821061444357600080fd5b60006004821061444357600080fd5b60006005821061444357600080fd5b6000600a821061444357600080fd5b60006007821061444357600080fd5b60006017821061444357600080fd5b60006006821061444357600080fd5b60006008821061444357600080fd5b60006102ff82614437565b60006102ff82614447565b60006102ff82614453565b60005b8381101561454657818101518382015260200161452e565b8381111561425e5750506000910152565b601f01601f19169056fea265627a7a7230582084dc55b474abba8064d9614864ef659e937c1e82768bd168d195d2f54d7013446c6578706572696d656e74616cf50037", "compiler": { "name": "solc", "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.726Z" + "updatedAt": "2019-12-11T14:12:09.756Z" } diff --git a/artifacts/BaseEngine.json b/artifacts/BaseEngine.json index cbb8c63..8923345 100644 --- a/artifacts/BaseEngine.json +++ b/artifacts/BaseEngine.json @@ -2032,5 +2032,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.741Z" + "updatedAt": "2019-12-11T14:12:09.767Z" } diff --git a/artifacts/BokkyPooBahsDateTimeLibrary.json b/artifacts/BokkyPooBahsDateTimeLibrary.json index 5524fe3..7b3fef2 100644 --- a/artifacts/BokkyPooBahsDateTimeLibrary.json +++ b/artifacts/BokkyPooBahsDateTimeLibrary.json @@ -8,5 +8,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.857Z" + "updatedAt": "2019-12-10T15:52:56.912Z" } diff --git a/artifacts/BusinessDayConvention.json b/artifacts/BusinessDayConvention.json index 7780d4e..ba0311f 100644 --- a/artifacts/BusinessDayConvention.json +++ b/artifacts/BusinessDayConvention.json @@ -23,5 +23,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.687Z" + "updatedAt": "2019-12-11T14:12:09.720Z" } diff --git a/artifacts/CECEngine.json b/artifacts/CECEngine.json index b83e274..c999c70 100644 --- a/artifacts/CECEngine.json +++ b/artifacts/CECEngine.json @@ -2032,5 +2032,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.745Z" + "updatedAt": "2019-12-11T14:12:09.772Z" } diff --git a/artifacts/CEGEngine.json b/artifacts/CEGEngine.json index c3e4141..56dc6ad 100644 --- a/artifacts/CEGEngine.json +++ b/artifacts/CEGEngine.json @@ -2032,5 +2032,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.751Z" + "updatedAt": "2019-12-11T14:12:09.778Z" } diff --git a/artifacts/ContractDefaultConvention.json b/artifacts/ContractDefaultConvention.json index 69be9fb..7ac51a2 100644 --- a/artifacts/ContractDefaultConvention.json +++ b/artifacts/ContractDefaultConvention.json @@ -23,5 +23,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.689Z" + "updatedAt": "2019-12-11T14:12:09.722Z" } diff --git a/artifacts/ContractRoleConvention.json b/artifacts/ContractRoleConvention.json index a139e23..d1d34d8 100644 --- a/artifacts/ContractRoleConvention.json +++ b/artifacts/ContractRoleConvention.json @@ -23,5 +23,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.690Z" + "updatedAt": "2019-12-11T14:12:09.723Z" } diff --git a/artifacts/Core.json b/artifacts/Core.json index 8d70bc9..58e5763 100644 --- a/artifacts/Core.json +++ b/artifacts/Core.json @@ -350,5 +350,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.702Z" + "updatedAt": "2019-12-11T14:12:09.736Z" } diff --git a/artifacts/DayCountConvention.json b/artifacts/DayCountConvention.json index 127b55e..ae9ffcf 100644 --- a/artifacts/DayCountConvention.json +++ b/artifacts/DayCountConvention.json @@ -23,5 +23,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.694Z" + "updatedAt": "2019-12-11T14:12:09.727Z" } diff --git a/artifacts/EndOfMonthConvention.json b/artifacts/EndOfMonthConvention.json index 7fdbbe7..b49bcd0 100644 --- a/artifacts/EndOfMonthConvention.json +++ b/artifacts/EndOfMonthConvention.json @@ -68,5 +68,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.700Z" + "updatedAt": "2019-12-11T14:12:09.734Z" } diff --git a/artifacts/IEngine.json b/artifacts/IEngine.json index c8999ec..e442918 100644 --- a/artifacts/IEngine.json +++ b/artifacts/IEngine.json @@ -1705,5 +1705,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.758Z" + "updatedAt": "2019-12-11T14:12:09.783Z" } diff --git a/artifacts/Migrations.json b/artifacts/Migrations.json index 9f70609..c8404ec 100644 --- a/artifacts/Migrations.json +++ b/artifacts/Migrations.json @@ -71,5 +71,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.839Z" + "updatedAt": "2019-12-10T15:52:56.898Z" } diff --git a/artifacts/PAMEngine.json b/artifacts/PAMEngine.json index e767bec..451b9b4 100644 --- a/artifacts/PAMEngine.json +++ b/artifacts/PAMEngine.json @@ -2025,12 +2025,12 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a PAM contract implements the STF and POF of the Actus standard for a PAM contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":\"PAMEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0xd25c36fe38a0dfb2f4625578f77dfbf6a545f58c0e25adf2832bd43ace1d8636\",\"urls\":[\"bzzr://7b6c85ca9324b427f7710c5fe043ed77e694764a3f29afc37c5c5cd5227b05ed\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xf471489f8f14b9afa87185249827d08596aad6870516396c3eb0abde31f5a11d\",\"urls\":[\"bzzr://777e850ddd2c0ae8c6bcbcc39fa5eb3fc527b8b8555d9a29515a828392bbe020\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":{\"keccak256\":\"0xf9f9cf5710426f0f4533bada4a0a4135985c37e8c7923a86c51488da750ee108\",\"urls\":[\"bzzr://7e6c4bbe329665c8a46473d9936a53d45f73ba147e5fecf0e88235bc7b2d1f71\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x38e4250a8728b8778e61512b1f24f6916bab11b5ef3c1366cfd80e44cd9debd7\",\"urls\":[\"bzzr://46ce51e7181503b27b98d642306a457959ffe1d871123789213995b821124544\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0xf1b413836f8f166ffb4d0ddbee551ec2408d616c7afd5749b1a78b18d99e7f25\",\"urls\":[\"bzzr://c57fbca011f3b462c764a1a6f6ace60c5c7374807b1378c84805c34dab475b75\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506143e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb1161008e578063811322fb146101a0578063aaf5eb68146101b3578063cb1e15fd146101bb578063e05a66e0146101ce578063e49172e0146101e1578063fb8eb230146101f4576100d1565b8063179331f3146100d65780631890068a146100ff5780631ab80df41461011f578063445186161461013f57806355464e371461015f578063725400031461017f575b600080fd5b6100e96100e436600461372f565b610207565b6040516100f691906140db565b60405180910390f35b61011261010d36600461367b565b6102d9565b6040516100f691906140cd565b61013261012d366004613894565b610305565b6040516100f69190614235565b61015261014d3660046136b6565b610324565b6040516100f691906140bf565b61017261016d3660046137ca565b61032f565b6040516100f691906140b0565b61019261018d36600461365d565b610450565b6040516100f69291906140e9565b6101126101ae36600461377c565b61049a565b610112610666565b6101326101c9366004613875565b61066b565b6101126101dc36600461379a565b6106de565b6101126101ef366004613894565b610703565b610172610202366004613810565b610711565b60008084600181111561021657fe5b14156102925761022583610c23565b61022e84610c51565b14801561027d575060028260200151600581111561024857fe5b1480610263575060038260200151600581111561026157fe5b145b8061027d575060048260200151600581111561027b57fe5b145b1561028a575060006102d2565b5060016102d2565b60018460018111156102a057fe5b14156102ae575060016102d2565b60405160e560020a62461bcd0281526004016102c990614215565b60405180910390fd5b9392505050565b6000806102e584610450565b9150506102fb8184606001518560000151610c6c565b9150505b92915050565b61030d612e00565b61031985858585610daf565b90505b949350505050565b600195945050505050565b610337612e69565b61033f612e69565b6060850151600090610352908686610fcc565b1561037f57610366600587606001516106de565b8261ffff83166040811061037657fe5b60200201526001015b60c0860151156103c5576103988660c001518686610fcc565b156103c5576103ac60108760c001516106de565b8261ffff8316604081106103bc57fe5b60200201526001015b60a08601511561040b576103de8660a001518686610fcc565b1561040b576103f260158760a001516106de565b8261ffff83166040811061040257fe5b60200201526001015b61041a86608001518686610fcc565b156104475761042e600a87608001516106de565b8261ffff83166040811061043e57fe5b60200201526001015b50949350505050565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561048557fe5b92505067ffffffffffffffff83169050915091565b600060058260168111156104aa57fe5b14156104b857506014610661565b600f8260168111156104c657fe5b14156104d457506019610661565b60088260168111156104e257fe5b14156104f05750601e610661565b60078260168111156104fe57fe5b141561050c57506028610661565b600482601681111561051a57fe5b141561052857506032610661565b600282601681111561053657fe5b14156105445750603c610661565b600982601681111561055257fe5b141561056057506050610661565b601182601681111561056e57fe5b141561057c5750605a610661565b601282601681111561058a57fe5b141561059857506064610661565b60138260168111156105a657fe5b14156105b45750606e610661565b60068260168111156105c257fe5b14156105d057506078610661565b60108260168111156105de57fe5b14156105ec57506082610661565b60158260168111156105fa57fe5b14156106085750608c610661565b601482601681111561061657fe5b141561062457506096610661565b600a82601681111561063257fe5b1415610640575060a0610661565b600082601681111561064e57fe5b141561065d57506103b6610661565b5060005b919050565b601281565b610673612e00565b61067b612e00565b60008152670de0b6b3a764000061014082018190526101208201526101a083015160208201526101c083015160608201526101e083015160a082015261020083015161010082015261024083015160c08201526102209092015160e08301525090565b60008160f88460168111156106ef57fe5b60ff166001029060020a0217905092915050565b600061031985858585610ff4565b610719612e69565b610721612e69565b600883601681111561072f57fe5b14806107465750600783601681111561074457fe5b145b15610951576101a08601516000901580159061077c57506101c0870151606001511515600114801561077c575061010087015115155b1561090d57610789612e89565b6107a688610100015189608001518a6101c0015160018b8b6111fb565b60e0890151909150156107ee576107c28860e001518888610fcc565b156107ee576107d660078960e001516106de565b8383604081106107e257fe5b60200201526001909101905b60005b60108160ff161015610906578160ff82166010811061080c57fe5b6020020151151561081c57610906565b61083a8260ff83166010811061082e57fe5b60200201518989610fcc565b1515610845576108fe565b60e08901511580159061086f575060e08901518260ff83166010811061086757fe5b602002015111155b156108d25760e08901518260ff83166010811061088857fe5b60200201511415610898576108fe565b6108b660078360ff8416601081106108ac57fe5b60200201516106de565b8484604081106108c257fe5b60200201526001909201916108fe565b6108e660088360ff8416601081106108ac57fe5b8484604081106108f257fe5b60200201526001909201915b6001016107f1565b505061094f565b60e08701511561094f576109268760e001518787610fcc565b1561094f5761093a60078860e001516106de565b82826040811061094657fe5b60200201526001015b505b601283601681111561095f57fe5b1415610a37576101e08601516060015160009015156001148015610987575061012087015115155b15610a3557610994612e89565b6109b188610120015189608001518a6101e0015160008b8b6111fb565b905060005b60108160ff161015610a32578160ff8216601081106109d157fe5b602002015115156109e157610a32565b6109f38260ff83166010811061082e57fe5b15156109fe57610a2a565b610a1260128360ff8416601081106108ac57fe5b848460408110610a1e57fe5b60200201526001909201915b6001016109b6565b50505b505b6004836016811115610a4557fe5b1415610b1d576102208601516060015160009015156001148015610a6d575061016087015115155b15610b1b57610a7a612e89565b610a9788610160015189608001518a610220015160018b8b6111fb565b905060005b60108160ff161015610b18578160ff821660108110610ab757fe5b60200201511515610ac757610b18565b610ad98260ff83166010811061082e57fe5b1515610ae457610b10565b610af860048360ff8416601081106108ac57fe5b848460408110610b0457fe5b60200201526001909201915b600101610a9c565b50505b505b6013836016811115610b2b57fe5b14156103195760008087516007811115610b4157fe5b141580610b5b5750600287516007811115610b5857fe5b14155b8015610b6b575061014087015115155b15610c1957610b78612e89565b610b9588610140015189608001518a610200015160018b8b6111fb565b905060005b60108160ff161015610c16578160ff821660108110610bb557fe5b60200201511515610bc557610c16565b610bd78260ff83166010811061082e57fe5b1515610be257610c0e565b610bf660138360ff8416601081106108ac57fe5b848460408110610c0257fe5b60200201526001909201915b600101610b9a565b50505b5095945050505050565b6000808080610c3762015180865b046113ba565b91945092509050610c488383611452565b95945050505050565b60008080610c626201518085610c31565b9695505050505050565b60006001836008811115610c7c57fe5b1480610c9357506003836008811115610c9157fe5b145b15610ca957610ca284836114d8565b90506102d2565b6002836008811115610cb757fe5b1480610cce57506004836008811115610ccc57fe5b145b15610d12576000610cdf85846114d8565b9050610cea85611534565b610cf382611534565b1415610d005790506102d2565b610d0a8584611545565b9150506102d2565b6005836008811115610d2057fe5b1480610d3757506007836008811115610d3557fe5b145b15610d4657610ca28483611545565b6006836008811115610d5457fe5b1480610d6b57506008836008811115610d6957fe5b145b15610da7576000610d7c8584611545565b9050610d8785611534565b610d9082611534565b1415610d9d5790506102d2565b610d0a85846114d8565b509192915050565b610db7612e00565b600080610dc385610450565b90925090506000826016811115610dd657fe5b1415610df157610de887878387611593565b9250505061031c565b6001826016811115610dff57fe5b1415610e1157610de887878387611669565b6004826016811115610e1f57fe5b1415610e3157610de8878783876116f2565b6005826016811115610e3f57fe5b1415610e5157610de887878387611754565b6007826016811115610e5f57fe5b1415610e7157610de8878783876117b9565b6008826016811115610e7f57fe5b1415610e9157610de887878387611855565b600e826016811115610e9f57fe5b1415610eb157610de887878387611593565b6010826016811115610ebf57fe5b1415610ed157610de887878387611593565b600a826016811115610edf57fe5b1415610ef157610de8878783876118a7565b600b826016811115610eff57fe5b1415610f1157610de887878387611593565b6011826016811115610f1f57fe5b1415610f3157610de887878387611933565b6012826016811115610f3f57fe5b1415610f5157610de8878783876119c7565b6013826016811115610f5f57fe5b1415610f7157610de887878387611b37565b6015826016811115610f7f57fe5b1415610f9157610de887878387611c9a565b6016826016811115610f9f57fe5b1415610fb157610de887878387611ce1565b60405160e560020a62461bcd0281526004016102c9906141c5565b60008383108015610fdd5750838210155b15610fea575060016102d2565b5060009392505050565b600080600061100285610450565b9092509050600082601681111561101557fe5b14156110265760009250505061031c565b600182601681111561103457fe5b14156110455760009250505061031c565b600782601681111561105357fe5b14156110645760009250505061031c565b601182601681111561107257fe5b14156110835760009250505061031c565b601282601681111561109157fe5b14156110a25760009250505061031c565b60138260168111156110b057fe5b14156110c15760009250505061031c565b60168260168111156110cf57fe5b14156110e05760009250505061031c565b60048260168111156110ee57fe5b141561110057610de887878387611dc2565b600582601681111561110e57fe5b141561112057610de887878387611e7f565b600882601681111561112e57fe5b141561114057610de887878387611ec9565b600e82601681111561114e57fe5b141561116057610de887878387611f31565b601082601681111561116e57fe5b141561118057610de887878387611f5e565b600a82601681111561118e57fe5b14156111a057610de887878387611fb4565b600b8260168111156111ae57fe5b14156111c057610de887878387611fd2565b60158260168111156111ce57fe5b14156111e057610de8878783876120db565b60405160e560020a62461bcd0281526004016102c9906141b5565b611203612e89565b61120b612e89565b6060860151600090151561127557611224898686610fcc565b1561123f578882826010811061123657fe5b60200201526001015b61124a888686610fcc565b1561126d576001861515141561126d578782826010811061126757fe5b60200201525b509050610c62565b8860005b898210156112e25761128c828888610fcc565b156112cd57600e83106112b45760405160e560020a62461bcd0281526004016102c990614115565b818484601081106112c157fe5b60200201526001909201915b6001016112db898c83612131565b9150611279565b60018815151415611310576112f88a8888610fcc565b15611310578984846010811061130a57fe5b60200201525b60008311801561133a575061133a8460001985016010811061132e57fe5b60200201518888610fcc565b156113ab5760008960400151600181111561135157fe5b14801561135e5750600183115b801561136a5750818a14155b156113ab5783836010811061137b57fe5b60200201518460001985016010811061139057fe5b60200201528383601081106113a157fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561141357fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806114635750816003145b8061146e5750816005145b806114795750816007145b806114845750816008145b8061148f575081600a145b8061149a575081600c145b156114a75750601f6102ff565b600282146114b75750601e6102ff565b6114c08361224e565b6114cb57601c6114ce565b601d5b60ff169392505050565b600060018260018111156114e857fe5b141561152d576114f783612273565b600614156115115761150a836002612286565b90506102ff565b61151a83612273565b6007141561152d5761150a836001612286565b5090919050565b60008080610c196201518085610c31565b6000600182600181111561155557fe5b141561152d5761156483612273565b600614156115775761150a83600161229b565b61158083612273565b6007141561152d5761150a83600261229b565b61159b612e00565b60006115da6115b78660200151886060015189600001516122b0565b6115ca8689606001518a600001516122b0565b8860400151896101c0015161231a565b905061161c61160b826115ff8860a001518961010001516123de90919063ffffffff16565b9063ffffffff6123de16565b60c08701519063ffffffff61248916565b60c086015260a08501516102a0870151611657916116469184916115ff919063ffffffff6123de16565b60e08701519063ffffffff61248916565b60e08601525050506020820152919050565b611671612e00565b600061168d6115b78660200151886060015189600001516122b0565b90506116b261160b826115ff8860a001518961010001516123de90919063ffffffff16565b60c086015260a08501516102a08701516116dc916116469184916115ff919063ffffffff6123de16565b60e0860152505060038352506020820152919050565b6116fa612e00565b60006117166115b78660200151886060015189600001516122b0565b905061173b61160b826115ff8860a001518961010001516123de90919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b61175c612e00565b60006117786115b78660200151886060015189600001516122b0565b9050856101e0015161178d87602001516124d4565b60000b0260a086015250505061020083015161010083015260208201526102409091015160c082015290565b6117c1612e00565b60006117dd6115b78660200151886060015189600001516122b0565b9050611827611816611805836115ff8960a001518a61010001516123de90919063ffffffff16565b60c08801519063ffffffff61248916565b60a08701519063ffffffff61248916565b60a08601819052600060c08701526102a0870151611657916116469184916115ff919063ffffffff6123de16565b61185d612e00565b60006118796115b78660200151886060015189600001516122b0565b600060c087015260a08601516102a0880151919250611657916116469184916115ff9163ffffffff6123de16565b6118af612e00565b60006118cb6115b78660200151886060015189600001516122b0565b90506118f061160b826115ff8860a001518961010001516123de90919063ffffffff16565b60c086015260a08501516102a087015161191a916116469184916115ff919063ffffffff6123de16565b60e08601525050600060a0840152506020820152919050565b61193b612e00565b60006119576115b78660200151886060015189600001516122b0565b905061197c61160b826115ff8860a001518961010001516123de90919063ffffffff16565b60c086015260a08501516102a08701516119a6916116469184916115ff919063ffffffff6123de16565b60e08601525050506102c09290920151610100820152602081019190915290565b6119cf612e00565b610280850151610260860151610100860151908402909101906000906119fc90839063ffffffff61259b16565b905080876103c00151128015611a1f575086610420015160001902876103c00151125b15611a3057506103c0860151611a4c565b86610420015160001902811215611a4c57506104208601516000035b610100860151611a62908263ffffffff61248916565b915081876103c00151128015611a815750866103e00151876103c00151125b15611a9357866103c001519150611aa9565b866103e00151821215611aa957866103e0015191505b6000611ae8611ac588602001518a606001518b600001516122b0565b611ad8888b606001518c600001516122b0565b8a604001518b6101c0015161231a565b9050611b1e611b0d826115ff8a60a001518b61010001516123de90919063ffffffff16565b60c08901519063ffffffff61248916565b60c0880152505061010085015250506020820152919050565b611b3f612e00565b6000611b5b6115b78660200151886060015189600001516122b0565b9050611b8061160b826115ff8860a001518961010001516123de90919063ffffffff16565b60c086015260a08501516102a0870151611baa916116469184916115ff919063ffffffff6123de16565b60e086015260048660a001516007811115611bc157fe5b1480611bdc575060058660a001516007811115611bda57fe5b145b80611bf6575060068660a001516007811115611bf457fe5b145b80611c10575060078660a001516007811115611c0e57fe5b145b15611c1e5760006101208601525b60018660a001516007811115611c3057fe5b1480611c4b575060038660a001516007811115611c4957fe5b145b80611c65575060058660a001516007811115611c6357fe5b145b80611c7f575060078660a001516007811115611c7d57fe5b145b15611c8d5760006101408601525b5050506020820152919050565b611ca2612e00565b6000611cbe6115b78660200151886060015189600001516122b0565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611ce9612e00565b60008460400151600014611d01578460400151611d14565b611d148487606001518860000151610c6c565b61038087015160400151909150839060009015611d4f576000611d3c896103800151856125e6565b9050808311611d4d57600180895291505b505b876103a00151604001518015611d63575080155b15611d92576000611d79896103a00151856125e6565b9050808311611d8b5760028852611d90565b600388525b505b60408701511515611db657611db08689606001518a60000151610c6c565b60408801525b50949695505050505050565b6000808560e001516001811115611dd557fe5b1415611e0557846102a00151611dee86602001516124d4565b8551611df9906126f0565b0260000b02905061031c565b611e67611e568560a001516115ff886102a001516115ff611e338a602001518c606001518d600001516122b0565b611e468a8d606001518e600001516122b0565b8c604001518d6101c0015161231a565b60e08601519063ffffffff61248916565b8451611e72906126f0565b60000b0295945050505050565b6000611e9e856103000151866101e0015161248990919063ffffffff16565b611eab86602001516124d4565b8551611eb6906126f0565b026000190260000b029050949350505050565b6000611e67611f1f61160b8660a001516115ff8861010001516115ff611efc8b602001518d606001518e600001516122b0565b611f0f8b8e606001518f600001516122b0565b8d604001518e6101c0015161231a565b6101208601519063ffffffff6123de16565b60008360a00151611f4586602001516124d4565b8551611f50906126f0565b506000979650505050505050565b6000611e9e611f8e8560a001516115ff8761010001516115ff611e338a602001518c606001518d600001516122b0565b60c0860151610320880151611fa89163ffffffff61248916565b9063ffffffff61248916565b6000611e678460a001518561014001516123de90919063ffffffff16565b600060018560c001516003811115611fe657fe5b1415611fff57846102e00151611dee86602001516124d4565b60028560c00151600381111561201157fe5b1415612072576120658460a001516115ff876102e001516115ff61204289602001518b606001518c600001516122b0565b612055898c606001518d600001516122b0565b8b604001518c6101c0015161231a565b611dee86602001516124d4565b610100840151600090819081121561208f57818661010001510390505b6120b5816115ff8860a001516115ff611efc8b602001518d606001518e600001516122b0565b6120c288602001516124d4565b87516120cd906126f0565b0260000b029250505061031c565b600061210b611f8e8560a001516115ff8761010001516115ff611e338a602001518c606001518d600001516122b0565b61211886602001516124d4565b8551612123906126f0565b0260000b0295945050505050565b600080808560200151600581111561214557fe5b14156121625761215b8484876000015102612286565b905061031c565b60018560200151600581111561217457fe5b141561218d5761215b8484876000015160070202612286565b60028560200151600581111561219f57fe5b14156121b55761215b8484876000015102612716565b6003856020015160058111156121c757fe5b14156121e05761215b8484876000015160030202612716565b6004856020015160058111156121f257fe5b141561220b5761215b8484876000015160060202612716565b60058560200151600581111561221d57fe5b14156122335761215b848487600001510261278d565b60405160e560020a62461bcd0281526004016102c990614135565b60006004820615801561226357506064820615155b806102ff57505061019090061590565b6007620151809091046003010660010190565b6201518081028201828110156102ff57600080fd5b6201518081028203828111156102ff57600080fd5b600060038360088111156122c057fe5b14806122d7575060048360088111156122d557fe5b145b806122ed575060078360088111156122eb57fe5b145b806123035750600883600881111561230157fe5b145b1561230f5750826102d2565b61031c848484610c6c565b60008484101561233f5760405160e560020a62461bcd0281526004016102c990614205565b600083600681111561234d57fe5b141561235d5761215b85856127b4565b600183600681111561236b57fe5b141561237b5761215b85856128c8565b600283600681111561238957fe5b14156123995761215b85856128f3565b60048360068111156123a757fe5b14156123b75761215b8585612912565b60038360068111156123c557fe5b14156123d65761215b8585846129d3565b50600161031c565b60008215806123eb575081155b156123f8575060006102ff565b8260001914801561240c575060ff60020a82145b1561242c5760405160e560020a62461bcd0281526004016102c9906141f5565b82820282848281151561243b57fe5b051461245c5760405160e560020a62461bcd0281526004016102c9906141f5565b670de0b6b3a764000081058015156102fb5760405160e560020a62461bcd0281526004016102c9906141d5565b600082820181831280159061249e5750838112155b806124b357506000831280156124b357508381125b15156102d25760405160e560020a62461bcd0281526004016102c990614175565b6000808260098111156124e357fe5b14156124f157506001610661565b60018260098111156124ff57fe5b141561250e5750600019610661565b600682600981111561251c57fe5b141561252a57506001610661565b600782600981111561253857fe5b14156125475750600019610661565b600482600981111561255557fe5b141561256357506001610661565b600582600981111561257157fe5b14156125805750600019610661565b60405160e560020a62461bcd0281526004016102c990614195565b60008183038183128015906125b05750838113155b806125c557506000831280156125c557508381135b15156102d25760405160e560020a62461bcd0281526004016102c990614225565b60008080846020015160058111156125fa57fe5b141561260e57610ca2838560000151612286565b60018460200151600581111561262057fe5b141561263757610ca2838560000151600702612286565b60028460200151600581111561264957fe5b141561265d57610ca2838560000151612716565b60038460200151600581111561266f57fe5b141561268657610ca2838560000151600302612716565b60048460200151600581111561269857fe5b14156126af57610ca2838560000151600602612716565b6005846020015160058111156126c157fe5b14156126d557610ca283856000015161278d565b60405160e560020a62461bcd0281526004016102c990614185565b6000600382600381111561270057fe5b141561270e57506000610661565b506001919050565b60008080806127286201518087610c31565b600c91880160001901828104939093019550910660010192509050600061274f8484611452565b90508082111561275d578091505b62015180870662015180612772868686612aa9565b020194508685101561278357600080fd5b5050505092915050565b600080808061279f6201518087610c31565b918701945092509050600061274f8484611452565b6000806127c084612b0f565b905060006127cd84612b0f565b905060006127da86612b2b565b6127e65761016d6127ea565b61016e5b61ffff1690508183141561281c57612812816128068888612b4d565b9063ffffffff612b6816565b93505050506102ff565b600061282786612b2b565b6128335761016d612837565b61016e5b61ffff1690506000612868836128068a61286361285b8a600163ffffffff612c3a16565b600180612c62565b612b4d565b905060006128858361280661287f88600180612c62565b8b612b4d565b90506128bb6128ab600161289f888a63ffffffff612c7c16565b9063ffffffff612c7c16565b611fa8848463ffffffff61248916565b9998505050505050505050565b60006102d2610168612806620151806128e7868863ffffffff612c7c16565b9063ffffffff612cbe16565b60006102d261016d612806620151806128e7868863ffffffff612c7c16565b600080600080600080600061292689612d00565b97509550935061293588612d00565b945092509050601f86141561294957601e95505b82601f141561295757601e92505b6000612969848863ffffffff61259b16565b9050600061297d848863ffffffff61259b16565b90506000612991848863ffffffff61259b16565b90506129c361016861280685611fa86129b187601e63ffffffff612d1e16565b611fa88761016863ffffffff612d1e16565b9c9b505050505050505050505050565b60008060008060008060006129e78a612d00565b9750955093506129f689612d00565b945092509050612a058a610c23565b861415612a1157601e95505b8789148015612a205750816002145b158015612a345750612a3189610c23565b83145b15612a3e57601e92505b6000612a50848863ffffffff61259b16565b90506000612a64848863ffffffff61259b16565b90506000612a78848863ffffffff61259b16565b9050612a9861016861280685611fa86129b187601e63ffffffff612d1e16565b9d9c50505050505050505050505050565b60006107b2841015612aba57600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612b206201518085610c31565b509095945050505050565b6000808080612b3d6201518086610c31565b91945092509050610c488361224e565b600081831115612b5c57600080fd5b50620151809190030490565b6000811515612b8c5760405160e560020a62461bcd0281526004016102c990614145565b821515612b9b575060006102ff565b670de0b6b3a7640000838102908482811515612bb357fe5b0514612bd45760405160e560020a62461bcd0281526004016102c9906141a5565b82600019148015612be8575060ff60020a84145b15612c085760405160e560020a62461bcd0281526004016102c990614125565b60008382811515612c1557fe5b0590508015156102fb5760405160e560020a62461bcd0281526004016102c990614165565b6000828201838110156102d25760405160e560020a62461bcd0281526004016102c990614155565b600062015180612c73858585612aa9565b02949350505050565b60006102d283836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d93565b60006102d283836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612dc2565b60008080612d116201518085610c31565b9196909550909350915050565b6000821515612d2f575060006102ff565b82600019148015612d43575060ff60020a82145b15612d635760405160e560020a62461bcd0281526004016102c9906141e5565b828202828482811515612d7257fe5b05146102d25760405160e560020a62461bcd0281526004016102c9906141e5565b60008184841115612dba5760405160e560020a62461bcd0281526004016102c99190614104565b505050900390565b600081818411612de85760405160e560020a62461bcd0281526004016102c99190614104565b5060008385811515612df657fe5b0495945050505050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610800604051908101604052806040906020820280388339509192915050565b610200604051908101604052806010906020820280388339509192915050565b60006102d282356142c4565b60006102d2823561427e565b60006102d2823561426b565b60006102d282356142cf565b60006102d282356142de565b60006102d282356142ed565b60006102d282356142fc565b60006102d2823561430b565b60006102d2823561431a565b60006102d28235614329565b60006102d28235614338565b60006102d28235614347565b600060608284031215612f4b57600080fd5b612f556060614244565b90506000612f638484612ec1565b8252506020612f7484848301612ef1565b6020830152506040612f8884828501612ef1565b60408301525092915050565b60006105008284031215612fa757600080fd5b612fb26102a0614244565b90506000612fc08484612f2d565b8252506020612fd184848301612ec1565b6020830152506040612fe584828501612ec1565b6040830152506060612ff984828501612ec1565b606083015250608061300d84828501612ec1565b60808301525060a061302184828501612ec1565b60a08301525060c061303584828501612ec1565b60c08301525060e061304984828501612ec1565b60e08301525061010061305e84828501612ec1565b6101008301525061012061307484828501612ec1565b6101208301525061014061308a84828501612ec1565b610140830152506101606130a084828501612ec1565b610160830152506101806130b684828501612ec1565b610180830152506101a06130cc84828501612ec1565b6101a0830152506101c06130e284828501613173565b6101c0830152506102406130f884828501613173565b6101e0830152506102c061310e84828501613173565b6102008301525061034061312484828501613173565b610220830152506103c061313a84828501613173565b61024083015250610440613150848285016131e2565b610260830152506104a0613166848285016131e2565b6102808301525092915050565b60006080828403121561318557600080fd5b61318f6080614244565b9050600061319d8484612ec1565b82525060206131ae84848301612f21565b60208301525060406131c284828501612ed9565b60408301525060606131d684828501612eb5565b60608301525092915050565b6000606082840312156131f457600080fd5b6131fe6060614244565b9050600061320c8484612ec1565b825250602061321d84848301612f21565b6020830152506040612f8884828501612eb5565b6000610540828403121561324457600080fd5b61324f610440614244565b9050600061325d8484612ed9565b825250602061326e84848301612efd565b602083015250604061328284828501612f09565b604083015250606061329684828501612ecd565b60608301525060806132aa84828501612ed9565b60808301525060a06132be84828501612f2d565b60a08301525060c06132d284828501612ee5565b60c08301525060e06132e684828501612ed9565b60e0830152506101006132fb84828501612ee5565b6101008301525061012061331184828501612f39565b6101208301525061018061332784828501612f39565b610140830152506101e061333d84828501612ea9565b6101608301525061020061335384828501612ec1565b6101808301525061022061336984828501612ec1565b6101a08301525061024061337f84828501612ec1565b6101c08301525061026061339584828501612ec1565b6101e0830152506102806133ab84828501612ec1565b610200830152506102a06133c184828501612ec1565b610220830152506102c06133d784828501612ec1565b610240830152506102e06133ed84828501612ec1565b6102608301525061030061340384828501612ec1565b6102808301525061032061341984828501612ec1565b6102a08301525061034061342f84828501612ec1565b6102c08301525061036061344584828501612ec1565b6102e08301525061038061345b84828501612ec1565b610300830152506103a061347184828501612ec1565b610320830152506103c061348784828501612ec1565b610340830152506103e061349d84828501612ec1565b610360830152506104006134b3848285016131e2565b610380830152506104606134c9848285016131e2565b6103a0830152506104c06134df84828501612ec1565b6103c0830152506104e06134f584828501612ec1565b6103e08301525061050061350b84828501612ec1565b6104008301525061052061352184828501612ec1565b6104208301525092915050565b60006101a0828403121561354157600080fd5b61354c6101a0614244565b9050600061355a8484612ee5565b825250602061356b84848301612ec1565b602083015250604061357f84828501612ec1565b604083015250606061359384828501612ec1565b60608301525060806135a784828501612ec1565b60808301525060a06135bb84828501612ec1565b60a08301525060c06135cf84828501612ec1565b60c08301525060e06135e384828501612ec1565b60e0830152506101006135f884828501612ec1565b6101008301525061012061360e84828501612ec1565b6101208301525061014061362484828501612ec1565b6101408301525061016061363a84828501612ec1565b6101608301525061018061365084828501612ec1565b6101808301525092915050565b60006020828403121561366f57600080fd5b60006102fb8484612ec1565b600080610560838503121561368f57600080fd5b600061369b8585612ec1565b92505060206136ac85828601613231565b9150509250929050565b60008060008060006108c086880312156136cf57600080fd5b60006136db8888612ec1565b95505060206136ec88828901613231565b9450506105606136fe8882890161352e565b93505061070061371088828901612eb5565b9250506107206137228882890161352e565b9150509295509295909350565b600080600060c0848603121561374457600080fd5b60006137508686612ed9565b935050602061376186828701612ec1565b925050604061377286828701613173565b9150509250925092565b60006020828403121561378e57600080fd5b60006102fb8484612f15565b600080604083850312156137ad57600080fd5b60006137b98585612f15565b92505060206136ac85828601612ec1565b600080600061054084860312156137e057600080fd5b60006137ec8686612f94565b9350506105006137fe86828701612ec1565b92505061052061377286828701612ec1565b600080600080610560858703121561382757600080fd5b60006138338787612f94565b94505061050061384587828801612ec1565b93505061052061385787828801612ec1565b92505061054061386987828801612f15565b91505092959194509250565b6000610540828403121561388857600080fd5b60006102fb8484613231565b60008060008061072085870312156138ab57600080fd5b60006138b78787613231565b9450506105406138c98782880161352e565b9350506106e06138db87828801612ec1565b92505061070061386987828801612ec1565b6138f68161426e565b6138ff8261426b565b60005b8281101561392f57613915858351613945565b61391e82614278565b602095909501949150600101613902565b5050505050565b61393f8161427e565b82525050565b61393f8161426b565b61393f81614356565b61393f81614361565b61393f8161436c565b600061397482614274565b808452613988816020860160208601614377565b613991816143a3565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602d81527f50414d456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b603681527f50414d456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190613fbc848261394e565b506020820151613fcf6020850182613945565b506040820151613fe26040850182613945565b506060820151613ff56060850182613945565b5060808201516140086080850182613945565b5060a082015161401b60a0850182613945565b5060c082015161402e60c0850182613945565b5060e082015161404160e0850182613945565b50610100820151614056610100850182613945565b5061012082015161406b610120850182613945565b50610140820151614080610140850182613945565b50610160820151614095610160850182613945565b506101808201516140aa610180850182613945565b50505050565b61080081016102ff82846138ed565b602081016102ff8284613936565b602081016102ff8284613945565b602081016102ff8284613957565b604081016140f78285613960565b6102d26020830184613945565b602080825281016102d28184613969565b602080825281016102ff8161399e565b602080825281016102ff816139f4565b602080825281016102ff81613a4a565b602080825281016102ff81613aa0565b602080825281016102ff81613af6565b602080825281016102ff81613b26565b602080825281016102ff81613b7c565b602080825281016102ff81613bd2565b602080825281016102ff81613c28565b602080825281016102ff81613c7e565b602080825281016102ff81613cd4565b602080825281016102ff81613d2a565b602080825281016102ff81613d80565b602080825281016102ff81613dd6565b602080825281016102ff81613e2c565b602080825281016102ff81613e82565b602080825281016102ff81613ed8565b602080825281016102ff81613f54565b6101a081016102ff8284613faa565b60405181810167ffffffffffffffff8111828210171561426357600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b60006004821061428f57fe5b5090565b60006002821061428f57fe5b60006017821061428f57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006102ff826142ab565b60006009821061428f57600080fd5b60006002821061428f57600080fd5b60006004821061428f57600080fd5b60006005821061428f57600080fd5b6000600a821061428f57600080fd5b60006007821061428f57600080fd5b60006017821061428f57600080fd5b60006006821061428f57600080fd5b60006008821061428f57600080fd5b60006102ff82614283565b60006102ff82614293565b60006102ff8261429f565b60005b8381101561439257818101518382015260200161437a565b838111156140aa5750506000910152565b601f01601f19169056fea265627a7a72305820b56748c55058a4a815820044e32544757ff07df7f76fd8447401c0fed437c2cf6c6578706572696d656e74616cf50037", + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a PAM contract implements the STF and POF of the Actus standard for a PAM contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":\"PAMEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0xd25c36fe38a0dfb2f4625578f77dfbf6a545f58c0e25adf2832bd43ace1d8636\",\"urls\":[\"bzzr://7b6c85ca9324b427f7710c5fe043ed77e694764a3f29afc37c5c5cd5227b05ed\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xf471489f8f14b9afa87185249827d08596aad6870516396c3eb0abde31f5a11d\",\"urls\":[\"bzzr://777e850ddd2c0ae8c6bcbcc39fa5eb3fc527b8b8555d9a29515a828392bbe020\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":{\"keccak256\":\"0xfe9d2ad7ee2290a298786a329ca0b2e3eb8bddf7886649f5fd87776e771c04d9\",\"urls\":[\"bzzr://41625b5c4fc3ce1cc0166dd58baff786032d9fb748aaf74d3e2ba23314cf5c4f\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x38e4250a8728b8778e61512b1f24f6916bab11b5ef3c1366cfd80e44cd9debd7\",\"urls\":[\"bzzr://46ce51e7181503b27b98d642306a457959ffe1d871123789213995b821124544\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0xf1b413836f8f166ffb4d0ddbee551ec2408d616c7afd5749b1a78b18d99e7f25\",\"urls\":[\"bzzr://c57fbca011f3b462c764a1a6f6ace60c5c7374807b1378c84805c34dab475b75\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50614457806100206000396000f3fe608060405234801561001057600080fd5b50600436106100d1576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb1161008e578063811322fb146101a0578063aaf5eb68146101b3578063cb1e15fd146101bb578063e05a66e0146101ce578063e49172e0146101e1578063fb8eb230146101f4576100d1565b8063179331f3146100d65780631890068a146100ff5780631ab80df41461011f578063445186161461013f57806355464e371461015f578063725400031461017f575b600080fd5b6100e96100e436600461379f565b610207565b6040516100f6919061414b565b60405180910390f35b61011261010d3660046136eb565b6102d9565b6040516100f6919061413d565b61013261012d366004613904565b610305565b6040516100f691906142a5565b61015261014d366004613726565b610324565b6040516100f6919061412f565b61017261016d36600461383a565b61032f565b6040516100f69190614120565b61019261018d3660046136cd565b610450565b6040516100f6929190614159565b6101126101ae3660046137ec565b61049a565b610112610666565b6101326101c93660046138e5565b61066b565b6101126101dc36600461380a565b6106de565b6101126101ef366004613904565b610703565b610172610202366004613880565b610711565b60008084600181111561021657fe5b14156102925761022583610c93565b61022e84610cc1565b14801561027d575060028260200151600581111561024857fe5b1480610263575060038260200151600581111561026157fe5b145b8061027d575060048260200151600581111561027b57fe5b145b1561028a575060006102d2565b5060016102d2565b60018460018111156102a057fe5b14156102ae575060016102d2565b60405160e560020a62461bcd0281526004016102c990614285565b60405180910390fd5b9392505050565b6000806102e584610450565b9150506102fb8184606001518560000151610cdc565b9150505b92915050565b61030d612e70565b61031985858585610e1f565b90505b949350505050565b600195945050505050565b610337612ed9565b61033f612ed9565b606085015160009061035290868661103c565b1561037f57610366600587606001516106de565b8261ffff83166040811061037657fe5b60200201526001015b60c0860151156103c5576103988660c00151868661103c565b156103c5576103ac60108760c001516106de565b8261ffff8316604081106103bc57fe5b60200201526001015b60a08601511561040b576103de8660a00151868661103c565b1561040b576103f260158760a001516106de565b8261ffff83166040811061040257fe5b60200201526001015b61041a8660800151868661103c565b156104475761042e600a87608001516106de565b8261ffff83166040811061043e57fe5b60200201526001015b50949350505050565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561048557fe5b92505067ffffffffffffffff83169050915091565b600060058260168111156104aa57fe5b14156104b857506014610661565b600f8260168111156104c657fe5b14156104d457506019610661565b60088260168111156104e257fe5b14156104f05750601e610661565b60078260168111156104fe57fe5b141561050c57506028610661565b600482601681111561051a57fe5b141561052857506032610661565b600282601681111561053657fe5b14156105445750603c610661565b600982601681111561055257fe5b141561056057506050610661565b601182601681111561056e57fe5b141561057c5750605a610661565b601282601681111561058a57fe5b141561059857506064610661565b60138260168111156105a657fe5b14156105b45750606e610661565b60068260168111156105c257fe5b14156105d057506078610661565b60108260168111156105de57fe5b14156105ec57506082610661565b60158260168111156105fa57fe5b14156106085750608c610661565b601482601681111561061657fe5b141561062457506096610661565b600a82601681111561063257fe5b1415610640575060a0610661565b600082601681111561064e57fe5b141561065d57506103b6610661565b5060005b919050565b601281565b610673612e70565b61067b612e70565b60008152670de0b6b3a764000061014082018190526101208201526101a083015160208201526101c083015160608201526101e083015160a082015261020083015161010082015261024083015160c08201526102209092015160e08301525090565b60008160f88460168111156106ef57fe5b60ff166001029060020a0217905092915050565b600061031985858585611064565b610719612ed9565b610721612ed9565b600883601681111561072f57fe5b141561084a576101c08601516060015160009015156001148015610757575061010087015115155b801561076c5750866101800151876101000151105b1561084857610779612ef9565b6107ae8860e00151600014610792578860e00151610799565b8861010001515b8961018001518a6101c0015160008b8b61126b565b905060005b60108160ff161015610845578160ff8216601081106107ce57fe5b602002015115156107de57610845565b6107fc8260ff8316601081106107f057fe5b6020020151898961103c565b15156108075761083d565b61082560088360ff84166010811061081b57fe5b60200201516106de565b84846040811061083157fe5b60200201526001909201915b6001016107b3565b50505b505b600783601681111561085857fe5b14156109c1576101c08601516060015160009015156001148015610880575061010087015115155b801561088f575060e087015115155b80156108a45750866101800151876101000151105b15610976576108b1612ef9565b6108ce8861010001518960e001518a6101c0015160008b8b61126b565b905060005b60108160ff161015610973578160ff8216601081106108ee57fe5b602002015115156108fe57610973565b6109108260ff8316601081106107f057fe5b151561091b5761096b565b60e08901518260ff83166010811061092f57fe5b6020020151141561093f5761096b565b61095360078360ff84166010811061081b57fe5b84846040811061095f57fe5b60200201526001909201915b6001016108d3565b50505b8661018001518760e0015110156109bf576109968760e00151878761103c565b156109bf576109aa60078860e001516106de565b8282604081106109b657fe5b60200201526001015b505b60128360168111156109cf57fe5b1415610aa7576101e086015160600151600090151560011480156109f7575061012087015115155b15610aa557610a04612ef9565b610a2188610120015189608001518a6101e0015160008b8b61126b565b905060005b60108160ff161015610aa2578160ff821660108110610a4157fe5b60200201511515610a5157610aa2565b610a638260ff8316601081106107f057fe5b1515610a6e57610a9a565b610a8260128360ff84166010811061081b57fe5b848460408110610a8e57fe5b60200201526001909201915b600101610a26565b50505b505b6004836016811115610ab557fe5b1415610b8d576102208601516060015160009015156001148015610add575061016087015115155b15610b8b57610aea612ef9565b610b0788610160015189608001518a610220015160018b8b61126b565b905060005b60108160ff161015610b88578160ff821660108110610b2757fe5b60200201511515610b3757610b88565b610b498260ff8316601081106107f057fe5b1515610b5457610b80565b610b6860048360ff84166010811061081b57fe5b848460408110610b7457fe5b60200201526001909201915b600101610b0c565b50505b505b6013836016811115610b9b57fe5b14156103195760008087516007811115610bb157fe5b141580610bcb5750600287516007811115610bc857fe5b14155b8015610bdb575061014087015115155b15610c8957610be8612ef9565b610c0588610140015189608001518a610200015160018b8b61126b565b905060005b60108160ff161015610c86578160ff821660108110610c2557fe5b60200201511515610c3557610c86565b610c478260ff8316601081106107f057fe5b1515610c5257610c7e565b610c6660138360ff84166010811061081b57fe5b848460408110610c7257fe5b60200201526001909201915b600101610c0a565b50505b5095945050505050565b6000808080610ca762015180865b0461142a565b91945092509050610cb883836114c2565b95945050505050565b60008080610cd26201518085610ca1565b9695505050505050565b60006001836008811115610cec57fe5b1480610d0357506003836008811115610d0157fe5b145b15610d1957610d128483611548565b90506102d2565b6002836008811115610d2757fe5b1480610d3e57506004836008811115610d3c57fe5b145b15610d82576000610d4f8584611548565b9050610d5a856115a4565b610d63826115a4565b1415610d705790506102d2565b610d7a85846115b5565b9150506102d2565b6005836008811115610d9057fe5b1480610da757506007836008811115610da557fe5b145b15610db657610d1284836115b5565b6006836008811115610dc457fe5b1480610ddb57506008836008811115610dd957fe5b145b15610e17576000610dec85846115b5565b9050610df7856115a4565b610e00826115a4565b1415610e0d5790506102d2565b610d7a8584611548565b509192915050565b610e27612e70565b600080610e3385610450565b90925090506000826016811115610e4657fe5b1415610e6157610e5887878387611603565b9250505061031c565b6001826016811115610e6f57fe5b1415610e8157610e58878783876116d9565b6004826016811115610e8f57fe5b1415610ea157610e5887878387611762565b6005826016811115610eaf57fe5b1415610ec157610e58878783876117c4565b6007826016811115610ecf57fe5b1415610ee157610e5887878387611829565b6008826016811115610eef57fe5b1415610f0157610e58878783876118c5565b600e826016811115610f0f57fe5b1415610f2157610e5887878387611603565b6010826016811115610f2f57fe5b1415610f4157610e5887878387611603565b600a826016811115610f4f57fe5b1415610f6157610e5887878387611917565b600b826016811115610f6f57fe5b1415610f8157610e5887878387611603565b6011826016811115610f8f57fe5b1415610fa157610e58878783876119a3565b6012826016811115610faf57fe5b1415610fc157610e5887878387611a37565b6013826016811115610fcf57fe5b1415610fe157610e5887878387611ba7565b6015826016811115610fef57fe5b141561100157610e5887878387611d0a565b601682601681111561100f57fe5b141561102157610e5887878387611d51565b60405160e560020a62461bcd0281526004016102c990614235565b6000838310801561104d5750838210155b1561105a575060016102d2565b5060009392505050565b600080600061107285610450565b9092509050600082601681111561108557fe5b14156110965760009250505061031c565b60018260168111156110a457fe5b14156110b55760009250505061031c565b60078260168111156110c357fe5b14156110d45760009250505061031c565b60118260168111156110e257fe5b14156110f35760009250505061031c565b601282601681111561110157fe5b14156111125760009250505061031c565b601382601681111561112057fe5b14156111315760009250505061031c565b601682601681111561113f57fe5b14156111505760009250505061031c565b600482601681111561115e57fe5b141561117057610e5887878387611e32565b600582601681111561117e57fe5b141561119057610e5887878387611eef565b600882601681111561119e57fe5b14156111b057610e5887878387611f39565b600e8260168111156111be57fe5b14156111d057610e5887878387611fa1565b60108260168111156111de57fe5b14156111f057610e5887878387611fce565b600a8260168111156111fe57fe5b141561121057610e5887878387612024565b600b82601681111561121e57fe5b141561123057610e5887878387612042565b601582601681111561123e57fe5b141561125057610e588787838761214b565b60405160e560020a62461bcd0281526004016102c990614225565b611273612ef9565b61127b612ef9565b606086015160009015156112e55761129489868661103c565b156112af57888282601081106112a657fe5b60200201526001015b6112ba88868661103c565b156112dd57600186151514156112dd57878282601081106112d757fe5b60200201525b509050610cd2565b8860005b89821015611352576112fc82888861103c565b1561133d57600e83106113245760405160e560020a62461bcd0281526004016102c990614185565b8184846010811061133157fe5b60200201526001909201915b60010161134b898c836121a1565b91506112e9565b60018815151415611380576113688a888861103c565b15611380578984846010811061137a57fe5b60200201525b6000831180156113aa57506113aa8460001985016010811061139e57fe5b6020020151888861103c565b1561141b576000896040015160018111156113c157fe5b1480156113ce5750600183115b80156113da5750818a14155b1561141b578383601081106113eb57fe5b60200201518460001985016010811061140057fe5b602002015283836010811061141157fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561148357fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806114d35750816003145b806114de5750816005145b806114e95750816007145b806114f45750816008145b806114ff575081600a145b8061150a575081600c145b156115175750601f6102ff565b600282146115275750601e6102ff565b611530836122be565b61153b57601c61153e565b601d5b60ff169392505050565b6000600182600181111561155857fe5b141561159d57611567836122e3565b600614156115815761157a8360026122f6565b90506102ff565b61158a836122e3565b6007141561159d5761157a8360016122f6565b5090919050565b60008080610c896201518085610ca1565b600060018260018111156115c557fe5b141561159d576115d4836122e3565b600614156115e75761157a83600161230b565b6115f0836122e3565b6007141561159d5761157a83600261230b565b61160b612e70565b600061164a611627866020015188606001518960000151612320565b61163a8689606001518a60000151612320565b8860400151896101c0015161238a565b905061168c61167b8261166f8860a0015189610100015161244e90919063ffffffff16565b9063ffffffff61244e16565b60c08701519063ffffffff6124f916565b60c086015260a08501516102a08701516116c7916116b691849161166f919063ffffffff61244e16565b60e08701519063ffffffff6124f916565b60e08601525050506020820152919050565b6116e1612e70565b60006116fd611627866020015188606001518960000151612320565b905061172261167b8261166f8860a0015189610100015161244e90919063ffffffff16565b60c086015260a08501516102a087015161174c916116b691849161166f919063ffffffff61244e16565b60e0860152505060038352506020820152919050565b61176a612e70565b6000611786611627866020015188606001518960000151612320565b90506117ab61167b8261166f8860a0015189610100015161244e90919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b6117cc612e70565b60006117e8611627866020015188606001518960000151612320565b9050856101e001516117fd8760200151612544565b60000b0260a086015250505061020083015161010083015260208201526102409091015160c082015290565b611831612e70565b600061184d611627866020015188606001518960000151612320565b90506118976118866118758361166f8960a001518a610100015161244e90919063ffffffff16565b60c08801519063ffffffff6124f916565b60a08701519063ffffffff6124f916565b60a08601819052600060c08701526102a08701516116c7916116b691849161166f919063ffffffff61244e16565b6118cd612e70565b60006118e9611627866020015188606001518960000151612320565b600060c087015260a08601516102a08801519192506116c7916116b691849161166f9163ffffffff61244e16565b61191f612e70565b600061193b611627866020015188606001518960000151612320565b905061196061167b8261166f8860a0015189610100015161244e90919063ffffffff16565b60c086015260a08501516102a087015161198a916116b691849161166f919063ffffffff61244e16565b60e08601525050600060a0840152506020820152919050565b6119ab612e70565b60006119c7611627866020015188606001518960000151612320565b90506119ec61167b8261166f8860a0015189610100015161244e90919063ffffffff16565b60c086015260a08501516102a0870151611a16916116b691849161166f919063ffffffff61244e16565b60e08601525050506102c09290920151610100820152602081019190915290565b611a3f612e70565b61028085015161026086015161010086015190840290910190600090611a6c90839063ffffffff61260b16565b905080876103c00151128015611a8f575086610420015160001902876103c00151125b15611aa057506103c0860151611abc565b86610420015160001902811215611abc57506104208601516000035b610100860151611ad2908263ffffffff6124f916565b915081876103c00151128015611af15750866103e00151876103c00151125b15611b0357866103c001519150611b19565b866103e00151821215611b1957866103e0015191505b6000611b58611b3588602001518a606001518b60000151612320565b611b48888b606001518c60000151612320565b8a604001518b6101c0015161238a565b9050611b8e611b7d8261166f8a60a001518b610100015161244e90919063ffffffff16565b60c08901519063ffffffff6124f916565b60c0880152505061010085015250506020820152919050565b611baf612e70565b6000611bcb611627866020015188606001518960000151612320565b9050611bf061167b8261166f8860a0015189610100015161244e90919063ffffffff16565b60c086015260a08501516102a0870151611c1a916116b691849161166f919063ffffffff61244e16565b60e086015260048660a001516007811115611c3157fe5b1480611c4c575060058660a001516007811115611c4a57fe5b145b80611c66575060068660a001516007811115611c6457fe5b145b80611c80575060078660a001516007811115611c7e57fe5b145b15611c8e5760006101208601525b60018660a001516007811115611ca057fe5b1480611cbb575060038660a001516007811115611cb957fe5b145b80611cd5575060058660a001516007811115611cd357fe5b145b80611cef575060078660a001516007811115611ced57fe5b145b15611cfd5760006101408601525b5050506020820152919050565b611d12612e70565b6000611d2e611627866020015188606001518960000151612320565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611d59612e70565b60008460400151600014611d71578460400151611d84565b611d848487606001518860000151610cdc565b61038087015160400151909150839060009015611dbf576000611dac89610380015185612656565b9050808311611dbd57600180895291505b505b876103a00151604001518015611dd3575080155b15611e02576000611de9896103a0015185612656565b9050808311611dfb5760028852611e00565b600388525b505b60408701511515611e2657611e208689606001518a60000151610cdc565b60408801525b50949695505050505050565b6000808560e001516001811115611e4557fe5b1415611e7557846102a00151611e5e8660200151612544565b8551611e6990612760565b0260000b02905061031c565b611ed7611ec68560a0015161166f886102a0015161166f611ea38a602001518c606001518d60000151612320565b611eb68a8d606001518e60000151612320565b8c604001518d6101c0015161238a565b60e08601519063ffffffff6124f916565b8451611ee290612760565b60000b0295945050505050565b6000611f0e856103000151866101e001516124f990919063ffffffff16565b611f1b8660200151612544565b8551611f2690612760565b026000190260000b029050949350505050565b6000611ed7611f8f61167b8660a0015161166f88610100015161166f611f6c8b602001518d606001518e60000151612320565b611f7f8b8e606001518f60000151612320565b8d604001518e6101c0015161238a565b6101208601519063ffffffff61244e16565b60008360a00151611fb58660200151612544565b8551611fc090612760565b506000979650505050505050565b6000611f0e611ffe8560a0015161166f87610100015161166f611ea38a602001518c606001518d60000151612320565b60c08601516103208801516120189163ffffffff6124f916565b9063ffffffff6124f916565b6000611ed78460a0015185610140015161244e90919063ffffffff16565b600060018560c00151600381111561205657fe5b141561206f57846102e00151611e5e8660200151612544565b60028560c00151600381111561208157fe5b14156120e2576120d58460a0015161166f876102e0015161166f6120b289602001518b606001518c60000151612320565b6120c5898c606001518d60000151612320565b8b604001518c6101c0015161238a565b611e5e8660200151612544565b61010084015160009081908112156120ff57818661010001510390505b6121258161166f8860a0015161166f611f6c8b602001518d606001518e60000151612320565b6121328860200151612544565b875161213d90612760565b0260000b029250505061031c565b600061217b611ffe8560a0015161166f87610100015161166f611ea38a602001518c606001518d60000151612320565b6121888660200151612544565b855161219390612760565b0260000b0295945050505050565b60008080856020015160058111156121b557fe5b14156121d2576121cb84848760000151026122f6565b905061031c565b6001856020015160058111156121e457fe5b14156121fd576121cb84848760000151600702026122f6565b60028560200151600581111561220f57fe5b1415612225576121cb8484876000015102612786565b60038560200151600581111561223757fe5b1415612250576121cb8484876000015160030202612786565b60048560200151600581111561226257fe5b141561227b576121cb8484876000015160060202612786565b60058560200151600581111561228d57fe5b14156122a3576121cb84848760000151026127fd565b60405160e560020a62461bcd0281526004016102c9906141a5565b6000600482061580156122d357506064820615155b806102ff57505061019090061590565b6007620151809091046003010660010190565b6201518081028201828110156102ff57600080fd5b6201518081028203828111156102ff57600080fd5b6000600383600881111561233057fe5b14806123475750600483600881111561234557fe5b145b8061235d5750600783600881111561235b57fe5b145b806123735750600883600881111561237157fe5b145b1561237f5750826102d2565b61031c848484610cdc565b6000848410156123af5760405160e560020a62461bcd0281526004016102c990614275565b60008360068111156123bd57fe5b14156123cd576121cb8585612824565b60018360068111156123db57fe5b14156123eb576121cb8585612938565b60028360068111156123f957fe5b1415612409576121cb8585612963565b600483600681111561241757fe5b1415612427576121cb8585612982565b600383600681111561243557fe5b1415612446576121cb858584612a43565b50600161031c565b600082158061245b575081155b15612468575060006102ff565b8260001914801561247c575060ff60020a82145b1561249c5760405160e560020a62461bcd0281526004016102c990614265565b8282028284828115156124ab57fe5b05146124cc5760405160e560020a62461bcd0281526004016102c990614265565b670de0b6b3a764000081058015156102fb5760405160e560020a62461bcd0281526004016102c990614245565b600082820181831280159061250e5750838112155b80612523575060008312801561252357508381125b15156102d25760405160e560020a62461bcd0281526004016102c9906141e5565b60008082600981111561255357fe5b141561256157506001610661565b600182600981111561256f57fe5b141561257e5750600019610661565b600682600981111561258c57fe5b141561259a57506001610661565b60078260098111156125a857fe5b14156125b75750600019610661565b60048260098111156125c557fe5b14156125d357506001610661565b60058260098111156125e157fe5b14156125f05750600019610661565b60405160e560020a62461bcd0281526004016102c990614205565b60008183038183128015906126205750838113155b80612635575060008312801561263557508381135b15156102d25760405160e560020a62461bcd0281526004016102c990614295565b600080808460200151600581111561266a57fe5b141561267e57610d128385600001516122f6565b60018460200151600581111561269057fe5b14156126a757610d128385600001516007026122f6565b6002846020015160058111156126b957fe5b14156126cd57610d12838560000151612786565b6003846020015160058111156126df57fe5b14156126f657610d12838560000151600302612786565b60048460200151600581111561270857fe5b141561271f57610d12838560000151600602612786565b60058460200151600581111561273157fe5b141561274557610d128385600001516127fd565b60405160e560020a62461bcd0281526004016102c9906141f5565b6000600382600381111561277057fe5b141561277e57506000610661565b506001919050565b60008080806127986201518087610ca1565b600c9188016000190182810493909301955091066001019250905060006127bf84846114c2565b9050808211156127cd578091505b620151808706620151806127e2868686612b19565b02019450868510156127f357600080fd5b5050505092915050565b600080808061280f6201518087610ca1565b91870194509250905060006127bf84846114c2565b60008061283084612b7f565b9050600061283d84612b7f565b9050600061284a86612b9b565b6128565761016d61285a565b61016e5b61ffff1690508183141561288c57612882816128768888612bbd565b9063ffffffff612bd816565b93505050506102ff565b600061289786612b9b565b6128a35761016d6128a7565b61016e5b61ffff16905060006128d8836128768a6128d36128cb8a600163ffffffff612caa16565b600180612cd2565b612bbd565b905060006128f5836128766128ef88600180612cd2565b8b612bbd565b905061292b61291b600161290f888a63ffffffff612cec16565b9063ffffffff612cec16565b612018848463ffffffff6124f916565b9998505050505050505050565b60006102d261016861287662015180612957868863ffffffff612cec16565b9063ffffffff612d2e16565b60006102d261016d61287662015180612957868863ffffffff612cec16565b600080600080600080600061299689612d70565b9750955093506129a588612d70565b945092509050601f8614156129b957601e95505b82601f14156129c757601e92505b60006129d9848863ffffffff61260b16565b905060006129ed848863ffffffff61260b16565b90506000612a01848863ffffffff61260b16565b9050612a3361016861287685612018612a2187601e63ffffffff612d8e16565b6120188761016863ffffffff612d8e16565b9c9b505050505050505050505050565b6000806000806000806000612a578a612d70565b975095509350612a6689612d70565b945092509050612a758a610c93565b861415612a8157601e95505b8789148015612a905750816002145b158015612aa45750612aa189610c93565b83145b15612aae57601e92505b6000612ac0848863ffffffff61260b16565b90506000612ad4848863ffffffff61260b16565b90506000612ae8848863ffffffff61260b16565b9050612b0861016861287685612018612a2187601e63ffffffff612d8e16565b9d9c50505050505050505050505050565b60006107b2841015612b2a57600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612b906201518085610ca1565b509095945050505050565b6000808080612bad6201518086610ca1565b91945092509050610cb8836122be565b600081831115612bcc57600080fd5b50620151809190030490565b6000811515612bfc5760405160e560020a62461bcd0281526004016102c9906141b5565b821515612c0b575060006102ff565b670de0b6b3a7640000838102908482811515612c2357fe5b0514612c445760405160e560020a62461bcd0281526004016102c990614215565b82600019148015612c58575060ff60020a84145b15612c785760405160e560020a62461bcd0281526004016102c990614195565b60008382811515612c8557fe5b0590508015156102fb5760405160e560020a62461bcd0281526004016102c9906141d5565b6000828201838110156102d25760405160e560020a62461bcd0281526004016102c9906141c5565b600062015180612ce3858585612b19565b02949350505050565b60006102d283836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e03565b60006102d283836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e32565b60008080612d816201518085610ca1565b9196909550909350915050565b6000821515612d9f575060006102ff565b82600019148015612db3575060ff60020a82145b15612dd35760405160e560020a62461bcd0281526004016102c990614255565b828202828482811515612de257fe5b05146102d25760405160e560020a62461bcd0281526004016102c990614255565b60008184841115612e2a5760405160e560020a62461bcd0281526004016102c99190614174565b505050900390565b600081818411612e585760405160e560020a62461bcd0281526004016102c99190614174565b5060008385811515612e6657fe5b0495945050505050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610800604051908101604052806040906020820280388339509192915050565b610200604051908101604052806010906020820280388339509192915050565b60006102d28235614334565b60006102d282356142ee565b60006102d282356142db565b60006102d2823561433f565b60006102d2823561434e565b60006102d2823561435d565b60006102d2823561436c565b60006102d2823561437b565b60006102d2823561438a565b60006102d28235614399565b60006102d282356143a8565b60006102d282356143b7565b600060608284031215612fbb57600080fd5b612fc560606142b4565b90506000612fd38484612f31565b8252506020612fe484848301612f61565b6020830152506040612ff884828501612f61565b60408301525092915050565b6000610500828403121561301757600080fd5b6130226102a06142b4565b905060006130308484612f9d565b825250602061304184848301612f31565b602083015250604061305584828501612f31565b604083015250606061306984828501612f31565b606083015250608061307d84828501612f31565b60808301525060a061309184828501612f31565b60a08301525060c06130a584828501612f31565b60c08301525060e06130b984828501612f31565b60e0830152506101006130ce84828501612f31565b610100830152506101206130e484828501612f31565b610120830152506101406130fa84828501612f31565b6101408301525061016061311084828501612f31565b6101608301525061018061312684828501612f31565b610180830152506101a061313c84828501612f31565b6101a0830152506101c0613152848285016131e3565b6101c083015250610240613168848285016131e3565b6101e0830152506102c061317e848285016131e3565b61020083015250610340613194848285016131e3565b610220830152506103c06131aa848285016131e3565b610240830152506104406131c084828501613252565b610260830152506104a06131d684828501613252565b6102808301525092915050565b6000608082840312156131f557600080fd5b6131ff60806142b4565b9050600061320d8484612f31565b825250602061321e84848301612f91565b602083015250604061323284828501612f49565b604083015250606061324684828501612f25565b60608301525092915050565b60006060828403121561326457600080fd5b61326e60606142b4565b9050600061327c8484612f31565b825250602061328d84848301612f91565b6020830152506040612ff884828501612f25565b600061054082840312156132b457600080fd5b6132bf6104406142b4565b905060006132cd8484612f49565b82525060206132de84848301612f6d565b60208301525060406132f284828501612f79565b604083015250606061330684828501612f3d565b606083015250608061331a84828501612f49565b60808301525060a061332e84828501612f9d565b60a08301525060c061334284828501612f55565b60c08301525060e061335684828501612f49565b60e08301525061010061336b84828501612f55565b6101008301525061012061338184828501612fa9565b6101208301525061018061339784828501612fa9565b610140830152506101e06133ad84828501612f19565b610160830152506102006133c384828501612f31565b610180830152506102206133d984828501612f31565b6101a0830152506102406133ef84828501612f31565b6101c08301525061026061340584828501612f31565b6101e08301525061028061341b84828501612f31565b610200830152506102a061343184828501612f31565b610220830152506102c061344784828501612f31565b610240830152506102e061345d84828501612f31565b6102608301525061030061347384828501612f31565b6102808301525061032061348984828501612f31565b6102a08301525061034061349f84828501612f31565b6102c0830152506103606134b584828501612f31565b6102e0830152506103806134cb84828501612f31565b610300830152506103a06134e184828501612f31565b610320830152506103c06134f784828501612f31565b610340830152506103e061350d84828501612f31565b6103608301525061040061352384828501613252565b6103808301525061046061353984828501613252565b6103a0830152506104c061354f84828501612f31565b6103c0830152506104e061356584828501612f31565b6103e08301525061050061357b84828501612f31565b6104008301525061052061359184828501612f31565b6104208301525092915050565b60006101a082840312156135b157600080fd5b6135bc6101a06142b4565b905060006135ca8484612f55565b82525060206135db84848301612f31565b60208301525060406135ef84828501612f31565b604083015250606061360384828501612f31565b606083015250608061361784828501612f31565b60808301525060a061362b84828501612f31565b60a08301525060c061363f84828501612f31565b60c08301525060e061365384828501612f31565b60e08301525061010061366884828501612f31565b6101008301525061012061367e84828501612f31565b6101208301525061014061369484828501612f31565b610140830152506101606136aa84828501612f31565b610160830152506101806136c084828501612f31565b6101808301525092915050565b6000602082840312156136df57600080fd5b60006102fb8484612f31565b60008061056083850312156136ff57600080fd5b600061370b8585612f31565b925050602061371c858286016132a1565b9150509250929050565b60008060008060006108c0868803121561373f57600080fd5b600061374b8888612f31565b955050602061375c888289016132a1565b94505061056061376e8882890161359e565b93505061070061378088828901612f25565b9250506107206137928882890161359e565b9150509295509295909350565b600080600060c084860312156137b457600080fd5b60006137c08686612f49565b93505060206137d186828701612f31565b92505060406137e2868287016131e3565b9150509250925092565b6000602082840312156137fe57600080fd5b60006102fb8484612f85565b6000806040838503121561381d57600080fd5b60006138298585612f85565b925050602061371c85828601612f31565b6000806000610540848603121561385057600080fd5b600061385c8686613004565b93505061050061386e86828701612f31565b9250506105206137e286828701612f31565b600080600080610560858703121561389757600080fd5b60006138a38787613004565b9450506105006138b587828801612f31565b9350506105206138c787828801612f31565b9250506105406138d987828801612f85565b91505092959194509250565b600061054082840312156138f857600080fd5b60006102fb84846132a1565b600080600080610720858703121561391b57600080fd5b600061392787876132a1565b9450506105406139398782880161359e565b9350506106e061394b87828801612f31565b9250506107006138d987828801612f31565b613966816142de565b61396f826142db565b60005b8281101561399f576139858583516139b5565b61398e826142e8565b602095909501949150600101613972565b5050505050565b6139af816142ee565b82525050565b6139af816142db565b6139af816143c6565b6139af816143d1565b6139af816143dc565b60006139e4826142e4565b8084526139f88160208601602086016143e7565b613a0181614413565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602d81527f50414d456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b603681527f50414d456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a083019061402c84826139be565b50602082015161403f60208501826139b5565b50604082015161405260408501826139b5565b50606082015161406560608501826139b5565b50608082015161407860808501826139b5565b5060a082015161408b60a08501826139b5565b5060c082015161409e60c08501826139b5565b5060e08201516140b160e08501826139b5565b506101008201516140c66101008501826139b5565b506101208201516140db6101208501826139b5565b506101408201516140f06101408501826139b5565b506101608201516141056101608501826139b5565b5061018082015161411a6101808501826139b5565b50505050565b61080081016102ff828461395d565b602081016102ff82846139a6565b602081016102ff82846139b5565b602081016102ff82846139c7565b6040810161416782856139d0565b6102d260208301846139b5565b602080825281016102d281846139d9565b602080825281016102ff81613a0e565b602080825281016102ff81613a64565b602080825281016102ff81613aba565b602080825281016102ff81613b10565b602080825281016102ff81613b66565b602080825281016102ff81613b96565b602080825281016102ff81613bec565b602080825281016102ff81613c42565b602080825281016102ff81613c98565b602080825281016102ff81613cee565b602080825281016102ff81613d44565b602080825281016102ff81613d9a565b602080825281016102ff81613df0565b602080825281016102ff81613e46565b602080825281016102ff81613e9c565b602080825281016102ff81613ef2565b602080825281016102ff81613f48565b602080825281016102ff81613fc4565b6101a081016102ff828461401a565b60405181810167ffffffffffffffff811182821017156142d357600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b6000600482106142ff57fe5b5090565b6000600282106142ff57fe5b6000601782106142ff57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006102ff8261431b565b6000600982106142ff57600080fd5b6000600282106142ff57600080fd5b6000600482106142ff57600080fd5b6000600582106142ff57600080fd5b6000600a82106142ff57600080fd5b6000600782106142ff57600080fd5b6000601782106142ff57600080fd5b6000600682106142ff57600080fd5b6000600882106142ff57600080fd5b60006102ff826142f3565b60006102ff82614303565b60006102ff8261430f565b60005b838110156144025781810151838201526020016143ea565b8381111561411a5750506000910152565b601f01601f19169056fea265627a7a72305820c7bb53486afa87b621ae1efab9a015ed80eb1bbc9fa2718a5ec8f035e5b8955a6c6578706572696d656e74616cf50037", "compiler": { "name": "solc", "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.767Z" + "updatedAt": "2019-12-11T14:12:09.792Z" } diff --git a/artifacts/POF.json b/artifacts/POF.json index 61b6bfe..c99c722 100644 --- a/artifacts/POF.json +++ b/artifacts/POF.json @@ -350,5 +350,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.785Z" + "updatedAt": "2019-12-11T14:12:09.818Z" } diff --git a/artifacts/STF.json b/artifacts/STF.json index 6129529..dc0b863 100644 --- a/artifacts/STF.json +++ b/artifacts/STF.json @@ -350,5 +350,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.812Z" + "updatedAt": "2019-12-11T14:12:09.845Z" } diff --git a/artifacts/SafeMath.json b/artifacts/SafeMath.json index f920ce1..598f4e5 100644 --- a/artifacts/SafeMath.json +++ b/artifacts/SafeMath.json @@ -8,5 +8,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.872Z" + "updatedAt": "2019-12-10T15:52:56.942Z" } diff --git a/artifacts/Schedule.json b/artifacts/Schedule.json index 93b1943..270832a 100644 --- a/artifacts/Schedule.json +++ b/artifacts/Schedule.json @@ -305,5 +305,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.707Z" + "updatedAt": "2019-12-11T14:12:09.741Z" } diff --git a/artifacts/SignedMath.json b/artifacts/SignedMath.json index 506c1a2..c34753b 100644 --- a/artifacts/SignedMath.json +++ b/artifacts/SignedMath.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.711Z" + "updatedAt": "2019-12-10T15:52:56.780Z" } diff --git a/artifacts/SignedSafeMath.json b/artifacts/SignedSafeMath.json index c1742ad..a42322c 100644 --- a/artifacts/SignedSafeMath.json +++ b/artifacts/SignedSafeMath.json @@ -8,5 +8,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.870Z" + "updatedAt": "2019-12-10T15:52:56.939Z" } diff --git a/artifacts/TestPOF.json b/artifacts/TestPOF.json new file mode 100644 index 0000000..41ce7c5 --- /dev/null +++ b/artifacts/TestPOF.json @@ -0,0 +1,3702 @@ +{ + "contractName": "TestPOF", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_FP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_IED", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_IP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_PP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_PRD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_MD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_PY", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_TD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_ANN_PR", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_CEG_STD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_CEG_PRD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_CEG_FP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_FP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_ANN_PR\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_PRD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_PP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_CEG_STD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_CEG_FP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_MD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_CEG_PRD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_IED\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_TD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_IP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_PY\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}}},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}},\"notice\":\"These helper contracts expose internal functions for unit testing.\"}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestPOF.sol\":\"TestPOF\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0xd5d3ed7913a8fe4b90d21b9c799423b92799f9332cdd64975c524cf934e6edaa\",\"urls\":[\"bzzr://e55a66b2183cf679a0e89c4e3b7ba3033a30a567e228d7afdf66f6ef6a74d9b0\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x5ffa555ad0ff17694b889667721cee16c300b25e0dad54a121ec1a6601abeaef\",\"urls\":[\"bzzr://5a21eecbdbd6cbf8e7494a0527a5f4b1b9f556ede12256019bf8acd89fd91711\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestPOF.sol\":{\"keccak256\":\"0xf631a186c2abf31617169a2018487c95051532816e09d59402f79d02b953822b\",\"urls\":[\"bzzr://179f0cfcbbb63139343a84581670a4a7b4db086ba49e643b4356766453304adb\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612671806100206000396000f3fe608060405234801561001057600080fd5b5060043610610133576000357c0100000000000000000000000000000000000000000000000000000000900480636a644869116100bf57806392a2c9731161008e57806392a2c9731461024d57806393f8b9fd14610260578063aaf5eb6814610273578063ce5c3d261461027b578063e05a66e01461028e57610133565b80636a644869146101f35780636eaa84ab146102065780637254000314610219578063811322fb1461023a57610133565b80633cf4e308116101065780633cf4e308146101a757806346a93b9e146101ba5780634f0703a3146101cd5780635034cf851461013857806354593981146101e057610133565b8063125d4cfa14610138578063179331f3146101615780631890068a14610181578063276fc11714610194575b600080fd5b61014b610146366004611ebc565b6102a1565b60405161015891906123d5565b60405180910390f35b61017461016f366004611e21565b6102ba565b60405161015891906123e3565b61014b61018f366004611de6565b61038c565b61014b6101a2366004611ebc565b6103b8565b61014b6101b5366004611ebc565b6103c6565b61014b6101c8366004611ebc565b6103d4565b61014b6101db366004611ebc565b6103e2565b61014b6101ee366004611ebc565b6103f0565b61014b610201366004611ebc565b6103fe565b61014b610214366004611ebc565b61040c565b61022c610227366004611dc8565b61041a565b6040516101589291906123f1565b61014b610248366004611e6e565b610464565b61014b61025b366004611ebc565b610630565b61014b61026e366004611ebc565b61063e565b61014b61064c565b61014b610289366004611ebc565b610651565b61014b61029c366004611e8c565b61065f565b60006102af85858585610684565b90505b949350505050565b6000808460018111156102c957fe5b1415610345576102d883610729565b6102e184610757565b14801561033057506002826020015160058111156102fb57fe5b1480610316575060038260200151600581111561031457fe5b145b80610330575060048260200151600581111561032e57fe5b145b1561033d57506000610385565b506001610385565b600184600181111561035357fe5b141561036157506001610385565b60405160e560020a62461bcd02815260040161037c906124cd565b60405180910390fd5b9392505050565b6000806103988461041a565b9150506103ae8184606001518560000151610772565b9150505b92915050565b60006102af858585856108b5565b60006102af85858585610970565b60006102af858585856109dd565b60006102af858585856109fe565b60006102af85858585610a12565b60006102af85858585610a30565b60006102af85858585610a57565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561044f57fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561047457fe5b14156104825750601461062b565b600f82601681111561049057fe5b141561049e5750601961062b565b60088260168111156104ac57fe5b14156104ba5750601e61062b565b60078260168111156104c857fe5b14156104d65750602861062b565b60048260168111156104e457fe5b14156104f25750603261062b565b600282601681111561050057fe5b141561050e5750603c61062b565b600982601681111561051c57fe5b141561052a5750605061062b565b601182601681111561053857fe5b14156105465750605a61062b565b601282601681111561055457fe5b14156105625750606461062b565b601382601681111561057057fe5b141561057e5750606e61062b565b600682601681111561058c57fe5b141561059a5750607861062b565b60108260168111156105a857fe5b14156105b65750608261062b565b60158260168111156105c457fe5b14156105d25750608c61062b565b60148260168111156105e057fe5b14156105ee5750609661062b565b600a8260168111156105fc57fe5b141561060a575060a061062b565b600082601681111561061857fe5b141561062757506103b661062b565b5060005b919050565b60006102af85858585610a83565b60006102af85858585610ada565b601281565b60006102af85858585610b30565b60008160f884601681111561067057fe5b60ff166001029060020a0217905092915050565b6000808560e00151600181111561069757fe5b14156106bb57846102a001516106b08660200151610c15565b60000b0290506102b2565b6102af6107188560a0015161070c886102a0015161070c6106e98a602001518c606001518d60000151610cdc565b6106fc8a8d606001518e60000151610cdc565b8c604001518d6101c00151610d46565b9063ffffffff610e1116565b60e08601519063ffffffff610ebc16565b600080808061073d62015180865b04610f07565b9194509250905061074e8383610f9f565b95945050505050565b600080806107686201518085610737565b9695505050505050565b6000600183600881111561078257fe5b14806107995750600383600881111561079757fe5b145b156107af576107a88483611025565b9050610385565b60028360088111156107bd57fe5b14806107d4575060048360088111156107d257fe5b145b156108185760006107e58584611025565b90506107f085611081565b6107f982611081565b1415610806579050610385565b610810858461109c565b915050610385565b600583600881111561082657fe5b148061083d5750600783600881111561083b57fe5b145b1561084c576107a8848361109c565b600683600881111561085a57fe5b14806108715750600883600881111561086f57fe5b145b156108ad576000610882858461109c565b905061088d85611081565b61089682611081565b14156108a3579050610385565b6108108584611025565b509192915050565b60006102af61094b61090b8660a0015161070c88610100015161070c6108e88b602001518d606001518e60000151610cdc565b6108fb8b8e606001518f60000151610cdc565b8d604001518e6101c00151610d46565b8660c0015187610160015103036109258860200151610c15565b60000b028660a0015161093b8960200151610c15565b60000b029063ffffffff6110ea16565b6109588760200151610c15565b60000b86610140015102610e1190919063ffffffff16565b60006102af6109a08560a0015161070c87610100015161070c6106e98a602001518c606001518d60000151610cdc565b6109d18660c001518861032001516109bb8a60200151610c15565b60000b0260001902610ebc90919063ffffffff16565b9063ffffffff610ebc16565b60008360a001516109f18660200151610c15565b60000b0295945050505050565b60e083015161018084015101949350505050565b60006102af8460a00151856101400151610e1190919063ffffffff16565b6000846103200151610a458660200151610c15565b6000190260000b029050949350505050565b6000610a76856103000151866101e00151610ebc90919063ffffffff16565b610a458660200151610c15565b6000610acd610ab38560a0015161070c87610100015161070c6106e98a602001518c606001518d60000151610cdc565b60c08601516103208801516109d19163ffffffff610ebc16565b6109f18660200151610c15565b60006102af610b1e610b0d8660a0015161070c88610100015161070c6108e88b602001518d606001518e60000151610cdc565b60c08701519063ffffffff610ebc16565b6101208601519063ffffffff610e1116565b600060018560c001516003811115610b4457fe5b1415610b5d57846102e001516106b08660200151610c15565b60028560c001516003811115610b6f57fe5b1415610bd057610bc38460a0015161070c876102e0015161070c610ba089602001518b606001518c60000151610cdc565b610bb3898c606001518d60000151610cdc565b8b604001518c6101c00151610d46565b6106b08660200151610c15565b610bc38460a0015161070c610bf2876020015189606001518a60000151610cdc565b610c05878a606001518b60000151610cdc565b89604001518a6101c00151610d46565b600080826009811115610c2457fe5b1415610c325750600161062b565b6001826009811115610c4057fe5b1415610c4f575060001961062b565b6006826009811115610c5d57fe5b1415610c6b5750600161062b565b6007826009811115610c7957fe5b1415610c88575060001961062b565b6004826009811115610c9657fe5b1415610ca45750600161062b565b6005826009811115610cb257fe5b1415610cc1575060001961062b565b60405160e560020a62461bcd02815260040161037c9061246d565b60006003836008811115610cec57fe5b1480610d0357506004836008811115610d0157fe5b145b80610d1957506007836008811115610d1757fe5b145b80610d2f57506008836008811115610d2d57fe5b145b15610d3b575082610385565b6102b2848484610772565b600084841015610d6b5760405160e560020a62461bcd02815260040161037c906124bd565b6000836006811115610d7957fe5b1415610d9057610d8985856110fa565b90506102b2565b6001836006811115610d9e57fe5b1415610dae57610d89858561120e565b6002836006811115610dbc57fe5b1415610dcc57610d898585611239565b6004836006811115610dda57fe5b1415610dea57610d898585611258565b6003836006811115610df857fe5b1415610e0957610d89858584611319565b5060016102b2565b6000821580610e1e575081155b15610e2b575060006103b2565b82600019148015610e3f575060ff60020a82145b15610e5f5760405160e560020a62461bcd02815260040161037c906124ad565b828202828482811515610e6e57fe5b0514610e8f5760405160e560020a62461bcd02815260040161037c906124ad565b670de0b6b3a764000081058015156103ae5760405160e560020a62461bcd02815260040161037c9061248d565b6000828201818312801590610ed15750838112155b80610ee65750600083128015610ee657508381125b15156103855760405160e560020a62461bcd02815260040161037c9061245d565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f84605002811515610f6057fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60008160011480610fb05750816003145b80610fbb5750816005145b80610fc65750816007145b80610fd15750816008145b80610fdc575081600a145b80610fe7575081600c145b15610ff45750601f6103b2565b600282146110045750601e6103b2565b61100d836113ef565b61101857601c61101b565b601d5b60ff169392505050565b6000600182600181111561103557fe5b141561107a5761104483611414565b6006141561105e57611057836002611427565b90506103b2565b61106783611414565b6007141561107a57611057836001611427565b5090919050565b600080806110926201518085610737565b5095945050505050565b600060018260018111156110ac57fe5b141561107a576110bb83611414565b600614156110ce5761105783600161143c565b6110d783611414565b6007141561107a5761105783600261143c565b60008183131561107a5750919050565b60008061110684611451565b9050600061111384611451565b905060006111208661146d565b61112c5761016d611130565b61016e5b61ffff16905081831415611162576111588161114c888861148f565b9063ffffffff6114aa16565b93505050506103b2565b600061116d8661146d565b6111795761016d61117d565b61016e5b61ffff16905060006111ae8361114c8a6111a96111a18a600163ffffffff61157c16565b6001806115a4565b61148f565b905060006111cb8361114c6111c5886001806115a4565b8b61148f565b90506112016111f160016111e5888a63ffffffff6115be16565b9063ffffffff6115be16565b6109d1848463ffffffff610ebc16565b9998505050505050505050565b600061038561016861114c6201518061122d868863ffffffff6115be16565b9063ffffffff61160016565b600061038561016d61114c6201518061122d868863ffffffff6115be16565b600080600080600080600061126c89611642565b97509550935061127b88611642565b945092509050601f86141561128f57601e95505b82601f141561129d57601e92505b60006112af848863ffffffff61166016565b905060006112c3848863ffffffff61166016565b905060006112d7848863ffffffff61166016565b905061130961016861114c856109d16112f787601e63ffffffff6116ab16565b6109d18761016863ffffffff6116ab16565b9c9b505050505050505050505050565b600080600080600080600061132d8a611642565b97509550935061133c89611642565b94509250905061134b8a610729565b86141561135757601e95505b87891480156113665750816002145b15801561137a575061137789610729565b83145b1561138457601e92505b6000611396848863ffffffff61166016565b905060006113aa848863ffffffff61166016565b905060006113be848863ffffffff61166016565b90506113de61016861114c856109d16112f787601e63ffffffff6116ab16565b9d9c50505050505050505050505050565b60006004820615801561140457506064820615155b806103b257505061019090061590565b6007620151809091046003010660010190565b6201518081028201828110156103b257600080fd5b6201518081028203828111156103b257600080fd5b600080806114626201518085610737565b509095945050505050565b600080808061147f6201518086610737565b9194509250905061074e836113ef565b60008183111561149e57600080fd5b50620151809190030490565b60008115156114ce5760405160e560020a62461bcd02815260040161037c9061242d565b8215156114dd575060006103b2565b670de0b6b3a76400008381029084828115156114f557fe5b05146115165760405160e560020a62461bcd02815260040161037c9061247d565b8260001914801561152a575060ff60020a84145b1561154a5760405160e560020a62461bcd02815260040161037c9061241d565b6000838281151561155757fe5b0590508015156103ae5760405160e560020a62461bcd02815260040161037c9061244d565b6000828201838110156103855760405160e560020a62461bcd02815260040161037c9061243d565b6000620151806115b5858585611720565b02949350505050565b600061038583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611786565b600061038583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117b5565b600080806116536201518085610737565b9196909550909350915050565b60008183038183128015906116755750838113155b8061168a575060008312801561168a57508381135b15156103855760405160e560020a62461bcd02815260040161037c906124dd565b60008215156116bc575060006103b2565b826000191480156116d0575060ff60020a82145b156116f05760405160e560020a62461bcd02815260040161037c9061249d565b8282028284828115156116ff57fe5b05146103855760405160e560020a62461bcd02815260040161037c9061249d565b60006107b284101561173157600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b600081848411156117ad5760405160e560020a62461bcd02815260040161037c919061240c565b505050900390565b6000818184116117db5760405160e560020a62461bcd02815260040161037c919061240c565b50600083858115156117e957fe5b0495945050505050565b60006103858235612550565b6000610385823561255b565b60006103858235612518565b60006103858235612560565b6000610385823561256f565b6000610385823561257e565b6000610385823561258d565b6000610385823561259c565b600061038582356125ab565b600061038582356125ba565b600061038582356125c9565b600061038582356125d8565b60006060828403121561189557600080fd5b61189f60606124ed565b905060006118ad848461180b565b82525060206118be8484830161183b565b60208301525060406118d28482850161183b565b60408301525092915050565b6000608082840312156118f057600080fd5b6118fa60806124ed565b90506000611908848461180b565b82525060206119198484830161186b565b602083015250604061192d84828501611823565b6040830152506060611941848285016117ff565b60608301525092915050565b60006060828403121561195f57600080fd5b61196960606124ed565b90506000611977848461180b565b82525060206119888484830161186b565b60208301525060406118d2848285016117ff565b600061054082840312156119af57600080fd5b6119ba6104406124ed565b905060006119c88484611823565b82525060206119d984848301611847565b60208301525060406119ed84828501611853565b6040830152506060611a0184828501611817565b6060830152506080611a1584828501611823565b60808301525060a0611a2984828501611877565b60a08301525060c0611a3d8482850161182f565b60c08301525060e0611a5184828501611823565b60e083015250610100611a668482850161182f565b61010083015250610120611a7c84828501611883565b61012083015250610180611a9284828501611883565b610140830152506101e0611aa8848285016117f3565b61016083015250610200611abe8482850161180b565b61018083015250610220611ad48482850161180b565b6101a083015250610240611aea8482850161180b565b6101c083015250610260611b008482850161180b565b6101e083015250610280611b168482850161180b565b610200830152506102a0611b2c8482850161180b565b610220830152506102c0611b428482850161180b565b610240830152506102e0611b588482850161180b565b61026083015250610300611b6e8482850161180b565b61028083015250610320611b848482850161180b565b6102a083015250610340611b9a8482850161180b565b6102c083015250610360611bb08482850161180b565b6102e083015250610380611bc68482850161180b565b610300830152506103a0611bdc8482850161180b565b610320830152506103c0611bf28482850161180b565b610340830152506103e0611c088482850161180b565b61036083015250610400611c1e8482850161194d565b61038083015250610460611c348482850161194d565b6103a0830152506104c0611c4a8482850161180b565b6103c0830152506104e0611c608482850161180b565b6103e083015250610500611c768482850161180b565b61040083015250610520611c8c8482850161180b565b6104208301525092915050565b60006101a08284031215611cac57600080fd5b611cb76101a06124ed565b90506000611cc5848461182f565b8252506020611cd68484830161180b565b6020830152506040611cea8482850161180b565b6040830152506060611cfe8482850161180b565b6060830152506080611d128482850161180b565b60808301525060a0611d268482850161180b565b60a08301525060c0611d3a8482850161180b565b60c08301525060e0611d4e8482850161180b565b60e083015250610100611d638482850161180b565b61010083015250610120611d798482850161180b565b61012083015250610140611d8f8482850161180b565b61014083015250610160611da58482850161180b565b61016083015250610180611dbb8482850161180b565b6101808301525092915050565b600060208284031215611dda57600080fd5b60006103ae848461180b565b6000806105608385031215611dfa57600080fd5b6000611e06858561180b565b9250506020611e178582860161199c565b9150509250929050565b600080600060c08486031215611e3657600080fd5b6000611e428686611823565b9350506020611e538682870161180b565b9250506040611e64868287016118de565b9150509250925092565b600060208284031215611e8057600080fd5b60006103ae848461185f565b60008060408385031215611e9f57600080fd5b6000611eab858561185f565b9250506020611e178582860161180b565b6000806000806107208587031215611ed357600080fd5b6000611edf878761199c565b945050610540611ef187828801611c99565b9350506106e0611f038782880161180b565b925050610700611f158782880161180b565b91505092959194509250565b611f2a81612518565b82525050565b611f2a816125e7565b611f2a816125f2565b6000611f4d82612514565b808452611f618160208601602086016125fd565b611f6a8161262d565b9093016020019392505050565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b602081016103b28284611f21565b602081016103b28284611f30565b604081016123ff8285611f39565b6103856020830184611f21565b602080825281016103858184611f42565b602080825281016103b281611f77565b602080825281016103b281611fcd565b602080825281016103b281612023565b602080825281016103b281612053565b602080825281016103b2816120a9565b602080825281016103b2816120ff565b602080825281016103b281612155565b602080825281016103b2816121ab565b602080825281016103b281612201565b602080825281016103b281612257565b602080825281016103b2816122ad565b602080825281016103b281612303565b602080825281016103b28161237f565b60405181810167ffffffffffffffff8111828210171561250c57600080fd5b604052919050565b5190565b90565b60006002821061252757fe5b5090565b60006017821061252757fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006103b282612537565b151590565b60006009821061252757600080fd5b60006002821061252757600080fd5b60006004821061252757600080fd5b60006005821061252757600080fd5b6000600a821061252757600080fd5b60006007821061252757600080fd5b60006017821061252757600080fd5b60006006821061252757600080fd5b60006008821061252757600080fd5b60006103b28261251b565b60006103b28261252b565b60005b83811015612618578181015183820152602001612600565b83811115612627576000848401525b50505050565b601f01601f19169056fea265627a7a72305820a666a386db036863da3e08e99935288cb7846014918b1b5deb6ff2fabdb6600d6c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.930Z" +} diff --git a/artifacts/TestSTF.json b/artifacts/TestSTF.json new file mode 100644 index 0000000..56d07d4 --- /dev/null +++ b/artifacts/TestSTF.json @@ -0,0 +1,5035 @@ +{ + "contractName": "TestSTF", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_AD", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_FP", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_IED", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_IPCI", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_IP", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PP", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PRD", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PR", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PY", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_RRF", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_RR", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_SC", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_TD", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_CE", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "testConversion", + "outputs": [ + { + "name": "data", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_FP\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"testConversion\",\"outputs\":[{\"name\":\"data\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PR\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_IED\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_SC\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_TD\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PRD\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PP\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_IPCI\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PY\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_CE\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_RRF\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_AD\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_IP\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_RR\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}}},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}},\"notice\":\"These helper contracts expose internal functions for unit testing.\"}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestSTF.sol\":\"TestSTF\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0xd5d3ed7913a8fe4b90d21b9c799423b92799f9332cdd64975c524cf934e6edaa\",\"urls\":[\"bzzr://e55a66b2183cf679a0e89c4e3b7ba3033a30a567e228d7afdf66f6ef6a74d9b0\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0xc0f68cb4cc170ecb18e50604709aa38b76882a7e151051e9ee9a5f5c07f17179\",\"urls\":[\"bzzr://55e1176aa493dbc479d7ef4148cf3d1a26adc59485c40d688e72e65e5c64c66c\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestSTF.sol\":{\"keccak256\":\"0xdea54ce4b49de604f4bfd1ae300482b03fd61dc5b029d06277f79ae62b297e3a\",\"urls\":[\"bzzr://579f6fe6597bfbf0f7930056e380d11f2cd956ff739fde8c69a7d6ea47ce7c80\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612e52806100206000396000f3fe608060405234801561001057600080fd5b5060043610610154576000357c01000000000000000000000000000000000000000000000000000000009004806379ccc9df116100d55780639909e130116100995780639909e1301461028e578063aaf5eb68146102a1578063b5642dad14610221578063e05a66e0146102a9578063f7b548f8146102bc578063fb4bd9ad146102cf57610154565b806379ccc9df14610221578063811322fb146102555780638d3129551461026857806390c18d551461022157806391b52a6e1461027b57610154565b806346bce4f61161011c57806346bce4f6146101e85780634ad6ea48146101fb57806350525fe31461020e57806366da081514610221578063725400031461023457610154565b806303615814146101595780630c12e7a514610182578063179331f3146101a25780631890068a146101c25780631f90e428146101d5575b600080fd5b61016c610167366004612506565b6102e2565b6040516101799190612cac565b60405180910390f35b610195610190366004612412565b610301565b6040516101799190612b84565b6101b56101b036600461246b565b610308565b6040516101799190612b92565b6101956101d0366004612430565b6103da565b61016c6101e3366004612506565b610406565b61016c6101f6366004612506565b61041a565b61016c610209366004612506565b61042e565b61016c61021c366004612506565b610442565b61016c61022f366004612506565b610456565b610247610242366004612412565b61046a565b604051610179929190612ba0565b6101956102633660046124b8565b6104b4565b61016c610276366004612506565b61067f565b61016c610289366004612506565b610693565b61016c61029c366004612506565b6106a7565b6101956106bb565b6101956102b73660046124d6565b6106c0565b61016c6102ca366004612506565b6106e5565b61016c6102dd366004612506565b6106f9565b6102ea611dd4565b6102f68585858561070d565b90505b949350505050565b805b919050565b60008084600181111561031757fe5b141561039357610326836107af565b61032f846107dd565b14801561037e575060028260200151600581111561034957fe5b1480610364575060038260200151600581111561036257fe5b145b8061037e575060048260200151600581111561037c57fe5b145b1561038b575060006103d3565b5060016103d3565b60018460018111156103a157fe5b14156103af575060016103d3565b60405160e560020a62461bcd0281526004016103ca90612c8c565b60405180910390fd5b9392505050565b6000806103e68461046a565b9150506103fc81846060015185600001516107f8565b9150505b92915050565b61040e611dd4565b6102f68585858561093b565b610422611dd4565b6102f6858585856109d8565b610436611dd4565b6102f685858585610a3d565b61044a611dd4565b6102f685858585610ba0565b61045e611dd4565b6102f685858585610be7565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561049f57fe5b92505067ffffffffffffffff83169050915091565b600060058260168111156104c457fe5b14156104d257506014610303565b600f8260168111156104e057fe5b14156104ee57506019610303565b60088260168111156104fc57fe5b141561050a5750601e610303565b600782601681111561051857fe5b141561052657506028610303565b600482601681111561053457fe5b141561054257506032610303565b600282601681111561055057fe5b141561055e5750603c610303565b600982601681111561056c57fe5b141561057a57506050610303565b601182601681111561058857fe5b14156105965750605a610303565b60128260168111156105a457fe5b14156105b257506064610303565b60138260168111156105c057fe5b14156105ce5750606e610303565b60068260168111156105dc57fe5b14156105ea57506078610303565b60108260168111156105f857fe5b141561060657506082610303565b601582601681111561061457fe5b14156106225750608c610303565b601482601681111561063057fe5b141561063e57506096610303565b600a82601681111561064c57fe5b141561065a575060a0610303565b600082601681111561066857fe5b141561067757506103b6610303565b506000919050565b610687611dd4565b6102f685858585610c6c565b61069b611dd4565b6102f685858585610d08565b6106af611dd4565b6102f685858585610de9565b601281565b60008160f88460168111156106d157fe5b60ff166001029060020a0217905092915050565b6106ed611dd4565b6102f685858585610e7d565b610701611dd4565b6102f685858585610ecf565b610715611dd4565b600061075461073186602001518860600151896000015161105e565b6107448689606001518a6000015161105e565b8860400151896101c001516110c8565b9050610796610785826107798860a0015189610100015161119390919063ffffffff16565b9063ffffffff61119316565b60c08701519063ffffffff61123e16565b60c08601525050600060e0840152506020820152919050565b60008080806107c362015180865b04611289565b919450925090506107d48383611321565b95945050505050565b600080806107ee62015180856107bd565b9695505050505050565b6000600183600881111561080857fe5b148061081f5750600383600881111561081d57fe5b145b156108355761082e84836113a7565b90506103d3565b600283600881111561084357fe5b148061085a5750600483600881111561085857fe5b145b1561089e57600061086b85846113a7565b905061087685611403565b61087f82611403565b141561088c5790506103d3565b610896858461141e565b9150506103d3565b60058360088111156108ac57fe5b14806108c3575060078360088111156108c157fe5b145b156108d25761082e848361141e565b60068360088111156108e057fe5b14806108f7575060088360088111156108f557fe5b145b15610933576000610908858461141e565b905061091385611403565b61091c82611403565b14156109295790506103d3565b61089685846113a7565b509192915050565b610943611dd4565b600061095f61073186602001518860600151896000015161105e565b9050610984610785826107798860a0015189610100015161119390919063ffffffff16565b60c086015260a08501516102a08701516109bf916109ae918491610779919063ffffffff61119316565b60e08701519063ffffffff61123e16565b60e08601525050600060a0840152506020820152919050565b6109e0611dd4565b60006109fc61073186602001518860600151896000015161105e565b9050856101e00151610a11876020015161146c565b60000b0260a086015250505061020083015161010083015260208201526102409091015160c082015290565b610a45611dd4565b6000610a6161073186602001518860600151896000015161105e565b9050610a86610785826107798860a0015189610100015161119390919063ffffffff16565b60c086015260a08501516102a0870151610ab0916109ae918491610779919063ffffffff61119316565b60e086015260048660a001516007811115610ac757fe5b1480610ae2575060058660a001516007811115610ae057fe5b145b80610afc575060068660a001516007811115610afa57fe5b145b80610b16575060078660a001516007811115610b1457fe5b145b15610b245760006101208601525b60018660a001516007811115610b3657fe5b1480610b51575060038660a001516007811115610b4f57fe5b145b80610b6b575060058660a001516007811115610b6957fe5b145b80610b85575060078660a001516007811115610b8357fe5b145b15610b935760006101408601525b5050506020820152919050565b610ba8611dd4565b6000610bc461073186602001518860600151896000015161105e565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b610bef611dd4565b6000610c0b61073186602001518860600151896000015161105e565b9050610c30610785826107798860a0015189610100015161119390919063ffffffff16565b60c086015260a08501516102a0870151610c5a916109ae918491610779919063ffffffff61119316565b60e08601525050506020820152919050565b610c74611dd4565b6000610c9061073186602001518860600151896000015161105e565b9050610cda610cc9610cb8836107798960a001518a610100015161119390919063ffffffff16565b60c08801519063ffffffff61123e16565b60a08701519063ffffffff61123e16565b60a08601819052600060c08701526102a0870151610c5a916109ae918491610779919063ffffffff61119316565b610d10611dd4565b60008460400151600014610d28578460400151610d3b565b610d3b84876060015188600001516107f8565b61038087015160400151909150839060009015610d76576000610d6389610380015185611533565b9050808311610d7457600180895291505b505b876103a00151604001518015610d8a575080155b15610db9576000610da0896103a0015185611533565b9050808311610db25760028852610db7565b600388525b505b60408701511515610ddd57610dd78689606001518a600001516107f8565b60408801525b50949695505050505050565b610df1611dd4565b6000610e0d61073186602001518860600151896000015161105e565b9050610e32610785826107798860a0015189610100015161119390919063ffffffff16565b60c086015260a08501516102a0870151610e5c916109ae918491610779919063ffffffff61119316565b60e08601525050506102c09290920151610100820152602081019190915290565b610e85611dd4565b6000610ea161073186602001518860600151896000015161105e565b600060c087015260a08601516102a0880151919250610c5a916109ae9184916107799163ffffffff61119316565b610ed7611dd4565b610280850151610260860151600091610f0791610efb90869063ffffffff61119316565b9063ffffffff61123e16565b90506000610f238661010001518361163d90919063ffffffff16565b905080876103c00151128015610f46575086610420015160001902876103c00151125b15610f5757506103c0860151610f73565b86610420015160001902811215610f7357506104208601516000035b610100860151610f89908263ffffffff61123e16565b915081876103c00151128015610fa85750866103e00151876103c00151125b15610fba57866103c001519150610fd0565b866103e00151821215610fd057866103e0015191505b600061100f610fec88602001518a606001518b6000015161105e565b610fff888b606001518c6000015161105e565b8a604001518b6101c001516110c8565b9050611045611034826107798a60a001518b610100015161119390919063ffffffff16565b60c08901519063ffffffff61123e16565b60c0880152505061010085015250506020820152919050565b6000600383600881111561106e57fe5b14806110855750600483600881111561108357fe5b145b8061109b5750600783600881111561109957fe5b145b806110b1575060088360088111156110af57fe5b145b156110bd5750826103d3565b6102f98484846107f8565b6000848410156110ed5760405160e560020a62461bcd0281526004016103ca90612c7c565b60008360068111156110fb57fe5b14156111125761110b8585611688565b90506102f9565b600183600681111561112057fe5b14156111305761110b858561179c565b600283600681111561113e57fe5b141561114e5761110b85856117c7565b600483600681111561115c57fe5b141561116c5761110b85856117e6565b600383600681111561117a57fe5b141561118b5761110b8585846118a7565b5060016102f9565b60008215806111a0575081155b156111ad57506000610400565b826000191480156111c1575060ff60020a82145b156111e15760405160e560020a62461bcd0281526004016103ca90612c6c565b8282028284828115156111f057fe5b05146112115760405160e560020a62461bcd0281526004016103ca90612c6c565b670de0b6b3a764000081058015156103fc5760405160e560020a62461bcd0281526004016103ca90612c4c565b60008282018183128015906112535750838112155b80611268575060008312801561126857508381125b15156103d35760405160e560020a62461bcd0281526004016103ca90612c0c565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028115156112e257fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806113325750816003145b8061133d5750816005145b806113485750816007145b806113535750816008145b8061135e575081600a145b80611369575081600c145b156113765750601f610400565b600282146113865750601e610400565b61138f8361197d565b61139a57601c61139d565b601d5b60ff169392505050565b600060018260018111156113b757fe5b14156113fc576113c6836119a2565b600614156113e0576113d98360026119b5565b9050610400565b6113e9836119a2565b600714156113fc576113d98360016119b5565b5090919050565b6000808061141462015180856107bd565b5095945050505050565b6000600182600181111561142e57fe5b14156113fc5761143d836119a2565b60061415611450576113d98360016119ca565b611459836119a2565b600714156113fc576113d98360026119ca565b60008082600981111561147b57fe5b141561148957506001610303565b600182600981111561149757fe5b14156114a65750600019610303565b60068260098111156114b457fe5b14156114c257506001610303565b60078260098111156114d057fe5b14156114df5750600019610303565b60048260098111156114ed57fe5b14156114fb57506001610303565b600582600981111561150957fe5b14156115185750600019610303565b60405160e560020a62461bcd0281526004016103ca90612c2c565b600080808460200151600581111561154757fe5b141561155b5761082e8385600001516119b5565b60018460200151600581111561156d57fe5b14156115845761082e8385600001516007026119b5565b60028460200151600581111561159657fe5b14156115aa5761082e8385600001516119df565b6003846020015160058111156115bc57fe5b14156115d35761082e8385600001516003026119df565b6004846020015160058111156115e557fe5b14156115fc5761082e8385600001516006026119df565b60058460200151600581111561160e57fe5b14156116225761082e838560000151611a56565b60405160e560020a62461bcd0281526004016103ca90612c1c565b60008183038183128015906116525750838113155b80611667575060008312801561166757508381135b15156103d35760405160e560020a62461bcd0281526004016103ca90612c9c565b60008061169484611a7d565b905060006116a184611a7d565b905060006116ae86611a99565b6116ba5761016d6116be565b61016e5b61ffff169050818314156116f0576116e6816116da8888611abb565b9063ffffffff611ad616565b9350505050610400565b60006116fb86611a99565b6117075761016d61170b565b61016e5b61ffff169050600061173c836116da8a61173761172f8a600163ffffffff611ba816565b600180611bd0565b611abb565b90506000611759836116da61175388600180611bd0565b8b611abb565b905061178f61177f6001611773888a63ffffffff611bea16565b9063ffffffff611bea16565b610efb848463ffffffff61123e16565b9998505050505050505050565b60006103d36101686116da620151806117bb868863ffffffff611bea16565b9063ffffffff611c2c16565b60006103d361016d6116da620151806117bb868863ffffffff611bea16565b60008060008060008060006117fa89611c6e565b97509550935061180988611c6e565b945092509050601f86141561181d57601e95505b82601f141561182b57601e92505b600061183d848863ffffffff61163d16565b90506000611851848863ffffffff61163d16565b90506000611865848863ffffffff61163d16565b90506118976101686116da85610efb61188587601e63ffffffff611c8c16565b610efb8761016863ffffffff611c8c16565b9c9b505050505050505050505050565b60008060008060008060006118bb8a611c6e565b9750955093506118ca89611c6e565b9450925090506118d98a6107af565b8614156118e557601e95505b87891480156118f45750816002145b1580156119085750611905896107af565b83145b1561191257601e92505b6000611924848863ffffffff61163d16565b90506000611938848863ffffffff61163d16565b9050600061194c848863ffffffff61163d16565b905061196c6101686116da85610efb61188587601e63ffffffff611c8c16565b9d9c50505050505050505050505050565b60006004820615801561199257506064820615155b8061040057505061019090061590565b6007620151809091046003010660010190565b62015180810282018281101561040057600080fd5b62015180810282038281111561040057600080fd5b60008080806119f162015180876107bd565b600c918801600019018281049390930195509106600101925090506000611a188484611321565b905080821115611a26578091505b62015180870662015180611a3b868686611d01565b0201945086851015611a4c57600080fd5b5050505092915050565b6000808080611a6862015180876107bd565b9187019450925090506000611a188484611321565b60008080611a8e62015180856107bd565b509095945050505050565b6000808080611aab62015180866107bd565b919450925090506107d48361197d565b600081831115611aca57600080fd5b50620151809190030490565b6000811515611afa5760405160e560020a62461bcd0281526004016103ca90612bdc565b821515611b0957506000610400565b670de0b6b3a7640000838102908482811515611b2157fe5b0514611b425760405160e560020a62461bcd0281526004016103ca90612c3c565b82600019148015611b56575060ff60020a84145b15611b765760405160e560020a62461bcd0281526004016103ca90612bcc565b60008382811515611b8357fe5b0590508015156103fc5760405160e560020a62461bcd0281526004016103ca90612bfc565b6000828201838110156103d35760405160e560020a62461bcd0281526004016103ca90612bec565b600062015180611be1858585611d01565b02949350505050565b60006103d383836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d67565b60006103d383836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d96565b60008080611c7f62015180856107bd565b9196909550909350915050565b6000821515611c9d57506000610400565b82600019148015611cb1575060ff60020a82145b15611cd15760405160e560020a62461bcd0281526004016103ca90612c5c565b828202828482811515611ce057fe5b05146103d35760405160e560020a62461bcd0281526004016103ca90612c5c565b60006107b2841015611d1257600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008184841115611d8e5760405160e560020a62461bcd0281526004016103ca9190612bbb565b505050900390565b600081818411611dbc5760405160e560020a62461bcd0281526004016103ca9190612bbb565b5060008385811515611dca57fe5b0495945050505050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006103d38235612d2a565b60006103d38235612d35565b60006103d38235612ce6565b60006103d38235612d3a565b60006103d38235612d49565b60006103d38235612d58565b60006103d38235612d67565b60006103d38235612d76565b60006103d38235612d85565b60006103d38235612d94565b60006103d38235612da3565b60006103d38235612db2565b600060608284031215611edf57600080fd5b611ee96060612cbb565b90506000611ef78484611e55565b8252506020611f0884848301611e85565b6020830152506040611f1c84828501611e85565b60408301525092915050565b600060808284031215611f3a57600080fd5b611f446080612cbb565b90506000611f528484611e55565b8252506020611f6384848301611eb5565b6020830152506040611f7784828501611e6d565b6040830152506060611f8b84828501611e49565b60608301525092915050565b600060608284031215611fa957600080fd5b611fb36060612cbb565b90506000611fc18484611e55565b8252506020611fd284848301611eb5565b6020830152506040611f1c84828501611e49565b60006105408284031215611ff957600080fd5b612004610440612cbb565b905060006120128484611e6d565b825250602061202384848301611e91565b602083015250604061203784828501611e9d565b604083015250606061204b84828501611e61565b606083015250608061205f84828501611e6d565b60808301525060a061207384828501611ec1565b60a08301525060c061208784828501611e79565b60c08301525060e061209b84828501611e6d565b60e0830152506101006120b084828501611e79565b610100830152506101206120c684828501611ecd565b610120830152506101806120dc84828501611ecd565b610140830152506101e06120f284828501611e3d565b6101608301525061020061210884828501611e55565b6101808301525061022061211e84828501611e55565b6101a08301525061024061213484828501611e55565b6101c08301525061026061214a84828501611e55565b6101e08301525061028061216084828501611e55565b610200830152506102a061217684828501611e55565b610220830152506102c061218c84828501611e55565b610240830152506102e06121a284828501611e55565b610260830152506103006121b884828501611e55565b610280830152506103206121ce84828501611e55565b6102a0830152506103406121e484828501611e55565b6102c0830152506103606121fa84828501611e55565b6102e08301525061038061221084828501611e55565b610300830152506103a061222684828501611e55565b610320830152506103c061223c84828501611e55565b610340830152506103e061225284828501611e55565b6103608301525061040061226884828501611f97565b6103808301525061046061227e84828501611f97565b6103a0830152506104c061229484828501611e55565b6103c0830152506104e06122aa84828501611e55565b6103e0830152506105006122c084828501611e55565b610400830152506105206122d684828501611e55565b6104208301525092915050565b60006101a082840312156122f657600080fd5b6123016101a0612cbb565b9050600061230f8484611e79565b825250602061232084848301611e55565b602083015250604061233484828501611e55565b604083015250606061234884828501611e55565b606083015250608061235c84828501611e55565b60808301525060a061237084828501611e55565b60a08301525060c061238484828501611e55565b60c08301525060e061239884828501611e55565b60e0830152506101006123ad84828501611e55565b610100830152506101206123c384828501611e55565b610120830152506101406123d984828501611e55565b610140830152506101606123ef84828501611e55565b6101608301525061018061240584828501611e55565b6101808301525092915050565b60006020828403121561242457600080fd5b60006103fc8484611e55565b600080610560838503121561244457600080fd5b60006124508585611e55565b925050602061246185828601611fe6565b9150509250929050565b600080600060c0848603121561248057600080fd5b600061248c8686611e6d565b935050602061249d86828701611e55565b92505060406124ae86828701611f28565b9150509250925092565b6000602082840312156124ca57600080fd5b60006103fc8484611ea9565b600080604083850312156124e957600080fd5b60006124f58585611ea9565b925050602061246185828601611e55565b600080600080610720858703121561251d57600080fd5b60006125298787611fe6565b94505061054061253b878288016122e3565b9350506106e061254d87828801611e55565b92505061070061255f87828801611e55565b91505092959194509250565b61257481612ce6565b82525050565b61257481612dc1565b61257481612dcc565b61257481612dd7565b60006125a082612ce2565b8084526125b4816020860160208601612de2565b6125bd81612e0e565b9093016020019392505050565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190612a90848261257a565b506020820151612aa3602085018261256b565b506040820151612ab6604085018261256b565b506060820151612ac9606085018261256b565b506080820151612adc608085018261256b565b5060a0820151612aef60a085018261256b565b5060c0820151612b0260c085018261256b565b5060e0820151612b1560e085018261256b565b50610100820151612b2a61010085018261256b565b50610120820151612b3f61012085018261256b565b50610140820151612b5461014085018261256b565b50610160820151612b6961016085018261256b565b50610180820151612b7e61018085018261256b565b50505050565b60208101610400828461256b565b602081016104008284612583565b60408101612bae828561258c565b6103d3602083018461256b565b602080825281016103d38184612595565b60208082528101610400816125ca565b6020808252810161040081612620565b6020808252810161040081612676565b60208082528101610400816126a6565b60208082528101610400816126fc565b6020808252810161040081612752565b60208082528101610400816127a8565b60208082528101610400816127fe565b6020808252810161040081612854565b60208082528101610400816128aa565b6020808252810161040081612900565b6020808252810161040081612956565b60208082528101610400816129ac565b6020808252810161040081612a28565b6101a081016104008284612a7e565b60405181810167ffffffffffffffff81118282101715612cda57600080fd5b604052919050565b5190565b90565b600060048210612cf557fe5b5090565b600060028210612cf557fe5b600060178210612cf557fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061040082612d11565b151590565b600060098210612cf557600080fd5b600060028210612cf557600080fd5b600060048210612cf557600080fd5b600060058210612cf557600080fd5b6000600a8210612cf557600080fd5b600060078210612cf557600080fd5b600060178210612cf557600080fd5b600060068210612cf557600080fd5b600060088210612cf557600080fd5b600061040082612ce9565b600061040082612cf9565b600061040082612d05565b60005b83811015612dfd578181015183820152602001612de5565b83811115612b7e5750506000910152565b601f01601f19169056fea265627a7a72305820d2d51763706f357851deb58ab137cbebdfa2afc3deb87f6f670bc633196643986c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.934Z" +} diff --git a/artifacts/Utils.json b/artifacts/Utils.json index bcdd3d7..2ea7e49 100644 --- a/artifacts/Utils.json +++ b/artifacts/Utils.json @@ -305,5 +305,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-09T17:00:17.715Z" + "updatedAt": "2019-12-11T14:12:09.746Z" } diff --git a/contracts/Engines/ANNEngine.sol b/contracts/Engines/ANNEngine.sol index 4cd8188..723fa3b 100755 --- a/contracts/Engines/ANNEngine.sol +++ b/contracts/Engines/ANNEngine.sol @@ -122,17 +122,18 @@ contract ANNEngine is BaseEngine, STF, POF { { bytes32[MAX_EVENT_SCHEDULE_SIZE] memory _eventSchedule; - if (eventType == EventType.IP || eventType == EventType.IPCI) { + if (eventType == EventType.IP) { uint256 index = 0; // interest payment related (covers pre-repayment period only, // starting with PRANX interest is paid following the PR schedule) - if (terms.cycleOfInterestPayment.isSet == true && - terms.cycleAnchorDateOfInterestPayment != 0 && - terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption) - { + if ( + terms.cycleOfInterestPayment.isSet == true + && terms.cycleAnchorDateOfInterestPayment != 0 + && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption + ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( - terms.cycleAnchorDateOfInterestPayment, + (terms.capitalizationEndDate == 0) ? terms.cycleAnchorDateOfInterestPayment : terms.capitalizationEndDate, terms.cycleAnchorDateOfPrincipalRedemption, // pure IP schedule ends at beginning of combined IP/PR schedule terms.cycleOfInterestPayment, false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule @@ -142,24 +143,40 @@ contract ANNEngine is BaseEngine, STF, POF { for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { if (interestPaymentSchedule[i] == 0) break; if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; - if ( - terms.capitalizationEndDate != 0 && - interestPaymentSchedule[i] <= terms.capitalizationEndDate - ) { - if (interestPaymentSchedule[i] == terms.capitalizationEndDate) continue; - _eventSchedule[index] = encodeEvent(EventType.IPCI, interestPaymentSchedule[i]); - index++; - } else { - _eventSchedule[index] = encodeEvent(EventType.IP, interestPaymentSchedule[i]); - index++; - } + _eventSchedule[index] = encodeEvent(EventType.IP, interestPaymentSchedule[i]); + index++; } } - // capitalization end date + } + + if (eventType == EventType.IPCI) { + uint256 index = 0; + + // IPCI if ( - terms.capitalizationEndDate != 0 && - terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption + terms.cycleOfInterestPayment.isSet == true + && terms.cycleAnchorDateOfInterestPayment != 0 + && terms.capitalizationEndDate != 0 + && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption ) { + uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( + terms.cycleAnchorDateOfInterestPayment, + terms.capitalizationEndDate, + terms.cycleOfInterestPayment, + false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + segmentStart, + segmentEnd + ); + for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { + if (interestPaymentSchedule[i] == 0) break; + if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; + if (interestPaymentSchedule[i] == terms.capitalizationEndDate) continue; + _eventSchedule[index] = encodeEvent(EventType.IPCI, interestPaymentSchedule[i]); + index++; + } + } + // capitalization end date + if (terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption) { if (isInPeriod(terms.capitalizationEndDate, segmentStart, segmentEnd)) { _eventSchedule[index] = encodeEvent(EventType.IPCI, terms.capitalizationEndDate); index++; @@ -192,7 +209,7 @@ contract ANNEngine is BaseEngine, STF, POF { if (eventType == EventType.PR) { uint256 index = 0; - // principal redemption related (covers also interest events post PRANX) + // principal redemption uint256[MAX_CYCLE_SIZE] memory principalRedemptionSchedule = computeDatesFromCycleSegment( terms.cycleAnchorDateOfPrincipalRedemption, terms.maturityDate, @@ -206,8 +223,6 @@ contract ANNEngine is BaseEngine, STF, POF { if (isInPeriod(principalRedemptionSchedule[i], segmentStart, segmentEnd) == false) continue; _eventSchedule[index] = encodeEvent(EventType.PR, principalRedemptionSchedule[i]); index++; - _eventSchedule[index] = encodeEvent(EventType.IP, principalRedemptionSchedule[i]); - index++; } } diff --git a/contracts/Engines/PAMEngine.sol b/contracts/Engines/PAMEngine.sol index ec84ca9..80babcd 100755 --- a/contracts/Engines/PAMEngine.sol +++ b/contracts/Engines/PAMEngine.sol @@ -112,46 +112,61 @@ contract PAMEngine is BaseEngine, STF, POF { { bytes32[MAX_EVENT_SCHEDULE_SIZE] memory _eventSchedule; - if (eventType == EventType.IP || eventType == EventType.IPCI) { + if (eventType == EventType.IP) { uint256 index = 0; - // interest payment related (e.g. for reoccurring interest payments) - if (terms.nominalInterestRate != 0 && ( - terms.cycleOfInterestPayment.isSet == true && terms.cycleAnchorDateOfInterestPayment != 0) + // interest payment related (covers pre-repayment period only, + // starting with PRANX interest is paid following the PR schedule) + if ( + terms.cycleOfInterestPayment.isSet == true + && terms.cycleAnchorDateOfInterestPayment != 0 + && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( - terms.cycleAnchorDateOfInterestPayment, - terms.maturityDate, + (terms.capitalizationEndDate == 0) ? terms.cycleAnchorDateOfInterestPayment : terms.capitalizationEndDate, + terms.cycleAnchorDateOfPrincipalRedemption, // pure IP schedule ends at beginning of combined IP/PR schedule terms.cycleOfInterestPayment, - true, + false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule segmentStart, segmentEnd ); - if (terms.capitalizationEndDate != 0) { - if (isInPeriod(terms.capitalizationEndDate, segmentStart, segmentEnd)) { - _eventSchedule[index] = encodeEvent(EventType.IPCI, terms.capitalizationEndDate); - index++; - } - } for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { if (interestPaymentSchedule[i] == 0) break; if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; - if ( - terms.capitalizationEndDate != 0 && - interestPaymentSchedule[i] <= terms.capitalizationEndDate - ) { - if (interestPaymentSchedule[i] == terms.capitalizationEndDate) continue; - _eventSchedule[index] = encodeEvent(EventType.IPCI, interestPaymentSchedule[i]); - index++; - } else { - _eventSchedule[index] = encodeEvent(EventType.IP, interestPaymentSchedule[i]); - index++; - } + _eventSchedule[index] = encodeEvent(EventType.IP, interestPaymentSchedule[i]); + index++; } } + } + if (eventType == EventType.IPCI) { + uint256 index = 0; + + // IPCI + if ( + terms.cycleOfInterestPayment.isSet == true + && terms.cycleAnchorDateOfInterestPayment != 0 + && terms.capitalizationEndDate != 0 + && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption + ) { + uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( + terms.cycleAnchorDateOfInterestPayment, + terms.capitalizationEndDate, + terms.cycleOfInterestPayment, + false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + segmentStart, + segmentEnd + ); + for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { + if (interestPaymentSchedule[i] == 0) break; + if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; + if (interestPaymentSchedule[i] == terms.capitalizationEndDate) continue; + _eventSchedule[index] = encodeEvent(EventType.IPCI, interestPaymentSchedule[i]); + index++; + } + } // capitalization end date - else if (terms.capitalizationEndDate != 0) { + if (terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption) { if (isInPeriod(terms.capitalizationEndDate, segmentStart, segmentEnd)) { _eventSchedule[index] = encodeEvent(EventType.IPCI, terms.capitalizationEndDate); index++; diff --git a/test/Engines/ANN/TestANNEngine.js b/test/Engines/ANN/TestANNEngine.js index 0c7507f..396cb7e 100755 --- a/test/Engines/ANN/TestANNEngine.js +++ b/test/Engines/ANN/TestANNEngine.js @@ -26,6 +26,12 @@ contract('ANNEngine', () => { segmentEnd, 4 // FP )); + _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( + terms, + segmentStart, + segmentEnd, + 7 // IPCI + )); _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( terms, segmentStart, diff --git a/test/Engines/ANN/TestANNSchedules.js b/test/Engines/ANN/TestANNSchedules.js index 625b465..c93df0c 100644 --- a/test/Engines/ANN/TestANNSchedules.js +++ b/test/Engines/ANN/TestANNSchedules.js @@ -26,6 +26,12 @@ contract('ANNEngine', () => { segmentEnd, 4 // FP )); + _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( + terms, + segmentStart, + segmentEnd, + 7 // IPCI + )); _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( generatingTerms, segmentStart, diff --git a/test/Engines/PAM/TestPAMEngine.js b/test/Engines/PAM/TestPAMEngine.js index a3cfbd1..4efbc02 100755 --- a/test/Engines/PAM/TestPAMEngine.js +++ b/test/Engines/PAM/TestPAMEngine.js @@ -26,6 +26,12 @@ contract('PAMEngine', () => { segmentEnd, 4 // FP )); + _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( + terms, + segmentStart, + segmentEnd, + 7 // IPCI + )); _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( terms, segmentStart, diff --git a/test/Engines/PAM/TestPAMSchedules.js b/test/Engines/PAM/TestPAMSchedules.js index ff3d052..b9e0ee3 100644 --- a/test/Engines/PAM/TestPAMSchedules.js +++ b/test/Engines/PAM/TestPAMSchedules.js @@ -25,6 +25,12 @@ contract('PAMEngine', () => { segmentEnd, 4 // FP )); + _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( + terms, + segmentStart, + segmentEnd, + 7 // IPCI + )); _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( generatingTerms, segmentStart, From ab3133f589f29787f60e910e0b73147b4c43fe7b Mon Sep 17 00:00:00 2001 From: jo-es Date: Thu, 12 Dec 2019 14:56:49 +0100 Subject: [PATCH 2/3] Fix some tests --- artifacts/ACTUSTypes.json | 41 + artifacts/ANNEngine.json | 2070 +++++++++ artifacts/BaseEngine.json | 2070 +++++++++ artifacts/BokkyPooBahsDateTimeLibrary.json | 12 + artifacts/BusinessDayConvention.json | 41 + artifacts/CECEngine.json | 2070 +++++++++ artifacts/CEGEngine.json | 2070 +++++++++ artifacts/ContractDefaultConvention.json | 41 + artifacts/ContractRoleConvention.json | 41 + artifacts/Core.json | 372 ++ artifacts/DayCountConvention.json | 41 + artifacts/EndOfMonthConvention.json | 86 + artifacts/IEngine.json | 1739 +++++++ artifacts/Migrations.json | 75 + artifacts/PAMEngine.json | 2070 +++++++++ artifacts/POF.json | 372 ++ artifacts/STF.json | 372 ++ artifacts/SafeMath.json | 12 + artifacts/Schedule.json | 327 ++ artifacts/SignedMath.json | 41 + artifacts/SignedSafeMath.json | 12 + artifacts/TestPOF.json | 3202 +++++++++++++ artifacts/TestSTF.json | 4753 ++++++++++++++++++++ artifacts/Utils.json | 327 ++ contracts/Engines/ANNEngine.sol | 13 +- contracts/Engines/PAMEngine.sol | 17 +- test/Engines/ANN/TestANNEngine.js | 14 +- test/Engines/ANN/TestANNSchedules.js | 5 + test/Engines/PAM/TestPAMEngine.js | 11 +- test/Engines/PAM/TestPAMSchedules.js | 2 +- 30 files changed, 22285 insertions(+), 34 deletions(-) create mode 100644 artifacts/ACTUSTypes.json create mode 100644 artifacts/ANNEngine.json create mode 100644 artifacts/BaseEngine.json create mode 100644 artifacts/BokkyPooBahsDateTimeLibrary.json create mode 100644 artifacts/BusinessDayConvention.json create mode 100644 artifacts/CECEngine.json create mode 100644 artifacts/CEGEngine.json create mode 100644 artifacts/ContractDefaultConvention.json create mode 100644 artifacts/ContractRoleConvention.json create mode 100644 artifacts/Core.json create mode 100644 artifacts/DayCountConvention.json create mode 100644 artifacts/EndOfMonthConvention.json create mode 100644 artifacts/IEngine.json create mode 100644 artifacts/Migrations.json create mode 100644 artifacts/PAMEngine.json create mode 100644 artifacts/POF.json create mode 100644 artifacts/STF.json create mode 100644 artifacts/SafeMath.json create mode 100644 artifacts/Schedule.json create mode 100644 artifacts/SignedMath.json create mode 100644 artifacts/SignedSafeMath.json create mode 100644 artifacts/TestPOF.json create mode 100644 artifacts/TestSTF.json create mode 100644 artifacts/Utils.json diff --git a/artifacts/ACTUSTypes.json b/artifacts/ACTUSTypes.json new file mode 100644 index 0000000..d718d35 --- /dev/null +++ b/artifacts/ACTUSTypes.json @@ -0,0 +1,41 @@ +{ + "contractName": "ACTUSTypes", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":\"ACTUSTypes\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060ae8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b81146053578063aaf5eb6814606b575b600080fd5b60596071565b60408051918252519081900360200190f35b6059607d565b670de0b6b3a764000081565b60128156fea165627a7a723058205163bea4d9fc5fd9e6e26fcb3b5ac38a7665654fdc7f9452549216305035cf6b0029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.830Z" +} diff --git a/artifacts/ANNEngine.json b/artifacts/ANNEngine.json new file mode 100644 index 0000000..b653eb3 --- /dev/null +++ b/artifacts/ANNEngine.json @@ -0,0 +1,2070 @@ +{ + "contractName": "ANNEngine", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computeStateForEvent", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computePayoffForEvent", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeInitialState", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + } + ], + "name": "computeNonCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + }, + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "computeCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "hasUnderlying", + "type": "bool" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "underlyingState", + "type": "tuple" + } + ], + "name": "isEventScheduled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a ANN contract implements the STF and POF of the Actus standard for a ANN contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period TODO: add missing contract features: - rate reset - scaling - interest calculation base\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":\"ANNEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":{\"keccak256\":\"0xaba1ca7b9f5c34069265533a75a1d60c91cb594cf49995918b1a3f180772c273\",\"urls\":[\"bzzr://911f194d2de627f15d76c56f1d4b15a9af9cd12616ae2560c7f422f5fe793d82\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50614469806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff3660046137b1565b61022a565b604051610111919061415d565b60405180910390f35b61012d610128366004613738565b6102fc565b6040516101119190614141565b61014d61014836600461384c565b610307565b6040516101119190614132565b610162610459565b604051610111919061414f565b61018261017d3660046136df565b610465565b60405161011192919061416b565b6101a361019e366004613916565b6104af565b60405161011191906142b7565b6101626101be3660046137fe565b6104ce565b6101626101d13660046136fd565b61069a565b6101626106c6565b6101626101ec366004613916565b6106cb565b6101626101ff36600461381c565b610762565b61014d610212366004613892565b610787565b6101a36102253660046138f7565b610be5565b60008084600181111561023957fe5b14156102b55761024883610c9e565b61025184610ccc565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec90614287565b60405180910390fd5b9392505050565b600195945050505050565b61030f612e6c565b610317612e6c565b606085015160009061032a908686610ce7565b156103575761033e60058760600151610762565b8261ffff83166040811061034e57fe5b60200201526001015b60c08601511561039d576103708660c001518686610ce7565b1561039d5761038460108760c00151610762565b8261ffff83166040811061039457fe5b60200201526001015b60a0860151156103e3576103b68660a001518686610ce7565b156103e3576103ca60158760a00151610762565b8261ffff8316604081106103da57fe5b60200201526001015b6103f286608001518686610ce7565b1515600114156104505761040b600a8760800151610762565b8261ffff83166040811061041b57fe5b6020020152608086015160019091019061043790600890610762565b8261ffff83166040811061044757fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561049a57fe5b92505067ffffffffffffffff83169050915091565b6104b7612e8c565b6104c385858585610d0f565b90505b949350505050565b600060058260168111156104de57fe5b14156104ec57506014610695565b600f8260168111156104fa57fe5b141561050857506019610695565b600882601681111561051657fe5b14156105245750601e610695565b600782601681111561053257fe5b141561054057506028610695565b600482601681111561054e57fe5b141561055c57506032610695565b600282601681111561056a57fe5b14156105785750603c610695565b600982601681111561058657fe5b141561059457506050610695565b60118260168111156105a257fe5b14156105b05750605a610695565b60128260168111156105be57fe5b14156105cc57506064610695565b60138260168111156105da57fe5b14156105e85750606e610695565b60068260168111156105f657fe5b141561060457506078610695565b601082601681111561061257fe5b141561062057506082610695565b601582601681111561062e57fe5b141561063c5750608c610695565b601482601681111561064a57fe5b141561065857506096610695565b600a82601681111561066657fe5b1415610674575060a0610695565b600082601681111561068257fe5b141561069157506103b6610695565b5060005b919050565b6000806106a684610465565b9150506106bc8184606001518560000151610f0c565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff161580159061072e575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b156107565761074f826107438787878461104f565b9063ffffffff61123716565b90506104c6565b6104c38585858561104f565b60008160f884601681111561077357fe5b60ff166001029060020a0217905092915050565b61078f612e6c565b610797612e6c565b60088360168111156107a557fe5b14156108c0576101c086015160600151600090151560011480156107cd575061010087015115155b80156107e25750866101800151876101000151105b156108be576107ef612ef5565b6108248860e00151600014610808578860e0015161080f565b8861010001515b8961018001518a6101c0015160008b8b6112e2565b905060005b60108160ff1610156108bb578160ff82166010811061084457fe5b60200201511515610854576108bb565b6108728260ff83166010811061086657fe5b60200201518989610ce7565b151561087d576108b3565b61089b60088360ff84166010811061089157fe5b6020020151610762565b8484604081106108a757fe5b60200201526001909201915b600101610829565b50505b505b60078360168111156108ce57fe5b1415610a37576101c086015160600151600090151560011480156108f6575061010087015115155b8015610905575060e087015115155b801561091a5750866101800151876101000151105b156109ec57610927612ef5565b6109448861010001518960e001518a6101c0015160008b8b6112e2565b905060005b60108160ff1610156109e9578160ff82166010811061096457fe5b60200201511515610974576109e9565b6109868260ff83166010811061086657fe5b1515610991576109e1565b60e08901518260ff8316601081106109a557fe5b602002015114156109b5576109e1565b6109c960078360ff84166010811061089157fe5b8484604081106109d557fe5b60200201526001909201915b600101610949565b50505b8661018001518760e001511015610a3557610a0c8760e001518787610ce7565b15610a3557610a2060078860e00151610762565b828260408110610a2c57fe5b60200201526001015b505b6004836016811115610a4557fe5b1415610b1d576102208601516060015160009015156001148015610a6d575061016087015115155b15610b1b57610a7a612ef5565b610a9788610160015189608001518a610220015160018b8b6112e2565b905060005b60108160ff161015610b18578160ff821660108110610ab757fe5b60200201511515610ac757610b18565b610ad98260ff83166010811061086657fe5b1515610ae457610b10565b610af860048360ff84166010811061089157fe5b848460408110610b0457fe5b60200201526001909201915b600101610a9c565b50505b505b600f836016811115610b2b57fe5b14156104c3576000610b3b612ef5565b610b5888610180015189608001518a610240015160008b8b6112e2565b905060005b60108160ff161015610bd9578160ff821660108110610b7857fe5b60200201511515610b8857610bd9565b610b9a8260ff83166010811061086657fe5b1515610ba557610bd1565b610bb9600f8360ff84166010811061089157fe5b848460408110610bc557fe5b60200201526001909201915b600101610b5d565b50505095945050505050565b610bed612e8c565b610bf5612e8c565b60008152670de0b6b3a764000061014082018190526101208201526101c08301516020808301919091526101e0840151606083015261020084015190840151610c3d906114a1565b60000b0260a08201526102208301516101008201526102608301516020840151610c66906114a1565b60000b0260c082015261024083015160e08201526103608301516020840151610c8e906114a1565b60000b0261016082015292915050565b6000808080610cb262015180865b04611568565b91945092509050610cc38383611600565b95945050505050565b60008080610cdd6201518085610cac565b9695505050505050565b60008383108015610cf85750838210155b15610d05575060016102f5565b5060009392505050565b610d17612e8c565b600080610d2385610465565b90925090506000826016811115610d3657fe5b1415610d5157610d4887878387611686565b925050506104c6565b6004826016811115610d5f57fe5b1415610d7157610d4887878387611750565b6005826016811115610d7f57fe5b1415610d9157610d48878783876117b2565b6007826016811115610d9f57fe5b1415610db157610d4887878387611817565b6008826016811115610dbf57fe5b1415610dd157610d48878783876118a1565b600e826016811115610ddf57fe5b1415610df157610d4887878387611686565b600f826016811115610dff57fe5b1415610e1157610d48878783876118f3565b600a826016811115610e1f57fe5b1415610e3157610d48878783876119f6565b600b826016811115610e3f57fe5b1415610e5157610d4887878387611686565b6011826016811115610e5f57fe5b1415610e7157610d4887878387611a82565b6012826016811115610e7f57fe5b1415610e9157610d4887878387611b16565b6013826016811115610e9f57fe5b1415610eb157610d4887878387611c8e565b6015826016811115610ebf57fe5b1415610ed157610d4887878387611df1565b6016826016811115610edf57fe5b1415610ef157610d4887878387611e38565b60405160e560020a62461bcd0281526004016102ec90614297565b60006001836008811115610f1c57fe5b1480610f3357506003836008811115610f3157fe5b145b15610f4957610f428483611f19565b90506102f5565b6002836008811115610f5757fe5b1480610f6e57506004836008811115610f6c57fe5b145b15610fb2576000610f7f8584611f19565b9050610f8a85611f75565b610f9382611f75565b1415610fa05790506102f5565b610faa8584611f90565b9150506102f5565b6005836008811115610fc057fe5b1480610fd757506007836008811115610fd557fe5b145b15610fe657610f428483611f90565b6006836008811115610ff457fe5b148061100b5750600883600881111561100957fe5b145b1561104757600061101c8584611f90565b905061102785611f75565b61103082611f75565b141561103d5790506102f5565b610faa8584611f19565b509192915050565b600080600061105d85610465565b9092509050600082601681111561107057fe5b1415611081576000925050506104c6565b600782601681111561108f57fe5b14156110a0576000925050506104c6565b60118260168111156110ae57fe5b14156110bf576000925050506104c6565b60128260168111156110cd57fe5b14156110de576000925050506104c6565b60138260168111156110ec57fe5b14156110fd576000925050506104c6565b601682601681111561110b57fe5b141561111c576000925050506104c6565b600482601681111561112a57fe5b141561113c57610d4887878387611fde565b600582601681111561114a57fe5b141561115c57610d4887878387612077565b600882601681111561116a57fe5b141561117c57610d48878783876120b5565b600e82601681111561118a57fe5b141561119c57610d488787838761211d565b600f8260168111156111aa57fe5b14156111bc57610d488787838761213e565b600a8260168111156111ca57fe5b14156111dc57610d48878783876121c6565b600b8260168111156111ea57fe5b14156111fc57610d48878783876121e4565b601582601681111561120a57fe5b141561121c57610d48878783876122c9565b60405160e560020a62461bcd0281526004016102ec906141c7565b6000821580611244575081155b15611251575060006106c0565b82600019148015611265575060ff60020a82145b156112855760405160e560020a62461bcd0281526004016102ec90614267565b82820282848281151561129457fe5b05146112b55760405160e560020a62461bcd0281526004016102ec90614267565b670de0b6b3a764000081058015156106bc5760405160e560020a62461bcd0281526004016102ec90614247565b6112ea612ef5565b6112f2612ef5565b6060860151600090151561135c5761130b898686610ce7565b15611326578882826010811061131d57fe5b60200201526001015b611331888686610ce7565b156113545760018615151415611354578782826010811061134e57fe5b60200201525b509050610cdd565b8860005b898210156113c957611373828888610ce7565b156113b457600e831061139b5760405160e560020a62461bcd0281526004016102ec90614197565b818484601081106113a857fe5b60200201526001909201915b6001016113c2898c8361232c565b9150611360565b600188151514156113f7576113df8a8888610ce7565b156113f757898484601081106113f157fe5b60200201525b60008311801561142157506114218460001985016010811061141557fe5b60200201518888610ce7565b156114925760008960400151600181111561143857fe5b1480156114455750600183115b80156114515750818a14155b156114925783836010811061146257fe5b60200201518460001985016010811061147757fe5b602002015283836010811061148857fe5b6020020160008152505b50919998505050505050505050565b6000808260098111156114b057fe5b14156114be57506001610695565b60018260098111156114cc57fe5b14156114db5750600019610695565b60068260098111156114e957fe5b14156114f757506001610695565b600782600981111561150557fe5b14156115145750600019610695565b600482600981111561152257fe5b141561153057506001610695565b600582600981111561153e57fe5b141561154d5750600019610695565b60405160e560020a62461bcd0281526004016102ec90614227565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028115156115c157fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806116115750816003145b8061161c5750816005145b806116275750816007145b806116325750816008145b8061163d575081600a145b80611648575081600c145b156116555750601f6106c0565b600282146116655750601e6106c0565b61166e83612442565b61167957601c61167c565b601d5b60ff169392505050565b61168e612e8c565b60006116cd6116aa866020015188606001518960000151612467565b6116bd8689606001518a60000151612467565b8860400151896101e001516124d1565b90506117036116f2826107438860a0015189610100015161123790919063ffffffff16565b60c08701519063ffffffff61259516565b60c086015260a08501516102c087015161173e9161172d918491610743919063ffffffff61123716565b60e08701519063ffffffff61259516565b60e08601525050506020820152919050565b611758612e8c565b60006117746116aa866020015188606001518960000151612467565b90506117996116f2826107438860a0015189610100015161123790919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b6117ba612e8c565b60006117d66116aa866020015188606001518960000151612467565b90508561020001516117eb87602001516114a1565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b61181f612e8c565b600061183b6116aa866020015188606001518960000151612467565b90506118746116f2611863836107438960a001518a610100015161123790919063ffffffff16565b60c08801519063ffffffff61259516565b50600060c086015260a08501516102c087015161173e9161172d918491610743919063ffffffff61123716565b6118a9612e8c565b60006118c56116aa866020015188606001518960000151612467565b600060c087015260a08601516102c088015191925061173e9161172d9184916107439163ffffffff61123716565b6118fb612e8c565b60006119176116aa866020015188606001518960000151612467565b905061193c6116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c08701516119669161172d918491610743919063ffffffff61123716565b60e086015260c08501516101608601516119e4916119c09161198d9163ffffffff6125e016565b61199a89602001516114a1565b60000b028760a001516119b08a602001516114a1565b60000b029063ffffffff61262b16565b6119cd88602001516114a1565b60000b028660a001516125e090919063ffffffff16565b60a08601525050506020820152919050565b6119fe612e8c565b6000611a1a6116aa866020015188606001518960000151612467565b9050611a3f6116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c0870151611a699161172d918491610743919063ffffffff61123716565b60e08601525050600060a0840152506020820152919050565b611a8a612e8c565b6000611aa66116aa866020015188606001518960000151612467565b9050611acb6116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c0870151611af59161172d918491610743919063ffffffff61123716565b60e08601525050506102e09290920151610100820152602081019190915290565b611b1e612e8c565b6102a085015161028086015161010086015190840290910190600090611b4b90839063ffffffff6125e016565b905080876103e00151128015611b6e575086610440015160001902876103e00151125b15611b7f57506103e0860151611b9b565b86610440015160001902811215611b9b57506104408601516000035b610100860151611bb1908263ffffffff61259516565b915081876103e00151128015611bd05750866104000151876103e00151125b15611be257866103e001519150611bf8565b866104000151821215611bf85786610400015191505b6000611c37611c1488602001518a606001518b60000151612467565b611c27888b606001518c60000151612467565b8a604001518b6101e001516124d1565b9050611c6d611c5c826107438a60a001518b610100015161123790919063ffffffff16565b60c08901519063ffffffff61259516565b60c08801525050610100850152505060006101608301526020820152919050565b611c96612e8c565b6000611cb26116aa866020015188606001518960000151612467565b9050611cd76116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c0870151611d019161172d918491610743919063ffffffff61123716565b60e086015260048660a001516007811115611d1857fe5b1480611d33575060058660a001516007811115611d3157fe5b145b80611d4d575060068660a001516007811115611d4b57fe5b145b80611d67575060078660a001516007811115611d6557fe5b145b15611d755760006101208601525b60018660a001516007811115611d8757fe5b1480611da2575060038660a001516007811115611da057fe5b145b80611dbc575060058660a001516007811115611dba57fe5b145b80611dd6575060078660a001516007811115611dd457fe5b145b15611de45760006101408601525b5050506020820152919050565b611df9612e8c565b6000611e156116aa866020015188606001518960000151612467565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611e40612e8c565b60008460400151600014611e58578460400151611e6b565b611e6b8487606001518860000151610f0c565b6103a087015160400151909150839060009015611ea6576000611e93896103a001518561263b565b9050808311611ea457600180895291505b505b876103c00151604001518015611eba575080155b15611ee9576000611ed0896103c001518561263b565b9050808311611ee25760028852611ee7565b600388525b505b60408701511515611f0d57611f078689606001518a60000151610f0c565b60408801525b50949695505050505050565b60006001826001811115611f2957fe5b1415611f6e57611f3883612745565b60061415611f5257611f4b836002612758565b90506106c0565b611f5b83612745565b60071415611f6e57611f4b836001612758565b5090919050565b60008080611f866201518085610cac565b5095945050505050565b60006001826001811115611fa057fe5b1415611f6e57611faf83612745565b60061415611fc257611f4b83600161276d565b611fcb83612745565b60071415611f6e57611f4b83600261276d565b6000808560e001516001811115611ff157fe5b141561201557846102c0015161200a86602001516114a1565b60000b0290506104c6565b6104c36120668560a00151610743886102c001516107436120438a602001518c606001518d60000151612467565b6120568a8d606001518e60000151612467565b8c604001518d6101e001516124d1565b60e08601519063ffffffff61259516565b600061209685610320015186610200015161259590919063ffffffff16565b6120a386602001516114a1565b6000190260000b029050949350505050565b60006104c361210b6116f28660a001516107438861010001516107436120e88b602001518d606001518e60000151612467565b6120fb8b8e606001518f60000151612467565b8d604001518e6101e001516124d1565b6101208601519063ffffffff61123716565b60008360a0015161213186602001516114a1565b60000b0295945050505050565b60006104c36121a16121718660a001516107438861010001516107436120e88b602001518d606001518e60000151612467565b8660c00151876101600151030361218b88602001516114a1565b60000b028660a001516119b089602001516114a1565b6121ae87602001516114a1565b60000b8661014001510261123790919063ffffffff16565b60006104c38460a0015185610140015161123790919063ffffffff16565b600060018560c0015160038111156121f857fe5b14156122115784610300015161200a86602001516114a1565b60028560c00151600381111561222357fe5b1415612284576122778460a0015161074387610300015161074361225489602001518b606001518c60000151612467565b612267898c606001518d60000151612467565b8b604001518c6101e001516124d1565b61200a86602001516114a1565b6122778460a001516107436122a6876020015189606001518a60000151612467565b6122b9878a606001518b60000151612467565b89604001518a6101e001516124d1565b600061231f6122f98560a001516107438761010001516107436120438a602001518c606001518d60000151612467565b60c08601516103408801516123139163ffffffff61259516565b9063ffffffff61259516565b61213186602001516114a1565b600080808560200151600581111561234057fe5b14156123565761074f8484876000015102612758565b60018560200151600581111561236857fe5b14156123815761074f8484876000015160070202612758565b60028560200151600581111561239357fe5b14156123a95761074f8484876000015102612782565b6003856020015160058111156123bb57fe5b14156123d45761074f8484876000015160030202612782565b6004856020015160058111156123e657fe5b14156123ff5761074f8484876000015160060202612782565b60058560200151600581111561241157fe5b14156124275761074f84848760000151026127f9565b60405160e560020a62461bcd0281526004016102ec906141b7565b60006004820615801561245757506064820615155b806106c057505061019090061590565b6000600383600881111561247757fe5b148061248e5750600483600881111561248c57fe5b145b806124a4575060078360088111156124a257fe5b145b806124ba575060088360088111156124b857fe5b145b156124c65750826102f5565b6104c6848484610f0c565b6000848410156124f65760405160e560020a62461bcd0281526004016102ec90614277565b600083600681111561250457fe5b14156125145761074f8585612820565b600183600681111561252257fe5b14156125325761074f8585612934565b600283600681111561254057fe5b14156125505761074f858561295f565b600483600681111561255e57fe5b141561256e5761074f858561297e565b600383600681111561257c57fe5b141561258d5761074f858584612a3f565b5060016104c6565b60008282018183128015906125aa5750838112155b806125bf57506000831280156125bf57508381125b15156102f55760405160e560020a62461bcd0281526004016102ec90614207565b60008183038183128015906125f55750838113155b8061260a575060008312801561260a57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec906142a7565b600081831315611f6e5750919050565b600080808460200151600581111561264f57fe5b141561266357610f42838560000151612758565b60018460200151600581111561267557fe5b141561268c57610f42838560000151600702612758565b60028460200151600581111561269e57fe5b14156126b257610f42838560000151612782565b6003846020015160058111156126c457fe5b14156126db57610f42838560000151600302612782565b6004846020015160058111156126ed57fe5b141561270457610f42838560000151600602612782565b60058460200151600581111561271657fe5b141561272a57610f428385600001516127f9565b60405160e560020a62461bcd0281526004016102ec90614217565b6007620151809091046003010660010190565b6201518081028201828110156106c057600080fd5b6201518081028203828111156106c057600080fd5b60008080806127946201518087610cac565b600c9188016000190182810493909301955091066001019250905060006127bb8484611600565b9050808211156127c9578091505b620151808706620151806127de868686612b15565b02019450868510156127ef57600080fd5b5050505092915050565b600080808061280b6201518087610cac565b91870194509250905060006127bb8484611600565b60008061282c84612b7b565b9050600061283984612b7b565b9050600061284686612b97565b6128525761016d612856565b61016e5b61ffff169050818314156128885761287e816128728888612bb9565b9063ffffffff612bd416565b93505050506106c0565b600061289386612b97565b61289f5761016d6128a3565b61016e5b61ffff16905060006128d4836128728a6128cf6128c78a600163ffffffff612ca616565b600180612cce565b612bb9565b905060006128f1836128726128eb88600180612cce565b8b612bb9565b9050612927612917600161290b888a63ffffffff612ce816565b9063ffffffff612ce816565b612313848463ffffffff61259516565b9998505050505050505050565b60006102f561016861287262015180612953868863ffffffff612ce816565b9063ffffffff612d2a16565b60006102f561016d61287262015180612953868863ffffffff612ce816565b600080600080600080600061299289612d6c565b9750955093506129a188612d6c565b945092509050601f8614156129b557601e95505b82601f14156129c357601e92505b60006129d5848863ffffffff6125e016565b905060006129e9848863ffffffff6125e016565b905060006129fd848863ffffffff6125e016565b9050612a2f61016861287285612313612a1d87601e63ffffffff612d8a16565b6123138761016863ffffffff612d8a16565b9c9b505050505050505050505050565b6000806000806000806000612a538a612d6c565b975095509350612a6289612d6c565b945092509050612a718a610c9e565b861415612a7d57601e95505b8789148015612a8c5750816002145b158015612aa05750612a9d89610c9e565b83145b15612aaa57601e92505b6000612abc848863ffffffff6125e016565b90506000612ad0848863ffffffff6125e016565b90506000612ae4848863ffffffff6125e016565b9050612b0461016861287285612313612a1d87601e63ffffffff612d8a16565b9d9c50505050505050505050505050565b60006107b2841015612b2657600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612b8c6201518085610cac565b509095945050505050565b6000808080612ba96201518086610cac565b91945092509050610cc383612442565b600081831115612bc857600080fd5b50620151809190030490565b6000811515612bf85760405160e560020a62461bcd0281526004016102ec906141d7565b821515612c07575060006106c0565b670de0b6b3a7640000838102908482811515612c1f57fe5b0514612c405760405160e560020a62461bcd0281526004016102ec90614237565b82600019148015612c54575060ff60020a84145b15612c745760405160e560020a62461bcd0281526004016102ec906141a7565b60008382811515612c8157fe5b0590508015156106bc5760405160e560020a62461bcd0281526004016102ec906141f7565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec906141e7565b600062015180612cdf858585612b15565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612dff565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e2e565b60008080612d7d6201518085610cac565b9196909550909350915050565b6000821515612d9b575060006106c0565b82600019148015612daf575060ff60020a82145b15612dcf5760405160e560020a62461bcd0281526004016102ec90614257565b828202828482811515612dde57fe5b05146102f55760405160e560020a62461bcd0281526004016102ec90614257565b60008184841115612e265760405160e560020a62461bcd0281526004016102ec9190614186565b505050900390565b600081818411612e545760405160e560020a62461bcd0281526004016102ec9190614186565b5060008385811515612e6257fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b60006102f58235614346565b60006102f58235614300565b60006102f582356142ed565b60006102f58235614351565b60006102f58235614360565b60006102f5823561436f565b60006102f5823561437e565b60006102f5823561438d565b60006102f5823561439c565b60006102f582356143ab565b60006102f582356143ba565b60006102f582356143c9565b600060608284031215612fb757600080fd5b612fc160606142c6565b90506000612fcf8484612f2d565b8252506020612fe084848301612f5d565b6020830152506040612ff484828501612f5d565b60408301525092915050565b6000610500828403121561301357600080fd5b61301e6102a06142c6565b9050600061302c8484612f99565b825250602061303d84848301612f2d565b602083015250604061305184828501612f2d565b604083015250606061306584828501612f2d565b606083015250608061307984828501612f2d565b60808301525060a061308d84828501612f2d565b60a08301525060c06130a184828501612f2d565b60c08301525060e06130b584828501612f2d565b60e0830152506101006130ca84828501612f2d565b610100830152506101206130e084828501612f2d565b610120830152506101406130f684828501612f2d565b6101408301525061016061310c84828501612f2d565b6101608301525061018061312284828501612f2d565b610180830152506101a061313884828501612f2d565b6101a0830152506101c061314e848285016131df565b6101c083015250610240613164848285016131df565b6101e0830152506102c061317a848285016131df565b61020083015250610340613190848285016131df565b610220830152506103c06131a6848285016131df565b610240830152506104406131bc8482850161324e565b610260830152506104a06131d28482850161324e565b6102808301525092915050565b6000608082840312156131f157600080fd5b6131fb60806142c6565b905060006132098484612f2d565b825250602061321a84848301612f8d565b602083015250604061322e84828501612f45565b604083015250606061324284828501612f21565b60608301525092915050565b60006060828403121561326057600080fd5b61326a60606142c6565b905060006132788484612f2d565b825250602061328984848301612f8d565b6020830152506040612ff484828501612f21565b600061056082840312156132b057600080fd5b6132bb6104606142c6565b905060006132c98484612f45565b82525060206132da84848301612f69565b60208301525060406132ee84828501612f75565b604083015250606061330284828501612f39565b606083015250608061331684828501612f45565b60808301525060a061332a84828501612f99565b60a08301525060c061333e84828501612f51565b60c08301525060e061335284828501612f45565b60e08301525061010061336784828501612f51565b6101008301525061012061337d84828501612fa5565b6101208301525061018061339384828501612fa5565b610140830152506101e06133a984828501612f15565b610160830152506102006133bf84828501612f15565b610180830152506102206133d584828501612f2d565b6101a0830152506102406133eb84828501612f2d565b6101c08301525061026061340184828501612f2d565b6101e08301525061028061341784828501612f2d565b610200830152506102a061342d84828501612f2d565b610220830152506102c061344384828501612f2d565b610240830152506102e061345984828501612f2d565b6102608301525061030061346f84828501612f2d565b6102808301525061032061348584828501612f2d565b6102a08301525061034061349b84828501612f2d565b6102c0830152506103606134b184828501612f2d565b6102e0830152506103806134c784828501612f2d565b610300830152506103a06134dd84828501612f2d565b610320830152506103c06134f384828501612f2d565b610340830152506103e061350984828501612f2d565b6103608301525061040061351f84828501612f2d565b610380830152506104206135358482850161324e565b6103a08301525061048061354b8482850161324e565b6103c0830152506104e061356184828501612f2d565b6103e08301525061050061357784828501612f2d565b6104008301525061052061358d84828501612f2d565b610420830152506105406135a384828501612f2d565b6104408301525092915050565b60006101a082840312156135c357600080fd5b6135ce6101a06142c6565b905060006135dc8484612f51565b82525060206135ed84848301612f2d565b602083015250604061360184828501612f2d565b604083015250606061361584828501612f2d565b606083015250608061362984828501612f2d565b60808301525060a061363d84828501612f2d565b60a08301525060c061365184828501612f2d565b60c08301525060e061366584828501612f2d565b60e08301525061010061367a84828501612f2d565b6101008301525061012061369084828501612f2d565b610120830152506101406136a684828501612f2d565b610140830152506101606136bc84828501612f2d565b610160830152506101806136d284828501612f2d565b6101808301525092915050565b6000602082840312156136f157600080fd5b60006106bc8484612f2d565b600080610580838503121561371157600080fd5b600061371d8585612f2d565b925050602061372e8582860161329d565b9150509250929050565b60008060008060006108e0868803121561375157600080fd5b600061375d8888612f2d565b955050602061376e8882890161329d565b945050610580613780888289016135b0565b93505061072061379288828901612f21565b9250506107406137a4888289016135b0565b9150509295509295909350565b600080600060c084860312156137c657600080fd5b60006137d28686612f45565b93505060206137e386828701612f2d565b92505060406137f4868287016131df565b9150509250925092565b60006020828403121561381057600080fd5b60006106bc8484612f81565b6000806040838503121561382f57600080fd5b600061383b8585612f81565b925050602061372e85828601612f2d565b6000806000610540848603121561386257600080fd5b600061386e8686613000565b93505061050061388086828701612f2d565b9250506105206137f486828701612f2d565b60008060008061056085870312156138a957600080fd5b60006138b58787613000565b9450506105006138c787828801612f2d565b9350506105206138d987828801612f2d565b9250506105406138eb87828801612f81565b91505092959194509250565b6000610560828403121561390a57600080fd5b60006106bc848461329d565b600080600080610740858703121561392d57600080fd5b6000613939878761329d565b94505061056061394b878288016135b0565b93505061070061395d87828801612f2d565b9250506107206138eb87828801612f2d565b613978816142f0565b613981826142ed565b60005b828110156139b1576139978583516139c7565b6139a0826142fa565b602095909501949150600101613984565b5050505050565b6139c181614300565b82525050565b6139c1816142ed565b6139c1816143d8565b6139c1816143e3565b6139c1816143ee565b60006139f6826142f6565b808452613a0a8160208601602086016143f9565b613a1381614425565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602d81527f414e4e456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b603681527f414e4e456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a083019061403e84826139d0565b50602082015161405160208501826139c7565b50604082015161406460408501826139c7565b50606082015161407760608501826139c7565b50608082015161408a60808501826139c7565b5060a082015161409d60a08501826139c7565b5060c08201516140b060c08501826139c7565b5060e08201516140c360e08501826139c7565b506101008201516140d86101008501826139c7565b506101208201516140ed6101208501826139c7565b506101408201516141026101408501826139c7565b506101608201516141176101608501826139c7565b5061018082015161412c6101808501826139c7565b50505050565b61080081016106c0828461396f565b602081016106c082846139b8565b602081016106c082846139c7565b602081016106c082846139d9565b6040810161417982856139e2565b6102f560208301846139c7565b602080825281016102f581846139eb565b602080825281016106c081613a20565b602080825281016106c081613a76565b602080825281016106c081613acc565b602080825281016106c081613b22565b602080825281016106c081613b78565b602080825281016106c081613bce565b602080825281016106c081613bfe565b602080825281016106c081613c54565b602080825281016106c081613caa565b602080825281016106c081613d00565b602080825281016106c081613d56565b602080825281016106c081613dac565b602080825281016106c081613e02565b602080825281016106c081613e58565b602080825281016106c081613eae565b602080825281016106c081613f04565b602080825281016106c081613f80565b602080825281016106c081613fd6565b6101a081016106c0828461402c565b60405181810167ffffffffffffffff811182821017156142e557600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b60006004821061431157fe5b5090565b60006002821061431157fe5b60006017821061431157fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006106c08261432d565b60006009821061431157600080fd5b60006002821061431157600080fd5b60006004821061431157600080fd5b60006005821061431157600080fd5b6000600a821061431157600080fd5b60006007821061431157600080fd5b60006017821061431157600080fd5b60006006821061431157600080fd5b60006008821061431157600080fd5b60006106c082614305565b60006106c082614315565b60006106c082614321565b60005b838110156144145781810151838201526020016143fc565b8381111561412c5750506000910152565b601f01601f19169056fea265627a7a72305820f238c5c826e7e81b2303abe4b93ae89874af08a9539736ccc7b2459415d2add86c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.872Z" +} diff --git a/artifacts/BaseEngine.json b/artifacts/BaseEngine.json new file mode 100644 index 0000000..f04cb1a --- /dev/null +++ b/artifacts/BaseEngine.json @@ -0,0 +1,2070 @@ +{ + "contractName": "BaseEngine", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "hasUnderlying", + "type": "bool" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "underlyingState", + "type": "tuple" + } + ], + "name": "isEventScheduled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + } + ], + "name": "computeNonCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + }, + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "computeCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeInitialState", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computeStateForEvent", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computePayoffForEvent", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "", + "bytecode": "0x", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.883Z" +} diff --git a/artifacts/BokkyPooBahsDateTimeLibrary.json b/artifacts/BokkyPooBahsDateTimeLibrary.json new file mode 100644 index 0000000..7b3fef2 --- /dev/null +++ b/artifacts/BokkyPooBahsDateTimeLibrary.json @@ -0,0 +1,12 @@ +{ + "contractName": "BokkyPooBahsDateTimeLibrary", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":\"BokkyPooBahsDateTimeLibrary\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820e80309cac7b9e5a9db15ee6aa8225d2a9bf00667c19fc4de70a3e15974e847300029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.912Z" +} diff --git a/artifacts/BusinessDayConvention.json b/artifacts/BusinessDayConvention.json new file mode 100644 index 0000000..e0eb357 --- /dev/null +++ b/artifacts/BusinessDayConvention.json @@ -0,0 +1,41 @@ +{ + "contractName": "BusinessDayConvention", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":\"BusinessDayConvention\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060ae8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b81146053578063aaf5eb6814606b575b600080fd5b60596071565b60408051918252519081900360200190f35b6059607d565b670de0b6b3a764000081565b60128156fea165627a7a7230582008efd9ea8824bdd09092d8ca9e86233579039e5e8507976bdd4e367cda8ee93f0029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.835Z" +} diff --git a/artifacts/CECEngine.json b/artifacts/CECEngine.json new file mode 100644 index 0000000..333ee32 --- /dev/null +++ b/artifacts/CECEngine.json @@ -0,0 +1,2070 @@ +{ + "contractName": "CECEngine", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computeStateForEvent", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computePayoffForEvent", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeInitialState", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + } + ], + "name": "computeNonCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + }, + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "computeCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "hasUnderlying", + "type": "bool" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "underlyingState", + "type": "tuple" + } + ], + "name": "isEventScheduled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a CEC contract implements the STF and POF of the Actus standard for a CEC contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/CECEngine.sol\":\"CECEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/CECEngine.sol\":{\"keccak256\":\"0x4db60b4a5bb2ea3735a4aa38f3abf390e0718f173c515a680543b51b29166c95\",\"urls\":[\"bzzr://eb0b72e294fefbb9692c49af42015b88004b465022d535148550bb6922cba335\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612ea9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff3660046122bd565b61022a565b6040516101119190612bbd565b60405180910390f35b61012d610128366004612244565b6102fc565b6040516101119190612ba1565b61014d610148366004612358565b610307565b6040516101119190612b92565b610162610365565b6040516101119190612baf565b61018261017d3660046121eb565b610371565b604051610111929190612bcb565b6101a361019e366004612422565b6103bb565b6040516101119190612cf7565b6101626101be36600461230a565b6103da565b6101626101d1366004612209565b6105a6565b6101626105d2565b6101626101ec366004612422565b6105d7565b6101626101ff366004612328565b61066e565b61014d61021236600461239e565b610693565b6101a3610225366004612403565b6106a3565b60008084600181111561023957fe5b14156102b557610248836106f3565b61025184610721565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec90612cd7565b60405180910390fd5b9392505050565b600195945050505050565b61030f611998565b610317611998565b608085015160009061032a90868661073c565b15156001141561035c57610343600a876080015161066e565b8261ffff83166040811061035357fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f010000000000000000000000000000000000000000000000000000000000000085041660168111156103a657fe5b92505067ffffffffffffffff83169050915091565b6103c36119b8565b6103cf85858585610764565b90505b949350505050565b600060058260168111156103ea57fe5b14156103f8575060146105a1565b600f82601681111561040657fe5b1415610414575060196105a1565b600882601681111561042257fe5b14156104305750601e6105a1565b600782601681111561043e57fe5b141561044c575060286105a1565b600482601681111561045a57fe5b1415610468575060326105a1565b600282601681111561047657fe5b14156104845750603c6105a1565b600982601681111561049257fe5b14156104a0575060506105a1565b60118260168111156104ae57fe5b14156104bc5750605a6105a1565b60128260168111156104ca57fe5b14156104d8575060646105a1565b60138260168111156104e657fe5b14156104f45750606e6105a1565b600682601681111561050257fe5b1415610510575060786105a1565b601082601681111561051e57fe5b141561052c575060826105a1565b601582601681111561053a57fe5b14156105485750608c6105a1565b601482601681111561055657fe5b1415610564575060966105a1565b600a82601681111561057257fe5b1415610580575060a06105a1565b600082601681111561058e57fe5b141561059d57506103b66105a1565b5060005b919050565b6000806105b284610371565b9150506105c88184606001518560000151610821565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff161580159061063a575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b156106625761065b8261064f87878784610964565b9063ffffffff610a0f16565b90506103d2565b6103cf85858585610964565b60008160f884601681111561067f57fe5b60ff166001029060020a0217905092915050565b61069b611998565b6103cf611998565b6106ab6119b8565b6106b36119b8565b600081526101c08301516020808301919091526101e08401516060830152610200840151908401516106e490610aba565b60000b0260a082015292915050565b600080808061070762015180865b04610b81565b919450925090506107188383610c19565b95945050505050565b600080806107326201518085610701565b9695505050505050565b6000838310801561074d5750838210155b1561075a575060016102f5565b5060009392505050565b61076c6119b8565b60008061077885610371565b9092509050600382601681111561078b57fe5b14156107a65761079d87878387610c9f565b925050506103d2565b600a8260168111156107b457fe5b14156107c65761079d87878387610d7b565b60148260168111156107d457fe5b14156107e65761079d87878387610d96565b60168260168111156107f457fe5b14156108065761079d87878387610db8565b60405160e560020a62461bcd0281526004016102ec90612c07565b6000600183600881111561083157fe5b14806108485750600383600881111561084657fe5b145b1561085e576108578483610e99565b90506102f5565b600283600881111561086c57fe5b14806108835750600483600881111561088157fe5b145b156108c75760006108948584610e99565b905061089f85610ef5565b6108a882610ef5565b14156108b55790506102f5565b6108bf8584610f10565b9150506102f5565b60058360088111156108d557fe5b14806108ec575060078360088111156108ea57fe5b145b156108fb576108578483610f10565b600683600881111561090957fe5b14806109205750600883600881111561091e57fe5b145b1561095c5760006109318584610f10565b905061093c85610ef5565b61094582610ef5565b14156109525790506102f5565b6108bf8584610e99565b509192915050565b600080600061097285610371565b9092509050601682601681111561098557fe5b1415610996576000925050506103d2565b60038260168111156109a457fe5b14156109b5576000925050506103d2565b60148260168111156109c357fe5b14156109d55761079d87878387610f5e565b600a8260168111156109e357fe5b14156109f4576000925050506103d2565b60405160e560020a62461bcd0281526004016102ec90612cb7565b6000821580610a1c575081155b15610a29575060006105cc565b82600019148015610a3d575060ff60020a82145b15610a5d5760405160e560020a62461bcd0281526004016102ec90612ca7565b828202828482811515610a6c57fe5b0514610a8d5760405160e560020a62461bcd0281526004016102ec90612ca7565b670de0b6b3a764000081058015156105c85760405160e560020a62461bcd0281526004016102ec90612c87565b600080826009811115610ac957fe5b1415610ad7575060016105a1565b6001826009811115610ae557fe5b1415610af457506000196105a1565b6006826009811115610b0257fe5b1415610b10575060016105a1565b6007826009811115610b1e57fe5b1415610b2d57506000196105a1565b6004826009811115610b3b57fe5b1415610b49575060016105a1565b6005826009811115610b5757fe5b1415610b6657506000196105a1565b60405160e560020a62461bcd0281526004016102ec90612c67565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f84605002811515610bda57fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60008160011480610c2a5750816003145b80610c355750816005145b80610c405750816007145b80610c4b5750816008145b80610c56575081600a145b80610c61575081600c145b15610c6e5750601f6105cc565b60028214610c7e5750601e6105cc565b610c8783610f72565b610c9257601c610c95565b601d5b60ff169392505050565b610ca76119b8565b60208401839052610380850151610cc4908363ffffffff610a0f16565b6101808501526080840183905260008560e001516001811115610ce357fe5b1415610d0a57846102c00151610cfc8660200151610aba565b60000b0260e0850152610d72565b610d6c610d5b8560a0015161064f886102c0015161064f610d388a602001518c606001518d60000151610f97565b610d4b8a8d606001518e60000151610f97565b8c604001518d6101e00151611001565b60e08601519063ffffffff6110c516565b60e08501525b50919392505050565b610d836119b8565b5050600060a08301526020820152919050565b610d9e6119b8565b50506020820152600060a0820181905260e0820152919050565b610dc06119b8565b60008460400151600014610dd8578460400151610deb565b610deb8487606001518860000151610821565b6103a087015160400151909150839060009015610e26576000610e13896103a0015185611110565b9050808311610e2457600180895291505b505b876103c00151604001518015610e3a575080155b15610e69576000610e50896103c0015185611110565b9050808311610e625760028852610e67565b600388525b505b60408701511515610e8d57610e878689606001518a60000151610821565b60408801525b50949695505050505050565b60006001826001811115610ea957fe5b1415610eee57610eb88361121a565b60061415610ed257610ecb83600261122d565b90506105cc565b610edb8361121a565b60071415610eee57610ecb83600161122d565b5090919050565b60008080610f066201518085610701565b5095945050505050565b60006001826001811115610f2057fe5b1415610eee57610f2f8361121a565b60061415610f4257610ecb836001611242565b610f4b8361121a565b60071415610eee57610ecb836002611242565b60e083015161018084015101949350505050565b600060048206158015610f8757506064820615155b806105cc57505061019090061590565b60006003836008811115610fa757fe5b1480610fbe57506004836008811115610fbc57fe5b145b80610fd457506007836008811115610fd257fe5b145b80610fea57506008836008811115610fe857fe5b145b15610ff65750826102f5565b6103d2848484610821565b6000848410156110265760405160e560020a62461bcd0281526004016102ec90612cc7565b600083600681111561103457fe5b14156110445761065b8585611257565b600183600681111561105257fe5b14156110625761065b8585611377565b600283600681111561107057fe5b14156110805761065b85856113a2565b600483600681111561108e57fe5b141561109e5761065b85856113c1565b60038360068111156110ac57fe5b14156110bd5761065b858584611482565b5060016103d2565b60008282018183128015906110da5750838112155b806110ef57506000831280156110ef57508381125b15156102f55760405160e560020a62461bcd0281526004016102ec90612c47565b600080808460200151600581111561112457fe5b14156111385761085783856000015161122d565b60018460200151600581111561114a57fe5b14156111615761085783856000015160070261122d565b60028460200151600581111561117357fe5b141561118757610857838560000151611558565b60038460200151600581111561119957fe5b14156111b057610857838560000151600302611558565b6004846020015160058111156111c257fe5b14156111d957610857838560000151600602611558565b6005846020015160058111156111eb57fe5b14156111ff576108578385600001516115cf565b60405160e560020a62461bcd0281526004016102ec90612c57565b6007620151809091046003010660010190565b6201518081028201828110156105cc57600080fd5b6201518081028203828111156105cc57600080fd5b600080611263846115f6565b90506000611270846115f6565b9050600061127d86611612565b6112895761016d61128d565b61016e5b61ffff169050818314156112bf576112b5816112a98888611634565b9063ffffffff61164f16565b93505050506105cc565b60006112ca86611612565b6112d65761016d6112da565b61016e5b61ffff169050600061130b836112a98a6113066112fe8a600163ffffffff61172116565b600180611749565b611634565b90506000611328836112a961132288600180611749565b8b611634565b905061136a61134e6001611342888a63ffffffff61176316565b9063ffffffff61176316565b61135e848463ffffffff6110c516565b9063ffffffff6110c516565b9998505050505050505050565b60006102f56101686112a962015180611396868863ffffffff61176316565b9063ffffffff6117a516565b60006102f561016d6112a962015180611396868863ffffffff61176316565b60008060008060008060006113d5896117e7565b9750955093506113e4886117e7565b945092509050601f8614156113f857601e95505b82601f141561140657601e92505b6000611418848863ffffffff61180516565b9050600061142c848863ffffffff61180516565b90506000611440848863ffffffff61180516565b90506114726101686112a98561135e61146087601e63ffffffff61185016565b61135e8761016863ffffffff61185016565b9c9b505050505050505050505050565b60008060008060008060006114968a6117e7565b9750955093506114a5896117e7565b9450925090506114b48a6106f3565b8614156114c057601e95505b87891480156114cf5750816002145b1580156114e357506114e0896106f3565b83145b156114ed57601e92505b60006114ff848863ffffffff61180516565b90506000611513848863ffffffff61180516565b90506000611527848863ffffffff61180516565b90506115476101686112a98561135e61146087601e63ffffffff61185016565b9d9c50505050505050505050505050565b600080808061156a6201518087610701565b600c9188016000190182810493909301955091066001019250905060006115918484610c19565b90508082111561159f578091505b620151808706620151806115b48686866118c5565b02019450868510156115c557600080fd5b5050505092915050565b60008080806115e16201518087610701565b91870194509250905060006115918484610c19565b600080806116076201518085610701565b509095945050505050565b60008080806116246201518086610701565b9194509250905061071883610f72565b60008183111561164357600080fd5b50620151809190030490565b60008115156116735760405160e560020a62461bcd0281526004016102ec90612c17565b821515611682575060006105cc565b670de0b6b3a764000083810290848281151561169a57fe5b05146116bb5760405160e560020a62461bcd0281526004016102ec90612c77565b826000191480156116cf575060ff60020a84145b156116ef5760405160e560020a62461bcd0281526004016102ec90612bf7565b600083828115156116fc57fe5b0590508015156105c85760405160e560020a62461bcd0281526004016102ec90612c37565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec90612c27565b60006201518061175a8585856118c5565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061192b565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061195a565b600080806117f86201518085610701565b9196909550909350915050565b600081830381831280159061181a5750838113155b8061182f575060008312801561182f57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec90612ce7565b6000821515611861575060006105cc565b82600019148015611875575060ff60020a82145b156118955760405160e560020a62461bcd0281526004016102ec90612c97565b8282028284828115156118a457fe5b05146102f55760405160e560020a62461bcd0281526004016102ec90612c97565b60006107b28410156118d657600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b600081848411156119525760405160e560020a62461bcd0281526004016102ec9190612be6565b505050900390565b6000818184116119805760405160e560020a62461bcd0281526004016102ec9190612be6565b506000838581151561198e57fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006102f58235612d86565b60006102f58235612d40565b60006102f58235612d2d565b60006102f58235612d91565b60006102f58235612da0565b60006102f58235612daf565b60006102f58235612dbe565b60006102f58235612dcd565b60006102f58235612ddc565b60006102f58235612deb565b60006102f58235612dfa565b60006102f58235612e09565b600060608284031215611ac357600080fd5b611acd6060612d06565b90506000611adb8484611a39565b8252506020611aec84848301611a69565b6020830152506040611b0084828501611a69565b60408301525092915050565b60006105008284031215611b1f57600080fd5b611b2a6102a0612d06565b90506000611b388484611aa5565b8252506020611b4984848301611a39565b6020830152506040611b5d84828501611a39565b6040830152506060611b7184828501611a39565b6060830152506080611b8584828501611a39565b60808301525060a0611b9984828501611a39565b60a08301525060c0611bad84828501611a39565b60c08301525060e0611bc184828501611a39565b60e083015250610100611bd684828501611a39565b61010083015250610120611bec84828501611a39565b61012083015250610140611c0284828501611a39565b61014083015250610160611c1884828501611a39565b61016083015250610180611c2e84828501611a39565b610180830152506101a0611c4484828501611a39565b6101a0830152506101c0611c5a84828501611ceb565b6101c083015250610240611c7084828501611ceb565b6101e0830152506102c0611c8684828501611ceb565b61020083015250610340611c9c84828501611ceb565b610220830152506103c0611cb284828501611ceb565b61024083015250610440611cc884828501611d5a565b610260830152506104a0611cde84828501611d5a565b6102808301525092915050565b600060808284031215611cfd57600080fd5b611d076080612d06565b90506000611d158484611a39565b8252506020611d2684848301611a99565b6020830152506040611d3a84828501611a51565b6040830152506060611d4e84828501611a2d565b60608301525092915050565b600060608284031215611d6c57600080fd5b611d766060612d06565b90506000611d848484611a39565b8252506020611d9584848301611a99565b6020830152506040611b0084828501611a2d565b60006105608284031215611dbc57600080fd5b611dc7610460612d06565b90506000611dd58484611a51565b8252506020611de684848301611a75565b6020830152506040611dfa84828501611a81565b6040830152506060611e0e84828501611a45565b6060830152506080611e2284828501611a51565b60808301525060a0611e3684828501611aa5565b60a08301525060c0611e4a84828501611a5d565b60c08301525060e0611e5e84828501611a51565b60e083015250610100611e7384828501611a5d565b61010083015250610120611e8984828501611ab1565b61012083015250610180611e9f84828501611ab1565b610140830152506101e0611eb584828501611a21565b61016083015250610200611ecb84828501611a21565b61018083015250610220611ee184828501611a39565b6101a083015250610240611ef784828501611a39565b6101c083015250610260611f0d84828501611a39565b6101e083015250610280611f2384828501611a39565b610200830152506102a0611f3984828501611a39565b610220830152506102c0611f4f84828501611a39565b610240830152506102e0611f6584828501611a39565b61026083015250610300611f7b84828501611a39565b61028083015250610320611f9184828501611a39565b6102a083015250610340611fa784828501611a39565b6102c083015250610360611fbd84828501611a39565b6102e083015250610380611fd384828501611a39565b610300830152506103a0611fe984828501611a39565b610320830152506103c0611fff84828501611a39565b610340830152506103e061201584828501611a39565b6103608301525061040061202b84828501611a39565b6103808301525061042061204184828501611d5a565b6103a08301525061048061205784828501611d5a565b6103c0830152506104e061206d84828501611a39565b6103e08301525061050061208384828501611a39565b6104008301525061052061209984828501611a39565b610420830152506105406120af84828501611a39565b6104408301525092915050565b60006101a082840312156120cf57600080fd5b6120da6101a0612d06565b905060006120e88484611a5d565b82525060206120f984848301611a39565b602083015250604061210d84828501611a39565b604083015250606061212184828501611a39565b606083015250608061213584828501611a39565b60808301525060a061214984828501611a39565b60a08301525060c061215d84828501611a39565b60c08301525060e061217184828501611a39565b60e08301525061010061218684828501611a39565b6101008301525061012061219c84828501611a39565b610120830152506101406121b284828501611a39565b610140830152506101606121c884828501611a39565b610160830152506101806121de84828501611a39565b6101808301525092915050565b6000602082840312156121fd57600080fd5b60006105c88484611a39565b600080610580838503121561221d57600080fd5b60006122298585611a39565b925050602061223a85828601611da9565b9150509250929050565b60008060008060006108e0868803121561225d57600080fd5b60006122698888611a39565b955050602061227a88828901611da9565b94505061058061228c888289016120bc565b93505061072061229e88828901611a2d565b9250506107406122b0888289016120bc565b9150509295509295909350565b600080600060c084860312156122d257600080fd5b60006122de8686611a51565b93505060206122ef86828701611a39565b925050604061230086828701611ceb565b9150509250925092565b60006020828403121561231c57600080fd5b60006105c88484611a8d565b6000806040838503121561233b57600080fd5b60006123478585611a8d565b925050602061223a85828601611a39565b6000806000610540848603121561236e57600080fd5b600061237a8686611b0c565b93505061050061238c86828701611a39565b92505061052061230086828701611a39565b60008060008061056085870312156123b557600080fd5b60006123c18787611b0c565b9450506105006123d387828801611a39565b9350506105206123e587828801611a39565b9250506105406123f787828801611a8d565b91505092959194509250565b6000610560828403121561241657600080fd5b60006105c88484611da9565b600080600080610740858703121561243957600080fd5b60006124458787611da9565b945050610560612457878288016120bc565b93505061070061246987828801611a39565b9250506107206123f787828801611a39565b61248481612d30565b61248d82612d2d565b60005b828110156124bd576124a38583516124d3565b6124ac82612d3a565b602095909501949150600101612490565b5050505050565b6124cd81612d40565b82525050565b6124cd81612d2d565b6124cd81612e18565b6124cd81612e23565b6124cd81612e2e565b600061250282612d36565b808452612516816020860160208601612e39565b61251f81612e65565b9093016020019392505050565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603681527f434543456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602d81527f434543456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190612a9e84826124dc565b506020820151612ab160208501826124d3565b506040820151612ac460408501826124d3565b506060820151612ad760608501826124d3565b506080820151612aea60808501826124d3565b5060a0820151612afd60a08501826124d3565b5060c0820151612b1060c08501826124d3565b5060e0820151612b2360e08501826124d3565b50610100820151612b386101008501826124d3565b50610120820151612b4d6101208501826124d3565b50610140820151612b626101408501826124d3565b50610160820151612b776101608501826124d3565b50610180820151612b8c6101808501826124d3565b50505050565b61080081016105cc828461247b565b602081016105cc82846124c4565b602081016105cc82846124d3565b602081016105cc82846124e5565b60408101612bd982856124ee565b6102f560208301846124d3565b602080825281016102f581846124f7565b602080825281016105cc8161252c565b602080825281016105cc81612582565b602080825281016105cc816125d8565b602080825281016105cc8161262e565b602080825281016105cc8161265e565b602080825281016105cc816126b4565b602080825281016105cc8161270a565b602080825281016105cc81612760565b602080825281016105cc816127b6565b602080825281016105cc8161280c565b602080825281016105cc81612862565b602080825281016105cc816128b8565b602080825281016105cc8161290e565b602080825281016105cc81612964565b602080825281016105cc816129ba565b602080825281016105cc81612a36565b6101a081016105cc8284612a8c565b60405181810167ffffffffffffffff81118282101715612d2557600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b600060048210612d5157fe5b5090565b600060028210612d5157fe5b600060178210612d5157fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006105cc82612d6d565b600060098210612d5157600080fd5b600060028210612d5157600080fd5b600060048210612d5157600080fd5b600060058210612d5157600080fd5b6000600a8210612d5157600080fd5b600060078210612d5157600080fd5b600060178210612d5157600080fd5b600060068210612d5157600080fd5b600060088210612d5157600080fd5b60006105cc82612d45565b60006105cc82612d55565b60006105cc82612d61565b60005b83811015612e54578181015183820152602001612e3c565b83811115612b8c5750506000910152565b601f01601f19169056fea265627a7a7230582056654c951b054350d1178cd9b13651aa2477f059d59e8a8fb372fb679b446bc56c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.889Z" +} diff --git a/artifacts/CEGEngine.json b/artifacts/CEGEngine.json new file mode 100644 index 0000000..41627f5 --- /dev/null +++ b/artifacts/CEGEngine.json @@ -0,0 +1,2070 @@ +{ + "contractName": "CEGEngine", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computeStateForEvent", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computePayoffForEvent", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeInitialState", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + } + ], + "name": "computeNonCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + }, + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "computeCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "hasUnderlying", + "type": "bool" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "underlyingState", + "type": "tuple" + } + ], + "name": "isEventScheduled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a CEG contract implements the STF and POF of the Actus standard for a CEG contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/CEGEngine.sol\":\"CEGEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/CEGEngine.sol\":{\"keccak256\":\"0xc3d919b098273aef484ab4b6582e4b5ae295519e7613ff22c63a1d570b1442e9\",\"urls\":[\"bzzr://f1a4d9ee4df28b6eb933950c3c7d43de07c31e58c89b7c4f09393b0241a7067a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506134ce806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff366004612816565b61022a565b60405161011191906131c2565b60405180910390f35b61012d61012836600461279d565b6102fc565b60405161011191906131a6565b61014d6101483660046128b1565b61036a565b6040516101119190613197565b61016261040d565b60405161011191906131b4565b61018261017d366004612744565b610419565b6040516101119291906131d0565b6101a361019e36600461297b565b610463565b604051610111919061331c565b6101626101be366004612863565b610482565b6101626101d1366004612762565b61064e565b61016261067a565b6101626101ec36600461297b565b61067f565b6101626101ff366004612881565b610716565b61014d6102123660046128f7565b61073b565b6101a361022536600461295c565b61084f565b60008084600181111561023957fe5b14156102b557610248836108aa565b610251846108cf565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec906132ec565b60405180910390fd5b9392505050565b600080600061030a88610419565b91509150841561035a57600482601681111561032257fe5b14806103395750600a82601681111561033757fe5b145b801561034a57506000846101800151135b1561035a57600092505050610361565b6001925050505b95945050505050565b610372611ed1565b61037a611ed1565b60c0850151600090156103c3576103968660c0015186866108ea565b156103c3576103aa60108760c00151610716565b8261ffff8316604081106103ba57fe5b60200201526001015b6103d2866080015186866108ea565b151560011415610404576103eb600a8760800151610716565b8261ffff8316604081106103fb57fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561044e57fe5b92505067ffffffffffffffff83169050915091565b61046b611ef1565b61047785858585610912565b90505b949350505050565b6000600582601681111561049257fe5b14156104a057506014610649565b600f8260168111156104ae57fe5b14156104bc57506019610649565b60088260168111156104ca57fe5b14156104d85750601e610649565b60078260168111156104e657fe5b14156104f457506028610649565b600482601681111561050257fe5b141561051057506032610649565b600282601681111561051e57fe5b141561052c5750603c610649565b600982601681111561053a57fe5b141561054857506050610649565b601182601681111561055657fe5b14156105645750605a610649565b601282601681111561057257fe5b141561058057506064610649565b601382601681111561058e57fe5b141561059c5750606e610649565b60068260168111156105aa57fe5b14156105b857506078610649565b60108260168111156105c657fe5b14156105d457506082610649565b60158260168111156105e257fe5b14156105f05750608c610649565b60148260168111156105fe57fe5b141561060c57506096610649565b600a82601681111561061a57fe5b1415610628575060a0610649565b600082601681111561063657fe5b141561064557506103b6610649565b5060005b919050565b60008061065a84610419565b91505061067081846060015185600001516109ef565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff16158015906106e2575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b1561070a57610703826106f787878784610b32565b9063ffffffff610bfd16565b905061047a565b61047785858585610b32565b60008160f884601681111561072757fe5b60ff166001029060020a0217905092915050565b610743611ed1565b61074b611ed1565b600483601681111561075957fe5b1415610477576102208601516060015160009015156001148015610781575061016087015115155b156108455761078e611f5a565b6107ab88610160015189608001518a610220015160018b8b610ca8565b905060005b60108160ff161015610842578160ff8216601081106107cb57fe5b602002015115156107db57610842565b6107f98260ff8316601081106107ed57fe5b602002015189896108ea565b15156108045761083a565b61082260048360ff84166010811061081857fe5b6020020151610716565b84846040811061082e57fe5b60200201526001909201915b6001016107b0565b50505b5095945050505050565b610857611ef1565b61085f611ef1565b600081526101c08301516020808301919091526101e084015160608301526102008401519084015161089090610e67565b60000b0260a0820152610240929092015160e08301525090565b60008080806108be62015180865b04610f2e565b919450925090506103618383610fc6565b600080806108e062015180856108b8565b9695505050505050565b600083831080156108fb5750838210155b15610908575060016102f5565b5060009392505050565b61091a611ef1565b60008061092685610419565b9092509050600482601681111561093957fe5b14156109545761094b8787838761104c565b9250505061047a565b600382601681111561096257fe5b14156109745761094b87878387611067565b601482601681111561098257fe5b14156109945761094b87878387611143565b600a8260168111156109a257fe5b14156109b45761094b87878387611165565b60168260168111156109c257fe5b14156109d45761094b87878387611180565b60405160e560020a62461bcd0281526004016102ec9061330c565b600060018360088111156109ff57fe5b1480610a1657506003836008811115610a1457fe5b145b15610a2c57610a258483611261565b90506102f5565b6002836008811115610a3a57fe5b1480610a5157506004836008811115610a4f57fe5b145b15610a95576000610a628584611261565b9050610a6d856112bd565b610a76826112bd565b1415610a835790506102f5565b610a8d85846112ce565b9150506102f5565b6005836008811115610aa357fe5b1480610aba57506007836008811115610ab857fe5b145b15610ac957610a2584836112ce565b6006836008811115610ad757fe5b1480610aee57506008836008811115610aec57fe5b145b15610b2a576000610aff85846112ce565b9050610b0a856112bd565b610b13826112bd565b1415610b205790506102f5565b610a8d8584611261565b509192915050565b6000806000610b4085610419565b90925090506016826016811115610b5357fe5b1415610b645760009250505061047a565b6004826016811115610b7257fe5b1415610b845761094b8787838761131c565b6003826016811115610b9257fe5b1415610ba35760009250505061047a565b6014826016811115610bb157fe5b1415610bc35761094b87878387611381565b600a826016811115610bd157fe5b1415610be25760009250505061047a565b60405160e560020a62461bcd0281526004016102ec9061328c565b6000821580610c0a575081155b15610c1757506000610674565b82600019148015610c2b575060ff60020a82145b15610c4b5760405160e560020a62461bcd0281526004016102ec906132cc565b828202828482811515610c5a57fe5b0514610c7b5760405160e560020a62461bcd0281526004016102ec906132cc565b670de0b6b3a764000081058015156106705760405160e560020a62461bcd0281526004016102ec906132ac565b610cb0611f5a565b610cb8611f5a565b60608601516000901515610d2257610cd18986866108ea565b15610cec5788828260108110610ce357fe5b60200201526001015b610cf78886866108ea565b15610d1a5760018615151415610d1a5787828260108110610d1457fe5b60200201525b5090506108e0565b8860005b89821015610d8f57610d398288886108ea565b15610d7a57600e8310610d615760405160e560020a62461bcd0281526004016102ec906131fc565b81848460108110610d6e57fe5b60200201526001909201915b600101610d88898c83611395565b9150610d26565b60018815151415610dbd57610da58a88886108ea565b15610dbd5789848460108110610db757fe5b60200201525b600083118015610de75750610de784600019850160108110610ddb57fe5b602002015188886108ea565b15610e5857600089604001516001811115610dfe57fe5b148015610e0b5750600183115b8015610e175750818a14155b15610e5857838360108110610e2857fe5b602002015184600019850160108110610e3d57fe5b6020020152838360108110610e4e57fe5b6020020160008152505b50919998505050505050505050565b600080826009811115610e7657fe5b1415610e8457506001610649565b6001826009811115610e9257fe5b1415610ea15750600019610649565b6006826009811115610eaf57fe5b1415610ebd57506001610649565b6007826009811115610ecb57fe5b1415610eda5750600019610649565b6004826009811115610ee857fe5b1415610ef657506001610649565b6005826009811115610f0457fe5b1415610f135750600019610649565b60405160e560020a62461bcd0281526004016102ec9061327c565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f84605002811515610f8757fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60008160011480610fd75750816003145b80610fe25750816005145b80610fed5750816007145b80610ff85750816008145b80611003575081600a145b8061100e575081600c145b1561101b5750601f610674565b6002821461102b5750601e610674565b611034836114ab565b61103f57601c611042565b601d5b60ff169392505050565b611054611ef1565b5050600060e08301526020820152919050565b61106f611ef1565b6020840183905261038085015161108c908363ffffffff610bfd16565b6101808501526080840183905260008560e0015160018111156110ab57fe5b14156110d257846102c001516110c48660200151610e67565b60000b0260e085015261113a565b6111346111238560a001516106f7886102c001516106f76111008a602001518c606001518d600001516114d0565b6111138a8d606001518e600001516114d0565b8c604001518d6101e0015161153a565b60e08601519063ffffffff6115fe16565b60e08501525b50919392505050565b61114b611ef1565b50506020820152600060a0820181905260e0820152919050565b61116d611ef1565b5050600060a08301526020820152919050565b611188611ef1565b600084604001516000146111a05784604001516111b3565b6111b384876060015188600001516109ef565b6103a0870151604001519091508390600090156111ee5760006111db896103a0015185611649565b90508083116111ec57600180895291505b505b876103c00151604001518015611202575080155b15611231576000611218896103c0015185611649565b905080831161122a576002885261122f565b600388525b505b604087015115156112555761124f8689606001518a600001516109ef565b60408801525b50949695505050505050565b6000600182600181111561127157fe5b14156112b65761128083611753565b6006141561129a57611293836002611766565b9050610674565b6112a383611753565b600714156112b657611293836001611766565b5090919050565b6000808061084562015180856108b8565b600060018260018111156112de57fe5b14156112b6576112ed83611753565b600614156113005761129383600161177b565b61130983611753565b600714156112b65761129383600261177b565b6000808560e00151600181111561132f57fe5b141561135357846102c001516113488660200151610e67565b60000b02905061047a565b6104776111238560a001516106f7886102c001516106f76111008a602001518c606001518d600001516114d0565b60e083015161018084015101949350505050565b60008080856020015160058111156113a957fe5b14156113bf576107038484876000015102611766565b6001856020015160058111156113d157fe5b14156113ea576107038484876000015160070202611766565b6002856020015160058111156113fc57fe5b1415611412576107038484876000015102611790565b60038560200151600581111561142457fe5b141561143d576107038484876000015160030202611790565b60048560200151600581111561144f57fe5b1415611468576107038484876000015160060202611790565b60058560200151600581111561147a57fe5b1415611490576107038484876000015102611807565b60405160e560020a62461bcd0281526004016102ec9061321c565b6000600482061580156114c057506064820615155b8061067457505061019090061590565b600060038360088111156114e057fe5b14806114f7575060048360088111156114f557fe5b145b8061150d5750600783600881111561150b57fe5b145b806115235750600883600881111561152157fe5b145b1561152f5750826102f5565b61047a8484846109ef565b60008484101561155f5760405160e560020a62461bcd0281526004016102ec906132dc565b600083600681111561156d57fe5b141561157d57610703858561182e565b600183600681111561158b57fe5b141561159b57610703858561194e565b60028360068111156115a957fe5b14156115b9576107038585611979565b60048360068111156115c757fe5b14156115d7576107038585611998565b60038360068111156115e557fe5b14156115f657610703858584611a59565b50600161047a565b60008282018183128015906116135750838112155b80611628575060008312801561162857508381125b15156102f55760405160e560020a62461bcd0281526004016102ec9061325c565b600080808460200151600581111561165d57fe5b141561167157610a25838560000151611766565b60018460200151600581111561168357fe5b141561169a57610a25838560000151600702611766565b6002846020015160058111156116ac57fe5b14156116c057610a25838560000151611790565b6003846020015160058111156116d257fe5b14156116e957610a25838560000151600302611790565b6004846020015160058111156116fb57fe5b141561171257610a25838560000151600602611790565b60058460200151600581111561172457fe5b141561173857610a25838560000151611807565b60405160e560020a62461bcd0281526004016102ec9061326c565b6007620151809091046003010660010190565b62015180810282018281101561067457600080fd5b62015180810282038281111561067457600080fd5b60008080806117a262015180876108b8565b600c9188016000190182810493909301955091066001019250905060006117c98484610fc6565b9050808211156117d7578091505b620151808706620151806117ec868686611b2f565b02019450868510156117fd57600080fd5b5050505092915050565b600080808061181962015180876108b8565b91870194509250905060006117c98484610fc6565b60008061183a84611b95565b9050600061184784611b95565b9050600061185486611bb1565b6118605761016d611864565b61016e5b61ffff169050818314156118965761188c816118808888611bd3565b9063ffffffff611bee16565b9350505050610674565b60006118a186611bb1565b6118ad5761016d6118b1565b61016e5b61ffff16905060006118e2836118808a6118dd6118d58a600163ffffffff611cc016565b600180611ce8565b611bd3565b905060006118ff836118806118f988600180611ce8565b8b611bd3565b90506119416119256001611919888a63ffffffff611d0216565b9063ffffffff611d0216565b611935848463ffffffff6115fe16565b9063ffffffff6115fe16565b9998505050505050505050565b60006102f56101686118806201518061196d868863ffffffff611d0216565b9063ffffffff611d4416565b60006102f561016d6118806201518061196d868863ffffffff611d0216565b60008060008060008060006119ac89611d86565b9750955093506119bb88611d86565b945092509050601f8614156119cf57601e95505b82601f14156119dd57601e92505b60006119ef848863ffffffff611da416565b90506000611a03848863ffffffff611da416565b90506000611a17848863ffffffff611da416565b9050611a4961016861188085611935611a3787601e63ffffffff611def16565b6119358761016863ffffffff611def16565b9c9b505050505050505050505050565b6000806000806000806000611a6d8a611d86565b975095509350611a7c89611d86565b945092509050611a8b8a6108aa565b861415611a9757601e95505b8789148015611aa65750816002145b158015611aba5750611ab7896108aa565b83145b15611ac457601e92505b6000611ad6848863ffffffff611da416565b90506000611aea848863ffffffff611da416565b90506000611afe848863ffffffff611da416565b9050611b1e61016861188085611935611a3787601e63ffffffff611def16565b9d9c50505050505050505050505050565b60006107b2841015611b4057600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080611ba662015180856108b8565b509095945050505050565b6000808080611bc362015180866108b8565b91945092509050610361836114ab565b600081831115611be257600080fd5b50620151809190030490565b6000811515611c125760405160e560020a62461bcd0281526004016102ec9061322c565b821515611c2157506000610674565b670de0b6b3a7640000838102908482811515611c3957fe5b0514611c5a5760405160e560020a62461bcd0281526004016102ec9061329c565b82600019148015611c6e575060ff60020a84145b15611c8e5760405160e560020a62461bcd0281526004016102ec9061320c565b60008382811515611c9b57fe5b0590508015156106705760405160e560020a62461bcd0281526004016102ec9061324c565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec9061323c565b600062015180611cf9858585611b2f565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e64565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611e93565b60008080611d9762015180856108b8565b9196909550909350915050565b6000818303818312801590611db95750838113155b80611dce5750600083128015611dce57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec906132fc565b6000821515611e0057506000610674565b82600019148015611e14575060ff60020a82145b15611e345760405160e560020a62461bcd0281526004016102ec906132bc565b828202828482811515611e4357fe5b05146102f55760405160e560020a62461bcd0281526004016102ec906132bc565b60008184841115611e8b5760405160e560020a62461bcd0281526004016102ec91906131eb565b505050900390565b600081818411611eb95760405160e560020a62461bcd0281526004016102ec91906131eb565b5060008385811515611ec757fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b60006102f582356133ab565b60006102f58235613365565b60006102f58235613352565b60006102f582356133b6565b60006102f582356133c5565b60006102f582356133d4565b60006102f582356133e3565b60006102f582356133f2565b60006102f58235613401565b60006102f58235613410565b60006102f5823561341f565b60006102f5823561342e565b60006060828403121561201c57600080fd5b612026606061332b565b905060006120348484611f92565b825250602061204584848301611fc2565b602083015250604061205984828501611fc2565b60408301525092915050565b6000610500828403121561207857600080fd5b6120836102a061332b565b905060006120918484611ffe565b82525060206120a284848301611f92565b60208301525060406120b684828501611f92565b60408301525060606120ca84828501611f92565b60608301525060806120de84828501611f92565b60808301525060a06120f284828501611f92565b60a08301525060c061210684828501611f92565b60c08301525060e061211a84828501611f92565b60e08301525061010061212f84828501611f92565b6101008301525061012061214584828501611f92565b6101208301525061014061215b84828501611f92565b6101408301525061016061217184828501611f92565b6101608301525061018061218784828501611f92565b610180830152506101a061219d84828501611f92565b6101a0830152506101c06121b384828501612244565b6101c0830152506102406121c984828501612244565b6101e0830152506102c06121df84828501612244565b610200830152506103406121f584828501612244565b610220830152506103c061220b84828501612244565b61024083015250610440612221848285016122b3565b610260830152506104a0612237848285016122b3565b6102808301525092915050565b60006080828403121561225657600080fd5b612260608061332b565b9050600061226e8484611f92565b825250602061227f84848301611ff2565b602083015250604061229384828501611faa565b60408301525060606122a784828501611f86565b60608301525092915050565b6000606082840312156122c557600080fd5b6122cf606061332b565b905060006122dd8484611f92565b82525060206122ee84848301611ff2565b602083015250604061205984828501611f86565b6000610560828403121561231557600080fd5b61232061046061332b565b9050600061232e8484611faa565b825250602061233f84848301611fce565b602083015250604061235384828501611fda565b604083015250606061236784828501611f9e565b606083015250608061237b84828501611faa565b60808301525060a061238f84828501611ffe565b60a08301525060c06123a384828501611fb6565b60c08301525060e06123b784828501611faa565b60e0830152506101006123cc84828501611fb6565b610100830152506101206123e28482850161200a565b610120830152506101806123f88482850161200a565b610140830152506101e061240e84828501611f7a565b6101608301525061020061242484828501611f7a565b6101808301525061022061243a84828501611f92565b6101a08301525061024061245084828501611f92565b6101c08301525061026061246684828501611f92565b6101e08301525061028061247c84828501611f92565b610200830152506102a061249284828501611f92565b610220830152506102c06124a884828501611f92565b610240830152506102e06124be84828501611f92565b610260830152506103006124d484828501611f92565b610280830152506103206124ea84828501611f92565b6102a08301525061034061250084828501611f92565b6102c08301525061036061251684828501611f92565b6102e08301525061038061252c84828501611f92565b610300830152506103a061254284828501611f92565b610320830152506103c061255884828501611f92565b610340830152506103e061256e84828501611f92565b6103608301525061040061258484828501611f92565b6103808301525061042061259a848285016122b3565b6103a0830152506104806125b0848285016122b3565b6103c0830152506104e06125c684828501611f92565b6103e0830152506105006125dc84828501611f92565b610400830152506105206125f284828501611f92565b6104208301525061054061260884828501611f92565b6104408301525092915050565b60006101a0828403121561262857600080fd5b6126336101a061332b565b905060006126418484611fb6565b825250602061265284848301611f92565b602083015250604061266684828501611f92565b604083015250606061267a84828501611f92565b606083015250608061268e84828501611f92565b60808301525060a06126a284828501611f92565b60a08301525060c06126b684828501611f92565b60c08301525060e06126ca84828501611f92565b60e0830152506101006126df84828501611f92565b610100830152506101206126f584828501611f92565b6101208301525061014061270b84828501611f92565b6101408301525061016061272184828501611f92565b6101608301525061018061273784828501611f92565b6101808301525092915050565b60006020828403121561275657600080fd5b60006106708484611f92565b600080610580838503121561277657600080fd5b60006127828585611f92565b925050602061279385828601612302565b9150509250929050565b60008060008060006108e086880312156127b657600080fd5b60006127c28888611f92565b95505060206127d388828901612302565b9450506105806127e588828901612615565b9350506107206127f788828901611f86565b92505061074061280988828901612615565b9150509295509295909350565b600080600060c0848603121561282b57600080fd5b60006128378686611faa565b935050602061284886828701611f92565b925050604061285986828701612244565b9150509250925092565b60006020828403121561287557600080fd5b60006106708484611fe6565b6000806040838503121561289457600080fd5b60006128a08585611fe6565b925050602061279385828601611f92565b600080600061054084860312156128c757600080fd5b60006128d38686612065565b9350506105006128e586828701611f92565b92505061052061285986828701611f92565b600080600080610560858703121561290e57600080fd5b600061291a8787612065565b94505061050061292c87828801611f92565b93505061052061293e87828801611f92565b92505061054061295087828801611fe6565b91505092959194509250565b6000610560828403121561296f57600080fd5b60006106708484612302565b600080600080610740858703121561299257600080fd5b600061299e8787612302565b9450506105606129b087828801612615565b9350506107006129c287828801611f92565b92505061072061295087828801611f92565b6129dd81613355565b6129e682613352565b60005b82811015612a16576129fc858351612a2c565b612a058261335f565b6020959095019491506001016129e9565b5050505050565b612a2681613365565b82525050565b612a2681613352565b612a268161343d565b612a2681613448565b612a2681613453565b6000612a5b8261335b565b808452612a6f81602086016020860161345e565b612a788161348a565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602d81527f434547456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b603681527f434547456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b80516101a08301906130a38482612a35565b5060208201516130b66020850182612a2c565b5060408201516130c96040850182612a2c565b5060608201516130dc6060850182612a2c565b5060808201516130ef6080850182612a2c565b5060a082015161310260a0850182612a2c565b5060c082015161311560c0850182612a2c565b5060e082015161312860e0850182612a2c565b5061010082015161313d610100850182612a2c565b50610120820151613152610120850182612a2c565b50610140820151613167610140850182612a2c565b5061016082015161317c610160850182612a2c565b50610180820151613191610180850182612a2c565b50505050565b610800810161067482846129d4565b602081016106748284612a1d565b602081016106748284612a2c565b602081016106748284612a3e565b604081016131de8285612a47565b6102f56020830184612a2c565b602080825281016102f58184612a50565b6020808252810161067481612a85565b6020808252810161067481612adb565b6020808252810161067481612b31565b6020808252810161067481612b87565b6020808252810161067481612bdd565b6020808252810161067481612c0d565b6020808252810161067481612c63565b6020808252810161067481612cb9565b6020808252810161067481612d0f565b6020808252810161067481612d65565b6020808252810161067481612dbb565b6020808252810161067481612e11565b6020808252810161067481612e67565b6020808252810161067481612ebd565b6020808252810161067481612f13565b6020808252810161067481612f69565b6020808252810161067481612fe5565b602080825281016106748161303b565b6101a081016106748284613091565b60405181810167ffffffffffffffff8111828210171561334a57600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b60006004821061337657fe5b5090565b60006002821061337657fe5b60006017821061337657fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061067482613392565b60006009821061337657600080fd5b60006002821061337657600080fd5b60006004821061337657600080fd5b60006005821061337657600080fd5b6000600a821061337657600080fd5b60006007821061337657600080fd5b60006017821061337657600080fd5b60006006821061337657600080fd5b60006008821061337657600080fd5b60006106748261336a565b60006106748261337a565b600061067482613386565b60005b83811015613479578181015183820152602001613461565b838111156131915750506000910152565b601f01601f19169056fea265627a7a72305820eece524024b9f16861182f8a1109dfae9f5d41282385b6b9c42c033e4c4eee9c6c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.896Z" +} diff --git a/artifacts/ContractDefaultConvention.json b/artifacts/ContractDefaultConvention.json new file mode 100644 index 0000000..6f16215 --- /dev/null +++ b/artifacts/ContractDefaultConvention.json @@ -0,0 +1,41 @@ +{ + "contractName": "ContractDefaultConvention", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":\"ContractDefaultConvention\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060ae8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b81146053578063aaf5eb6814606b575b600080fd5b60596071565b60408051918252519081900360200190f35b6059607d565b670de0b6b3a764000081565b60128156fea165627a7a723058206144149334fe7bd0a27c4e73064e257ea596e49ae7501b1672b89dda8427474d0029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.838Z" +} diff --git a/artifacts/ContractRoleConvention.json b/artifacts/ContractRoleConvention.json new file mode 100644 index 0000000..4658b3a --- /dev/null +++ b/artifacts/ContractRoleConvention.json @@ -0,0 +1,41 @@ +{ + "contractName": "ContractRoleConvention", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":\"ContractRoleConvention\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060ae8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b81146053578063aaf5eb6814606b575b600080fd5b60596071565b60408051918252519081900360200190f35b6059607d565b670de0b6b3a764000081565b60128156fea165627a7a723058200753739626cc9ed124f60b5d3890e754f873ddd817c7d368499df54f8557c0100029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.839Z" +} diff --git a/artifacts/Core.json b/artifacts/Core.json new file mode 100644 index 0000000..40d3dcf --- /dev/null +++ b/artifacts/Core.json @@ -0,0 +1,372 @@ +{ + "contractName": "Core", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}}},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":\"Core\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061104b806100206000396000f3fe608060405234801561001057600080fd5b506004361061009a576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb11610078578063811322fb146100fe57806387467b6114610111578063aaf5eb6814610124578063e05a66e01461012c5761009a565b8063179331f31461009f5780636f37e55b146100c857806372540003146100dd575b600080fd5b6100b26100ad366004610d86565b61013f565b6040516100bf9190610ecc565b60405180910390f35b6100d0610228565b6040516100bf9190610ebe565b6100f06100eb366004610d2d565b610234565b6040516100bf929190610eda565b6100d061010c366004610dd3565b61027e565b6100d061011f366004610d4b565b61044a565b6100d0610476565b6100d061013a366004610df1565b61047b565b60008084600181111561014e57fe5b14156101ca5761015d836104a0565b610166846104ce565b1480156101b5575060028260200151600581111561018057fe5b148061019b575060038260200151600581111561019957fe5b145b806101b557506004826020015160058111156101b357fe5b145b156101c257506000610221565b506001610221565b60018460018111156101d857fe5b14156101e657506001610221565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021890610ef5565b60405180910390fd5b9392505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561026957fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561028e57fe5b141561029c57506014610445565b600f8260168111156102aa57fe5b14156102b857506019610445565b60088260168111156102c657fe5b14156102d45750601e610445565b60078260168111156102e257fe5b14156102f057506028610445565b60048260168111156102fe57fe5b141561030c57506032610445565b600282601681111561031a57fe5b14156103285750603c610445565b600982601681111561033657fe5b141561034457506050610445565b601182601681111561035257fe5b14156103605750605a610445565b601282601681111561036e57fe5b141561037c57506064610445565b601382601681111561038a57fe5b14156103985750606e610445565b60068260168111156103a657fe5b14156103b457506078610445565b60108260168111156103c257fe5b14156103d057506082610445565b60158260168111156103de57fe5b14156103ec5750608c610445565b60148260168111156103fa57fe5b141561040857506096610445565b600a82601681111561041657fe5b1415610424575060a0610445565b600082601681111561043257fe5b141561044157506103b6610445565b5060005b919050565b60008061045684610234565b91505061046c81846060015185600001516104e9565b9150505b92915050565b601281565b60008160f884601681111561048c57fe5b60ff166001029060020a0217905092915050565b60008080806104b462015180865b0461062c565b919450925090506104c583836106c4565b95945050505050565b600080806104df62015180856104ae565b9695505050505050565b600060018360088111156104f957fe5b14806105105750600383600881111561050e57fe5b145b156105265761051f848361074a565b9050610221565b600283600881111561053457fe5b148061054b5750600483600881111561054957fe5b145b1561058f57600061055c858461074a565b9050610567856107a6565b610570826107a6565b141561057d579050610221565b61058785846107c1565b915050610221565b600583600881111561059d57fe5b14806105b4575060078360088111156105b257fe5b145b156105c35761051f84836107c1565b60068360088111156105d157fe5b14806105e8575060088360088111156105e657fe5b145b156106245760006105f985846107c1565b9050610604856107a6565b61060d826107a6565b141561061a579050610221565b610587858461074a565b509192915050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561068557fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806106d55750816003145b806106e05750816005145b806106eb5750816007145b806106f65750816008145b80610701575081600a145b8061070c575081600c145b156107195750601f610470565b600282146107295750601e610470565b6107328361080f565b61073d57601c610740565b601d5b60ff169392505050565b6000600182600181111561075a57fe5b141561079f5761076983610834565b600614156107835761077c836002610847565b9050610470565b61078c83610834565b6007141561079f5761077c836001610847565b5090919050565b600080806107b762015180856104ae565b5095945050505050565b600060018260018111156107d157fe5b141561079f576107e083610834565b600614156107f35761077c83600161085c565b6107fc83610834565b6007141561079f5761077c83600261085c565b60006004820615801561082457506064820615155b8061047057505061019090061590565b6007620151809091046003010660010190565b62015180810282018281101561047057600080fd5b62015180810282038281111561047057600080fd5b60006102218235610f64565b60006102218235610f6f565b60006102218235610f2c565b60006102218235610f74565b60006102218235610f83565b60006102218235610f92565b60006102218235610fa1565b60006102218235610fb0565b60006102218235610fbf565b60006102218235610fce565b60006102218235610fdd565b60006102218235610fec565b60006060828403121561091357600080fd5b61091d6060610f05565b9050600061092b8484610889565b825250602061093c848483016108b9565b6020830152506040610950848285016108b9565b60408301525092915050565b60006080828403121561096e57600080fd5b6109786080610f05565b905060006109868484610889565b8252506020610997848483016108e9565b60208301525060406109ab848285016108a1565b60408301525060606109bf8482850161087d565b60608301525092915050565b6000606082840312156109dd57600080fd5b6109e76060610f05565b905060006109f58484610889565b8252506020610a06848483016108e9565b60208301525060406109508482850161087d565b60006105608284031215610a2d57600080fd5b610a38610460610f05565b90506000610a4684846108a1565b8252506020610a57848483016108c5565b6020830152506040610a6b848285016108d1565b6040830152506060610a7f84828501610895565b6060830152506080610a93848285016108a1565b60808301525060a0610aa7848285016108f5565b60a08301525060c0610abb848285016108ad565b60c08301525060e0610acf848285016108a1565b60e083015250610100610ae4848285016108ad565b61010083015250610120610afa84828501610901565b61012083015250610180610b1084828501610901565b610140830152506101e0610b2684828501610871565b61016083015250610200610b3c84828501610871565b61018083015250610220610b5284828501610889565b6101a083015250610240610b6884828501610889565b6101c083015250610260610b7e84828501610889565b6101e083015250610280610b9484828501610889565b610200830152506102a0610baa84828501610889565b610220830152506102c0610bc084828501610889565b610240830152506102e0610bd684828501610889565b61026083015250610300610bec84828501610889565b61028083015250610320610c0284828501610889565b6102a083015250610340610c1884828501610889565b6102c083015250610360610c2e84828501610889565b6102e083015250610380610c4484828501610889565b610300830152506103a0610c5a84828501610889565b610320830152506103c0610c7084828501610889565b610340830152506103e0610c8684828501610889565b61036083015250610400610c9c84828501610889565b61038083015250610420610cb2848285016109cb565b6103a083015250610480610cc8848285016109cb565b6103c0830152506104e0610cde84828501610889565b6103e083015250610500610cf484828501610889565b61040083015250610520610d0a84828501610889565b61042083015250610540610d2084828501610889565b6104408301525092915050565b600060208284031215610d3f57600080fd5b600061046c8484610889565b6000806105808385031215610d5f57600080fd5b6000610d6b8585610889565b9250506020610d7c85828601610a1a565b9150509250929050565b600080600060c08486031215610d9b57600080fd5b6000610da786866108a1565b9350506020610db886828701610889565b9250506040610dc98682870161095c565b9150509250925092565b600060208284031215610de557600080fd5b600061046c84846108dd565b60008060408385031215610e0457600080fd5b6000610e1085856108dd565b9250506020610d7c85828601610889565b610e2a81610f2c565b82525050565b610e2a81610ffb565b610e2a81611006565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602081016104708284610e21565b602081016104708284610e30565b60408101610ee88285610e39565b6102216020830184610e21565b6020808252810161047081610e42565b60405181810167ffffffffffffffff81118282101715610f2457600080fd5b604052919050565b90565b600060028210610f3b57fe5b5090565b600060178210610f3b57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061047082610f4b565b151590565b600060098210610f3b57600080fd5b600060028210610f3b57600080fd5b600060048210610f3b57600080fd5b600060058210610f3b57600080fd5b6000600a8210610f3b57600080fd5b600060078210610f3b57600080fd5b600060178210610f3b57600080fd5b600060068210610f3b57600080fd5b600060088210610f3b57600080fd5b600061047082610f2f565b600061047082610f3f56fea265627a7a72305820d619db5bae66b12ab2fff7edb0813a97e88ad798ca530b9ae8a77514cb4e527e6c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.850Z" +} diff --git a/artifacts/DayCountConvention.json b/artifacts/DayCountConvention.json new file mode 100644 index 0000000..90b8b97 --- /dev/null +++ b/artifacts/DayCountConvention.json @@ -0,0 +1,41 @@ +{ + "contractName": "DayCountConvention", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":\"DayCountConvention\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060ae8061001f6000396000f3fe6080604052348015600f57600080fd5b5060043610604e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b81146053578063aaf5eb6814606b575b600080fd5b60596071565b60408051918252519081900360200190f35b6059607d565b670de0b6b3a764000081565b60128156fea165627a7a723058201f98fde3cda1dc64faba307f90b160f005d9a6e726881b7fb8b046ef39fada530029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.843Z" +} diff --git a/artifacts/EndOfMonthConvention.json b/artifacts/EndOfMonthConvention.json new file mode 100644 index 0000000..388d89a --- /dev/null +++ b/artifacts/EndOfMonthConvention.json @@ -0,0 +1,86 @@ +{ + "contractName": "EndOfMonthConvention", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}}},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":\"EndOfMonthConvention\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061057e806100206000396000f3fe608060405234801561001057600080fd5b506004361061005d577c01000000000000000000000000000000000000000000000000000000006000350463179331f381146100625780636f37e55b1461008b578063aaf5eb68146100a0575b600080fd5b6100756100703660046103cf565b6100a8565b60405161008291906104b0565b60405180910390f35b610093610191565b60405161008291906104be565b61009361019d565b6000808460018111156100b757fe5b1415610133576100c6836101a2565b6100cf846101d0565b14801561011e57506002826020015160058111156100e957fe5b1480610104575060038260200151600581111561010257fe5b145b8061011e575060048260200151600581111561011c57fe5b145b1561012b5750600061018a565b50600161018a565b600184600181111561014157fe5b141561014f5750600161018a565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610181906104cc565b60405180910390fd5b9392505050565b670de0b6b3a764000081565b601281565b60008080806101b662015180865b046101eb565b919450925090506101c78383610283565b95945050505050565b600080806101e162015180856101b0565b9695505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561024457fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806102945750816003145b8061029f5750816005145b806102aa5750816007145b806102b55750816008145b806102c0575081600a145b806102cb575081600c145b156102d85750601f610305565b600282146102e85750601e610305565b6102f18361030b565b6102fc57601c6102ff565b601d5b60ff1690505b92915050565b60006004820615801561032057506064820615155b8061030557505061019090061590565b600061018a8235610516565b600061018a823561051b565b600061018a823561052a565b60006080828403121561036657600080fd5b61037060806104dc565b9050600061037e84846103c3565b825250602061038f84848301610348565b60208301525060406103a38482850161033c565b60408301525060606103b784828501610330565b60608301525092915050565b600061018a8235610513565b600080600060c084860312156103e457600080fd5b60006103f0868661033c565b9350506020610401868287016103c3565b925050604061041286828701610354565b9150509250925092565b61042581610539565b82525050565b61042581610513565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b60208101610305828461041c565b60208101610305828461042b565b6020808252810161030581610434565b60405181810167ffffffffffffffff811182821017156104fb57600080fd5b604052919050565b60006002821061050f57fe5b5090565b90565b151590565b60006002821061050f57600080fd5b60006006821061050f57600080fd5b60006103058261050356fea265627a7a72305820d803deab1131a15616beca1e036f5eb36f148ac9cc04903a3f7a3ba5ad97a4346c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.849Z" +} diff --git a/artifacts/IEngine.json b/artifacts/IEngine.json new file mode 100644 index 0000000..0012a27 --- /dev/null +++ b/artifacts/IEngine.json @@ -0,0 +1,1739 @@ +{ + "contractName": "IEngine", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeInitialState", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computeStateForEvent", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computePayoffForEvent", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + } + ], + "name": "computeNonCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + }, + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "computeCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "hasUnderlying", + "type": "bool" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "underlyingState", + "type": "tuple" + } + ], + "name": "isEventScheduled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "", + "bytecode": "0x", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.902Z" +} diff --git a/artifacts/Migrations.json b/artifacts/Migrations.json new file mode 100644 index 0000000..c8404ec --- /dev/null +++ b/artifacts/Migrations.json @@ -0,0 +1,75 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Migrations.sol\":{\"keccak256\":\"0x221b9f8c035c16b26324d32dcf40eb41f4aeab6eafac869dc1c851c20609d3d2\",\"urls\":[\"bzzr://2cb7fcf8911c7c8e3804edb699a49d731ac9ba9e30861acd786c525dc19a31d7\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060008054600160a060020a03191633179055610230806100326000396000f3fe608060405234801561001057600080fd5b5060043610610068577c010000000000000000000000000000000000000000000000000000000060003504630900f010811461006d578063445df0ac146100a25780638da5cb5b146100bc578063fdacd576146100ed575b600080fd5b6100a06004803603602081101561008357600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661010a565b005b6100aa6101bd565b60408051918252519081900360200190f35b6100c46101c3565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6100a06004803603602081101561010357600080fd5b50356101df565b60005473ffffffffffffffffffffffffffffffffffffffff163314156101ba5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b1580156101a057600080fd5b505af11580156101b4573d6000803e3d6000fd5b50505050505b50565b60015481565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60005473ffffffffffffffffffffffffffffffffffffffff163314156101ba5760015556fea165627a7a7230582009fcd4e59d4783d315a715178a64a3995b83b580e8547e1d43db0fd99dfb8fc50029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.898Z" +} diff --git a/artifacts/PAMEngine.json b/artifacts/PAMEngine.json new file mode 100644 index 0000000..ef48293 --- /dev/null +++ b/artifacts/PAMEngine.json @@ -0,0 +1,2070 @@ +{ + "contractName": "PAMEngine", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computeStateForEvent", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "_event", + "type": "bytes32" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "computePayoffForEvent", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeInitialState", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + } + ], + "name": "computeNonCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "contractDealDate", + "type": "uint256" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "initialExchangeDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "terminationDate", + "type": "uint256" + }, + { + "name": "purchaseDate", + "type": "uint256" + }, + { + "name": "capitalizationEndDate", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfInterestPayment", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfRateReset", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfScalingIndex", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfFee", + "type": "uint256" + }, + { + "name": "cycleAnchorDateOfPrincipalRedemption", + "type": "uint256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfInterestPayment", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfRateReset", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfScalingIndex", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfFee", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycleOfPrincipalRedemption", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "name": "segmentStart", + "type": "uint256" + }, + { + "name": "segmentEnd", + "type": "uint256" + }, + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "computeCyclicScheduleSegment", + "outputs": [ + { + "name": "", + "type": "bytes32[64]" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "hasUnderlying", + "type": "bool" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "underlyingState", + "type": "tuple" + } + ], + "name": "isEventScheduled", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a PAM contract implements the STF and POF of the Actus standard for a PAM contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":\"PAMEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":{\"keccak256\":\"0xfd2fc922a41da65749fdef88fb02dcc6c9b29c46f19b1e549e8cf6057812cf33\",\"urls\":[\"bzzr://e6a1ee7b081addbbef779028adefcddb4630ca1a24bf02278f7a0493e3059028\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061433a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff366004613682565b61022a565b604051610111919061402e565b60405180910390f35b61012d610128366004613609565b6102fc565b6040516101119190614012565b61014d61014836600461371d565b610307565b6040516101119190614003565b610162610434565b6040516101119190614020565b61018261017d3660046135b0565b610440565b60405161011192919061403c565b6101a361019e3660046137e7565b61048a565b6040516101119190614188565b6101626101be3660046136cf565b6104a9565b6101626101d13660046135ce565b610675565b6101626106a1565b6101626101ec3660046137e7565b6106a6565b6101626101ff3660046136ed565b61073d565b61014d610212366004613763565b610762565b6101a36102253660046137c8565b610ce4565b60008084600181111561023957fe5b14156102b55761024883610d57565b61025184610d85565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec90614168565b60405180910390fd5b9392505050565b600195945050505050565b61030f612d3d565b610317612d3d565b60c0850151600090158015610336575061033686606001518686610da0565b156103635761034a6005876060015161073d565b8261ffff83166040811061035a57fe5b60200201526001015b60c0860151156103a95761037c8660c001518686610da0565b156103a95761039060108760c0015161073d565b8261ffff8316604081106103a057fe5b60200201526001015b60a0860151156103ef576103c28660a001518686610da0565b156103ef576103d660158760a0015161073d565b8261ffff8316604081106103e657fe5b60200201526001015b6103fe86608001518686610da0565b1561042b57610412600a876080015161073d565b8261ffff83166040811061042257fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561047557fe5b92505067ffffffffffffffff83169050915091565b610492612d5d565b61049e85858585610dc8565b90505b949350505050565b600060058260168111156104b957fe5b14156104c757506014610670565b600f8260168111156104d557fe5b14156104e357506019610670565b60088260168111156104f157fe5b14156104ff5750601e610670565b600782601681111561050d57fe5b141561051b57506028610670565b600482601681111561052957fe5b141561053757506032610670565b600282601681111561054557fe5b14156105535750603c610670565b600982601681111561056157fe5b141561056f57506050610670565b601182601681111561057d57fe5b141561058b5750605a610670565b601282601681111561059957fe5b14156105a757506064610670565b60138260168111156105b557fe5b14156105c35750606e610670565b60068260168111156105d157fe5b14156105df57506078610670565b60108260168111156105ed57fe5b14156105fb57506082610670565b601582601681111561060957fe5b14156106175750608c610670565b601482601681111561062557fe5b141561063357506096610670565b600a82601681111561064157fe5b141561064f575060a0610670565b600082601681111561065d57fe5b141561066c57506103b6610670565b5060005b919050565b60008061068184610440565b9150506106978184606001518560000151610fa5565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff1615801590610709575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b156107315761072a8261071e878787846110e8565b9063ffffffff6112b016565b90506104a1565b61049e858585856110e8565b60008160f884601681111561074e57fe5b60ff166001029060020a0217905092915050565b61076a612d3d565b610772612d3d565b600883601681111561078057fe5b141561089b576101c086015160600151600090151560011480156107a8575061010087015115155b80156107bd5750866101800151876101000151105b15610899576107ca612dc6565b6107ff8860e001516000146107e3578860e001516107ea565b8861010001515b8961018001518a6101c0015160008b8b61135b565b905060005b60108160ff161015610896578160ff82166010811061081f57fe5b6020020151151561082f57610896565b61084d8260ff83166010811061084157fe5b60200201518989610da0565b15156108585761088e565b61087660088360ff84166010811061086c57fe5b602002015161073d565b84846040811061088257fe5b60200201526001909201915b600101610804565b50505b505b60078360168111156108a957fe5b1415610a12576101c086015160600151600090151560011480156108d1575061010087015115155b80156108e0575060e087015115155b80156108f55750866101800151876101000151105b156109c757610902612dc6565b61091f8861010001518960e001518a6101c0015160008b8b61135b565b905060005b60108160ff1610156109c4578160ff82166010811061093f57fe5b6020020151151561094f576109c4565b6109618260ff83166010811061084157fe5b151561096c576109bc565b60e08901518260ff83166010811061098057fe5b60200201511415610990576109bc565b6109a460078360ff84166010811061086c57fe5b8484604081106109b057fe5b60200201526001909201915b600101610924565b50505b8661018001518760e001511015610a10576109e78760e001518787610da0565b15610a10576109fb60078860e0015161073d565b828260408110610a0757fe5b60200201526001015b505b6012836016811115610a2057fe5b1415610af8576101e08601516060015160009015156001148015610a48575061012087015115155b15610af657610a55612dc6565b610a7288610120015189608001518a6101e0015160008b8b61135b565b905060005b60108160ff161015610af3578160ff821660108110610a9257fe5b60200201511515610aa257610af3565b610ab48260ff83166010811061084157fe5b1515610abf57610aeb565b610ad360128360ff84166010811061086c57fe5b848460408110610adf57fe5b60200201526001909201915b600101610a77565b50505b505b6004836016811115610b0657fe5b1415610bde576102208601516060015160009015156001148015610b2e575061016087015115155b15610bdc57610b3b612dc6565b610b5888610160015189608001518a610220015160018b8b61135b565b905060005b60108160ff161015610bd9578160ff821660108110610b7857fe5b60200201511515610b8857610bd9565b610b9a8260ff83166010811061084157fe5b1515610ba557610bd1565b610bb960048360ff84166010811061086c57fe5b848460408110610bc557fe5b60200201526001909201915b600101610b5d565b50505b505b6013836016811115610bec57fe5b141561049e5760008087516007811115610c0257fe5b141580610c1c5750600287516007811115610c1957fe5b14155b8015610c2c575061014087015115155b15610cda57610c39612dc6565b610c5688610140015189608001518a610200015160018b8b61135b565b905060005b60108160ff161015610cd7578160ff821660108110610c7657fe5b60200201511515610c8657610cd7565b610c988260ff83166010811061084157fe5b1515610ca357610ccf565b610cb760138360ff84166010811061086c57fe5b848460408110610cc357fe5b60200201526001909201915b600101610c5b565b50505b5095945050505050565b610cec612d5d565b610cf4612d5d565b60008152670de0b6b3a764000061014082018190526101208201526101c083015160208201526101e0830151606082015261020083015160a082015261022083015161010082015261026083015160c08201526102409092015160e08301525090565b6000808080610d6b62015180865b0461151a565b91945092509050610d7c83836115b2565b95945050505050565b60008080610d966201518085610d65565b9695505050505050565b60008383108015610db15750838210155b15610dbe575060016102f5565b5060009392505050565b610dd0612d5d565b600080610ddc85610440565b90925090506000826016811115610def57fe5b1415610e0a57610e0187878387611638565b925050506104a1565b6004826016811115610e1857fe5b1415610e2a57610e0187878387611702565b6005826016811115610e3857fe5b1415610e4a57610e0187878387611764565b6007826016811115610e5857fe5b1415610e6a57610e01878783876117c9565b6008826016811115610e7857fe5b1415610e8a57610e0187878387611865565b600e826016811115610e9857fe5b1415610eaa57610e0187878387611638565b600a826016811115610eb857fe5b1415610eca57610e01878783876118b7565b600b826016811115610ed857fe5b1415610eea57610e0187878387611638565b6011826016811115610ef857fe5b1415610f0a57610e0187878387611943565b6012826016811115610f1857fe5b1415610f2a57610e01878783876119d7565b6013826016811115610f3857fe5b1415610f4a57610e0187878387611b26565b6015826016811115610f5857fe5b1415610f6a57610e0187878387611c89565b6016826016811115610f7857fe5b1415610f8a57610e0187878387611cd0565b60405160e560020a62461bcd0281526004016102ec90614118565b60006001836008811115610fb557fe5b1480610fcc57506003836008811115610fca57fe5b145b15610fe257610fdb8483611db1565b90506102f5565b6002836008811115610ff057fe5b14806110075750600483600881111561100557fe5b145b1561104b5760006110188584611db1565b905061102385611e0d565b61102c82611e0d565b14156110395790506102f5565b6110438584611e1e565b9150506102f5565b600583600881111561105957fe5b14806110705750600783600881111561106e57fe5b145b1561107f57610fdb8483611e1e565b600683600881111561108d57fe5b14806110a4575060088360088111156110a257fe5b145b156110e05760006110b58584611e1e565b90506110c085611e0d565b6110c982611e0d565b14156110d65790506102f5565b6110438584611db1565b509192915050565b60008060006110f685610440565b9092509050600082601681111561110957fe5b141561111a576000925050506104a1565b600782601681111561112857fe5b1415611139576000925050506104a1565b601182601681111561114757fe5b1415611158576000925050506104a1565b601282601681111561116657fe5b1415611177576000925050506104a1565b601382601681111561118557fe5b1415611196576000925050506104a1565b60168260168111156111a457fe5b14156111b5576000925050506104a1565b60048260168111156111c357fe5b14156111d557610e0187878387611e6c565b60058260168111156111e357fe5b14156111f557610e0187878387611f05565b600882601681111561120357fe5b141561121557610e0187878387611f43565b600e82601681111561122357fe5b141561123557610e0187878387611fab565b600a82601681111561124357fe5b141561125557610e0187878387611fcc565b600b82601681111561126357fe5b141561127557610e0187878387611fea565b601582601681111561128357fe5b141561129557610e01878783876120cf565b60405160e560020a62461bcd0281526004016102ec90614108565b60008215806112bd575081155b156112ca5750600061069b565b826000191480156112de575060ff60020a82145b156112fe5760405160e560020a62461bcd0281526004016102ec90614148565b82820282848281151561130d57fe5b051461132e5760405160e560020a62461bcd0281526004016102ec90614148565b670de0b6b3a764000081058015156106975760405160e560020a62461bcd0281526004016102ec90614128565b611363612dc6565b61136b612dc6565b606086015160009015156113d557611384898686610da0565b1561139f578882826010811061139657fe5b60200201526001015b6113aa888686610da0565b156113cd57600186151514156113cd57878282601081106113c757fe5b60200201525b509050610d96565b8860005b89821015611442576113ec828888610da0565b1561142d57600e83106114145760405160e560020a62461bcd0281526004016102ec90614068565b8184846010811061142157fe5b60200201526001909201915b60010161143b898c83612126565b91506113d9565b60018815151415611470576114588a8888610da0565b15611470578984846010811061146a57fe5b60200201525b60008311801561149a575061149a8460001985016010811061148e57fe5b60200201518888610da0565b1561150b576000896040015160018111156114b157fe5b1480156114be5750600183115b80156114ca5750818a14155b1561150b578383601081106114db57fe5b6020020151846000198501601081106114f057fe5b602002015283836010811061150157fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561157357fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806115c35750816003145b806115ce5750816005145b806115d95750816007145b806115e45750816008145b806115ef575081600a145b806115fa575081600c145b156116075750601f61069b565b600282146116175750601e61069b565b6116208361223c565b61162b57601c61162e565b601d5b60ff169392505050565b611640612d5d565b600061167f61165c866020015188606001518960000151612261565b61166f8689606001518a60000151612261565b8860400151896101e001516122cb565b90506116b56116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c08701519063ffffffff61238f16565b60c086015260a08501516102c08701516116f0916116df91849161071e919063ffffffff6112b016565b60e08701519063ffffffff61238f16565b60e08601525050506020820152919050565b61170a612d5d565b600061172661165c866020015188606001518960000151612261565b905061174b6116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b61176c612d5d565b600061178861165c866020015188606001518960000151612261565b905085610200015161179d87602001516123da565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b6117d1612d5d565b60006117ed61165c866020015188606001518960000151612261565b90506118376118266118158361071e8960a001518a61010001516112b090919063ffffffff16565b60c08801519063ffffffff61238f16565b60a08701519063ffffffff61238f16565b60a08601819052600060c08701526102c08701516116f0916116df91849161071e919063ffffffff6112b016565b61186d612d5d565b600061188961165c866020015188606001518960000151612261565b600060c087015260a08601516102c08801519192506116f0916116df91849161071e9163ffffffff6112b016565b6118bf612d5d565b60006118db61165c866020015188606001518960000151612261565b90506119006116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c086015260a08501516102c087015161192a916116df91849161071e919063ffffffff6112b016565b60e08601525050600060a0840152506020820152919050565b61194b612d5d565b600061196761165c866020015188606001518960000151612261565b905061198c6116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c086015260a08501516102c08701516119b6916116df91849161071e919063ffffffff6112b016565b60e08601525050506102e09290920151610100820152602081019190915290565b6119df612d5d565b6102a0850151610280860151600091611a0f91611a0390869063ffffffff6112b016565b9063ffffffff61238f16565b90506000611a2b866101000151836124a190919063ffffffff16565b9050611a5a876104200151611a4e896104400151846124ec90919063ffffffff16565b9063ffffffff6124fc16565b610100870151909150611a73908263ffffffff61238f16565b9150611a96876103e00151611a4e896104000151856124ec90919063ffffffff16565b91506000611ad7611ab488602001518a606001518b60000151612261565b611ac7888b606001518c60000151612261565b8a604001518b6101e001516122cb565b9050611b0d611afc8261071e8a60a001518b61010001516112b090919063ffffffff16565b60c08901519063ffffffff61238f16565b60c0880152505061010085015250506020820152919050565b611b2e612d5d565b6000611b4a61165c866020015188606001518960000151612261565b9050611b6f6116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c086015260a08501516102c0870151611b99916116df91849161071e919063ffffffff6112b016565b60e086015260048660a001516007811115611bb057fe5b1480611bcb575060058660a001516007811115611bc957fe5b145b80611be5575060068660a001516007811115611be357fe5b145b80611bff575060078660a001516007811115611bfd57fe5b145b15611c0d5760006101208601525b60018660a001516007811115611c1f57fe5b1480611c3a575060038660a001516007811115611c3857fe5b145b80611c54575060058660a001516007811115611c5257fe5b145b80611c6e575060078660a001516007811115611c6c57fe5b145b15611c7c5760006101408601525b5050506020820152919050565b611c91612d5d565b6000611cad61165c866020015188606001518960000151612261565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611cd8612d5d565b60008460400151600014611cf0578460400151611d03565b611d038487606001518860000151610fa5565b6103a087015160400151909150839060009015611d3e576000611d2b896103a001518561250c565b9050808311611d3c57600180895291505b505b876103c00151604001518015611d52575080155b15611d81576000611d68896103c001518561250c565b9050808311611d7a5760028852611d7f565b600388525b505b60408701511515611da557611d9f8689606001518a60000151610fa5565b60408801525b50949695505050505050565b60006001826001811115611dc157fe5b1415611e0657611dd083612616565b60061415611dea57611de3836002612629565b905061069b565b611df383612616565b60071415611e0657611de3836001612629565b5090919050565b60008080610cda6201518085610d65565b60006001826001811115611e2e57fe5b1415611e0657611e3d83612616565b60061415611e5057611de383600161263e565b611e5983612616565b60071415611e0657611de383600261263e565b6000808560e001516001811115611e7f57fe5b1415611ea357846102c00151611e9886602001516123da565b60000b0290506104a1565b61049e611ef48560a0015161071e886102c0015161071e611ed18a602001518c606001518d60000151612261565b611ee48a8d606001518e60000151612261565b8c604001518d6101e001516122cb565b60e08601519063ffffffff61238f16565b6000611f2485610320015186610200015161238f90919063ffffffff16565b611f3186602001516123da565b6000190260000b029050949350505050565b600061049e611f996116a48660a0015161071e88610100015161071e611f768b602001518d606001518e60000151612261565b611f898b8e606001518f60000151612261565b8d604001518e6101e001516122cb565b6101208601519063ffffffff6112b016565b60008360a00151611fbf86602001516123da565b60000b0295945050505050565b600061049e8460a001518561014001516112b090919063ffffffff16565b600060018560c001516003811115611ffe57fe5b141561201757846103000151611e9886602001516123da565b60028560c00151600381111561202957fe5b141561208a5761207d8460a0015161071e87610300015161071e61205a89602001518b606001518c60000151612261565b61206d898c606001518d60000151612261565b8b604001518c6101e001516122cb565b611e9886602001516123da565b61207d8460a0015161071e6120ac876020015189606001518a60000151612261565b6120bf878a606001518b60000151612261565b89604001518a6101e001516122cb565b60006121196120ff8560a0015161071e87610100015161071e611ed18a602001518c606001518d60000151612261565b60c0860151610340880151611a039163ffffffff61238f16565b611fbf86602001516123da565b600080808560200151600581111561213a57fe5b14156121505761072a8484876000015102612629565b60018560200151600581111561216257fe5b141561217b5761072a8484876000015160070202612629565b60028560200151600581111561218d57fe5b14156121a35761072a8484876000015102612653565b6003856020015160058111156121b557fe5b14156121ce5761072a8484876000015160030202612653565b6004856020015160058111156121e057fe5b14156121f95761072a8484876000015160060202612653565b60058560200151600581111561220b57fe5b14156122215761072a84848760000151026126ca565b60405160e560020a62461bcd0281526004016102ec90614088565b60006004820615801561225157506064820615155b8061069b57505061019090061590565b6000600383600881111561227157fe5b14806122885750600483600881111561228657fe5b145b8061229e5750600783600881111561229c57fe5b145b806122b4575060088360088111156122b257fe5b145b156122c05750826102f5565b6104a1848484610fa5565b6000848410156122f05760405160e560020a62461bcd0281526004016102ec90614158565b60008360068111156122fe57fe5b141561230e5761072a85856126f1565b600183600681111561231c57fe5b141561232c5761072a8585612805565b600283600681111561233a57fe5b141561234a5761072a8585612830565b600483600681111561235857fe5b14156123685761072a858561284f565b600383600681111561237657fe5b14156123875761072a858584612910565b5060016104a1565b60008282018183128015906123a45750838112155b806123b957506000831280156123b957508381125b15156102f55760405160e560020a62461bcd0281526004016102ec906140c8565b6000808260098111156123e957fe5b14156123f757506001610670565b600182600981111561240557fe5b14156124145750600019610670565b600682600981111561242257fe5b141561243057506001610670565b600782600981111561243e57fe5b141561244d5750600019610670565b600482600981111561245b57fe5b141561246957506001610670565b600582600981111561247757fe5b14156124865750600019610670565b60405160e560020a62461bcd0281526004016102ec906140e8565b60008183038183128015906124b65750838113155b806124cb57506000831280156124cb57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec90614178565b600081831215611e065750919050565b600081831315611e0657816102f5565b600080808460200151600581111561252057fe5b141561253457610fdb838560000151612629565b60018460200151600581111561254657fe5b141561255d57610fdb838560000151600702612629565b60028460200151600581111561256f57fe5b141561258357610fdb838560000151612653565b60038460200151600581111561259557fe5b14156125ac57610fdb838560000151600302612653565b6004846020015160058111156125be57fe5b14156125d557610fdb838560000151600602612653565b6005846020015160058111156125e757fe5b14156125fb57610fdb8385600001516126ca565b60405160e560020a62461bcd0281526004016102ec906140d8565b6007620151809091046003010660010190565b62015180810282018281101561069b57600080fd5b62015180810282038281111561069b57600080fd5b60008080806126656201518087610d65565b600c91880160001901828104939093019550910660010192509050600061268c84846115b2565b90508082111561269a578091505b620151808706620151806126af8686866129e6565b02019450868510156126c057600080fd5b5050505092915050565b60008080806126dc6201518087610d65565b918701945092509050600061268c84846115b2565b6000806126fd84612a4c565b9050600061270a84612a4c565b9050600061271786612a68565b6127235761016d612727565b61016e5b61ffff169050818314156127595761274f816127438888612a8a565b9063ffffffff612aa516565b935050505061069b565b600061276486612a68565b6127705761016d612774565b61016e5b61ffff16905060006127a5836127438a6127a06127988a600163ffffffff612b7716565b600180612b9f565b612a8a565b905060006127c2836127436127bc88600180612b9f565b8b612a8a565b90506127f86127e860016127dc888a63ffffffff612bb916565b9063ffffffff612bb916565b611a03848463ffffffff61238f16565b9998505050505050505050565b60006102f561016861274362015180612824868863ffffffff612bb916565b9063ffffffff612bfb16565b60006102f561016d61274362015180612824868863ffffffff612bb916565b600080600080600080600061286389612c3d565b97509550935061287288612c3d565b945092509050601f86141561288657601e95505b82601f141561289457601e92505b60006128a6848863ffffffff6124a116565b905060006128ba848863ffffffff6124a116565b905060006128ce848863ffffffff6124a116565b905061290061016861274385611a036128ee87601e63ffffffff612c5b16565b611a038761016863ffffffff612c5b16565b9c9b505050505050505050505050565b60008060008060008060006129248a612c3d565b97509550935061293389612c3d565b9450925090506129428a610d57565b86141561294e57601e95505b878914801561295d5750816002145b158015612971575061296e89610d57565b83145b1561297b57601e92505b600061298d848863ffffffff6124a116565b905060006129a1848863ffffffff6124a116565b905060006129b5848863ffffffff6124a116565b90506129d561016861274385611a036128ee87601e63ffffffff612c5b16565b9d9c50505050505050505050505050565b60006107b28410156129f757600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612a5d6201518085610d65565b509095945050505050565b6000808080612a7a6201518086610d65565b91945092509050610d7c8361223c565b600081831115612a9957600080fd5b50620151809190030490565b6000811515612ac95760405160e560020a62461bcd0281526004016102ec90614098565b821515612ad85750600061069b565b670de0b6b3a7640000838102908482811515612af057fe5b0514612b115760405160e560020a62461bcd0281526004016102ec906140f8565b82600019148015612b25575060ff60020a84145b15612b455760405160e560020a62461bcd0281526004016102ec90614078565b60008382811515612b5257fe5b0590508015156106975760405160e560020a62461bcd0281526004016102ec906140b8565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec906140a8565b600062015180612bb08585856129e6565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cd0565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cff565b60008080612c4e6201518085610d65565b9196909550909350915050565b6000821515612c6c5750600061069b565b82600019148015612c80575060ff60020a82145b15612ca05760405160e560020a62461bcd0281526004016102ec90614138565b828202828482811515612caf57fe5b05146102f55760405160e560020a62461bcd0281526004016102ec90614138565b60008184841115612cf75760405160e560020a62461bcd0281526004016102ec9190614057565b505050900390565b600081818411612d255760405160e560020a62461bcd0281526004016102ec9190614057565b5060008385811515612d3357fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b60006102f58235614217565b60006102f582356141d1565b60006102f582356141be565b60006102f58235614222565b60006102f58235614231565b60006102f58235614240565b60006102f5823561424f565b60006102f5823561425e565b60006102f5823561426d565b60006102f5823561427c565b60006102f5823561428b565b60006102f5823561429a565b600060608284031215612e8857600080fd5b612e926060614197565b90506000612ea08484612dfe565b8252506020612eb184848301612e2e565b6020830152506040612ec584828501612e2e565b60408301525092915050565b60006105008284031215612ee457600080fd5b612eef6102a0614197565b90506000612efd8484612e6a565b8252506020612f0e84848301612dfe565b6020830152506040612f2284828501612dfe565b6040830152506060612f3684828501612dfe565b6060830152506080612f4a84828501612dfe565b60808301525060a0612f5e84828501612dfe565b60a08301525060c0612f7284828501612dfe565b60c08301525060e0612f8684828501612dfe565b60e083015250610100612f9b84828501612dfe565b61010083015250610120612fb184828501612dfe565b61012083015250610140612fc784828501612dfe565b61014083015250610160612fdd84828501612dfe565b61016083015250610180612ff384828501612dfe565b610180830152506101a061300984828501612dfe565b6101a0830152506101c061301f848285016130b0565b6101c083015250610240613035848285016130b0565b6101e0830152506102c061304b848285016130b0565b61020083015250610340613061848285016130b0565b610220830152506103c0613077848285016130b0565b6102408301525061044061308d8482850161311f565b610260830152506104a06130a38482850161311f565b6102808301525092915050565b6000608082840312156130c257600080fd5b6130cc6080614197565b905060006130da8484612dfe565b82525060206130eb84848301612e5e565b60208301525060406130ff84828501612e16565b604083015250606061311384828501612df2565b60608301525092915050565b60006060828403121561313157600080fd5b61313b6060614197565b905060006131498484612dfe565b825250602061315a84848301612e5e565b6020830152506040612ec584828501612df2565b6000610560828403121561318157600080fd5b61318c610460614197565b9050600061319a8484612e16565b82525060206131ab84848301612e3a565b60208301525060406131bf84828501612e46565b60408301525060606131d384828501612e0a565b60608301525060806131e784828501612e16565b60808301525060a06131fb84828501612e6a565b60a08301525060c061320f84828501612e22565b60c08301525060e061322384828501612e16565b60e08301525061010061323884828501612e22565b6101008301525061012061324e84828501612e76565b6101208301525061018061326484828501612e76565b610140830152506101e061327a84828501612de6565b6101608301525061020061329084828501612de6565b610180830152506102206132a684828501612dfe565b6101a0830152506102406132bc84828501612dfe565b6101c0830152506102606132d284828501612dfe565b6101e0830152506102806132e884828501612dfe565b610200830152506102a06132fe84828501612dfe565b610220830152506102c061331484828501612dfe565b610240830152506102e061332a84828501612dfe565b6102608301525061030061334084828501612dfe565b6102808301525061032061335684828501612dfe565b6102a08301525061034061336c84828501612dfe565b6102c08301525061036061338284828501612dfe565b6102e08301525061038061339884828501612dfe565b610300830152506103a06133ae84828501612dfe565b610320830152506103c06133c484828501612dfe565b610340830152506103e06133da84828501612dfe565b610360830152506104006133f084828501612dfe565b610380830152506104206134068482850161311f565b6103a08301525061048061341c8482850161311f565b6103c0830152506104e061343284828501612dfe565b6103e08301525061050061344884828501612dfe565b6104008301525061052061345e84828501612dfe565b6104208301525061054061347484828501612dfe565b6104408301525092915050565b60006101a0828403121561349457600080fd5b61349f6101a0614197565b905060006134ad8484612e22565b82525060206134be84848301612dfe565b60208301525060406134d284828501612dfe565b60408301525060606134e684828501612dfe565b60608301525060806134fa84828501612dfe565b60808301525060a061350e84828501612dfe565b60a08301525060c061352284828501612dfe565b60c08301525060e061353684828501612dfe565b60e08301525061010061354b84828501612dfe565b6101008301525061012061356184828501612dfe565b6101208301525061014061357784828501612dfe565b6101408301525061016061358d84828501612dfe565b610160830152506101806135a384828501612dfe565b6101808301525092915050565b6000602082840312156135c257600080fd5b60006106978484612dfe565b60008061058083850312156135e257600080fd5b60006135ee8585612dfe565b92505060206135ff8582860161316e565b9150509250929050565b60008060008060006108e0868803121561362257600080fd5b600061362e8888612dfe565b955050602061363f8882890161316e565b94505061058061365188828901613481565b93505061072061366388828901612df2565b92505061074061367588828901613481565b9150509295509295909350565b600080600060c0848603121561369757600080fd5b60006136a38686612e16565b93505060206136b486828701612dfe565b92505060406136c5868287016130b0565b9150509250925092565b6000602082840312156136e157600080fd5b60006106978484612e52565b6000806040838503121561370057600080fd5b600061370c8585612e52565b92505060206135ff85828601612dfe565b6000806000610540848603121561373357600080fd5b600061373f8686612ed1565b93505061050061375186828701612dfe565b9250506105206136c586828701612dfe565b600080600080610560858703121561377a57600080fd5b60006137868787612ed1565b94505061050061379887828801612dfe565b9350506105206137aa87828801612dfe565b9250506105406137bc87828801612e52565b91505092959194509250565b600061056082840312156137db57600080fd5b6000610697848461316e565b60008060008061074085870312156137fe57600080fd5b600061380a878761316e565b94505061056061381c87828801613481565b93505061070061382e87828801612dfe565b9250506107206137bc87828801612dfe565b613849816141c1565b613852826141be565b60005b8281101561388257613868858351613898565b613871826141cb565b602095909501949150600101613855565b5050505050565b613892816141d1565b82525050565b613892816141be565b613892816142a9565b613892816142b4565b613892816142bf565b60006138c7826141c7565b8084526138db8160208601602086016142ca565b6138e4816142f6565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602d81527f50414d456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b603681527f50414d456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190613f0f84826138a1565b506020820151613f226020850182613898565b506040820151613f356040850182613898565b506060820151613f486060850182613898565b506080820151613f5b6080850182613898565b5060a0820151613f6e60a0850182613898565b5060c0820151613f8160c0850182613898565b5060e0820151613f9460e0850182613898565b50610100820151613fa9610100850182613898565b50610120820151613fbe610120850182613898565b50610140820151613fd3610140850182613898565b50610160820151613fe8610160850182613898565b50610180820151613ffd610180850182613898565b50505050565b610800810161069b8284613840565b6020810161069b8284613889565b6020810161069b8284613898565b6020810161069b82846138aa565b6040810161404a82856138b3565b6102f56020830184613898565b602080825281016102f581846138bc565b6020808252810161069b816138f1565b6020808252810161069b81613947565b6020808252810161069b8161399d565b6020808252810161069b816139f3565b6020808252810161069b81613a49565b6020808252810161069b81613a79565b6020808252810161069b81613acf565b6020808252810161069b81613b25565b6020808252810161069b81613b7b565b6020808252810161069b81613bd1565b6020808252810161069b81613c27565b6020808252810161069b81613c7d565b6020808252810161069b81613cd3565b6020808252810161069b81613d29565b6020808252810161069b81613d7f565b6020808252810161069b81613dd5565b6020808252810161069b81613e2b565b6020808252810161069b81613ea7565b6101a0810161069b8284613efd565b60405181810167ffffffffffffffff811182821017156141b657600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b6000600482106141e257fe5b5090565b6000600282106141e257fe5b6000601782106141e257fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061069b826141fe565b6000600982106141e257600080fd5b6000600282106141e257600080fd5b6000600482106141e257600080fd5b6000600582106141e257600080fd5b6000600a82106141e257600080fd5b6000600782106141e257600080fd5b6000601782106141e257600080fd5b6000600682106141e257600080fd5b6000600882106141e257600080fd5b600061069b826141d6565b600061069b826141e6565b600061069b826141f2565b60005b838110156142e55781810151838201526020016142cd565b83811115613ffd5750506000910152565b601f01601f19169056fea265627a7a723058207f23c5bf438128fde2014f399bab6e31d2c06be9db579f5e9c111726dc9957d46c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.911Z" +} diff --git a/artifacts/POF.json b/artifacts/POF.json new file mode 100644 index 0000000..419f83d --- /dev/null +++ b/artifacts/POF.json @@ -0,0 +1,372 @@ +{ + "contractName": "POF", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}},\"title\":\"Contract containing all pay-off functions (POF)\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":\"POF\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061104b806100206000396000f3fe608060405234801561001057600080fd5b506004361061009a576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb11610078578063811322fb146100fe57806387467b6114610111578063aaf5eb6814610124578063e05a66e01461012c5761009a565b8063179331f31461009f5780636f37e55b146100c857806372540003146100dd575b600080fd5b6100b26100ad366004610d86565b61013f565b6040516100bf9190610ecc565b60405180910390f35b6100d0610228565b6040516100bf9190610ebe565b6100f06100eb366004610d2d565b610234565b6040516100bf929190610eda565b6100d061010c366004610dd3565b61027e565b6100d061011f366004610d4b565b61044a565b6100d0610476565b6100d061013a366004610df1565b61047b565b60008084600181111561014e57fe5b14156101ca5761015d836104a0565b610166846104ce565b1480156101b5575060028260200151600581111561018057fe5b148061019b575060038260200151600581111561019957fe5b145b806101b557506004826020015160058111156101b357fe5b145b156101c257506000610221565b506001610221565b60018460018111156101d857fe5b14156101e657506001610221565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021890610ef5565b60405180910390fd5b9392505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561026957fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561028e57fe5b141561029c57506014610445565b600f8260168111156102aa57fe5b14156102b857506019610445565b60088260168111156102c657fe5b14156102d45750601e610445565b60078260168111156102e257fe5b14156102f057506028610445565b60048260168111156102fe57fe5b141561030c57506032610445565b600282601681111561031a57fe5b14156103285750603c610445565b600982601681111561033657fe5b141561034457506050610445565b601182601681111561035257fe5b14156103605750605a610445565b601282601681111561036e57fe5b141561037c57506064610445565b601382601681111561038a57fe5b14156103985750606e610445565b60068260168111156103a657fe5b14156103b457506078610445565b60108260168111156103c257fe5b14156103d057506082610445565b60158260168111156103de57fe5b14156103ec5750608c610445565b60148260168111156103fa57fe5b141561040857506096610445565b600a82601681111561041657fe5b1415610424575060a0610445565b600082601681111561043257fe5b141561044157506103b6610445565b5060005b919050565b60008061045684610234565b91505061046c81846060015185600001516104e9565b9150505b92915050565b601281565b60008160f884601681111561048c57fe5b60ff166001029060020a0217905092915050565b60008080806104b462015180865b0461062c565b919450925090506104c583836106c4565b95945050505050565b600080806104df62015180856104ae565b9695505050505050565b600060018360088111156104f957fe5b14806105105750600383600881111561050e57fe5b145b156105265761051f848361074a565b9050610221565b600283600881111561053457fe5b148061054b5750600483600881111561054957fe5b145b1561058f57600061055c858461074a565b9050610567856107a6565b610570826107a6565b141561057d579050610221565b61058785846107c1565b915050610221565b600583600881111561059d57fe5b14806105b4575060078360088111156105b257fe5b145b156105c35761051f84836107c1565b60068360088111156105d157fe5b14806105e8575060088360088111156105e657fe5b145b156106245760006105f985846107c1565b9050610604856107a6565b61060d826107a6565b141561061a579050610221565b610587858461074a565b509192915050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561068557fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806106d55750816003145b806106e05750816005145b806106eb5750816007145b806106f65750816008145b80610701575081600a145b8061070c575081600c145b156107195750601f610470565b600282146107295750601e610470565b6107328361080f565b61073d57601c610740565b601d5b60ff169392505050565b6000600182600181111561075a57fe5b141561079f5761076983610834565b600614156107835761077c836002610847565b9050610470565b61078c83610834565b6007141561079f5761077c836001610847565b5090919050565b600080806107b762015180856104ae565b5095945050505050565b600060018260018111156107d157fe5b141561079f576107e083610834565b600614156107f35761077c83600161085c565b6107fc83610834565b6007141561079f5761077c83600261085c565b60006004820615801561082457506064820615155b8061047057505061019090061590565b6007620151809091046003010660010190565b62015180810282018281101561047057600080fd5b62015180810282038281111561047057600080fd5b60006102218235610f64565b60006102218235610f6f565b60006102218235610f2c565b60006102218235610f74565b60006102218235610f83565b60006102218235610f92565b60006102218235610fa1565b60006102218235610fb0565b60006102218235610fbf565b60006102218235610fce565b60006102218235610fdd565b60006102218235610fec565b60006060828403121561091357600080fd5b61091d6060610f05565b9050600061092b8484610889565b825250602061093c848483016108b9565b6020830152506040610950848285016108b9565b60408301525092915050565b60006080828403121561096e57600080fd5b6109786080610f05565b905060006109868484610889565b8252506020610997848483016108e9565b60208301525060406109ab848285016108a1565b60408301525060606109bf8482850161087d565b60608301525092915050565b6000606082840312156109dd57600080fd5b6109e76060610f05565b905060006109f58484610889565b8252506020610a06848483016108e9565b60208301525060406109508482850161087d565b60006105608284031215610a2d57600080fd5b610a38610460610f05565b90506000610a4684846108a1565b8252506020610a57848483016108c5565b6020830152506040610a6b848285016108d1565b6040830152506060610a7f84828501610895565b6060830152506080610a93848285016108a1565b60808301525060a0610aa7848285016108f5565b60a08301525060c0610abb848285016108ad565b60c08301525060e0610acf848285016108a1565b60e083015250610100610ae4848285016108ad565b61010083015250610120610afa84828501610901565b61012083015250610180610b1084828501610901565b610140830152506101e0610b2684828501610871565b61016083015250610200610b3c84828501610871565b61018083015250610220610b5284828501610889565b6101a083015250610240610b6884828501610889565b6101c083015250610260610b7e84828501610889565b6101e083015250610280610b9484828501610889565b610200830152506102a0610baa84828501610889565b610220830152506102c0610bc084828501610889565b610240830152506102e0610bd684828501610889565b61026083015250610300610bec84828501610889565b61028083015250610320610c0284828501610889565b6102a083015250610340610c1884828501610889565b6102c083015250610360610c2e84828501610889565b6102e083015250610380610c4484828501610889565b610300830152506103a0610c5a84828501610889565b610320830152506103c0610c7084828501610889565b610340830152506103e0610c8684828501610889565b61036083015250610400610c9c84828501610889565b61038083015250610420610cb2848285016109cb565b6103a083015250610480610cc8848285016109cb565b6103c0830152506104e0610cde84828501610889565b6103e083015250610500610cf484828501610889565b61040083015250610520610d0a84828501610889565b61042083015250610540610d2084828501610889565b6104408301525092915050565b600060208284031215610d3f57600080fd5b600061046c8484610889565b6000806105808385031215610d5f57600080fd5b6000610d6b8585610889565b9250506020610d7c85828601610a1a565b9150509250929050565b600080600060c08486031215610d9b57600080fd5b6000610da786866108a1565b9350506020610db886828701610889565b9250506040610dc98682870161095c565b9150509250925092565b600060208284031215610de557600080fd5b600061046c84846108dd565b60008060408385031215610e0457600080fd5b6000610e1085856108dd565b9250506020610d7c85828601610889565b610e2a81610f2c565b82525050565b610e2a81610ffb565b610e2a81611006565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602081016104708284610e21565b602081016104708284610e30565b60408101610ee88285610e39565b6102216020830184610e21565b6020808252810161047081610e42565b60405181810167ffffffffffffffff81118282101715610f2457600080fd5b604052919050565b90565b600060028210610f3b57fe5b5090565b600060178210610f3b57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061047082610f4b565b151590565b600060098210610f3b57600080fd5b600060028210610f3b57600080fd5b600060048210610f3b57600080fd5b600060058210610f3b57600080fd5b6000600a8210610f3b57600080fd5b600060078210610f3b57600080fd5b600060178210610f3b57600080fd5b600060068210610f3b57600080fd5b600060088210610f3b57600080fd5b600061047082610f2f565b600061047082610f3f56fea265627a7a7230582076cfc0982e2a6c5083c111769b7daf73c80d399157b36954f1b33c85dd19ff8f6c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.925Z" +} diff --git a/artifacts/STF.json b/artifacts/STF.json new file mode 100644 index 0000000..e66c10c --- /dev/null +++ b/artifacts/STF.json @@ -0,0 +1,372 @@ +{ + "contractName": "STF", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}},\"title\":\"ACTUS state transition functions\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":\"STF\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061104b806100206000396000f3fe608060405234801561001057600080fd5b506004361061009a576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb11610078578063811322fb146100fe57806387467b6114610111578063aaf5eb6814610124578063e05a66e01461012c5761009a565b8063179331f31461009f5780636f37e55b146100c857806372540003146100dd575b600080fd5b6100b26100ad366004610d86565b61013f565b6040516100bf9190610ecc565b60405180910390f35b6100d0610228565b6040516100bf9190610ebe565b6100f06100eb366004610d2d565b610234565b6040516100bf929190610eda565b6100d061010c366004610dd3565b61027e565b6100d061011f366004610d4b565b61044a565b6100d0610476565b6100d061013a366004610df1565b61047b565b60008084600181111561014e57fe5b14156101ca5761015d836104a0565b610166846104ce565b1480156101b5575060028260200151600581111561018057fe5b148061019b575060038260200151600581111561019957fe5b145b806101b557506004826020015160058111156101b357fe5b145b156101c257506000610221565b506001610221565b60018460018111156101d857fe5b14156101e657506001610221565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021890610ef5565b60405180910390fd5b9392505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561026957fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561028e57fe5b141561029c57506014610445565b600f8260168111156102aa57fe5b14156102b857506019610445565b60088260168111156102c657fe5b14156102d45750601e610445565b60078260168111156102e257fe5b14156102f057506028610445565b60048260168111156102fe57fe5b141561030c57506032610445565b600282601681111561031a57fe5b14156103285750603c610445565b600982601681111561033657fe5b141561034457506050610445565b601182601681111561035257fe5b14156103605750605a610445565b601282601681111561036e57fe5b141561037c57506064610445565b601382601681111561038a57fe5b14156103985750606e610445565b60068260168111156103a657fe5b14156103b457506078610445565b60108260168111156103c257fe5b14156103d057506082610445565b60158260168111156103de57fe5b14156103ec5750608c610445565b60148260168111156103fa57fe5b141561040857506096610445565b600a82601681111561041657fe5b1415610424575060a0610445565b600082601681111561043257fe5b141561044157506103b6610445565b5060005b919050565b60008061045684610234565b91505061046c81846060015185600001516104e9565b9150505b92915050565b601281565b60008160f884601681111561048c57fe5b60ff166001029060020a0217905092915050565b60008080806104b462015180865b0461062c565b919450925090506104c583836106c4565b95945050505050565b600080806104df62015180856104ae565b9695505050505050565b600060018360088111156104f957fe5b14806105105750600383600881111561050e57fe5b145b156105265761051f848361074a565b9050610221565b600283600881111561053457fe5b148061054b5750600483600881111561054957fe5b145b1561058f57600061055c858461074a565b9050610567856107a6565b610570826107a6565b141561057d579050610221565b61058785846107c1565b915050610221565b600583600881111561059d57fe5b14806105b4575060078360088111156105b257fe5b145b156105c35761051f84836107c1565b60068360088111156105d157fe5b14806105e8575060088360088111156105e657fe5b145b156106245760006105f985846107c1565b9050610604856107a6565b61060d826107a6565b141561061a579050610221565b610587858461074a565b509192915050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561068557fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806106d55750816003145b806106e05750816005145b806106eb5750816007145b806106f65750816008145b80610701575081600a145b8061070c575081600c145b156107195750601f610470565b600282146107295750601e610470565b6107328361080f565b61073d57601c610740565b601d5b60ff169392505050565b6000600182600181111561075a57fe5b141561079f5761076983610834565b600614156107835761077c836002610847565b9050610470565b61078c83610834565b6007141561079f5761077c836001610847565b5090919050565b600080806107b762015180856104ae565b5095945050505050565b600060018260018111156107d157fe5b141561079f576107e083610834565b600614156107f35761077c83600161085c565b6107fc83610834565b6007141561079f5761077c83600261085c565b60006004820615801561082457506064820615155b8061047057505061019090061590565b6007620151809091046003010660010190565b62015180810282018281101561047057600080fd5b62015180810282038281111561047057600080fd5b60006102218235610f64565b60006102218235610f6f565b60006102218235610f2c565b60006102218235610f74565b60006102218235610f83565b60006102218235610f92565b60006102218235610fa1565b60006102218235610fb0565b60006102218235610fbf565b60006102218235610fce565b60006102218235610fdd565b60006102218235610fec565b60006060828403121561091357600080fd5b61091d6060610f05565b9050600061092b8484610889565b825250602061093c848483016108b9565b6020830152506040610950848285016108b9565b60408301525092915050565b60006080828403121561096e57600080fd5b6109786080610f05565b905060006109868484610889565b8252506020610997848483016108e9565b60208301525060406109ab848285016108a1565b60408301525060606109bf8482850161087d565b60608301525092915050565b6000606082840312156109dd57600080fd5b6109e76060610f05565b905060006109f58484610889565b8252506020610a06848483016108e9565b60208301525060406109508482850161087d565b60006105608284031215610a2d57600080fd5b610a38610460610f05565b90506000610a4684846108a1565b8252506020610a57848483016108c5565b6020830152506040610a6b848285016108d1565b6040830152506060610a7f84828501610895565b6060830152506080610a93848285016108a1565b60808301525060a0610aa7848285016108f5565b60a08301525060c0610abb848285016108ad565b60c08301525060e0610acf848285016108a1565b60e083015250610100610ae4848285016108ad565b61010083015250610120610afa84828501610901565b61012083015250610180610b1084828501610901565b610140830152506101e0610b2684828501610871565b61016083015250610200610b3c84828501610871565b61018083015250610220610b5284828501610889565b6101a083015250610240610b6884828501610889565b6101c083015250610260610b7e84828501610889565b6101e083015250610280610b9484828501610889565b610200830152506102a0610baa84828501610889565b610220830152506102c0610bc084828501610889565b610240830152506102e0610bd684828501610889565b61026083015250610300610bec84828501610889565b61028083015250610320610c0284828501610889565b6102a083015250610340610c1884828501610889565b6102c083015250610360610c2e84828501610889565b6102e083015250610380610c4484828501610889565b610300830152506103a0610c5a84828501610889565b610320830152506103c0610c7084828501610889565b610340830152506103e0610c8684828501610889565b61036083015250610400610c9c84828501610889565b61038083015250610420610cb2848285016109cb565b6103a083015250610480610cc8848285016109cb565b6103c0830152506104e0610cde84828501610889565b6103e083015250610500610cf484828501610889565b61040083015250610520610d0a84828501610889565b61042083015250610540610d2084828501610889565b6104408301525092915050565b600060208284031215610d3f57600080fd5b600061046c8484610889565b6000806105808385031215610d5f57600080fd5b6000610d6b8585610889565b9250506020610d7c85828601610a1a565b9150509250929050565b600080600060c08486031215610d9b57600080fd5b6000610da786866108a1565b9350506020610db886828701610889565b9250506040610dc98682870161095c565b9150509250925092565b600060208284031215610de557600080fd5b600061046c84846108dd565b60008060408385031215610e0457600080fd5b6000610e1085856108dd565b9250506020610d7c85828601610889565b610e2a81610f2c565b82525050565b610e2a81610ffb565b610e2a81611006565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602081016104708284610e21565b602081016104708284610e30565b60408101610ee88285610e39565b6102216020830184610e21565b6020808252810161047081610e42565b60405181810167ffffffffffffffff81118282101715610f2457600080fd5b604052919050565b90565b600060028210610f3b57fe5b5090565b600060178210610f3b57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061047082610f4b565b151590565b600060098210610f3b57600080fd5b600060028210610f3b57600080fd5b600060048210610f3b57600080fd5b600060058210610f3b57600080fd5b6000600a8210610f3b57600080fd5b600060078210610f3b57600080fd5b600060178210610f3b57600080fd5b600060068210610f3b57600080fd5b600060088210610f3b57600080fd5b600061047082610f2f565b600061047082610f3f56fea265627a7a723058206628b0fd43a4839d730bde0fa0882f545ba36e1713fc9345e99c8a836bbbfe446c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.953Z" +} diff --git a/artifacts/SafeMath.json b/artifacts/SafeMath.json new file mode 100644 index 0000000..598f4e5 --- /dev/null +++ b/artifacts/SafeMath.json @@ -0,0 +1,12 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a723058200e6bc2f1edc658c12b4a969cf233b75bb425cd4680148d9610c340aeb50472e20029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.942Z" +} diff --git a/artifacts/Schedule.json b/artifacts/Schedule.json new file mode 100644 index 0000000..ebf52f2 --- /dev/null +++ b/artifacts/Schedule.json @@ -0,0 +1,327 @@ +{ + "contractName": "Schedule", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":\"Schedule\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610cbf806100206000396000f3fe608060405234801561001057600080fd5b506004361061007e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b811461008357806372540003146100a1578063811322fb146100c257806387467b61146100d5578063aaf5eb68146100e8578063e05a66e0146100f0575b600080fd5b61008b610103565b6040516100989190610b67565b60405180910390f35b6100b46100af366004610aa8565b61010f565b604051610098929190610b75565b61008b6100d0366004610b01565b610159565b61008b6100e3366004610ac6565b610325565b61008b610351565b61008b6100fe366004610b1f565b610356565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561014457fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561016957fe5b141561017757506014610320565b600f82601681111561018557fe5b141561019357506019610320565b60088260168111156101a157fe5b14156101af5750601e610320565b60078260168111156101bd57fe5b14156101cb57506028610320565b60048260168111156101d957fe5b14156101e757506032610320565b60028260168111156101f557fe5b14156102035750603c610320565b600982601681111561021157fe5b141561021f57506050610320565b601182601681111561022d57fe5b141561023b5750605a610320565b601282601681111561024957fe5b141561025757506064610320565b601382601681111561026557fe5b14156102735750606e610320565b600682601681111561028157fe5b141561028f57506078610320565b601082601681111561029d57fe5b14156102ab57506082610320565b60158260168111156102b957fe5b14156102c75750608c610320565b60148260168111156102d557fe5b14156102e357506096610320565b600a8260168111156102f157fe5b14156102ff575060a0610320565b600082601681111561030d57fe5b141561031c57506103b6610320565b5060005b919050565b6000806103318461010f565b915050610347818460600151856000015161037b565b9150505b92915050565b601281565b60008160f884601681111561036757fe5b60ff166001029060020a0217905092915050565b6000600183600881111561038b57fe5b14806103a2575060038360088111156103a057fe5b145b156103b8576103b184836104c0565b90506104b9565b60028360088111156103c657fe5b14806103dd575060048360088111156103db57fe5b145b156104215760006103ee85846104c0565b90506103f98561051c565b6104028261051c565b141561040f5790506104b9565b6104198584610538565b9150506104b9565b600583600881111561042f57fe5b14806104465750600783600881111561044457fe5b145b15610455576103b18483610538565b600683600881111561046357fe5b148061047a5750600883600881111561047857fe5b145b156104b657600061048b8584610538565b90506104968561051c565b61049f8261051c565b14156104ac5790506104b9565b61041985846104c0565b50825b9392505050565b600060018260018111156104d057fe5b1415610515576104df83610586565b600614156104f9576104f2836002610599565b905061034b565b61050283610586565b60071415610515576104f2836001610599565b5090919050565b6000808061052e6201518085046105ae565b5095945050505050565b6000600182600181111561054857fe5b14156105155761055783610586565b6006141561056a576104f2836001610646565b61057383610586565b60071415610515576104f2836002610646565b6007620151809091046003010660010190565b62015180810282018281101561034b57600080fd5b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561060757fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b62015180810282038281111561034b57600080fd5b60006104b98235610be3565b60006104b98235610bee565b60006104b98235610bb7565b60006104b98235610bf3565b60006104b98235610c02565b60006104b98235610c11565b60006104b98235610c20565b60006104b98235610c2f565b60006104b98235610c3e565b60006104b98235610c4d565b60006104b98235610c5c565b60006104b98235610c6b565b6000606082840312156106fd57600080fd5b6107076060610b90565b905060006107158484610673565b8252506020610726848483016106a3565b602083015250604061073a848285016106a3565b60408301525092915050565b60006060828403121561075857600080fd5b6107626060610b90565b905060006107708484610673565b8252506020610781848483016106d3565b602083015250604061073a84828501610667565b600061056082840312156107a857600080fd5b6107b3610460610b90565b905060006107c1848461068b565b82525060206107d2848483016106af565b60208301525060406107e6848285016106bb565b60408301525060606107fa8482850161067f565b606083015250608061080e8482850161068b565b60808301525060a0610822848285016106df565b60a08301525060c061083684828501610697565b60c08301525060e061084a8482850161068b565b60e08301525061010061085f84828501610697565b61010083015250610120610875848285016106eb565b6101208301525061018061088b848285016106eb565b610140830152506101e06108a18482850161065b565b610160830152506102006108b78482850161065b565b610180830152506102206108cd84828501610673565b6101a0830152506102406108e384828501610673565b6101c0830152506102606108f984828501610673565b6101e08301525061028061090f84828501610673565b610200830152506102a061092584828501610673565b610220830152506102c061093b84828501610673565b610240830152506102e061095184828501610673565b6102608301525061030061096784828501610673565b6102808301525061032061097d84828501610673565b6102a08301525061034061099384828501610673565b6102c0830152506103606109a984828501610673565b6102e0830152506103806109bf84828501610673565b610300830152506103a06109d584828501610673565b610320830152506103c06109eb84828501610673565b610340830152506103e0610a0184828501610673565b61036083015250610400610a1784828501610673565b61038083015250610420610a2d84828501610746565b6103a083015250610480610a4384828501610746565b6103c0830152506104e0610a5984828501610673565b6103e083015250610500610a6f84828501610673565b61040083015250610520610a8584828501610673565b61042083015250610540610a9b84828501610673565b6104408301525092915050565b600060208284031215610aba57600080fd5b60006103478484610673565b6000806105808385031215610ada57600080fd5b6000610ae68585610673565b9250506020610af785828601610795565b9150509250929050565b600060208284031215610b1357600080fd5b600061034784846106c7565b60008060408385031215610b3257600080fd5b6000610b3e85856106c7565b9250506020610af785828601610673565b610b5881610bb7565b82525050565b610b5881610c7a565b6020810161034b8284610b4f565b60408101610b838285610b5e565b6104b96020830184610b4f565b60405181810167ffffffffffffffff81118282101715610baf57600080fd5b604052919050565b90565b600060178210610bc657fe5b5090565b73ffffffffffffffffffffffffffffffffffffffff1690565b600061034b82610bca565b151590565b600060098210610bc657600080fd5b600060028210610bc657600080fd5b600060048210610bc657600080fd5b600060058210610bc657600080fd5b6000600a8210610bc657600080fd5b600060078210610bc657600080fd5b600060178210610bc657600080fd5b600060068210610bc657600080fd5b600060088210610bc657600080fd5b600061034b82610bba56fea265627a7a723058201ccae5c82eab296b24ef871f711f7586460169a7bc3c83230582279870a5dab26c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.856Z" +} diff --git a/artifacts/SignedMath.json b/artifacts/SignedMath.json new file mode 100644 index 0000000..c34753b --- /dev/null +++ b/artifacts/SignedMath.json @@ -0,0 +1,41 @@ +{ + "contractName": "SignedMath", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "MULTIPLICATOR", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"MULTIPLICATOR\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Advanced math library for signed integers (including floats which are represented as multiples of 10 ** 18)\"}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]}},\"version\":1}", + "bytecode": "0x60b961002f600b82828239805160001a6073146000811461001f57610021565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106059577c010000000000000000000000000000000000000000000000000000000060003504630b5407208114605e578063aaf5eb68146076575b600080fd5b6064607c565b60408051918252519081900360200190f35b60646088565b670de0b6b3a764000081565b60128156fea165627a7a72305820f4a901b409bf8afddef452d3b6b8c67070a337ca089883ec61f6536d9cd2019c0029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.780Z" +} diff --git a/artifacts/SignedSafeMath.json b/artifacts/SignedSafeMath.json new file mode 100644 index 0000000..a42322c --- /dev/null +++ b/artifacts/SignedSafeMath.json @@ -0,0 +1,12 @@ +{ + "contractName": "SignedSafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signed math operations with safety checks that revert on error.\",\"methods\":{},\"title\":\"SignedSafeMath\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":\"SignedSafeMath\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]}},\"version\":1}", + "bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a7230582086bb0790f465ad1ed2a2ed457d873f8eb8f52e0ad2c59ce8ae8f35d4081453c40029", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-10T15:52:56.939Z" +} diff --git a/artifacts/TestPOF.json b/artifacts/TestPOF.json new file mode 100644 index 0000000..a868d57 --- /dev/null +++ b/artifacts/TestPOF.json @@ -0,0 +1,3202 @@ +{ + "contractName": "TestPOF", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_FP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_IED", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_IP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_PP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_MD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_PY", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_PAM_TD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_ANN_PR", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_CEG_STD", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_POF_CEG_FP", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_FP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_IED\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_ANN_PR\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_CEG_STD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_TD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_IP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_MD\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_PY\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_CEG_FP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_POF_PAM_PP\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}}},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}},\"notice\":\"These helper contracts expose internal functions for unit testing.\"}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestPOF.sol\":\"TestPOF\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestPOF.sol\":{\"keccak256\":\"0x5c32bcb0144684b365a09be62b67c772a30090a853da8e5f14bf5967cff66f57\",\"urls\":[\"bzzr://dd7558d689dddaa1fe7222b6a9858031410c140de384dd225d3ec5ff4faf2357\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506125d4806100206000396000f3fe608060405234801561001057600080fd5b5060043610610128576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100bf578063a93a8d0f1161008e578063a93a8d0f14610237578063aaf5eb681461024a578063c33c73b21461012d578063ccc9b0ec14610252578063e05a66e01461026557610128565b8063811322fb146101eb57806387467b61146101fe5780638ee036ed14610211578063a82e38a91461022457610128565b80634435a97c116100fb5780634435a97c1461019c5780636f37e55b146101af57806372227943146101b757806372540003146101ca57610128565b8063047e32461461012d578063179331f3146101565780632fad0f6b14610176578063417ceced14610189575b600080fd5b61014061013b366004611e1f565b610278565b60405161014d9190612338565b60405180910390f35b610169610164366004611d84565b610291565b60405161014d9190612346565b610140610184366004611e1f565b610363565b610140610197366004611e1f565b610371565b6101406101aa366004611e1f565b61037f565b61014061038d565b6101406101c5366004611e1f565b610399565b6101dd6101d8366004611d2b565b6103a7565b60405161014d929190612354565b6101406101f9366004611dd1565b6103f1565b61014061020c366004611d49565b6105bd565b61014061021f366004611e1f565b6105e9565b610140610232366004611e1f565b6105f7565b610140610245366004611e1f565b610605565b610140610613565b610140610260366004611e1f565b610618565b610140610273366004611def565b610626565b60006102868585858561064b565b90505b949350505050565b6000808460018111156102a057fe5b141561031c576102af836106f0565b6102b88461071e565b14801561030757506002826020015160058111156102d257fe5b14806102ed57506003826020015160058111156102eb57fe5b145b80610307575060048260200151600581111561030557fe5b145b156103145750600061035c565b50600161035c565b600184600181111561032a57fe5b14156103385750600161035c565b60405160e560020a62461bcd02815260040161035390612430565b60405180910390fd5b9392505050565b600061028685858585610739565b600061028685858585610777565b600061028685858585610832565b670de0b6b3a764000081565b600061028685858585610846565b6000808060ff7f010000000000000000000000000000000000000000000000000000000000000085041660168111156103dc57fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561040157fe5b141561040f575060146105b8565b600f82601681111561041d57fe5b141561042b575060196105b8565b600882601681111561043957fe5b14156104475750601e6105b8565b600782601681111561045557fe5b1415610463575060286105b8565b600482601681111561047157fe5b141561047f575060326105b8565b600282601681111561048d57fe5b141561049b5750603c6105b8565b60098260168111156104a957fe5b14156104b7575060506105b8565b60118260168111156104c557fe5b14156104d35750605a6105b8565b60128260168111156104e157fe5b14156104ef575060646105b8565b60138260168111156104fd57fe5b141561050b5750606e6105b8565b600682601681111561051957fe5b1415610527575060786105b8565b601082601681111561053557fe5b1415610543575060826105b8565b601582601681111561055157fe5b141561055f5750608c6105b8565b601482601681111561056d57fe5b141561057b575060966105b8565b600a82601681111561058957fe5b1415610597575060a06105b8565b60008260168111156105a557fe5b14156105b457506103b66105b8565b5060005b919050565b6000806105c9846103a7565b9150506105df81846060015185600001516108b6565b9150505b92915050565b6000610286858585856109f9565b600061028685858585610a4f565b600061028685858585610a6d565b601281565b600061028685858585610b52565b60008160f884601681111561063757fe5b60ff166001029060020a0217905092915050565b6000808560e00151600181111561065e57fe5b141561068257846102c001516106778660200151610b62565b60000b029050610289565b6102866106df8560a001516106d3886102c001516106d36106b08a602001518c606001518d60000151610c29565b6106c38a8d606001518e60000151610c29565b8c604001518d6101e00151610c93565b9063ffffffff610d5e16565b60e08601519063ffffffff610e0916565b600080808061070462015180865b04610e54565b919450925090506107158383610eec565b95945050505050565b6000808061072f62015180856106fe565b9695505050505050565b6000610758856103200151866102000151610e0990919063ffffffff16565b6107658660200151610b62565b6000190260000b029050949350505050565b600061028661080d6107cd8660a001516106d38861010001516106d36107aa8b602001518d606001518e60000151610c29565b6107bd8b8e606001518f60000151610c29565b8d604001518e6101e00151610c93565b8660c0015187610160015103036107e78860200151610b62565b60000b028660a001516107fd8960200151610b62565b60000b029063ffffffff610f7216565b61081a8760200151610b62565b60000b86610140015102610d5e90919063ffffffff16565b60e083015161018084015101949350505050565b600061089c6108768560a001516106d38761010001516106d36106b08a602001518c606001518d60000151610c29565b60c08601516103408801516108909163ffffffff610e0916565b9063ffffffff610e0916565b6108a98660200151610b62565b60000b0295945050505050565b600060018360088111156108c657fe5b14806108dd575060038360088111156108db57fe5b145b156108f3576108ec8483610f89565b905061035c565b600283600881111561090157fe5b14806109185750600483600881111561091657fe5b145b1561095c5760006109298584610f89565b905061093485610fde565b61093d82610fde565b141561094a57905061035c565b6109548584610ff9565b91505061035c565b600583600881111561096a57fe5b14806109815750600783600881111561097f57fe5b145b15610990576108ec8483610ff9565b600683600881111561099e57fe5b14806109b5575060088360088111156109b357fe5b145b156109f15760006109c68584610ff9565b90506109d185610fde565b6109da82610fde565b14156109e757905061035c565b6109548584610f89565b509192915050565b6000610286610a3d610a2c8660a001516106d38861010001516106d36107aa8b602001518d606001518e60000151610c29565b60c08701519063ffffffff610e0916565b6101208601519063ffffffff610d5e16565b60006102868460a00151856101400151610d5e90919063ffffffff16565b600060018560c001516003811115610a8157fe5b1415610a9a578461030001516106778660200151610b62565b60028560c001516003811115610aac57fe5b1415610b0d57610b008460a001516106d38761030001516106d3610add89602001518b606001518c60000151610c29565b610af0898c606001518d60000151610c29565b8b604001518c6101e00151610c93565b6106778660200151610b62565b610b008460a001516106d3610b2f876020015189606001518a60000151610c29565b610b42878a606001518b60000151610c29565b89604001518a6101e00151610c93565b60008360a001516108a986602001515b600080826009811115610b7157fe5b1415610b7f575060016105b8565b6001826009811115610b8d57fe5b1415610b9c57506000196105b8565b6006826009811115610baa57fe5b1415610bb8575060016105b8565b6007826009811115610bc657fe5b1415610bd557506000196105b8565b6004826009811115610be357fe5b1415610bf1575060016105b8565b6005826009811115610bff57fe5b1415610c0e57506000196105b8565b60405160e560020a62461bcd028152600401610353906123d0565b60006003836008811115610c3957fe5b1480610c5057506004836008811115610c4e57fe5b145b80610c6657506007836008811115610c6457fe5b145b80610c7c57506008836008811115610c7a57fe5b145b15610c8857508261035c565b6102898484846108b6565b600084841015610cb85760405160e560020a62461bcd02815260040161035390612420565b6000836006811115610cc657fe5b1415610cdd57610cd68585611047565b9050610289565b6001836006811115610ceb57fe5b1415610cfb57610cd6858561115b565b6002836006811115610d0957fe5b1415610d1957610cd68585611186565b6004836006811115610d2757fe5b1415610d3757610cd685856111a5565b6003836006811115610d4557fe5b1415610d5657610cd6858584611266565b506001610289565b6000821580610d6b575081155b15610d78575060006105e3565b82600019148015610d8c575060ff60020a82145b15610dac5760405160e560020a62461bcd02815260040161035390612410565b828202828482811515610dbb57fe5b0514610ddc5760405160e560020a62461bcd02815260040161035390612410565b670de0b6b3a764000081058015156105df5760405160e560020a62461bcd028152600401610353906123f0565b6000828201818312801590610e1e5750838112155b80610e335750600083128015610e3357508381125b151561035c5760405160e560020a62461bcd028152600401610353906123c0565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f84605002811515610ead57fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60008160011480610efd5750816003145b80610f085750816005145b80610f135750816007145b80610f1e5750816008145b80610f29575081600a145b80610f34575081600c145b15610f415750601f6105e3565b60028214610f515750601e6105e3565b610f5a8361133c565b610f6557601c610f68565b601d5b60ff169392505050565b600081831315610f82578161035c565b5090919050565b60006001826001811115610f9957fe5b1415610f8257610fa883611361565b60061415610fc257610fbb836002611374565b90506105e3565b610fcb83611361565b60071415610f8257610fbb836001611374565b60008080610fef62015180856106fe565b5095945050505050565b6000600182600181111561100957fe5b1415610f825761101883611361565b6006141561102b57610fbb836001611389565b61103483611361565b60071415610f8257610fbb836002611389565b6000806110538461139e565b905060006110608461139e565b9050600061106d866113ba565b6110795761016d61107d565b61016e5b61ffff169050818314156110af576110a58161109988886113dc565b9063ffffffff6113f716565b93505050506105e3565b60006110ba866113ba565b6110c65761016d6110ca565b61016e5b61ffff16905060006110fb836110998a6110f66110ee8a600163ffffffff6114c916565b6001806114f1565b6113dc565b9050600061111883611099611112886001806114f1565b8b6113dc565b905061114e61113e6001611132888a63ffffffff61150b16565b9063ffffffff61150b16565b610890848463ffffffff610e0916565b9998505050505050505050565b600061035c6101686110996201518061117a868863ffffffff61150b16565b9063ffffffff61154d16565b600061035c61016d6110996201518061117a868863ffffffff61150b16565b60008060008060008060006111b98961158f565b9750955093506111c88861158f565b945092509050601f8614156111dc57601e95505b82601f14156111ea57601e92505b60006111fc848863ffffffff6115ad16565b90506000611210848863ffffffff6115ad16565b90506000611224848863ffffffff6115ad16565b90506112566101686110998561089061124487601e63ffffffff6115f816565b6108908761016863ffffffff6115f816565b9c9b505050505050505050505050565b600080600080600080600061127a8a61158f565b9750955093506112898961158f565b9450925090506112988a6106f0565b8614156112a457601e95505b87891480156112b35750816002145b1580156112c757506112c4896106f0565b83145b156112d157601e92505b60006112e3848863ffffffff6115ad16565b905060006112f7848863ffffffff6115ad16565b9050600061130b848863ffffffff6115ad16565b905061132b6101686110998561089061124487601e63ffffffff6115f816565b9d9c50505050505050505050505050565b60006004820615801561135157506064820615155b806105e357505061019090061590565b6007620151809091046003010660010190565b6201518081028201828110156105e357600080fd5b6201518081028203828111156105e357600080fd5b600080806113af62015180856106fe565b509095945050505050565b60008080806113cc62015180866106fe565b919450925090506107158361133c565b6000818311156113eb57600080fd5b50620151809190030490565b600081151561141b5760405160e560020a62461bcd02815260040161035390612390565b82151561142a575060006105e3565b670de0b6b3a764000083810290848281151561144257fe5b05146114635760405160e560020a62461bcd028152600401610353906123e0565b82600019148015611477575060ff60020a84145b156114975760405160e560020a62461bcd02815260040161035390612380565b600083828115156114a457fe5b0590508015156105df5760405160e560020a62461bcd028152600401610353906123b0565b60008282018381101561035c5760405160e560020a62461bcd028152600401610353906123a0565b60006201518061150285858561166d565b02949350505050565b600061035c83836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116d3565b600061035c83836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611702565b600080806115a062015180856106fe565b9196909550909350915050565b60008183038183128015906115c25750838113155b806115d757506000831280156115d757508381135b151561035c5760405160e560020a62461bcd02815260040161035390612440565b6000821515611609575060006105e3565b8260001914801561161d575060ff60020a82145b1561163d5760405160e560020a62461bcd02815260040161035390612400565b82820282848281151561164c57fe5b051461035c5760405160e560020a62461bcd02815260040161035390612400565b60006107b284101561167e57600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b600081848411156116fa5760405160e560020a62461bcd028152600401610353919061236f565b505050900390565b6000818184116117285760405160e560020a62461bcd028152600401610353919061236f565b506000838581151561173657fe5b0495945050505050565b600061035c82356124b3565b600061035c82356124be565b600061035c823561247b565b600061035c82356124c3565b600061035c82356124d2565b600061035c82356124e1565b600061035c82356124f0565b600061035c82356124ff565b600061035c823561250e565b600061035c823561251d565b600061035c823561252c565b600061035c823561253b565b6000606082840312156117e257600080fd5b6117ec6060612450565b905060006117fa8484611758565b825250602061180b84848301611788565b602083015250604061181f84828501611788565b60408301525092915050565b60006080828403121561183d57600080fd5b6118476080612450565b905060006118558484611758565b8252506020611866848483016117b8565b602083015250604061187a84828501611770565b604083015250606061188e8482850161174c565b60608301525092915050565b6000606082840312156118ac57600080fd5b6118b66060612450565b905060006118c48484611758565b82525060206118d5848483016117b8565b602083015250604061181f8482850161174c565b600061056082840312156118fc57600080fd5b611907610460612450565b905060006119158484611770565b825250602061192684848301611794565b602083015250604061193a848285016117a0565b604083015250606061194e84828501611764565b606083015250608061196284828501611770565b60808301525060a0611976848285016117c4565b60a08301525060c061198a8482850161177c565b60c08301525060e061199e84828501611770565b60e0830152506101006119b38482850161177c565b610100830152506101206119c9848285016117d0565b610120830152506101806119df848285016117d0565b610140830152506101e06119f584828501611740565b61016083015250610200611a0b84828501611740565b61018083015250610220611a2184828501611758565b6101a083015250610240611a3784828501611758565b6101c083015250610260611a4d84828501611758565b6101e083015250610280611a6384828501611758565b610200830152506102a0611a7984828501611758565b610220830152506102c0611a8f84828501611758565b610240830152506102e0611aa584828501611758565b61026083015250610300611abb84828501611758565b61028083015250610320611ad184828501611758565b6102a083015250610340611ae784828501611758565b6102c083015250610360611afd84828501611758565b6102e083015250610380611b1384828501611758565b610300830152506103a0611b2984828501611758565b610320830152506103c0611b3f84828501611758565b610340830152506103e0611b5584828501611758565b61036083015250610400611b6b84828501611758565b61038083015250610420611b818482850161189a565b6103a083015250610480611b978482850161189a565b6103c0830152506104e0611bad84828501611758565b6103e083015250610500611bc384828501611758565b61040083015250610520611bd984828501611758565b61042083015250610540611bef84828501611758565b6104408301525092915050565b60006101a08284031215611c0f57600080fd5b611c1a6101a0612450565b90506000611c28848461177c565b8252506020611c3984848301611758565b6020830152506040611c4d84828501611758565b6040830152506060611c6184828501611758565b6060830152506080611c7584828501611758565b60808301525060a0611c8984828501611758565b60a08301525060c0611c9d84828501611758565b60c08301525060e0611cb184828501611758565b60e083015250610100611cc684828501611758565b61010083015250610120611cdc84828501611758565b61012083015250610140611cf284828501611758565b61014083015250610160611d0884828501611758565b61016083015250610180611d1e84828501611758565b6101808301525092915050565b600060208284031215611d3d57600080fd5b60006105df8484611758565b6000806105808385031215611d5d57600080fd5b6000611d698585611758565b9250506020611d7a858286016118e9565b9150509250929050565b600080600060c08486031215611d9957600080fd5b6000611da58686611770565b9350506020611db686828701611758565b9250506040611dc78682870161182b565b9150509250925092565b600060208284031215611de357600080fd5b60006105df84846117ac565b60008060408385031215611e0257600080fd5b6000611e0e85856117ac565b9250506020611d7a85828601611758565b6000806000806107408587031215611e3657600080fd5b6000611e4287876118e9565b945050610560611e5487828801611bfc565b935050610700611e6687828801611758565b925050610720611e7887828801611758565b91505092959194509250565b611e8d8161247b565b82525050565b611e8d8161254a565b611e8d81612555565b6000611eb082612477565b808452611ec4816020860160208601612560565b611ecd81612590565b9093016020019392505050565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b602081016105e38284611e84565b602081016105e38284611e93565b604081016123628285611e9c565b61035c6020830184611e84565b6020808252810161035c8184611ea5565b602080825281016105e381611eda565b602080825281016105e381611f30565b602080825281016105e381611f86565b602080825281016105e381611fb6565b602080825281016105e38161200c565b602080825281016105e381612062565b602080825281016105e3816120b8565b602080825281016105e38161210e565b602080825281016105e381612164565b602080825281016105e3816121ba565b602080825281016105e381612210565b602080825281016105e381612266565b602080825281016105e3816122e2565b60405181810167ffffffffffffffff8111828210171561246f57600080fd5b604052919050565b5190565b90565b60006002821061248a57fe5b5090565b60006017821061248a57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006105e38261249a565b151590565b60006009821061248a57600080fd5b60006002821061248a57600080fd5b60006004821061248a57600080fd5b60006005821061248a57600080fd5b6000600a821061248a57600080fd5b60006007821061248a57600080fd5b60006017821061248a57600080fd5b60006006821061248a57600080fd5b60006008821061248a57600080fd5b60006105e38261247e565b60006105e38261248e565b60005b8381101561257b578181015183820152602001612563565b8381111561258a576000848401525b50505050565b601f01601f19169056fea265627a7a723058202db0e43a588f0d020fb11f7eb9ca69e3c8e13241059a5ab1f15d71670f52b10e6c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.983Z" +} diff --git a/artifacts/TestSTF.json b/artifacts/TestSTF.json new file mode 100644 index 0000000..3f8ac87 --- /dev/null +++ b/artifacts/TestSTF.json @@ -0,0 +1,4753 @@ +{ + "contractName": "TestSTF", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "eomc", + "type": "uint8" + }, + { + "name": "startTime", + "type": "uint256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "s", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "cycle", + "type": "tuple" + } + ], + "name": "adjustEndOfMonthConvention", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_AD", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_FP", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_IED", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_IPCI", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_IP", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PP", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PR", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_PY", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_RRF", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_RR", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_SC", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_TD", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + }, + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "state", + "type": "tuple" + }, + { + "name": "scheduleTime", + "type": "uint256" + }, + { + "name": "externalData", + "type": "bytes32" + } + ], + "name": "_STF_PAM_CE", + "outputs": [ + { + "components": [ + { + "name": "contractPerformance", + "type": "uint8" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "nonPerformingDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "executionDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "interestScalingMultiplier", + "type": "int256" + }, + { + "name": "notionalScalingMultiplier", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "executionAmount", + "type": "int256" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_SC\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_IP\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PR\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_IED\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PY\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_RRF\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_AD\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_TD\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_IPCI\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_CE\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_RR\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_FP\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"_STF_PAM_PP\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"}}},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"}},\"notice\":\"These helper contracts expose internal functions for unit testing.\"}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestSTF.sol\":\"TestSTF\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/helper/TestSTF.sol\":{\"keccak256\":\"0x78cdf92ca58e82c4d79f2a5bcc4fcb876b62533775468d9c0e199e76c61b8622\",\"urls\":[\"bzzr://bd119c5612be7434343323d40b2799b14a3dc89766c0604bf634f6a7f53ac1e1\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50612e38806100206000396000f3fe608060405234801561001057600080fd5b5060043610610149576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100ca578063c233a7471161008e578063c233a74714610280578063c51d705d14610293578063de93b577146102a6578063e05a66e0146102b9578063e285348b146101d057610149565b8063811322fb1461022c57806387467b611461023f57806399dfa59214610252578063aaf5eb6814610265578063ad4cbd611461026d57610149565b806346f1f8c41161011157806346f1f8c4146101d05780636f37e55b146101e3578063714cfcf7146101f857806371920d74146101d0578063725400031461020b57610149565b806315e879c01461014e578063179331f314610177578063210c4bc21461019757806328448caf146101aa5780632d0fe985146101bd575b600080fd5b61016161015c3660046124ec565b6102cc565b60405161016e9190612c92565b60405180910390f35b61018a610185366004612451565b6102eb565b60405161016e9190612b78565b6101616101a53660046124ec565b6103bd565b6101616101b83660046124ec565b6103d1565b6101616101cb3660046124ec565b6103e5565b6101616101de3660046124ec565b6103f9565b6101eb61040d565b60405161016e9190612b6a565b6101616102063660046124ec565b610419565b61021e6102193660046123f8565b61042d565b60405161016e929190612b86565b6101eb61023a36600461249e565b610477565b6101eb61024d366004612416565b610643565b6101616102603660046124ec565b61066f565b6101eb610683565b61016161027b3660046124ec565b610688565b61016161028e3660046124ec565b61069c565b6101616102a13660046124ec565b6106b0565b6101616102b43660046124ec565b6106c4565b6101eb6102c73660046124bc565b6106d8565b6102d4611da4565b6102e0858585856106fd565b90505b949350505050565b6000808460018111156102fa57fe5b141561037657610309836108b1565b610312846108df565b148015610361575060028260200151600581111561032c57fe5b1480610347575060038260200151600581111561034557fe5b145b80610361575060048260200151600581111561035f57fe5b145b1561036e575060006103b6565b5060016103b6565b600184600181111561038457fe5b1415610392575060016103b6565b60405160e560020a62461bcd0281526004016103ad90612c72565b60405180910390fd5b9392505050565b6103c5611da4565b6102e0858585856108fa565b6103d9611da4565b6102e08585858561095e565b6103ed611da4565b6102e0858585856109ea565b610401611da4565b6102e085858585610a4f565b670de0b6b3a764000081565b610421611da4565b6102e085858585610ac2565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561046257fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561048757fe5b14156104955750601461063e565b600f8260168111156104a357fe5b14156104b15750601961063e565b60088260168111156104bf57fe5b14156104cd5750601e61063e565b60078260168111156104db57fe5b14156104e95750602861063e565b60048260168111156104f757fe5b14156105055750603261063e565b600282601681111561051357fe5b14156105215750603c61063e565b600982601681111561052f57fe5b141561053d5750605061063e565b601182601681111561054b57fe5b14156105595750605a61063e565b601282601681111561056757fe5b14156105755750606461063e565b601382601681111561058357fe5b14156105915750606e61063e565b600682601681111561059f57fe5b14156105ad5750607861063e565b60108260168111156105bb57fe5b14156105c95750608261063e565b60158260168111156105d757fe5b14156105e55750608c61063e565b60148260168111156105f357fe5b14156106015750609661063e565b600a82601681111561060f57fe5b141561061d575060a061063e565b600082601681111561062b57fe5b141561063a57506103b661063e565b5060005b919050565b60008061064f8461042d565b9150506106658184606001518560000151610b56565b9150505b92915050565b610677611da4565b6102e085858585610c99565b601281565b610690611da4565b6102e085858585610ce0565b6106a4611da4565b6102e085858585610d7c565b6106b8611da4565b6102e085858585610e5d565b6106cc611da4565b6102e085858585610fac565b60008160f88460168111156106e957fe5b60ff166001029060020a0217905092915050565b610705611da4565b600061074461072186602001518860600151896000015161100e565b6107348689606001518a6000015161100e565b8860400151896101e00151611078565b9050610786610775826107698860a0015189610100015161114390919063ffffffff16565b9063ffffffff61114316565b60c08701519063ffffffff6111ee16565b60c086015260a08501516102c08701516107c1916107b0918491610769919063ffffffff61114316565b60e08701519063ffffffff6111ee16565b60e086015260048660a0015160078111156107d857fe5b14806107f3575060058660a0015160078111156107f157fe5b145b8061080d575060068660a00151600781111561080b57fe5b145b80610827575060078660a00151600781111561082557fe5b145b156108355760006101208601525b60018660a00151600781111561084757fe5b1480610862575060038660a00151600781111561086057fe5b145b8061087c575060058660a00151600781111561087a57fe5b145b80610896575060078660a00151600781111561089457fe5b145b156108a45760006101408601525b5050506020820152919050565b60008080806108c562015180865b04611239565b919450925090506108d683836112d1565b95945050505050565b600080806108f062015180856108bf565b9695505050505050565b610902611da4565b600061091e61072186602001518860600151896000015161100e565b600060c087015260a08601516102c088015191925061094c916107b09184916107699163ffffffff61114316565b60e08601525050506020820152919050565b610966611da4565b600061098261072186602001518860600151896000015161100e565b90506109a7610775826107698860a0015189610100015161114390919063ffffffff16565b60c086015260a08501516102c08701516109d1916107b0918491610769919063ffffffff61114316565b60e08601525050600060a0840152506020820152919050565b6109f2611da4565b6000610a0e61072186602001518860600151896000015161100e565b9050856102000151610a238760200151611357565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b610a57611da4565b6000610a7361072186602001518860600151896000015161100e565b9050610a98610775826107698860a0015189610100015161114390919063ffffffff16565b60c086015260a08501516102c087015161094c916107b0918491610769919063ffffffff61114316565b610aca611da4565b6000610ae661072186602001518860600151896000015161100e565b9050610b0b610775826107698860a0015189610100015161114390919063ffffffff16565b60c086015260a08501516102c0870151610b35916107b0918491610769919063ffffffff61114316565b60e08601525050506102e09290920151610100820152602081019190915290565b60006001836008811115610b6657fe5b1480610b7d57506003836008811115610b7b57fe5b145b15610b9357610b8c848361141e565b90506103b6565b6002836008811115610ba157fe5b1480610bb857506004836008811115610bb657fe5b145b15610bfc576000610bc9858461141e565b9050610bd48561147a565b610bdd8261147a565b1415610bea5790506103b6565b610bf48584611495565b9150506103b6565b6005836008811115610c0a57fe5b1480610c2157506007836008811115610c1f57fe5b145b15610c3057610b8c8483611495565b6006836008811115610c3e57fe5b1480610c5557506008836008811115610c5357fe5b145b15610c91576000610c668584611495565b9050610c718561147a565b610c7a8261147a565b1415610c875790506103b6565b610bf4858461141e565b509192915050565b610ca1611da4565b6000610cbd61072186602001518860600151896000015161100e565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b610ce8611da4565b6000610d0461072186602001518860600151896000015161100e565b9050610d4e610d3d610d2c836107698960a001518a610100015161114390919063ffffffff16565b60c08801519063ffffffff6111ee16565b60a08701519063ffffffff6111ee16565b60a08601819052600060c08701526102c087015161094c916107b0918491610769919063ffffffff61114316565b610d84611da4565b60008460400151600014610d9c578460400151610daf565b610daf8487606001518860000151610b56565b6103a087015160400151909150839060009015610dea576000610dd7896103a00151856114e3565b9050808311610de857600180895291505b505b876103c00151604001518015610dfe575080155b15610e2d576000610e14896103c00151856114e3565b9050808311610e265760028852610e2b565b600388525b505b60408701511515610e5157610e4b8689606001518a60000151610b56565b60408801525b50949695505050505050565b610e65611da4565b6102a0850151610280860151600091610e9591610e8990869063ffffffff61114316565b9063ffffffff6111ee16565b90506000610eb1866101000151836115ed90919063ffffffff16565b9050610ee0876104200151610ed48961044001518461163890919063ffffffff16565b9063ffffffff61164816565b610100870151909150610ef9908263ffffffff6111ee16565b9150610f1c876103e00151610ed48961040001518561163890919063ffffffff16565b91506000610f5d610f3a88602001518a606001518b6000015161100e565b610f4d888b606001518c6000015161100e565b8a604001518b6101e00151611078565b9050610f93610f82826107698a60a001518b610100015161114390919063ffffffff16565b60c08901519063ffffffff6111ee16565b60c0880152505061010085015250506020820152919050565b610fb4611da4565b6000610fd061072186602001518860600151896000015161100e565b9050610ff5610775826107698860a0015189610100015161114390919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b6000600383600881111561101e57fe5b14806110355750600483600881111561103357fe5b145b8061104b5750600783600881111561104957fe5b145b806110615750600883600881111561105f57fe5b145b1561106d5750826103b6565b6102e3848484610b56565b60008484101561109d5760405160e560020a62461bcd0281526004016103ad90612c62565b60008360068111156110ab57fe5b14156110c2576110bb8585611658565b90506102e3565b60018360068111156110d057fe5b14156110e0576110bb858561176c565b60028360068111156110ee57fe5b14156110fe576110bb8585611797565b600483600681111561110c57fe5b141561111c576110bb85856117b6565b600383600681111561112a57fe5b141561113b576110bb858584611877565b5060016102e3565b6000821580611150575081155b1561115d57506000610669565b82600019148015611171575060ff60020a82145b156111915760405160e560020a62461bcd0281526004016103ad90612c52565b8282028284828115156111a057fe5b05146111c15760405160e560020a62461bcd0281526004016103ad90612c52565b670de0b6b3a764000081058015156106655760405160e560020a62461bcd0281526004016103ad90612c32565b60008282018183128015906112035750838112155b80611218575060008312801561121857508381125b15156103b65760405160e560020a62461bcd0281526004016103ad90612bf2565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561129257fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806112e25750816003145b806112ed5750816005145b806112f85750816007145b806113035750816008145b8061130e575081600a145b80611319575081600c145b156113265750601f610669565b600282146113365750601e610669565b61133f8361194d565b61134a57601c61134d565b601d5b60ff169392505050565b60008082600981111561136657fe5b14156113745750600161063e565b600182600981111561138257fe5b1415611391575060001961063e565b600682600981111561139f57fe5b14156113ad5750600161063e565b60078260098111156113bb57fe5b14156113ca575060001961063e565b60048260098111156113d857fe5b14156113e65750600161063e565b60058260098111156113f457fe5b1415611403575060001961063e565b60405160e560020a62461bcd0281526004016103ad90612c12565b6000600182600181111561142e57fe5b14156114735761143d83611972565b6006141561145757611450836002611985565b9050610669565b61146083611972565b6007141561147357611450836001611985565b5090919050565b6000808061148b62015180856108bf565b5095945050505050565b600060018260018111156114a557fe5b1415611473576114b483611972565b600614156114c75761145083600161199a565b6114d083611972565b600714156114735761145083600261199a565b60008080846020015160058111156114f757fe5b141561150b57610b8c838560000151611985565b60018460200151600581111561151d57fe5b141561153457610b8c838560000151600702611985565b60028460200151600581111561154657fe5b141561155a57610b8c8385600001516119af565b60038460200151600581111561156c57fe5b141561158357610b8c8385600001516003026119af565b60048460200151600581111561159557fe5b14156115ac57610b8c8385600001516006026119af565b6005846020015160058111156115be57fe5b14156115d257610b8c838560000151611a26565b60405160e560020a62461bcd0281526004016103ad90612c02565b60008183038183128015906116025750838113155b80611617575060008312801561161757508381135b15156103b65760405160e560020a62461bcd0281526004016103ad90612c82565b6000818312156114735750919050565b60008183131561147357816103b6565b60008061166484611a4d565b9050600061167184611a4d565b9050600061167e86611a69565b61168a5761016d61168e565b61016e5b61ffff169050818314156116c0576116b6816116aa8888611a8b565b9063ffffffff611aa616565b9350505050610669565b60006116cb86611a69565b6116d75761016d6116db565b61016e5b61ffff169050600061170c836116aa8a6117076116ff8a600163ffffffff611b7816565b600180611ba0565b611a8b565b90506000611729836116aa61172388600180611ba0565b8b611a8b565b905061175f61174f6001611743888a63ffffffff611bba16565b9063ffffffff611bba16565b610e89848463ffffffff6111ee16565b9998505050505050505050565b60006103b66101686116aa6201518061178b868863ffffffff611bba16565b9063ffffffff611bfc16565b60006103b661016d6116aa6201518061178b868863ffffffff611bba16565b60008060008060008060006117ca89611c3e565b9750955093506117d988611c3e565b945092509050601f8614156117ed57601e95505b82601f14156117fb57601e92505b600061180d848863ffffffff6115ed16565b90506000611821848863ffffffff6115ed16565b90506000611835848863ffffffff6115ed16565b90506118676101686116aa85610e8961185587601e63ffffffff611c5c16565b610e898761016863ffffffff611c5c16565b9c9b505050505050505050505050565b600080600080600080600061188b8a611c3e565b97509550935061189a89611c3e565b9450925090506118a98a6108b1565b8614156118b557601e95505b87891480156118c45750816002145b1580156118d857506118d5896108b1565b83145b156118e257601e92505b60006118f4848863ffffffff6115ed16565b90506000611908848863ffffffff6115ed16565b9050600061191c848863ffffffff6115ed16565b905061193c6101686116aa85610e8961185587601e63ffffffff611c5c16565b9d9c50505050505050505050505050565b60006004820615801561196257506064820615155b8061066957505061019090061590565b6007620151809091046003010660010190565b62015180810282018281101561066957600080fd5b62015180810282038281111561066957600080fd5b60008080806119c162015180876108bf565b600c9188016000190182810493909301955091066001019250905060006119e884846112d1565b9050808211156119f6578091505b62015180870662015180611a0b868686611cd1565b0201945086851015611a1c57600080fd5b5050505092915050565b6000808080611a3862015180876108bf565b91870194509250905060006119e884846112d1565b60008080611a5e62015180856108bf565b509095945050505050565b6000808080611a7b62015180866108bf565b919450925090506108d68361194d565b600081831115611a9a57600080fd5b50620151809190030490565b6000811515611aca5760405160e560020a62461bcd0281526004016103ad90612bc2565b821515611ad957506000610669565b670de0b6b3a7640000838102908482811515611af157fe5b0514611b125760405160e560020a62461bcd0281526004016103ad90612c22565b82600019148015611b26575060ff60020a84145b15611b465760405160e560020a62461bcd0281526004016103ad90612bb2565b60008382811515611b5357fe5b0590508015156106655760405160e560020a62461bcd0281526004016103ad90612be2565b6000828201838110156103b65760405160e560020a62461bcd0281526004016103ad90612bd2565b600062015180611bb1858585611cd1565b02949350505050565b60006103b683836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d37565b60006103b683836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d66565b60008080611c4f62015180856108bf565b9196909550909350915050565b6000821515611c6d57506000610669565b82600019148015611c81575060ff60020a82145b15611ca15760405160e560020a62461bcd0281526004016103ad90612c42565b828202828482811515611cb057fe5b05146103b65760405160e560020a62461bcd0281526004016103ad90612c42565b60006107b2841015611ce257600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008184841115611d5e5760405160e560020a62461bcd0281526004016103ad9190612ba1565b505050900390565b600081818411611d8c5760405160e560020a62461bcd0281526004016103ad9190612ba1565b5060008385811515611d9a57fe5b0495945050505050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006103b68235612d10565b60006103b68235612d1b565b60006103b68235612ccc565b60006103b68235612d20565b60006103b68235612d2f565b60006103b68235612d3e565b60006103b68235612d4d565b60006103b68235612d5c565b60006103b68235612d6b565b60006103b68235612d7a565b60006103b68235612d89565b60006103b68235612d98565b600060608284031215611eaf57600080fd5b611eb96060612ca1565b90506000611ec78484611e25565b8252506020611ed884848301611e55565b6020830152506040611eec84828501611e55565b60408301525092915050565b600060808284031215611f0a57600080fd5b611f146080612ca1565b90506000611f228484611e25565b8252506020611f3384848301611e85565b6020830152506040611f4784828501611e3d565b6040830152506060611f5b84828501611e19565b60608301525092915050565b600060608284031215611f7957600080fd5b611f836060612ca1565b90506000611f918484611e25565b8252506020611fa284848301611e85565b6020830152506040611eec84828501611e19565b60006105608284031215611fc957600080fd5b611fd4610460612ca1565b90506000611fe28484611e3d565b8252506020611ff384848301611e61565b602083015250604061200784828501611e6d565b604083015250606061201b84828501611e31565b606083015250608061202f84828501611e3d565b60808301525060a061204384828501611e91565b60a08301525060c061205784828501611e49565b60c08301525060e061206b84828501611e3d565b60e08301525061010061208084828501611e49565b6101008301525061012061209684828501611e9d565b610120830152506101806120ac84828501611e9d565b610140830152506101e06120c284828501611e0d565b610160830152506102006120d884828501611e0d565b610180830152506102206120ee84828501611e25565b6101a08301525061024061210484828501611e25565b6101c08301525061026061211a84828501611e25565b6101e08301525061028061213084828501611e25565b610200830152506102a061214684828501611e25565b610220830152506102c061215c84828501611e25565b610240830152506102e061217284828501611e25565b6102608301525061030061218884828501611e25565b6102808301525061032061219e84828501611e25565b6102a0830152506103406121b484828501611e25565b6102c0830152506103606121ca84828501611e25565b6102e0830152506103806121e084828501611e25565b610300830152506103a06121f684828501611e25565b610320830152506103c061220c84828501611e25565b610340830152506103e061222284828501611e25565b6103608301525061040061223884828501611e25565b6103808301525061042061224e84828501611f67565b6103a08301525061048061226484828501611f67565b6103c0830152506104e061227a84828501611e25565b6103e08301525061050061229084828501611e25565b610400830152506105206122a684828501611e25565b610420830152506105406122bc84828501611e25565b6104408301525092915050565b60006101a082840312156122dc57600080fd5b6122e76101a0612ca1565b905060006122f58484611e49565b825250602061230684848301611e25565b602083015250604061231a84828501611e25565b604083015250606061232e84828501611e25565b606083015250608061234284828501611e25565b60808301525060a061235684828501611e25565b60a08301525060c061236a84828501611e25565b60c08301525060e061237e84828501611e25565b60e08301525061010061239384828501611e25565b610100830152506101206123a984828501611e25565b610120830152506101406123bf84828501611e25565b610140830152506101606123d584828501611e25565b610160830152506101806123eb84828501611e25565b6101808301525092915050565b60006020828403121561240a57600080fd5b60006106658484611e25565b600080610580838503121561242a57600080fd5b60006124368585611e25565b925050602061244785828601611fb6565b9150509250929050565b600080600060c0848603121561246657600080fd5b60006124728686611e3d565b935050602061248386828701611e25565b925050604061249486828701611ef8565b9150509250925092565b6000602082840312156124b057600080fd5b60006106658484611e79565b600080604083850312156124cf57600080fd5b60006124db8585611e79565b925050602061244785828601611e25565b600080600080610740858703121561250357600080fd5b600061250f8787611fb6565b945050610560612521878288016122c9565b93505061070061253387828801611e25565b92505061072061254587828801611e25565b91505092959194509250565b61255a81612ccc565b82525050565b61255a81612da7565b61255a81612db2565b61255a81612dbd565b600061258682612cc8565b80845261259a816020860160208601612dc8565b6125a381612df4565b9093016020019392505050565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190612a768482612560565b506020820151612a896020850182612551565b506040820151612a9c6040850182612551565b506060820151612aaf6060850182612551565b506080820151612ac26080850182612551565b5060a0820151612ad560a0850182612551565b5060c0820151612ae860c0850182612551565b5060e0820151612afb60e0850182612551565b50610100820151612b10610100850182612551565b50610120820151612b25610120850182612551565b50610140820151612b3a610140850182612551565b50610160820151612b4f610160850182612551565b50610180820151612b64610180850182612551565b50505050565b602081016106698284612551565b602081016106698284612569565b60408101612b948285612572565b6103b66020830184612551565b602080825281016103b6818461257b565b60208082528101610669816125b0565b6020808252810161066981612606565b602080825281016106698161265c565b602080825281016106698161268c565b60208082528101610669816126e2565b6020808252810161066981612738565b602080825281016106698161278e565b60208082528101610669816127e4565b602080825281016106698161283a565b6020808252810161066981612890565b60208082528101610669816128e6565b602080825281016106698161293c565b6020808252810161066981612992565b6020808252810161066981612a0e565b6101a081016106698284612a64565b60405181810167ffffffffffffffff81118282101715612cc057600080fd5b604052919050565b5190565b90565b600060048210612cdb57fe5b5090565b600060028210612cdb57fe5b600060178210612cdb57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061066982612cf7565b151590565b600060098210612cdb57600080fd5b600060028210612cdb57600080fd5b600060048210612cdb57600080fd5b600060058210612cdb57600080fd5b6000600a8210612cdb57600080fd5b600060078210612cdb57600080fd5b600060178210612cdb57600080fd5b600060068210612cdb57600080fd5b600060088210612cdb57600080fd5b600061066982612ccf565b600061066982612cdf565b600061066982612ceb565b60005b83811015612de3578181015183820152602001612dcb565b83811115612b645750506000910152565b601f01601f19169056fea265627a7a723058201a6549b064d7f01f0e7f256d018d44d936ab6541692415abdd28def20c0e28e46c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.989Z" +} diff --git a/artifacts/Utils.json b/artifacts/Utils.json new file mode 100644 index 0000000..6983206 --- /dev/null +++ b/artifacts/Utils.json @@ -0,0 +1,327 @@ +{ + "contractName": "Utils", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "ONE_POINT_ZERO", + "outputs": [ + { + "name": "", + "type": "int256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "PRECISION", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + }, + { + "name": "scheduleTime", + "type": "uint256" + } + ], + "name": "encodeEvent", + "outputs": [ + { + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + } + ], + "name": "decodeEvent", + "outputs": [ + { + "name": "", + "type": "uint8" + }, + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_event", + "type": "bytes32" + }, + { + "components": [ + { + "name": "calendar", + "type": "uint8" + }, + { + "name": "contractRole", + "type": "uint8" + }, + { + "name": "dayCountConvention", + "type": "uint8" + }, + { + "name": "businessDayConvention", + "type": "uint8" + }, + { + "name": "endOfMonthConvention", + "type": "uint8" + }, + { + "name": "scalingEffect", + "type": "uint8" + }, + { + "name": "penaltyType", + "type": "uint8" + }, + { + "name": "feeBasis", + "type": "uint8" + }, + { + "name": "creditEventTypeCovered", + "type": "uint8" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_1", + "type": "tuple" + }, + { + "components": [ + { + "name": "object", + "type": "bytes32" + }, + { + "name": "contractReferenceType", + "type": "uint8" + }, + { + "name": "contractReferenceRole", + "type": "uint8" + } + ], + "name": "contractReference_2", + "type": "tuple" + }, + { + "name": "currency", + "type": "address" + }, + { + "name": "settlementCurrency", + "type": "address" + }, + { + "name": "marketObjectCodeRateReset", + "type": "bytes32" + }, + { + "name": "statusDate", + "type": "uint256" + }, + { + "name": "maturityDate", + "type": "uint256" + }, + { + "name": "notionalPrincipal", + "type": "int256" + }, + { + "name": "nominalInterestRate", + "type": "int256" + }, + { + "name": "feeAccrued", + "type": "int256" + }, + { + "name": "accruedInterest", + "type": "int256" + }, + { + "name": "rateMultiplier", + "type": "int256" + }, + { + "name": "rateSpread", + "type": "int256" + }, + { + "name": "feeRate", + "type": "int256" + }, + { + "name": "nextResetRate", + "type": "int256" + }, + { + "name": "penaltyRate", + "type": "int256" + }, + { + "name": "premiumDiscountAtIED", + "type": "int256" + }, + { + "name": "priceAtPurchaseDate", + "type": "int256" + }, + { + "name": "nextPrincipalRedemptionPayment", + "type": "int256" + }, + { + "name": "coverageOfCreditEnhancement", + "type": "int256" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "gracePeriod", + "type": "tuple" + }, + { + "components": [ + { + "name": "i", + "type": "uint256" + }, + { + "name": "p", + "type": "uint8" + }, + { + "name": "isSet", + "type": "bool" + } + ], + "name": "delinquencyPeriod", + "type": "tuple" + }, + { + "name": "lifeCap", + "type": "int256" + }, + { + "name": "lifeFloor", + "type": "int256" + }, + { + "name": "periodCap", + "type": "int256" + }, + { + "name": "periodFloor", + "type": "int256" + } + ], + "name": "terms", + "type": "tuple" + } + ], + "name": "computeEventTimeForEvent", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "eventType", + "type": "uint8" + } + ], + "name": "getEpochOffset", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":\"Utils\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610cbf806100206000396000f3fe608060405234801561001057600080fd5b506004361061007e577c010000000000000000000000000000000000000000000000000000000060003504636f37e55b811461008357806372540003146100a1578063811322fb146100c257806387467b61146100d5578063aaf5eb68146100e8578063e05a66e0146100f0575b600080fd5b61008b610103565b6040516100989190610b67565b60405180910390f35b6100b46100af366004610aa8565b61010f565b604051610098929190610b75565b61008b6100d0366004610b01565b610159565b61008b6100e3366004610ac6565b610325565b61008b610351565b61008b6100fe366004610b1f565b610356565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561014457fe5b92505067ffffffffffffffff83169050915091565b6000600582601681111561016957fe5b141561017757506014610320565b600f82601681111561018557fe5b141561019357506019610320565b60088260168111156101a157fe5b14156101af5750601e610320565b60078260168111156101bd57fe5b14156101cb57506028610320565b60048260168111156101d957fe5b14156101e757506032610320565b60028260168111156101f557fe5b14156102035750603c610320565b600982601681111561021157fe5b141561021f57506050610320565b601182601681111561022d57fe5b141561023b5750605a610320565b601282601681111561024957fe5b141561025757506064610320565b601382601681111561026557fe5b14156102735750606e610320565b600682601681111561028157fe5b141561028f57506078610320565b601082601681111561029d57fe5b14156102ab57506082610320565b60158260168111156102b957fe5b14156102c75750608c610320565b60148260168111156102d557fe5b14156102e357506096610320565b600a8260168111156102f157fe5b14156102ff575060a0610320565b600082601681111561030d57fe5b141561031c57506103b6610320565b5060005b919050565b6000806103318461010f565b915050610347818460600151856000015161037b565b9150505b92915050565b601281565b60008160f884601681111561036757fe5b60ff166001029060020a0217905092915050565b6000600183600881111561038b57fe5b14806103a2575060038360088111156103a057fe5b145b156103b8576103b184836104c0565b90506104b9565b60028360088111156103c657fe5b14806103dd575060048360088111156103db57fe5b145b156104215760006103ee85846104c0565b90506103f98561051c565b6104028261051c565b141561040f5790506104b9565b6104198584610538565b9150506104b9565b600583600881111561042f57fe5b14806104465750600783600881111561044457fe5b145b15610455576103b18483610538565b600683600881111561046357fe5b148061047a5750600883600881111561047857fe5b145b156104b657600061048b8584610538565b90506104968561051c565b61049f8261051c565b14156104ac5790506104b9565b61041985846104c0565b50825b9392505050565b600060018260018111156104d057fe5b1415610515576104df83610586565b600614156104f9576104f2836002610599565b905061034b565b61050283610586565b60071415610515576104f2836001610599565b5090919050565b6000808061052e6201518085046105ae565b5095945050505050565b6000600182600181111561054857fe5b14156105155761055783610586565b6006141561056a576104f2836001610646565b61057383610586565b60071415610515576104f2836002610646565b6007620151809091046003010660010190565b62015180810282018281101561034b57600080fd5b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561060757fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b62015180810282038281111561034b57600080fd5b60006104b98235610be3565b60006104b98235610bee565b60006104b98235610bb7565b60006104b98235610bf3565b60006104b98235610c02565b60006104b98235610c11565b60006104b98235610c20565b60006104b98235610c2f565b60006104b98235610c3e565b60006104b98235610c4d565b60006104b98235610c5c565b60006104b98235610c6b565b6000606082840312156106fd57600080fd5b6107076060610b90565b905060006107158484610673565b8252506020610726848483016106a3565b602083015250604061073a848285016106a3565b60408301525092915050565b60006060828403121561075857600080fd5b6107626060610b90565b905060006107708484610673565b8252506020610781848483016106d3565b602083015250604061073a84828501610667565b600061056082840312156107a857600080fd5b6107b3610460610b90565b905060006107c1848461068b565b82525060206107d2848483016106af565b60208301525060406107e6848285016106bb565b60408301525060606107fa8482850161067f565b606083015250608061080e8482850161068b565b60808301525060a0610822848285016106df565b60a08301525060c061083684828501610697565b60c08301525060e061084a8482850161068b565b60e08301525061010061085f84828501610697565b61010083015250610120610875848285016106eb565b6101208301525061018061088b848285016106eb565b610140830152506101e06108a18482850161065b565b610160830152506102006108b78482850161065b565b610180830152506102206108cd84828501610673565b6101a0830152506102406108e384828501610673565b6101c0830152506102606108f984828501610673565b6101e08301525061028061090f84828501610673565b610200830152506102a061092584828501610673565b610220830152506102c061093b84828501610673565b610240830152506102e061095184828501610673565b6102608301525061030061096784828501610673565b6102808301525061032061097d84828501610673565b6102a08301525061034061099384828501610673565b6102c0830152506103606109a984828501610673565b6102e0830152506103806109bf84828501610673565b610300830152506103a06109d584828501610673565b610320830152506103c06109eb84828501610673565b610340830152506103e0610a0184828501610673565b61036083015250610400610a1784828501610673565b61038083015250610420610a2d84828501610746565b6103a083015250610480610a4384828501610746565b6103c0830152506104e0610a5984828501610673565b6103e083015250610500610a6f84828501610673565b61040083015250610520610a8584828501610673565b61042083015250610540610a9b84828501610673565b6104408301525092915050565b600060208284031215610aba57600080fd5b60006103478484610673565b6000806105808385031215610ada57600080fd5b6000610ae68585610673565b9250506020610af785828601610795565b9150509250929050565b600060208284031215610b1357600080fd5b600061034784846106c7565b60008060408385031215610b3257600080fd5b6000610b3e85856106c7565b9250506020610af785828601610673565b610b5881610bb7565b82525050565b610b5881610c7a565b6020810161034b8284610b4f565b60408101610b838285610b5e565b6104b96020830184610b4f565b60405181810167ffffffffffffffff81118282101715610baf57600080fd5b604052919050565b90565b600060178210610bc657fe5b5090565b73ffffffffffffffffffffffffffffffffffffffff1690565b600061034b82610bca565b151590565b600060098210610bc657600080fd5b600060028210610bc657600080fd5b600060048210610bc657600080fd5b600060058210610bc657600080fd5b6000600a8210610bc657600080fd5b600060078210610bc657600080fd5b600060178210610bc657600080fd5b600060068210610bc657600080fd5b600060088210610bc657600080fd5b600061034b82610bba56fea265627a7a72305820a1286211a937085d1ac89cd63d31accf099f5fe9d7697a77ff22e8414dce77c26c6578706572696d656e74616cf50037", + "compiler": { + "name": "solc", + "version": "0.5.2+commit.1df8f40c.Emscripten.clang" + }, + "networks": {}, + "updatedAt": "2019-12-12T12:59:08.861Z" +} diff --git a/contracts/Engines/ANNEngine.sol b/contracts/Engines/ANNEngine.sol index c8c296f..7647df3 100755 --- a/contracts/Engines/ANNEngine.sol +++ b/contracts/Engines/ANNEngine.sol @@ -130,11 +130,10 @@ contract ANNEngine is BaseEngine, STF, POF { if ( terms.cycleOfInterestPayment.isSet == true && terms.cycleAnchorDateOfInterestPayment != 0 - && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( (terms.capitalizationEndDate == 0) ? terms.cycleAnchorDateOfInterestPayment : terms.capitalizationEndDate, - terms.cycleAnchorDateOfPrincipalRedemption, // pure IP schedule ends at beginning of combined IP/PR schedule + terms.maturityDate, // pure IP schedule ends at beginning of combined IP/PR schedule terms.cycleOfInterestPayment, false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule segmentStart, @@ -157,7 +156,7 @@ contract ANNEngine is BaseEngine, STF, POF { terms.cycleOfInterestPayment.isSet == true && terms.cycleAnchorDateOfInterestPayment != 0 && terms.capitalizationEndDate != 0 - && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption + && terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( terms.cycleAnchorDateOfInterestPayment, @@ -170,18 +169,10 @@ contract ANNEngine is BaseEngine, STF, POF { for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { if (interestPaymentSchedule[i] == 0) break; if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; - if (interestPaymentSchedule[i] == terms.capitalizationEndDate) continue; _eventSchedule[index] = encodeEvent(EventType.IPCI, interestPaymentSchedule[i]); index++; } } - // capitalization end date - if (terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption) { - if (isInPeriod(terms.capitalizationEndDate, segmentStart, segmentEnd)) { - _eventSchedule[index] = encodeEvent(EventType.IPCI, terms.capitalizationEndDate); - index++; - } - } } if (eventType == EventType.FP) { diff --git a/contracts/Engines/PAMEngine.sol b/contracts/Engines/PAMEngine.sol index 86d3a57..57d8914 100755 --- a/contracts/Engines/PAMEngine.sol +++ b/contracts/Engines/PAMEngine.sol @@ -120,13 +120,12 @@ contract PAMEngine is BaseEngine, STF, POF { if ( terms.cycleOfInterestPayment.isSet == true && terms.cycleAnchorDateOfInterestPayment != 0 - && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( (terms.capitalizationEndDate == 0) ? terms.cycleAnchorDateOfInterestPayment : terms.capitalizationEndDate, - terms.cycleAnchorDateOfPrincipalRedemption, // pure IP schedule ends at beginning of combined IP/PR schedule + terms.maturityDate, // pure IP schedule ends at beginning of combined IP/PR schedule terms.cycleOfInterestPayment, - false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + true, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule segmentStart, segmentEnd ); @@ -147,31 +146,23 @@ contract PAMEngine is BaseEngine, STF, POF { terms.cycleOfInterestPayment.isSet == true && terms.cycleAnchorDateOfInterestPayment != 0 && terms.capitalizationEndDate != 0 - && terms.cycleAnchorDateOfInterestPayment < terms.cycleAnchorDateOfPrincipalRedemption + && terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( terms.cycleAnchorDateOfInterestPayment, terms.capitalizationEndDate, terms.cycleOfInterestPayment, - false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + true, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule segmentStart, segmentEnd ); for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { if (interestPaymentSchedule[i] == 0) break; if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; - if (interestPaymentSchedule[i] == terms.capitalizationEndDate) continue; _eventSchedule[index] = encodeEvent(EventType.IPCI, interestPaymentSchedule[i]); index++; } } - // capitalization end date - if (terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption) { - if (isInPeriod(terms.capitalizationEndDate, segmentStart, segmentEnd)) { - _eventSchedule[index] = encodeEvent(EventType.IPCI, terms.capitalizationEndDate); - index++; - } - } } if (eventType == EventType.RR) { diff --git a/test/Engines/ANN/TestANNEngine.js b/test/Engines/ANN/TestANNEngine.js index 396cb7e..9c4e3bc 100755 --- a/test/Engines/ANN/TestANNEngine.js +++ b/test/Engines/ANN/TestANNEngine.js @@ -13,15 +13,21 @@ const { contract('ANNEngine', () => { const computeEventScheduleSegment = async (terms, segmentStart, segmentEnd) => { + const generatingTerms = parseTermsToGeneratingTerms(terms); + + // fix for new schedule generation + generatingTerms.cycleAnchorDateOfInterestPayment = generatingTerms.cycleAnchorDateOfPrincipalRedemption; + generatingTerms.cycleOfInterestPayment = generatingTerms.cycleOfPrincipalRedemption; + const _eventSchedule = []; _eventSchedule.push(... await this.ANNEngineInstance.computeNonCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd )); _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd, 4 // FP @@ -33,13 +39,13 @@ contract('ANNEngine', () => { 7 // IPCI )); _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd, 8 // IP )); _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd, 15 // PR diff --git a/test/Engines/ANN/TestANNSchedules.js b/test/Engines/ANN/TestANNSchedules.js index c93df0c..d29e0c3 100644 --- a/test/Engines/ANN/TestANNSchedules.js +++ b/test/Engines/ANN/TestANNSchedules.js @@ -13,6 +13,11 @@ contract('ANNEngine', () => { const computeEventScheduleSegment = async (terms, segmentStart, segmentEnd) => { const generatingTerms = parseTermsToGeneratingTerms(terms); + + // fix for new schedule generation + generatingTerms.cycleAnchorDateOfInterestPayment = generatingTerms.cycleAnchorDateOfPrincipalRedemption; + generatingTerms.cycleOfInterestPayment = generatingTerms.cycleOfPrincipalRedemption; + const _eventSchedule = []; _eventSchedule.push(... await this.ANNEngineInstance.computeNonCyclicScheduleSegment( diff --git a/test/Engines/PAM/TestPAMEngine.js b/test/Engines/PAM/TestPAMEngine.js index 5b17817..b2cd9bb 100755 --- a/test/Engines/PAM/TestPAMEngine.js +++ b/test/Engines/PAM/TestPAMEngine.js @@ -13,15 +13,16 @@ const { contract('PAMEngine', () => { const computeEventScheduleSegment = async (terms, segmentStart, segmentEnd) => { + const generatingTerms = parseTermsToGeneratingTerms(terms); const _eventSchedule = []; _eventSchedule.push(... await this.PAMEngineInstance.computeNonCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd )); _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd, 4 // FP @@ -33,16 +34,16 @@ contract('PAMEngine', () => { 7 // IPCI )); _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd, 8 // IP )); _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( - terms, + generatingTerms, segmentStart, segmentEnd, - 18 // PR + 15 // PR )); return sortEvents(removeNullEvents(_eventSchedule)); diff --git a/test/Engines/PAM/TestPAMSchedules.js b/test/Engines/PAM/TestPAMSchedules.js index 9a3eecc..6db521e 100644 --- a/test/Engines/PAM/TestPAMSchedules.js +++ b/test/Engines/PAM/TestPAMSchedules.js @@ -41,7 +41,7 @@ contract('PAMEngine', () => { generatingTerms, segmentStart, segmentEnd, - 18 // RR + 15 // PR )); return sortEvents(removeNullEvents(_eventSchedule)); From f0d14b69274b5d771cacc12d607a008bdf64faec Mon Sep 17 00:00:00 2001 From: jo-es Date: Thu, 12 Dec 2019 16:40:21 +0100 Subject: [PATCH 3/3] Fix cyclic generation --- artifacts/ACTUSTypes.json | 2 +- artifacts/ANNEngine.json | 6 +++--- artifacts/BaseEngine.json | 2 +- artifacts/BokkyPooBahsDateTimeLibrary.json | 2 +- artifacts/BusinessDayConvention.json | 2 +- artifacts/CECEngine.json | 2 +- artifacts/CEGEngine.json | 2 +- artifacts/ContractDefaultConvention.json | 2 +- artifacts/ContractRoleConvention.json | 2 +- artifacts/Core.json | 2 +- artifacts/DayCountConvention.json | 2 +- artifacts/EndOfMonthConvention.json | 2 +- artifacts/IEngine.json | 2 +- artifacts/Migrations.json | 2 +- artifacts/PAMEngine.json | 6 +++--- artifacts/POF.json | 2 +- artifacts/STF.json | 2 +- artifacts/SafeMath.json | 2 +- artifacts/Schedule.json | 2 +- artifacts/SignedMath.json | 2 +- artifacts/SignedSafeMath.json | 2 +- artifacts/TestPOF.json | 2 +- artifacts/TestSTF.json | 2 +- artifacts/Utils.json | 2 +- contracts/Engines/ANNEngine.sol | 18 +++++++++++------- contracts/Engines/PAMEngine.sol | 15 +++++++++------ test/Engines/ANN/TestANNEngine.js | 7 +++++++ test/Engines/ANN/TestANNSchedules.js | 7 +++++++ test/Engines/PAM/TestPAMEngine.js | 7 +++++++ test/Engines/PAM/TestPAMSchedules.js | 6 ++++++ 30 files changed, 75 insertions(+), 41 deletions(-) diff --git a/artifacts/ACTUSTypes.json b/artifacts/ACTUSTypes.json index d718d35..847d587 100644 --- a/artifacts/ACTUSTypes.json +++ b/artifacts/ACTUSTypes.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.830Z" + "updatedAt": "2019-12-12T14:54:18.525Z" } diff --git a/artifacts/ANNEngine.json b/artifacts/ANNEngine.json index b653eb3..48afade 100644 --- a/artifacts/ANNEngine.json +++ b/artifacts/ANNEngine.json @@ -2059,12 +2059,12 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a ANN contract implements the STF and POF of the Actus standard for a ANN contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period TODO: add missing contract features: - rate reset - scaling - interest calculation base\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":\"ANNEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":{\"keccak256\":\"0xaba1ca7b9f5c34069265533a75a1d60c91cb594cf49995918b1a3f180772c273\",\"urls\":[\"bzzr://911f194d2de627f15d76c56f1d4b15a9af9cd12616ae2560c7f422f5fe793d82\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50614469806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff3660046137b1565b61022a565b604051610111919061415d565b60405180910390f35b61012d610128366004613738565b6102fc565b6040516101119190614141565b61014d61014836600461384c565b610307565b6040516101119190614132565b610162610459565b604051610111919061414f565b61018261017d3660046136df565b610465565b60405161011192919061416b565b6101a361019e366004613916565b6104af565b60405161011191906142b7565b6101626101be3660046137fe565b6104ce565b6101626101d13660046136fd565b61069a565b6101626106c6565b6101626101ec366004613916565b6106cb565b6101626101ff36600461381c565b610762565b61014d610212366004613892565b610787565b6101a36102253660046138f7565b610be5565b60008084600181111561023957fe5b14156102b55761024883610c9e565b61025184610ccc565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec90614287565b60405180910390fd5b9392505050565b600195945050505050565b61030f612e6c565b610317612e6c565b606085015160009061032a908686610ce7565b156103575761033e60058760600151610762565b8261ffff83166040811061034e57fe5b60200201526001015b60c08601511561039d576103708660c001518686610ce7565b1561039d5761038460108760c00151610762565b8261ffff83166040811061039457fe5b60200201526001015b60a0860151156103e3576103b68660a001518686610ce7565b156103e3576103ca60158760a00151610762565b8261ffff8316604081106103da57fe5b60200201526001015b6103f286608001518686610ce7565b1515600114156104505761040b600a8760800151610762565b8261ffff83166040811061041b57fe5b6020020152608086015160019091019061043790600890610762565b8261ffff83166040811061044757fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561049a57fe5b92505067ffffffffffffffff83169050915091565b6104b7612e8c565b6104c385858585610d0f565b90505b949350505050565b600060058260168111156104de57fe5b14156104ec57506014610695565b600f8260168111156104fa57fe5b141561050857506019610695565b600882601681111561051657fe5b14156105245750601e610695565b600782601681111561053257fe5b141561054057506028610695565b600482601681111561054e57fe5b141561055c57506032610695565b600282601681111561056a57fe5b14156105785750603c610695565b600982601681111561058657fe5b141561059457506050610695565b60118260168111156105a257fe5b14156105b05750605a610695565b60128260168111156105be57fe5b14156105cc57506064610695565b60138260168111156105da57fe5b14156105e85750606e610695565b60068260168111156105f657fe5b141561060457506078610695565b601082601681111561061257fe5b141561062057506082610695565b601582601681111561062e57fe5b141561063c5750608c610695565b601482601681111561064a57fe5b141561065857506096610695565b600a82601681111561066657fe5b1415610674575060a0610695565b600082601681111561068257fe5b141561069157506103b6610695565b5060005b919050565b6000806106a684610465565b9150506106bc8184606001518560000151610f0c565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff161580159061072e575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b156107565761074f826107438787878461104f565b9063ffffffff61123716565b90506104c6565b6104c38585858561104f565b60008160f884601681111561077357fe5b60ff166001029060020a0217905092915050565b61078f612e6c565b610797612e6c565b60088360168111156107a557fe5b14156108c0576101c086015160600151600090151560011480156107cd575061010087015115155b80156107e25750866101800151876101000151105b156108be576107ef612ef5565b6108248860e00151600014610808578860e0015161080f565b8861010001515b8961018001518a6101c0015160008b8b6112e2565b905060005b60108160ff1610156108bb578160ff82166010811061084457fe5b60200201511515610854576108bb565b6108728260ff83166010811061086657fe5b60200201518989610ce7565b151561087d576108b3565b61089b60088360ff84166010811061089157fe5b6020020151610762565b8484604081106108a757fe5b60200201526001909201915b600101610829565b50505b505b60078360168111156108ce57fe5b1415610a37576101c086015160600151600090151560011480156108f6575061010087015115155b8015610905575060e087015115155b801561091a5750866101800151876101000151105b156109ec57610927612ef5565b6109448861010001518960e001518a6101c0015160008b8b6112e2565b905060005b60108160ff1610156109e9578160ff82166010811061096457fe5b60200201511515610974576109e9565b6109868260ff83166010811061086657fe5b1515610991576109e1565b60e08901518260ff8316601081106109a557fe5b602002015114156109b5576109e1565b6109c960078360ff84166010811061089157fe5b8484604081106109d557fe5b60200201526001909201915b600101610949565b50505b8661018001518760e001511015610a3557610a0c8760e001518787610ce7565b15610a3557610a2060078860e00151610762565b828260408110610a2c57fe5b60200201526001015b505b6004836016811115610a4557fe5b1415610b1d576102208601516060015160009015156001148015610a6d575061016087015115155b15610b1b57610a7a612ef5565b610a9788610160015189608001518a610220015160018b8b6112e2565b905060005b60108160ff161015610b18578160ff821660108110610ab757fe5b60200201511515610ac757610b18565b610ad98260ff83166010811061086657fe5b1515610ae457610b10565b610af860048360ff84166010811061089157fe5b848460408110610b0457fe5b60200201526001909201915b600101610a9c565b50505b505b600f836016811115610b2b57fe5b14156104c3576000610b3b612ef5565b610b5888610180015189608001518a610240015160008b8b6112e2565b905060005b60108160ff161015610bd9578160ff821660108110610b7857fe5b60200201511515610b8857610bd9565b610b9a8260ff83166010811061086657fe5b1515610ba557610bd1565b610bb9600f8360ff84166010811061089157fe5b848460408110610bc557fe5b60200201526001909201915b600101610b5d565b50505095945050505050565b610bed612e8c565b610bf5612e8c565b60008152670de0b6b3a764000061014082018190526101208201526101c08301516020808301919091526101e0840151606083015261020084015190840151610c3d906114a1565b60000b0260a08201526102208301516101008201526102608301516020840151610c66906114a1565b60000b0260c082015261024083015160e08201526103608301516020840151610c8e906114a1565b60000b0261016082015292915050565b6000808080610cb262015180865b04611568565b91945092509050610cc38383611600565b95945050505050565b60008080610cdd6201518085610cac565b9695505050505050565b60008383108015610cf85750838210155b15610d05575060016102f5565b5060009392505050565b610d17612e8c565b600080610d2385610465565b90925090506000826016811115610d3657fe5b1415610d5157610d4887878387611686565b925050506104c6565b6004826016811115610d5f57fe5b1415610d7157610d4887878387611750565b6005826016811115610d7f57fe5b1415610d9157610d48878783876117b2565b6007826016811115610d9f57fe5b1415610db157610d4887878387611817565b6008826016811115610dbf57fe5b1415610dd157610d48878783876118a1565b600e826016811115610ddf57fe5b1415610df157610d4887878387611686565b600f826016811115610dff57fe5b1415610e1157610d48878783876118f3565b600a826016811115610e1f57fe5b1415610e3157610d48878783876119f6565b600b826016811115610e3f57fe5b1415610e5157610d4887878387611686565b6011826016811115610e5f57fe5b1415610e7157610d4887878387611a82565b6012826016811115610e7f57fe5b1415610e9157610d4887878387611b16565b6013826016811115610e9f57fe5b1415610eb157610d4887878387611c8e565b6015826016811115610ebf57fe5b1415610ed157610d4887878387611df1565b6016826016811115610edf57fe5b1415610ef157610d4887878387611e38565b60405160e560020a62461bcd0281526004016102ec90614297565b60006001836008811115610f1c57fe5b1480610f3357506003836008811115610f3157fe5b145b15610f4957610f428483611f19565b90506102f5565b6002836008811115610f5757fe5b1480610f6e57506004836008811115610f6c57fe5b145b15610fb2576000610f7f8584611f19565b9050610f8a85611f75565b610f9382611f75565b1415610fa05790506102f5565b610faa8584611f90565b9150506102f5565b6005836008811115610fc057fe5b1480610fd757506007836008811115610fd557fe5b145b15610fe657610f428483611f90565b6006836008811115610ff457fe5b148061100b5750600883600881111561100957fe5b145b1561104757600061101c8584611f90565b905061102785611f75565b61103082611f75565b141561103d5790506102f5565b610faa8584611f19565b509192915050565b600080600061105d85610465565b9092509050600082601681111561107057fe5b1415611081576000925050506104c6565b600782601681111561108f57fe5b14156110a0576000925050506104c6565b60118260168111156110ae57fe5b14156110bf576000925050506104c6565b60128260168111156110cd57fe5b14156110de576000925050506104c6565b60138260168111156110ec57fe5b14156110fd576000925050506104c6565b601682601681111561110b57fe5b141561111c576000925050506104c6565b600482601681111561112a57fe5b141561113c57610d4887878387611fde565b600582601681111561114a57fe5b141561115c57610d4887878387612077565b600882601681111561116a57fe5b141561117c57610d48878783876120b5565b600e82601681111561118a57fe5b141561119c57610d488787838761211d565b600f8260168111156111aa57fe5b14156111bc57610d488787838761213e565b600a8260168111156111ca57fe5b14156111dc57610d48878783876121c6565b600b8260168111156111ea57fe5b14156111fc57610d48878783876121e4565b601582601681111561120a57fe5b141561121c57610d48878783876122c9565b60405160e560020a62461bcd0281526004016102ec906141c7565b6000821580611244575081155b15611251575060006106c0565b82600019148015611265575060ff60020a82145b156112855760405160e560020a62461bcd0281526004016102ec90614267565b82820282848281151561129457fe5b05146112b55760405160e560020a62461bcd0281526004016102ec90614267565b670de0b6b3a764000081058015156106bc5760405160e560020a62461bcd0281526004016102ec90614247565b6112ea612ef5565b6112f2612ef5565b6060860151600090151561135c5761130b898686610ce7565b15611326578882826010811061131d57fe5b60200201526001015b611331888686610ce7565b156113545760018615151415611354578782826010811061134e57fe5b60200201525b509050610cdd565b8860005b898210156113c957611373828888610ce7565b156113b457600e831061139b5760405160e560020a62461bcd0281526004016102ec90614197565b818484601081106113a857fe5b60200201526001909201915b6001016113c2898c8361232c565b9150611360565b600188151514156113f7576113df8a8888610ce7565b156113f757898484601081106113f157fe5b60200201525b60008311801561142157506114218460001985016010811061141557fe5b60200201518888610ce7565b156114925760008960400151600181111561143857fe5b1480156114455750600183115b80156114515750818a14155b156114925783836010811061146257fe5b60200201518460001985016010811061147757fe5b602002015283836010811061148857fe5b6020020160008152505b50919998505050505050505050565b6000808260098111156114b057fe5b14156114be57506001610695565b60018260098111156114cc57fe5b14156114db5750600019610695565b60068260098111156114e957fe5b14156114f757506001610695565b600782600981111561150557fe5b14156115145750600019610695565b600482600981111561152257fe5b141561153057506001610695565b600582600981111561153e57fe5b141561154d5750600019610695565b60405160e560020a62461bcd0281526004016102ec90614227565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028115156115c157fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806116115750816003145b8061161c5750816005145b806116275750816007145b806116325750816008145b8061163d575081600a145b80611648575081600c145b156116555750601f6106c0565b600282146116655750601e6106c0565b61166e83612442565b61167957601c61167c565b601d5b60ff169392505050565b61168e612e8c565b60006116cd6116aa866020015188606001518960000151612467565b6116bd8689606001518a60000151612467565b8860400151896101e001516124d1565b90506117036116f2826107438860a0015189610100015161123790919063ffffffff16565b60c08701519063ffffffff61259516565b60c086015260a08501516102c087015161173e9161172d918491610743919063ffffffff61123716565b60e08701519063ffffffff61259516565b60e08601525050506020820152919050565b611758612e8c565b60006117746116aa866020015188606001518960000151612467565b90506117996116f2826107438860a0015189610100015161123790919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b6117ba612e8c565b60006117d66116aa866020015188606001518960000151612467565b90508561020001516117eb87602001516114a1565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b61181f612e8c565b600061183b6116aa866020015188606001518960000151612467565b90506118746116f2611863836107438960a001518a610100015161123790919063ffffffff16565b60c08801519063ffffffff61259516565b50600060c086015260a08501516102c087015161173e9161172d918491610743919063ffffffff61123716565b6118a9612e8c565b60006118c56116aa866020015188606001518960000151612467565b600060c087015260a08601516102c088015191925061173e9161172d9184916107439163ffffffff61123716565b6118fb612e8c565b60006119176116aa866020015188606001518960000151612467565b905061193c6116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c08701516119669161172d918491610743919063ffffffff61123716565b60e086015260c08501516101608601516119e4916119c09161198d9163ffffffff6125e016565b61199a89602001516114a1565b60000b028760a001516119b08a602001516114a1565b60000b029063ffffffff61262b16565b6119cd88602001516114a1565b60000b028660a001516125e090919063ffffffff16565b60a08601525050506020820152919050565b6119fe612e8c565b6000611a1a6116aa866020015188606001518960000151612467565b9050611a3f6116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c0870151611a699161172d918491610743919063ffffffff61123716565b60e08601525050600060a0840152506020820152919050565b611a8a612e8c565b6000611aa66116aa866020015188606001518960000151612467565b9050611acb6116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c0870151611af59161172d918491610743919063ffffffff61123716565b60e08601525050506102e09290920151610100820152602081019190915290565b611b1e612e8c565b6102a085015161028086015161010086015190840290910190600090611b4b90839063ffffffff6125e016565b905080876103e00151128015611b6e575086610440015160001902876103e00151125b15611b7f57506103e0860151611b9b565b86610440015160001902811215611b9b57506104408601516000035b610100860151611bb1908263ffffffff61259516565b915081876103e00151128015611bd05750866104000151876103e00151125b15611be257866103e001519150611bf8565b866104000151821215611bf85786610400015191505b6000611c37611c1488602001518a606001518b60000151612467565b611c27888b606001518c60000151612467565b8a604001518b6101e001516124d1565b9050611c6d611c5c826107438a60a001518b610100015161123790919063ffffffff16565b60c08901519063ffffffff61259516565b60c08801525050610100850152505060006101608301526020820152919050565b611c96612e8c565b6000611cb26116aa866020015188606001518960000151612467565b9050611cd76116f2826107438860a0015189610100015161123790919063ffffffff16565b60c086015260a08501516102c0870151611d019161172d918491610743919063ffffffff61123716565b60e086015260048660a001516007811115611d1857fe5b1480611d33575060058660a001516007811115611d3157fe5b145b80611d4d575060068660a001516007811115611d4b57fe5b145b80611d67575060078660a001516007811115611d6557fe5b145b15611d755760006101208601525b60018660a001516007811115611d8757fe5b1480611da2575060038660a001516007811115611da057fe5b145b80611dbc575060058660a001516007811115611dba57fe5b145b80611dd6575060078660a001516007811115611dd457fe5b145b15611de45760006101408601525b5050506020820152919050565b611df9612e8c565b6000611e156116aa866020015188606001518960000151612467565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611e40612e8c565b60008460400151600014611e58578460400151611e6b565b611e6b8487606001518860000151610f0c565b6103a087015160400151909150839060009015611ea6576000611e93896103a001518561263b565b9050808311611ea457600180895291505b505b876103c00151604001518015611eba575080155b15611ee9576000611ed0896103c001518561263b565b9050808311611ee25760028852611ee7565b600388525b505b60408701511515611f0d57611f078689606001518a60000151610f0c565b60408801525b50949695505050505050565b60006001826001811115611f2957fe5b1415611f6e57611f3883612745565b60061415611f5257611f4b836002612758565b90506106c0565b611f5b83612745565b60071415611f6e57611f4b836001612758565b5090919050565b60008080611f866201518085610cac565b5095945050505050565b60006001826001811115611fa057fe5b1415611f6e57611faf83612745565b60061415611fc257611f4b83600161276d565b611fcb83612745565b60071415611f6e57611f4b83600261276d565b6000808560e001516001811115611ff157fe5b141561201557846102c0015161200a86602001516114a1565b60000b0290506104c6565b6104c36120668560a00151610743886102c001516107436120438a602001518c606001518d60000151612467565b6120568a8d606001518e60000151612467565b8c604001518d6101e001516124d1565b60e08601519063ffffffff61259516565b600061209685610320015186610200015161259590919063ffffffff16565b6120a386602001516114a1565b6000190260000b029050949350505050565b60006104c361210b6116f28660a001516107438861010001516107436120e88b602001518d606001518e60000151612467565b6120fb8b8e606001518f60000151612467565b8d604001518e6101e001516124d1565b6101208601519063ffffffff61123716565b60008360a0015161213186602001516114a1565b60000b0295945050505050565b60006104c36121a16121718660a001516107438861010001516107436120e88b602001518d606001518e60000151612467565b8660c00151876101600151030361218b88602001516114a1565b60000b028660a001516119b089602001516114a1565b6121ae87602001516114a1565b60000b8661014001510261123790919063ffffffff16565b60006104c38460a0015185610140015161123790919063ffffffff16565b600060018560c0015160038111156121f857fe5b14156122115784610300015161200a86602001516114a1565b60028560c00151600381111561222357fe5b1415612284576122778460a0015161074387610300015161074361225489602001518b606001518c60000151612467565b612267898c606001518d60000151612467565b8b604001518c6101e001516124d1565b61200a86602001516114a1565b6122778460a001516107436122a6876020015189606001518a60000151612467565b6122b9878a606001518b60000151612467565b89604001518a6101e001516124d1565b600061231f6122f98560a001516107438761010001516107436120438a602001518c606001518d60000151612467565b60c08601516103408801516123139163ffffffff61259516565b9063ffffffff61259516565b61213186602001516114a1565b600080808560200151600581111561234057fe5b14156123565761074f8484876000015102612758565b60018560200151600581111561236857fe5b14156123815761074f8484876000015160070202612758565b60028560200151600581111561239357fe5b14156123a95761074f8484876000015102612782565b6003856020015160058111156123bb57fe5b14156123d45761074f8484876000015160030202612782565b6004856020015160058111156123e657fe5b14156123ff5761074f8484876000015160060202612782565b60058560200151600581111561241157fe5b14156124275761074f84848760000151026127f9565b60405160e560020a62461bcd0281526004016102ec906141b7565b60006004820615801561245757506064820615155b806106c057505061019090061590565b6000600383600881111561247757fe5b148061248e5750600483600881111561248c57fe5b145b806124a4575060078360088111156124a257fe5b145b806124ba575060088360088111156124b857fe5b145b156124c65750826102f5565b6104c6848484610f0c565b6000848410156124f65760405160e560020a62461bcd0281526004016102ec90614277565b600083600681111561250457fe5b14156125145761074f8585612820565b600183600681111561252257fe5b14156125325761074f8585612934565b600283600681111561254057fe5b14156125505761074f858561295f565b600483600681111561255e57fe5b141561256e5761074f858561297e565b600383600681111561257c57fe5b141561258d5761074f858584612a3f565b5060016104c6565b60008282018183128015906125aa5750838112155b806125bf57506000831280156125bf57508381125b15156102f55760405160e560020a62461bcd0281526004016102ec90614207565b60008183038183128015906125f55750838113155b8061260a575060008312801561260a57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec906142a7565b600081831315611f6e5750919050565b600080808460200151600581111561264f57fe5b141561266357610f42838560000151612758565b60018460200151600581111561267557fe5b141561268c57610f42838560000151600702612758565b60028460200151600581111561269e57fe5b14156126b257610f42838560000151612782565b6003846020015160058111156126c457fe5b14156126db57610f42838560000151600302612782565b6004846020015160058111156126ed57fe5b141561270457610f42838560000151600602612782565b60058460200151600581111561271657fe5b141561272a57610f428385600001516127f9565b60405160e560020a62461bcd0281526004016102ec90614217565b6007620151809091046003010660010190565b6201518081028201828110156106c057600080fd5b6201518081028203828111156106c057600080fd5b60008080806127946201518087610cac565b600c9188016000190182810493909301955091066001019250905060006127bb8484611600565b9050808211156127c9578091505b620151808706620151806127de868686612b15565b02019450868510156127ef57600080fd5b5050505092915050565b600080808061280b6201518087610cac565b91870194509250905060006127bb8484611600565b60008061282c84612b7b565b9050600061283984612b7b565b9050600061284686612b97565b6128525761016d612856565b61016e5b61ffff169050818314156128885761287e816128728888612bb9565b9063ffffffff612bd416565b93505050506106c0565b600061289386612b97565b61289f5761016d6128a3565b61016e5b61ffff16905060006128d4836128728a6128cf6128c78a600163ffffffff612ca616565b600180612cce565b612bb9565b905060006128f1836128726128eb88600180612cce565b8b612bb9565b9050612927612917600161290b888a63ffffffff612ce816565b9063ffffffff612ce816565b612313848463ffffffff61259516565b9998505050505050505050565b60006102f561016861287262015180612953868863ffffffff612ce816565b9063ffffffff612d2a16565b60006102f561016d61287262015180612953868863ffffffff612ce816565b600080600080600080600061299289612d6c565b9750955093506129a188612d6c565b945092509050601f8614156129b557601e95505b82601f14156129c357601e92505b60006129d5848863ffffffff6125e016565b905060006129e9848863ffffffff6125e016565b905060006129fd848863ffffffff6125e016565b9050612a2f61016861287285612313612a1d87601e63ffffffff612d8a16565b6123138761016863ffffffff612d8a16565b9c9b505050505050505050505050565b6000806000806000806000612a538a612d6c565b975095509350612a6289612d6c565b945092509050612a718a610c9e565b861415612a7d57601e95505b8789148015612a8c5750816002145b158015612aa05750612a9d89610c9e565b83145b15612aaa57601e92505b6000612abc848863ffffffff6125e016565b90506000612ad0848863ffffffff6125e016565b90506000612ae4848863ffffffff6125e016565b9050612b0461016861287285612313612a1d87601e63ffffffff612d8a16565b9d9c50505050505050505050505050565b60006107b2841015612b2657600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612b8c6201518085610cac565b509095945050505050565b6000808080612ba96201518086610cac565b91945092509050610cc383612442565b600081831115612bc857600080fd5b50620151809190030490565b6000811515612bf85760405160e560020a62461bcd0281526004016102ec906141d7565b821515612c07575060006106c0565b670de0b6b3a7640000838102908482811515612c1f57fe5b0514612c405760405160e560020a62461bcd0281526004016102ec90614237565b82600019148015612c54575060ff60020a84145b15612c745760405160e560020a62461bcd0281526004016102ec906141a7565b60008382811515612c8157fe5b0590508015156106bc5760405160e560020a62461bcd0281526004016102ec906141f7565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec906141e7565b600062015180612cdf858585612b15565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612dff565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e2e565b60008080612d7d6201518085610cac565b9196909550909350915050565b6000821515612d9b575060006106c0565b82600019148015612daf575060ff60020a82145b15612dcf5760405160e560020a62461bcd0281526004016102ec90614257565b828202828482811515612dde57fe5b05146102f55760405160e560020a62461bcd0281526004016102ec90614257565b60008184841115612e265760405160e560020a62461bcd0281526004016102ec9190614186565b505050900390565b600081818411612e545760405160e560020a62461bcd0281526004016102ec9190614186565b5060008385811515612e6257fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b60006102f58235614346565b60006102f58235614300565b60006102f582356142ed565b60006102f58235614351565b60006102f58235614360565b60006102f5823561436f565b60006102f5823561437e565b60006102f5823561438d565b60006102f5823561439c565b60006102f582356143ab565b60006102f582356143ba565b60006102f582356143c9565b600060608284031215612fb757600080fd5b612fc160606142c6565b90506000612fcf8484612f2d565b8252506020612fe084848301612f5d565b6020830152506040612ff484828501612f5d565b60408301525092915050565b6000610500828403121561301357600080fd5b61301e6102a06142c6565b9050600061302c8484612f99565b825250602061303d84848301612f2d565b602083015250604061305184828501612f2d565b604083015250606061306584828501612f2d565b606083015250608061307984828501612f2d565b60808301525060a061308d84828501612f2d565b60a08301525060c06130a184828501612f2d565b60c08301525060e06130b584828501612f2d565b60e0830152506101006130ca84828501612f2d565b610100830152506101206130e084828501612f2d565b610120830152506101406130f684828501612f2d565b6101408301525061016061310c84828501612f2d565b6101608301525061018061312284828501612f2d565b610180830152506101a061313884828501612f2d565b6101a0830152506101c061314e848285016131df565b6101c083015250610240613164848285016131df565b6101e0830152506102c061317a848285016131df565b61020083015250610340613190848285016131df565b610220830152506103c06131a6848285016131df565b610240830152506104406131bc8482850161324e565b610260830152506104a06131d28482850161324e565b6102808301525092915050565b6000608082840312156131f157600080fd5b6131fb60806142c6565b905060006132098484612f2d565b825250602061321a84848301612f8d565b602083015250604061322e84828501612f45565b604083015250606061324284828501612f21565b60608301525092915050565b60006060828403121561326057600080fd5b61326a60606142c6565b905060006132788484612f2d565b825250602061328984848301612f8d565b6020830152506040612ff484828501612f21565b600061056082840312156132b057600080fd5b6132bb6104606142c6565b905060006132c98484612f45565b82525060206132da84848301612f69565b60208301525060406132ee84828501612f75565b604083015250606061330284828501612f39565b606083015250608061331684828501612f45565b60808301525060a061332a84828501612f99565b60a08301525060c061333e84828501612f51565b60c08301525060e061335284828501612f45565b60e08301525061010061336784828501612f51565b6101008301525061012061337d84828501612fa5565b6101208301525061018061339384828501612fa5565b610140830152506101e06133a984828501612f15565b610160830152506102006133bf84828501612f15565b610180830152506102206133d584828501612f2d565b6101a0830152506102406133eb84828501612f2d565b6101c08301525061026061340184828501612f2d565b6101e08301525061028061341784828501612f2d565b610200830152506102a061342d84828501612f2d565b610220830152506102c061344384828501612f2d565b610240830152506102e061345984828501612f2d565b6102608301525061030061346f84828501612f2d565b6102808301525061032061348584828501612f2d565b6102a08301525061034061349b84828501612f2d565b6102c0830152506103606134b184828501612f2d565b6102e0830152506103806134c784828501612f2d565b610300830152506103a06134dd84828501612f2d565b610320830152506103c06134f384828501612f2d565b610340830152506103e061350984828501612f2d565b6103608301525061040061351f84828501612f2d565b610380830152506104206135358482850161324e565b6103a08301525061048061354b8482850161324e565b6103c0830152506104e061356184828501612f2d565b6103e08301525061050061357784828501612f2d565b6104008301525061052061358d84828501612f2d565b610420830152506105406135a384828501612f2d565b6104408301525092915050565b60006101a082840312156135c357600080fd5b6135ce6101a06142c6565b905060006135dc8484612f51565b82525060206135ed84848301612f2d565b602083015250604061360184828501612f2d565b604083015250606061361584828501612f2d565b606083015250608061362984828501612f2d565b60808301525060a061363d84828501612f2d565b60a08301525060c061365184828501612f2d565b60c08301525060e061366584828501612f2d565b60e08301525061010061367a84828501612f2d565b6101008301525061012061369084828501612f2d565b610120830152506101406136a684828501612f2d565b610140830152506101606136bc84828501612f2d565b610160830152506101806136d284828501612f2d565b6101808301525092915050565b6000602082840312156136f157600080fd5b60006106bc8484612f2d565b600080610580838503121561371157600080fd5b600061371d8585612f2d565b925050602061372e8582860161329d565b9150509250929050565b60008060008060006108e0868803121561375157600080fd5b600061375d8888612f2d565b955050602061376e8882890161329d565b945050610580613780888289016135b0565b93505061072061379288828901612f21565b9250506107406137a4888289016135b0565b9150509295509295909350565b600080600060c084860312156137c657600080fd5b60006137d28686612f45565b93505060206137e386828701612f2d565b92505060406137f4868287016131df565b9150509250925092565b60006020828403121561381057600080fd5b60006106bc8484612f81565b6000806040838503121561382f57600080fd5b600061383b8585612f81565b925050602061372e85828601612f2d565b6000806000610540848603121561386257600080fd5b600061386e8686613000565b93505061050061388086828701612f2d565b9250506105206137f486828701612f2d565b60008060008061056085870312156138a957600080fd5b60006138b58787613000565b9450506105006138c787828801612f2d565b9350506105206138d987828801612f2d565b9250506105406138eb87828801612f81565b91505092959194509250565b6000610560828403121561390a57600080fd5b60006106bc848461329d565b600080600080610740858703121561392d57600080fd5b6000613939878761329d565b94505061056061394b878288016135b0565b93505061070061395d87828801612f2d565b9250506107206138eb87828801612f2d565b613978816142f0565b613981826142ed565b60005b828110156139b1576139978583516139c7565b6139a0826142fa565b602095909501949150600101613984565b5050505050565b6139c181614300565b82525050565b6139c1816142ed565b6139c1816143d8565b6139c1816143e3565b6139c1816143ee565b60006139f6826142f6565b808452613a0a8160208601602086016143f9565b613a1381614425565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602d81527f414e4e456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b603681527f414e4e456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a083019061403e84826139d0565b50602082015161405160208501826139c7565b50604082015161406460408501826139c7565b50606082015161407760608501826139c7565b50608082015161408a60808501826139c7565b5060a082015161409d60a08501826139c7565b5060c08201516140b060c08501826139c7565b5060e08201516140c360e08501826139c7565b506101008201516140d86101008501826139c7565b506101208201516140ed6101208501826139c7565b506101408201516141026101408501826139c7565b506101608201516141176101608501826139c7565b5061018082015161412c6101808501826139c7565b50505050565b61080081016106c0828461396f565b602081016106c082846139b8565b602081016106c082846139c7565b602081016106c082846139d9565b6040810161417982856139e2565b6102f560208301846139c7565b602080825281016102f581846139eb565b602080825281016106c081613a20565b602080825281016106c081613a76565b602080825281016106c081613acc565b602080825281016106c081613b22565b602080825281016106c081613b78565b602080825281016106c081613bce565b602080825281016106c081613bfe565b602080825281016106c081613c54565b602080825281016106c081613caa565b602080825281016106c081613d00565b602080825281016106c081613d56565b602080825281016106c081613dac565b602080825281016106c081613e02565b602080825281016106c081613e58565b602080825281016106c081613eae565b602080825281016106c081613f04565b602080825281016106c081613f80565b602080825281016106c081613fd6565b6101a081016106c0828461402c565b60405181810167ffffffffffffffff811182821017156142e557600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b60006004821061431157fe5b5090565b60006002821061431157fe5b60006017821061431157fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b60006106c08261432d565b60006009821061431157600080fd5b60006002821061431157600080fd5b60006004821061431157600080fd5b60006005821061431157600080fd5b6000600a821061431157600080fd5b60006007821061431157600080fd5b60006017821061431157600080fd5b60006006821061431157600080fd5b60006008821061431157600080fd5b60006106c082614305565b60006106c082614315565b60006106c082614321565b60005b838110156144145781810151838201526020016143fc565b8381111561412c5750506000910152565b601f01601f19169056fea265627a7a72305820f238c5c826e7e81b2303abe4b93ae89874af08a9539736ccc7b2459415d2add86c6578706572696d656e74616cf50037", + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a ANN contract implements the STF and POF of the Actus standard for a ANN contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms TODO: - implement annuity calculator\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period TODO: add missing contract features: - rate reset - scaling - interest calculation base\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":\"ANNEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/ANNEngine.sol\":{\"keccak256\":\"0x83ca807ef69d4ef74cab40fc51cc0f88065f94d96142ecd0f51150bbc65d10dd\",\"urls\":[\"bzzr://88e255276790f4adae53defd017020c46f8a374f53a574a3e7ef5f52035e215d\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5061440c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff366004613754565b61022a565b6040516101119190614100565b60405180910390f35b61012d6101283660046136db565b6102fc565b60405161011191906140e4565b61014d6101483660046137ef565b610307565b60405161011191906140d5565b61016261042d565b60405161011191906140f2565b61018261017d366004613682565b610439565b60405161011192919061410e565b6101a361019e3660046138b9565b610483565b604051610111919061425a565b6101626101be3660046137a1565b6104a2565b6101626101d13660046136a0565b61066e565b61016261069a565b6101626101ec3660046138b9565b61069f565b6101626101ff3660046137bf565b610736565b61014d610212366004613835565b61075b565b6101a361022536600461389a565b610b5f565b60008084600181111561023957fe5b14156102b55761024883610c18565b61025184610c46565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec9061422a565b60405180910390fd5b9392505050565b600195945050505050565b61030f612de6565b610317612de6565b606085015160009061032a908686610c61565b156103575761033e60058760600151610736565b8261ffff83166040811061034e57fe5b60200201526001015b60c08601511561039d576103708660c001518686610c61565b1561039d5761038460108760c00151610736565b8261ffff83166040811061039457fe5b60200201526001015b60a0860151156103e3576103b68660a001518686610c61565b156103e3576103ca60158760a00151610736565b8261ffff8316604081106103da57fe5b60200201526001015b6103f286608001518686610c61565b1515600114156104245761040b600a8760800151610736565b8261ffff83166040811061041b57fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561046e57fe5b92505067ffffffffffffffff83169050915091565b61048b612e06565b61049785858585610c89565b90505b949350505050565b600060058260168111156104b257fe5b14156104c057506014610669565b600f8260168111156104ce57fe5b14156104dc57506019610669565b60088260168111156104ea57fe5b14156104f85750601e610669565b600782601681111561050657fe5b141561051457506028610669565b600482601681111561052257fe5b141561053057506032610669565b600282601681111561053e57fe5b141561054c5750603c610669565b600982601681111561055a57fe5b141561056857506050610669565b601182601681111561057657fe5b14156105845750605a610669565b601282601681111561059257fe5b14156105a057506064610669565b60138260168111156105ae57fe5b14156105bc5750606e610669565b60068260168111156105ca57fe5b14156105d857506078610669565b60108260168111156105e657fe5b14156105f457506082610669565b601582601681111561060257fe5b14156106105750608c610669565b601482601681111561061e57fe5b141561062c57506096610669565b600a82601681111561063a57fe5b1415610648575060a0610669565b600082601681111561065657fe5b141561066557506103b6610669565b5060005b919050565b60008061067a84610439565b9150506106908184606001518560000151610e86565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff1615801590610702575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b1561072a576107238261071787878784610fc9565b9063ffffffff6111b116565b905061049a565b61049785858585610fc9565b60008160f884601681111561074757fe5b60ff166001029060020a0217905092915050565b610763612de6565b61076b612de6565b600883601681111561077957fe5b141561088a576101c086015160600151600090151560011480156107a1575061010087015115155b15610888576107ae612e6f565b6107cb88610100015189608001518a6101c0015160018b8b61125c565b905060005b60108160ff161015610885578160ff8216601081106107eb57fe5b602002015115156107fb57610885565b60e08901518260ff83166010811061080f57fe5b60200201511161081e5761087d565b61083c8260ff83166010811061083057fe5b60200201518989610c61565b15156108475761087d565b61086560088360ff84166010811061085b57fe5b6020020151610736565b84846040811061087157fe5b60200201526001909201915b6001016107d0565b50505b505b600783601681111561089857fe5b14156109b1576101c086015160600151600090151560011480156108c0575061010087015115155b80156108cf575060e087015115155b80156108e357508661018001518760e00151105b156109af576108f0612e8f565b506101c087015160016040820152610906612e6f565b61091e8961010001518a60e001518460018c8c61125c565b905060005b60108160ff1610156109ab578160ff82166010811061093e57fe5b6020020151151561094e576109ab565b61096c8260ff83166010811061096057fe5b60200201518a8a610c61565b1515610977576109a3565b61098b60078360ff84166010811061085b57fe5b85856040811061099757fe5b60200201526001909301925b600101610923565b5050505b505b60048360168111156109bf57fe5b1415610a975761022086015160600151600090151560011480156109e7575061016087015115155b15610a95576109f4612e6f565b610a1188610160015189608001518a610220015160018b8b61125c565b905060005b60108160ff161015610a92578160ff821660108110610a3157fe5b60200201511515610a4157610a92565b610a538260ff83166010811061083057fe5b1515610a5e57610a8a565b610a7260048360ff84166010811061085b57fe5b848460408110610a7e57fe5b60200201526001909201915b600101610a16565b50505b505b600f836016811115610aa557fe5b1415610497576000610ab5612e6f565b610ad288610180015189608001518a610240015160008b8b61125c565b905060005b60108160ff161015610b53578160ff821660108110610af257fe5b60200201511515610b0257610b53565b610b148260ff83166010811061083057fe5b1515610b1f57610b4b565b610b33600f8360ff84166010811061085b57fe5b848460408110610b3f57fe5b60200201526001909201915b600101610ad7565b50505095945050505050565b610b67612e06565b610b6f612e06565b60008152670de0b6b3a764000061014082018190526101208201526101c08301516020808301919091526101e0840151606083015261020084015190840151610bb79061141b565b60000b0260a08201526102208301516101008201526102608301516020840151610be09061141b565b60000b0260c082015261024083015160e08201526103608301516020840151610c089061141b565b60000b0261016082015292915050565b6000808080610c2c62015180865b046114e2565b91945092509050610c3d838361157a565b95945050505050565b60008080610c576201518085610c26565b9695505050505050565b60008383108015610c725750838210155b15610c7f575060016102f5565b5060009392505050565b610c91612e06565b600080610c9d85610439565b90925090506000826016811115610cb057fe5b1415610ccb57610cc287878387611600565b9250505061049a565b6004826016811115610cd957fe5b1415610ceb57610cc2878783876116ca565b6005826016811115610cf957fe5b1415610d0b57610cc28787838761172c565b6007826016811115610d1957fe5b1415610d2b57610cc287878387611791565b6008826016811115610d3957fe5b1415610d4b57610cc28787838761181b565b600e826016811115610d5957fe5b1415610d6b57610cc287878387611600565b600f826016811115610d7957fe5b1415610d8b57610cc28787838761186d565b600a826016811115610d9957fe5b1415610dab57610cc287878387611970565b600b826016811115610db957fe5b1415610dcb57610cc287878387611600565b6011826016811115610dd957fe5b1415610deb57610cc2878783876119fc565b6012826016811115610df957fe5b1415610e0b57610cc287878387611a90565b6013826016811115610e1957fe5b1415610e2b57610cc287878387611c08565b6015826016811115610e3957fe5b1415610e4b57610cc287878387611d6b565b6016826016811115610e5957fe5b1415610e6b57610cc287878387611db2565b60405160e560020a62461bcd0281526004016102ec9061423a565b60006001836008811115610e9657fe5b1480610ead57506003836008811115610eab57fe5b145b15610ec357610ebc8483611e93565b90506102f5565b6002836008811115610ed157fe5b1480610ee857506004836008811115610ee657fe5b145b15610f2c576000610ef98584611e93565b9050610f0485611eef565b610f0d82611eef565b1415610f1a5790506102f5565b610f248584611f0a565b9150506102f5565b6005836008811115610f3a57fe5b1480610f5157506007836008811115610f4f57fe5b145b15610f6057610ebc8483611f0a565b6006836008811115610f6e57fe5b1480610f8557506008836008811115610f8357fe5b145b15610fc1576000610f968584611f0a565b9050610fa185611eef565b610faa82611eef565b1415610fb75790506102f5565b610f248584611e93565b509192915050565b6000806000610fd785610439565b90925090506000826016811115610fea57fe5b1415610ffb5760009250505061049a565b600782601681111561100957fe5b141561101a5760009250505061049a565b601182601681111561102857fe5b14156110395760009250505061049a565b601282601681111561104757fe5b14156110585760009250505061049a565b601382601681111561106657fe5b14156110775760009250505061049a565b601682601681111561108557fe5b14156110965760009250505061049a565b60048260168111156110a457fe5b14156110b657610cc287878387611f58565b60058260168111156110c457fe5b14156110d657610cc287878387611ff1565b60088260168111156110e457fe5b14156110f657610cc28787838761202f565b600e82601681111561110457fe5b141561111657610cc287878387612097565b600f82601681111561112457fe5b141561113657610cc2878783876120b8565b600a82601681111561114457fe5b141561115657610cc287878387612140565b600b82601681111561116457fe5b141561117657610cc28787838761215e565b601582601681111561118457fe5b141561119657610cc287878387612243565b60405160e560020a62461bcd0281526004016102ec9061416a565b60008215806111be575081155b156111cb57506000610694565b826000191480156111df575060ff60020a82145b156111ff5760405160e560020a62461bcd0281526004016102ec9061420a565b82820282848281151561120e57fe5b051461122f5760405160e560020a62461bcd0281526004016102ec9061420a565b670de0b6b3a764000081058015156106905760405160e560020a62461bcd0281526004016102ec906141ea565b611264612e6f565b61126c612e6f565b606086015160009015156112d657611285898686610c61565b156112a0578882826010811061129757fe5b60200201526001015b6112ab888686610c61565b156112ce57600186151514156112ce57878282601081106112c857fe5b60200201525b509050610c57565b8860005b89821015611343576112ed828888610c61565b1561132e57600e83106113155760405160e560020a62461bcd0281526004016102ec9061413a565b8184846010811061132257fe5b60200201526001909201915b60010161133c898c836122a6565b91506112da565b60018815151415611371576113598a8888610c61565b15611371578984846010811061136b57fe5b60200201525b60008311801561139b575061139b8460001985016010811061138f57fe5b60200201518888610c61565b1561140c576000896040015160018111156113b257fe5b1480156113bf5750600183115b80156113cb5750818a14155b1561140c578383601081106113dc57fe5b6020020151846000198501601081106113f157fe5b602002015283836010811061140257fe5b6020020160008152505b50919998505050505050505050565b60008082600981111561142a57fe5b141561143857506001610669565b600182600981111561144657fe5b14156114555750600019610669565b600682600981111561146357fe5b141561147157506001610669565b600782600981111561147f57fe5b141561148e5750600019610669565b600482600981111561149c57fe5b14156114aa57506001610669565b60058260098111156114b857fe5b14156114c75750600019610669565b60405160e560020a62461bcd0281526004016102ec906141ca565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561153b57fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b6000816001148061158b5750816003145b806115965750816005145b806115a15750816007145b806115ac5750816008145b806115b7575081600a145b806115c2575081600c145b156115cf5750601f610694565b600282146115df5750601e610694565b6115e8836123bc565b6115f357601c6115f6565b601d5b60ff169392505050565b611608612e06565b60006116476116248660200151886060015189600001516123e1565b6116378689606001518a600001516123e1565b8860400151896101e0015161244b565b905061167d61166c826107178860a001518961010001516111b190919063ffffffff16565b60c08701519063ffffffff61250f16565b60c086015260a08501516102c08701516116b8916116a7918491610717919063ffffffff6111b116565b60e08701519063ffffffff61250f16565b60e08601525050506020820152919050565b6116d2612e06565b60006116ee6116248660200151886060015189600001516123e1565b905061171361166c826107178860a001518961010001516111b190919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b611734612e06565b60006117506116248660200151886060015189600001516123e1565b9050856102000151611765876020015161141b565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b611799612e06565b60006117b56116248660200151886060015189600001516123e1565b90506117ee61166c6117dd836107178960a001518a61010001516111b190919063ffffffff16565b60c08801519063ffffffff61250f16565b50600060c086015260a08501516102c08701516116b8916116a7918491610717919063ffffffff6111b116565b611823612e06565b600061183f6116248660200151886060015189600001516123e1565b600060c087015260a08601516102c08801519192506116b8916116a79184916107179163ffffffff6111b116565b611875612e06565b60006118916116248660200151886060015189600001516123e1565b90506118b661166c826107178860a001518961010001516111b190919063ffffffff16565b60c086015260a08501516102c08701516118e0916116a7918491610717919063ffffffff6111b116565b60e086015260c085015161016086015161195e9161193a916119079163ffffffff61255a16565b611914896020015161141b565b60000b028760a0015161192a8a6020015161141b565b60000b029063ffffffff6125a516565b611947886020015161141b565b60000b028660a0015161255a90919063ffffffff16565b60a08601525050506020820152919050565b611978612e06565b60006119946116248660200151886060015189600001516123e1565b90506119b961166c826107178860a001518961010001516111b190919063ffffffff16565b60c086015260a08501516102c08701516119e3916116a7918491610717919063ffffffff6111b116565b60e08601525050600060a0840152506020820152919050565b611a04612e06565b6000611a206116248660200151886060015189600001516123e1565b9050611a4561166c826107178860a001518961010001516111b190919063ffffffff16565b60c086015260a08501516102c0870151611a6f916116a7918491610717919063ffffffff6111b116565b60e08601525050506102e09290920151610100820152602081019190915290565b611a98612e06565b6102a085015161028086015161010086015190840290910190600090611ac590839063ffffffff61255a16565b905080876103e00151128015611ae8575086610440015160001902876103e00151125b15611af957506103e0860151611b15565b86610440015160001902811215611b1557506104408601516000035b610100860151611b2b908263ffffffff61250f16565b915081876103e00151128015611b4a5750866104000151876103e00151125b15611b5c57866103e001519150611b72565b866104000151821215611b725786610400015191505b6000611bb1611b8e88602001518a606001518b600001516123e1565b611ba1888b606001518c600001516123e1565b8a604001518b6101e0015161244b565b9050611be7611bd6826107178a60a001518b61010001516111b190919063ffffffff16565b60c08901519063ffffffff61250f16565b60c08801525050610100850152505060006101608301526020820152919050565b611c10612e06565b6000611c2c6116248660200151886060015189600001516123e1565b9050611c5161166c826107178860a001518961010001516111b190919063ffffffff16565b60c086015260a08501516102c0870151611c7b916116a7918491610717919063ffffffff6111b116565b60e086015260048660a001516007811115611c9257fe5b1480611cad575060058660a001516007811115611cab57fe5b145b80611cc7575060068660a001516007811115611cc557fe5b145b80611ce1575060078660a001516007811115611cdf57fe5b145b15611cef5760006101208601525b60018660a001516007811115611d0157fe5b1480611d1c575060038660a001516007811115611d1a57fe5b145b80611d36575060058660a001516007811115611d3457fe5b145b80611d50575060078660a001516007811115611d4e57fe5b145b15611d5e5760006101408601525b5050506020820152919050565b611d73612e06565b6000611d8f6116248660200151886060015189600001516123e1565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611dba612e06565b60008460400151600014611dd2578460400151611de5565b611de58487606001518860000151610e86565b6103a087015160400151909150839060009015611e20576000611e0d896103a00151856125b5565b9050808311611e1e57600180895291505b505b876103c00151604001518015611e34575080155b15611e63576000611e4a896103c00151856125b5565b9050808311611e5c5760028852611e61565b600388525b505b60408701511515611e8757611e818689606001518a60000151610e86565b60408801525b50949695505050505050565b60006001826001811115611ea357fe5b1415611ee857611eb2836126bf565b60061415611ecc57611ec58360026126d2565b9050610694565b611ed5836126bf565b60071415611ee857611ec58360016126d2565b5090919050565b60008080611f006201518085610c26565b5095945050505050565b60006001826001811115611f1a57fe5b1415611ee857611f29836126bf565b60061415611f3c57611ec58360016126e7565b611f45836126bf565b60071415611ee857611ec58360026126e7565b6000808560e001516001811115611f6b57fe5b1415611f8f57846102c00151611f84866020015161141b565b60000b02905061049a565b610497611fe08560a00151610717886102c00151610717611fbd8a602001518c606001518d600001516123e1565b611fd08a8d606001518e600001516123e1565b8c604001518d6101e0015161244b565b60e08601519063ffffffff61250f16565b600061201085610320015186610200015161250f90919063ffffffff16565b61201d866020015161141b565b6000190260000b029050949350505050565b600061049761208561166c8660a001516107178861010001516107176120628b602001518d606001518e600001516123e1565b6120758b8e606001518f600001516123e1565b8d604001518e6101e0015161244b565b6101208601519063ffffffff6111b116565b60008360a001516120ab866020015161141b565b60000b0295945050505050565b600061049761211b6120eb8660a001516107178861010001516107176120628b602001518d606001518e600001516123e1565b8660c001518761016001510303612105886020015161141b565b60000b028660a0015161192a896020015161141b565b612128876020015161141b565b60000b866101400151026111b190919063ffffffff16565b60006104978460a001518561014001516111b190919063ffffffff16565b600060018560c00151600381111561217257fe5b141561218b57846103000151611f84866020015161141b565b60028560c00151600381111561219d57fe5b14156121fe576121f18460a001516107178761030001516107176121ce89602001518b606001518c600001516123e1565b6121e1898c606001518d600001516123e1565b8b604001518c6101e0015161244b565b611f84866020015161141b565b6121f18460a00151610717612220876020015189606001518a600001516123e1565b612233878a606001518b600001516123e1565b89604001518a6101e0015161244b565b60006122996122738560a00151610717876101000151610717611fbd8a602001518c606001518d600001516123e1565b60c086015161034088015161228d9163ffffffff61250f16565b9063ffffffff61250f16565b6120ab866020015161141b565b60008080856020015160058111156122ba57fe5b14156122d05761072384848760000151026126d2565b6001856020015160058111156122e257fe5b14156122fb5761072384848760000151600702026126d2565b60028560200151600581111561230d57fe5b14156123235761072384848760000151026126fc565b60038560200151600581111561233557fe5b141561234e5761072384848760000151600302026126fc565b60048560200151600581111561236057fe5b14156123795761072384848760000151600602026126fc565b60058560200151600581111561238b57fe5b14156123a1576107238484876000015102612773565b60405160e560020a62461bcd0281526004016102ec9061415a565b6000600482061580156123d157506064820615155b8061069457505061019090061590565b600060038360088111156123f157fe5b14806124085750600483600881111561240657fe5b145b8061241e5750600783600881111561241c57fe5b145b806124345750600883600881111561243257fe5b145b156124405750826102f5565b61049a848484610e86565b6000848410156124705760405160e560020a62461bcd0281526004016102ec9061421a565b600083600681111561247e57fe5b141561248e57610723858561279a565b600183600681111561249c57fe5b14156124ac5761072385856128ae565b60028360068111156124ba57fe5b14156124ca5761072385856128d9565b60048360068111156124d857fe5b14156124e85761072385856128f8565b60038360068111156124f657fe5b1415612507576107238585846129b9565b50600161049a565b60008282018183128015906125245750838112155b80612539575060008312801561253957508381125b15156102f55760405160e560020a62461bcd0281526004016102ec906141aa565b600081830381831280159061256f5750838113155b80612584575060008312801561258457508381135b15156102f55760405160e560020a62461bcd0281526004016102ec9061424a565b600081831315611ee85750919050565b60008080846020015160058111156125c957fe5b14156125dd57610ebc8385600001516126d2565b6001846020015160058111156125ef57fe5b141561260657610ebc8385600001516007026126d2565b60028460200151600581111561261857fe5b141561262c57610ebc8385600001516126fc565b60038460200151600581111561263e57fe5b141561265557610ebc8385600001516003026126fc565b60048460200151600581111561266757fe5b141561267e57610ebc8385600001516006026126fc565b60058460200151600581111561269057fe5b14156126a457610ebc838560000151612773565b60405160e560020a62461bcd0281526004016102ec906141ba565b6007620151809091046003010660010190565b62015180810282018281101561069457600080fd5b62015180810282038281111561069457600080fd5b600080808061270e6201518087610c26565b600c918801600019018281049390930195509106600101925090506000612735848461157a565b905080821115612743578091505b62015180870662015180612758868686612a8f565b020194508685101561276957600080fd5b5050505092915050565b60008080806127856201518087610c26565b9187019450925090506000612735848461157a565b6000806127a684612af5565b905060006127b384612af5565b905060006127c086612b11565b6127cc5761016d6127d0565b61016e5b61ffff16905081831415612802576127f8816127ec8888612b33565b9063ffffffff612b4e16565b9350505050610694565b600061280d86612b11565b6128195761016d61281d565b61016e5b61ffff169050600061284e836127ec8a6128496128418a600163ffffffff612c2016565b600180612c48565b612b33565b9050600061286b836127ec61286588600180612c48565b8b612b33565b90506128a16128916001612885888a63ffffffff612c6216565b9063ffffffff612c6216565b61228d848463ffffffff61250f16565b9998505050505050505050565b60006102f56101686127ec620151806128cd868863ffffffff612c6216565b9063ffffffff612ca416565b60006102f561016d6127ec620151806128cd868863ffffffff612c6216565b600080600080600080600061290c89612ce6565b97509550935061291b88612ce6565b945092509050601f86141561292f57601e95505b82601f141561293d57601e92505b600061294f848863ffffffff61255a16565b90506000612963848863ffffffff61255a16565b90506000612977848863ffffffff61255a16565b90506129a96101686127ec8561228d61299787601e63ffffffff612d0416565b61228d8761016863ffffffff612d0416565b9c9b505050505050505050505050565b60008060008060008060006129cd8a612ce6565b9750955093506129dc89612ce6565b9450925090506129eb8a610c18565b8614156129f757601e95505b8789148015612a065750816002145b158015612a1a5750612a1789610c18565b83145b15612a2457601e92505b6000612a36848863ffffffff61255a16565b90506000612a4a848863ffffffff61255a16565b90506000612a5e848863ffffffff61255a16565b9050612a7e6101686127ec8561228d61299787601e63ffffffff612d0416565b9d9c50505050505050505050505050565b60006107b2841015612aa057600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612b066201518085610c26565b509095945050505050565b6000808080612b236201518086610c26565b91945092509050610c3d836123bc565b600081831115612b4257600080fd5b50620151809190030490565b6000811515612b725760405160e560020a62461bcd0281526004016102ec9061417a565b821515612b8157506000610694565b670de0b6b3a7640000838102908482811515612b9957fe5b0514612bba5760405160e560020a62461bcd0281526004016102ec906141da565b82600019148015612bce575060ff60020a84145b15612bee5760405160e560020a62461bcd0281526004016102ec9061414a565b60008382811515612bfb57fe5b0590508015156106905760405160e560020a62461bcd0281526004016102ec9061419a565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec9061418a565b600062015180612c59858585612a8f565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d79565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612da8565b60008080612cf76201518085610c26565b9196909550909350915050565b6000821515612d1557506000610694565b82600019148015612d29575060ff60020a82145b15612d495760405160e560020a62461bcd0281526004016102ec906141fa565b828202828482811515612d5857fe5b05146102f55760405160e560020a62461bcd0281526004016102ec906141fa565b60008184841115612da05760405160e560020a62461bcd0281526004016102ec9190614129565b505050900390565b600081818411612dce5760405160e560020a62461bcd0281526004016102ec9190614129565b5060008385811515612ddc57fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b604080516080810190915260008082526020820190815260200160008152600060209091015290565b60006102f582356142e9565b60006102f582356142a3565b60006102f58235614290565b60006102f582356142f4565b60006102f58235614303565b60006102f58235614312565b60006102f58235614321565b60006102f58235614330565b60006102f5823561433f565b60006102f5823561434e565b60006102f5823561435d565b60006102f5823561436c565b600060608284031215612f5a57600080fd5b612f646060614269565b90506000612f728484612ed0565b8252506020612f8384848301612f00565b6020830152506040612f9784828501612f00565b60408301525092915050565b60006105008284031215612fb657600080fd5b612fc16102a0614269565b90506000612fcf8484612f3c565b8252506020612fe084848301612ed0565b6020830152506040612ff484828501612ed0565b604083015250606061300884828501612ed0565b606083015250608061301c84828501612ed0565b60808301525060a061303084828501612ed0565b60a08301525060c061304484828501612ed0565b60c08301525060e061305884828501612ed0565b60e08301525061010061306d84828501612ed0565b6101008301525061012061308384828501612ed0565b6101208301525061014061309984828501612ed0565b610140830152506101606130af84828501612ed0565b610160830152506101806130c584828501612ed0565b610180830152506101a06130db84828501612ed0565b6101a0830152506101c06130f184828501613182565b6101c08301525061024061310784828501613182565b6101e0830152506102c061311d84828501613182565b6102008301525061034061313384828501613182565b610220830152506103c061314984828501613182565b6102408301525061044061315f848285016131f1565b610260830152506104a0613175848285016131f1565b6102808301525092915050565b60006080828403121561319457600080fd5b61319e6080614269565b905060006131ac8484612ed0565b82525060206131bd84848301612f30565b60208301525060406131d184828501612ee8565b60408301525060606131e584828501612ec4565b60608301525092915050565b60006060828403121561320357600080fd5b61320d6060614269565b9050600061321b8484612ed0565b825250602061322c84848301612f30565b6020830152506040612f9784828501612ec4565b6000610560828403121561325357600080fd5b61325e610460614269565b9050600061326c8484612ee8565b825250602061327d84848301612f0c565b602083015250604061329184828501612f18565b60408301525060606132a584828501612edc565b60608301525060806132b984828501612ee8565b60808301525060a06132cd84828501612f3c565b60a08301525060c06132e184828501612ef4565b60c08301525060e06132f584828501612ee8565b60e08301525061010061330a84828501612ef4565b6101008301525061012061332084828501612f48565b6101208301525061018061333684828501612f48565b610140830152506101e061334c84828501612eb8565b6101608301525061020061336284828501612eb8565b6101808301525061022061337884828501612ed0565b6101a08301525061024061338e84828501612ed0565b6101c0830152506102606133a484828501612ed0565b6101e0830152506102806133ba84828501612ed0565b610200830152506102a06133d084828501612ed0565b610220830152506102c06133e684828501612ed0565b610240830152506102e06133fc84828501612ed0565b6102608301525061030061341284828501612ed0565b6102808301525061032061342884828501612ed0565b6102a08301525061034061343e84828501612ed0565b6102c08301525061036061345484828501612ed0565b6102e08301525061038061346a84828501612ed0565b610300830152506103a061348084828501612ed0565b610320830152506103c061349684828501612ed0565b610340830152506103e06134ac84828501612ed0565b610360830152506104006134c284828501612ed0565b610380830152506104206134d8848285016131f1565b6103a0830152506104806134ee848285016131f1565b6103c0830152506104e061350484828501612ed0565b6103e08301525061050061351a84828501612ed0565b6104008301525061052061353084828501612ed0565b6104208301525061054061354684828501612ed0565b6104408301525092915050565b60006101a0828403121561356657600080fd5b6135716101a0614269565b9050600061357f8484612ef4565b825250602061359084848301612ed0565b60208301525060406135a484828501612ed0565b60408301525060606135b884828501612ed0565b60608301525060806135cc84828501612ed0565b60808301525060a06135e084828501612ed0565b60a08301525060c06135f484828501612ed0565b60c08301525060e061360884828501612ed0565b60e08301525061010061361d84828501612ed0565b6101008301525061012061363384828501612ed0565b6101208301525061014061364984828501612ed0565b6101408301525061016061365f84828501612ed0565b6101608301525061018061367584828501612ed0565b6101808301525092915050565b60006020828403121561369457600080fd5b60006106908484612ed0565b60008061058083850312156136b457600080fd5b60006136c08585612ed0565b92505060206136d185828601613240565b9150509250929050565b60008060008060006108e086880312156136f457600080fd5b60006137008888612ed0565b955050602061371188828901613240565b94505061058061372388828901613553565b93505061072061373588828901612ec4565b92505061074061374788828901613553565b9150509295509295909350565b600080600060c0848603121561376957600080fd5b60006137758686612ee8565b935050602061378686828701612ed0565b925050604061379786828701613182565b9150509250925092565b6000602082840312156137b357600080fd5b60006106908484612f24565b600080604083850312156137d257600080fd5b60006137de8585612f24565b92505060206136d185828601612ed0565b6000806000610540848603121561380557600080fd5b60006138118686612fa3565b93505061050061382386828701612ed0565b92505061052061379786828701612ed0565b600080600080610560858703121561384c57600080fd5b60006138588787612fa3565b94505061050061386a87828801612ed0565b93505061052061387c87828801612ed0565b92505061054061388e87828801612f24565b91505092959194509250565b600061056082840312156138ad57600080fd5b60006106908484613240565b60008060008061074085870312156138d057600080fd5b60006138dc8787613240565b9450506105606138ee87828801613553565b93505061070061390087828801612ed0565b92505061072061388e87828801612ed0565b61391b81614293565b61392482614290565b60005b828110156139545761393a85835161396a565b6139438261429d565b602095909501949150600101613927565b5050505050565b613964816142a3565b82525050565b61396481614290565b6139648161437b565b61396481614386565b61396481614391565b600061399982614299565b8084526139ad81602086016020860161439c565b6139b6816143c8565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602d81527f414e4e456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b603681527f414e4e456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190613fe18482613973565b506020820151613ff4602085018261396a565b506040820151614007604085018261396a565b50606082015161401a606085018261396a565b50608082015161402d608085018261396a565b5060a082015161404060a085018261396a565b5060c082015161405360c085018261396a565b5060e082015161406660e085018261396a565b5061010082015161407b61010085018261396a565b5061012082015161409061012085018261396a565b506101408201516140a561014085018261396a565b506101608201516140ba61016085018261396a565b506101808201516140cf61018085018261396a565b50505050565b61080081016106948284613912565b60208101610694828461395b565b60208101610694828461396a565b60208101610694828461397c565b6040810161411c8285613985565b6102f5602083018461396a565b602080825281016102f5818461398e565b60208082528101610694816139c3565b6020808252810161069481613a19565b6020808252810161069481613a6f565b6020808252810161069481613ac5565b6020808252810161069481613b1b565b6020808252810161069481613b71565b6020808252810161069481613ba1565b6020808252810161069481613bf7565b6020808252810161069481613c4d565b6020808252810161069481613ca3565b6020808252810161069481613cf9565b6020808252810161069481613d4f565b6020808252810161069481613da5565b6020808252810161069481613dfb565b6020808252810161069481613e51565b6020808252810161069481613ea7565b6020808252810161069481613f23565b6020808252810161069481613f79565b6101a081016106948284613fcf565b60405181810167ffffffffffffffff8111828210171561428857600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b6000600482106142b457fe5b5090565b6000600282106142b457fe5b6000601782106142b457fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b6000610694826142d0565b6000600982106142b457600080fd5b6000600282106142b457600080fd5b6000600482106142b457600080fd5b6000600582106142b457600080fd5b6000600a82106142b457600080fd5b6000600782106142b457600080fd5b6000601782106142b457600080fd5b6000600682106142b457600080fd5b6000600882106142b457600080fd5b6000610694826142a8565b6000610694826142b8565b6000610694826142c4565b60005b838110156143b757818101518382015260200161439f565b838111156140cf5750506000910152565b601f01601f19169056fea265627a7a72305820cf6882f5a06a6644c397c7174fbef49ffa7c30b3cdf32fc96d1f8ada6b28928a6c6578706572696d656e74616cf50037", "compiler": { "name": "solc", "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.872Z" + "updatedAt": "2019-12-12T15:29:50.924Z" } diff --git a/artifacts/BaseEngine.json b/artifacts/BaseEngine.json index f04cb1a..2742ee2 100644 --- a/artifacts/BaseEngine.json +++ b/artifacts/BaseEngine.json @@ -2066,5 +2066,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.883Z" + "updatedAt": "2019-12-12T14:54:18.633Z" } diff --git a/artifacts/BokkyPooBahsDateTimeLibrary.json b/artifacts/BokkyPooBahsDateTimeLibrary.json index 7b3fef2..b16bf8a 100644 --- a/artifacts/BokkyPooBahsDateTimeLibrary.json +++ b/artifacts/BokkyPooBahsDateTimeLibrary.json @@ -8,5 +8,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-10T15:52:56.912Z" + "updatedAt": "2019-12-12T14:54:18.847Z" } diff --git a/artifacts/BusinessDayConvention.json b/artifacts/BusinessDayConvention.json index e0eb357..64963ab 100644 --- a/artifacts/BusinessDayConvention.json +++ b/artifacts/BusinessDayConvention.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.835Z" + "updatedAt": "2019-12-12T14:54:18.533Z" } diff --git a/artifacts/CECEngine.json b/artifacts/CECEngine.json index 333ee32..beb3714 100644 --- a/artifacts/CECEngine.json +++ b/artifacts/CECEngine.json @@ -2066,5 +2066,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.889Z" + "updatedAt": "2019-12-12T14:54:18.640Z" } diff --git a/artifacts/CEGEngine.json b/artifacts/CEGEngine.json index 41627f5..4c5730b 100644 --- a/artifacts/CEGEngine.json +++ b/artifacts/CEGEngine.json @@ -2066,5 +2066,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.896Z" + "updatedAt": "2019-12-12T14:54:18.656Z" } diff --git a/artifacts/ContractDefaultConvention.json b/artifacts/ContractDefaultConvention.json index 6f16215..b951dab 100644 --- a/artifacts/ContractDefaultConvention.json +++ b/artifacts/ContractDefaultConvention.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.838Z" + "updatedAt": "2019-12-12T14:54:18.539Z" } diff --git a/artifacts/ContractRoleConvention.json b/artifacts/ContractRoleConvention.json index 4658b3a..9a80a49 100644 --- a/artifacts/ContractRoleConvention.json +++ b/artifacts/ContractRoleConvention.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.839Z" + "updatedAt": "2019-12-12T14:54:18.541Z" } diff --git a/artifacts/Core.json b/artifacts/Core.json index 40d3dcf..9bb7e92 100644 --- a/artifacts/Core.json +++ b/artifacts/Core.json @@ -368,5 +368,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.850Z" + "updatedAt": "2019-12-12T14:54:18.564Z" } diff --git a/artifacts/DayCountConvention.json b/artifacts/DayCountConvention.json index 90b8b97..2164a6a 100644 --- a/artifacts/DayCountConvention.json +++ b/artifacts/DayCountConvention.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.843Z" + "updatedAt": "2019-12-12T14:54:18.552Z" } diff --git a/artifacts/EndOfMonthConvention.json b/artifacts/EndOfMonthConvention.json index 388d89a..9483341 100644 --- a/artifacts/EndOfMonthConvention.json +++ b/artifacts/EndOfMonthConvention.json @@ -82,5 +82,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.849Z" + "updatedAt": "2019-12-12T14:54:18.561Z" } diff --git a/artifacts/IEngine.json b/artifacts/IEngine.json index 0012a27..d698865 100644 --- a/artifacts/IEngine.json +++ b/artifacts/IEngine.json @@ -1735,5 +1735,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.902Z" + "updatedAt": "2019-12-12T14:54:18.668Z" } diff --git a/artifacts/Migrations.json b/artifacts/Migrations.json index c8404ec..86644db 100644 --- a/artifacts/Migrations.json +++ b/artifacts/Migrations.json @@ -71,5 +71,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-10T15:52:56.898Z" + "updatedAt": "2019-12-12T14:54:18.826Z" } diff --git a/artifacts/PAMEngine.json b/artifacts/PAMEngine.json index ef48293..bf2f5c0 100644 --- a/artifacts/PAMEngine.json +++ b/artifacts/PAMEngine.json @@ -2059,12 +2059,12 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a PAM contract implements the STF and POF of the Actus standard for a PAM contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":\"PAMEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":{\"keccak256\":\"0xfd2fc922a41da65749fdef88fb02dcc6c9b29c46f19b1e549e8cf6057812cf33\",\"urls\":[\"bzzr://e6a1ee7b081addbbef779028adefcddb4630ca1a24bf02278f7a0493e3059028\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b5061433a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff366004613682565b61022a565b604051610111919061402e565b60405180910390f35b61012d610128366004613609565b6102fc565b6040516101119190614012565b61014d61014836600461371d565b610307565b6040516101119190614003565b610162610434565b6040516101119190614020565b61018261017d3660046135b0565b610440565b60405161011192919061403c565b6101a361019e3660046137e7565b61048a565b6040516101119190614188565b6101626101be3660046136cf565b6104a9565b6101626101d13660046135ce565b610675565b6101626106a1565b6101626101ec3660046137e7565b6106a6565b6101626101ff3660046136ed565b61073d565b61014d610212366004613763565b610762565b6101a36102253660046137c8565b610ce4565b60008084600181111561023957fe5b14156102b55761024883610d57565b61025184610d85565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec90614168565b60405180910390fd5b9392505050565b600195945050505050565b61030f612d3d565b610317612d3d565b60c0850151600090158015610336575061033686606001518686610da0565b156103635761034a6005876060015161073d565b8261ffff83166040811061035a57fe5b60200201526001015b60c0860151156103a95761037c8660c001518686610da0565b156103a95761039060108760c0015161073d565b8261ffff8316604081106103a057fe5b60200201526001015b60a0860151156103ef576103c28660a001518686610da0565b156103ef576103d660158760a0015161073d565b8261ffff8316604081106103e657fe5b60200201526001015b6103fe86608001518686610da0565b1561042b57610412600a876080015161073d565b8261ffff83166040811061042257fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561047557fe5b92505067ffffffffffffffff83169050915091565b610492612d5d565b61049e85858585610dc8565b90505b949350505050565b600060058260168111156104b957fe5b14156104c757506014610670565b600f8260168111156104d557fe5b14156104e357506019610670565b60088260168111156104f157fe5b14156104ff5750601e610670565b600782601681111561050d57fe5b141561051b57506028610670565b600482601681111561052957fe5b141561053757506032610670565b600282601681111561054557fe5b14156105535750603c610670565b600982601681111561056157fe5b141561056f57506050610670565b601182601681111561057d57fe5b141561058b5750605a610670565b601282601681111561059957fe5b14156105a757506064610670565b60138260168111156105b557fe5b14156105c35750606e610670565b60068260168111156105d157fe5b14156105df57506078610670565b60108260168111156105ed57fe5b14156105fb57506082610670565b601582601681111561060957fe5b14156106175750608c610670565b601482601681111561062557fe5b141561063357506096610670565b600a82601681111561064157fe5b141561064f575060a0610670565b600082601681111561065d57fe5b141561066c57506103b6610670565b5060005b919050565b60008061068184610440565b9150506106978184606001518560000151610fa5565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff1615801590610709575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b156107315761072a8261071e878787846110e8565b9063ffffffff6112b016565b90506104a1565b61049e858585856110e8565b60008160f884601681111561074e57fe5b60ff166001029060020a0217905092915050565b61076a612d3d565b610772612d3d565b600883601681111561078057fe5b141561089b576101c086015160600151600090151560011480156107a8575061010087015115155b80156107bd5750866101800151876101000151105b15610899576107ca612dc6565b6107ff8860e001516000146107e3578860e001516107ea565b8861010001515b8961018001518a6101c0015160008b8b61135b565b905060005b60108160ff161015610896578160ff82166010811061081f57fe5b6020020151151561082f57610896565b61084d8260ff83166010811061084157fe5b60200201518989610da0565b15156108585761088e565b61087660088360ff84166010811061086c57fe5b602002015161073d565b84846040811061088257fe5b60200201526001909201915b600101610804565b50505b505b60078360168111156108a957fe5b1415610a12576101c086015160600151600090151560011480156108d1575061010087015115155b80156108e0575060e087015115155b80156108f55750866101800151876101000151105b156109c757610902612dc6565b61091f8861010001518960e001518a6101c0015160008b8b61135b565b905060005b60108160ff1610156109c4578160ff82166010811061093f57fe5b6020020151151561094f576109c4565b6109618260ff83166010811061084157fe5b151561096c576109bc565b60e08901518260ff83166010811061098057fe5b60200201511415610990576109bc565b6109a460078360ff84166010811061086c57fe5b8484604081106109b057fe5b60200201526001909201915b600101610924565b50505b8661018001518760e001511015610a10576109e78760e001518787610da0565b15610a10576109fb60078860e0015161073d565b828260408110610a0757fe5b60200201526001015b505b6012836016811115610a2057fe5b1415610af8576101e08601516060015160009015156001148015610a48575061012087015115155b15610af657610a55612dc6565b610a7288610120015189608001518a6101e0015160008b8b61135b565b905060005b60108160ff161015610af3578160ff821660108110610a9257fe5b60200201511515610aa257610af3565b610ab48260ff83166010811061084157fe5b1515610abf57610aeb565b610ad360128360ff84166010811061086c57fe5b848460408110610adf57fe5b60200201526001909201915b600101610a77565b50505b505b6004836016811115610b0657fe5b1415610bde576102208601516060015160009015156001148015610b2e575061016087015115155b15610bdc57610b3b612dc6565b610b5888610160015189608001518a610220015160018b8b61135b565b905060005b60108160ff161015610bd9578160ff821660108110610b7857fe5b60200201511515610b8857610bd9565b610b9a8260ff83166010811061084157fe5b1515610ba557610bd1565b610bb960048360ff84166010811061086c57fe5b848460408110610bc557fe5b60200201526001909201915b600101610b5d565b50505b505b6013836016811115610bec57fe5b141561049e5760008087516007811115610c0257fe5b141580610c1c5750600287516007811115610c1957fe5b14155b8015610c2c575061014087015115155b15610cda57610c39612dc6565b610c5688610140015189608001518a610200015160018b8b61135b565b905060005b60108160ff161015610cd7578160ff821660108110610c7657fe5b60200201511515610c8657610cd7565b610c988260ff83166010811061084157fe5b1515610ca357610ccf565b610cb760138360ff84166010811061086c57fe5b848460408110610cc357fe5b60200201526001909201915b600101610c5b565b50505b5095945050505050565b610cec612d5d565b610cf4612d5d565b60008152670de0b6b3a764000061014082018190526101208201526101c083015160208201526101e0830151606082015261020083015160a082015261022083015161010082015261026083015160c08201526102409092015160e08301525090565b6000808080610d6b62015180865b0461151a565b91945092509050610d7c83836115b2565b95945050505050565b60008080610d966201518085610d65565b9695505050505050565b60008383108015610db15750838210155b15610dbe575060016102f5565b5060009392505050565b610dd0612d5d565b600080610ddc85610440565b90925090506000826016811115610def57fe5b1415610e0a57610e0187878387611638565b925050506104a1565b6004826016811115610e1857fe5b1415610e2a57610e0187878387611702565b6005826016811115610e3857fe5b1415610e4a57610e0187878387611764565b6007826016811115610e5857fe5b1415610e6a57610e01878783876117c9565b6008826016811115610e7857fe5b1415610e8a57610e0187878387611865565b600e826016811115610e9857fe5b1415610eaa57610e0187878387611638565b600a826016811115610eb857fe5b1415610eca57610e01878783876118b7565b600b826016811115610ed857fe5b1415610eea57610e0187878387611638565b6011826016811115610ef857fe5b1415610f0a57610e0187878387611943565b6012826016811115610f1857fe5b1415610f2a57610e01878783876119d7565b6013826016811115610f3857fe5b1415610f4a57610e0187878387611b26565b6015826016811115610f5857fe5b1415610f6a57610e0187878387611c89565b6016826016811115610f7857fe5b1415610f8a57610e0187878387611cd0565b60405160e560020a62461bcd0281526004016102ec90614118565b60006001836008811115610fb557fe5b1480610fcc57506003836008811115610fca57fe5b145b15610fe257610fdb8483611db1565b90506102f5565b6002836008811115610ff057fe5b14806110075750600483600881111561100557fe5b145b1561104b5760006110188584611db1565b905061102385611e0d565b61102c82611e0d565b14156110395790506102f5565b6110438584611e1e565b9150506102f5565b600583600881111561105957fe5b14806110705750600783600881111561106e57fe5b145b1561107f57610fdb8483611e1e565b600683600881111561108d57fe5b14806110a4575060088360088111156110a257fe5b145b156110e05760006110b58584611e1e565b90506110c085611e0d565b6110c982611e0d565b14156110d65790506102f5565b6110438584611db1565b509192915050565b60008060006110f685610440565b9092509050600082601681111561110957fe5b141561111a576000925050506104a1565b600782601681111561112857fe5b1415611139576000925050506104a1565b601182601681111561114757fe5b1415611158576000925050506104a1565b601282601681111561116657fe5b1415611177576000925050506104a1565b601382601681111561118557fe5b1415611196576000925050506104a1565b60168260168111156111a457fe5b14156111b5576000925050506104a1565b60048260168111156111c357fe5b14156111d557610e0187878387611e6c565b60058260168111156111e357fe5b14156111f557610e0187878387611f05565b600882601681111561120357fe5b141561121557610e0187878387611f43565b600e82601681111561122357fe5b141561123557610e0187878387611fab565b600a82601681111561124357fe5b141561125557610e0187878387611fcc565b600b82601681111561126357fe5b141561127557610e0187878387611fea565b601582601681111561128357fe5b141561129557610e01878783876120cf565b60405160e560020a62461bcd0281526004016102ec90614108565b60008215806112bd575081155b156112ca5750600061069b565b826000191480156112de575060ff60020a82145b156112fe5760405160e560020a62461bcd0281526004016102ec90614148565b82820282848281151561130d57fe5b051461132e5760405160e560020a62461bcd0281526004016102ec90614148565b670de0b6b3a764000081058015156106975760405160e560020a62461bcd0281526004016102ec90614128565b611363612dc6565b61136b612dc6565b606086015160009015156113d557611384898686610da0565b1561139f578882826010811061139657fe5b60200201526001015b6113aa888686610da0565b156113cd57600186151514156113cd57878282601081106113c757fe5b60200201525b509050610d96565b8860005b89821015611442576113ec828888610da0565b1561142d57600e83106114145760405160e560020a62461bcd0281526004016102ec90614068565b8184846010811061142157fe5b60200201526001909201915b60010161143b898c83612126565b91506113d9565b60018815151415611470576114588a8888610da0565b15611470578984846010811061146a57fe5b60200201525b60008311801561149a575061149a8460001985016010811061148e57fe5b60200201518888610da0565b1561150b576000896040015160018111156114b157fe5b1480156114be5750600183115b80156114ca5750818a14155b1561150b578383601081106114db57fe5b6020020151846000198501601081106114f057fe5b602002015283836010811061150157fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561157357fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806115c35750816003145b806115ce5750816005145b806115d95750816007145b806115e45750816008145b806115ef575081600a145b806115fa575081600c145b156116075750601f61069b565b600282146116175750601e61069b565b6116208361223c565b61162b57601c61162e565b601d5b60ff169392505050565b611640612d5d565b600061167f61165c866020015188606001518960000151612261565b61166f8689606001518a60000151612261565b8860400151896101e001516122cb565b90506116b56116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c08701519063ffffffff61238f16565b60c086015260a08501516102c08701516116f0916116df91849161071e919063ffffffff6112b016565b60e08701519063ffffffff61238f16565b60e08601525050506020820152919050565b61170a612d5d565b600061172661165c866020015188606001518960000151612261565b905061174b6116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b61176c612d5d565b600061178861165c866020015188606001518960000151612261565b905085610200015161179d87602001516123da565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b6117d1612d5d565b60006117ed61165c866020015188606001518960000151612261565b90506118376118266118158361071e8960a001518a61010001516112b090919063ffffffff16565b60c08801519063ffffffff61238f16565b60a08701519063ffffffff61238f16565b60a08601819052600060c08701526102c08701516116f0916116df91849161071e919063ffffffff6112b016565b61186d612d5d565b600061188961165c866020015188606001518960000151612261565b600060c087015260a08601516102c08801519192506116f0916116df91849161071e9163ffffffff6112b016565b6118bf612d5d565b60006118db61165c866020015188606001518960000151612261565b90506119006116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c086015260a08501516102c087015161192a916116df91849161071e919063ffffffff6112b016565b60e08601525050600060a0840152506020820152919050565b61194b612d5d565b600061196761165c866020015188606001518960000151612261565b905061198c6116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c086015260a08501516102c08701516119b6916116df91849161071e919063ffffffff6112b016565b60e08601525050506102e09290920151610100820152602081019190915290565b6119df612d5d565b6102a0850151610280860151600091611a0f91611a0390869063ffffffff6112b016565b9063ffffffff61238f16565b90506000611a2b866101000151836124a190919063ffffffff16565b9050611a5a876104200151611a4e896104400151846124ec90919063ffffffff16565b9063ffffffff6124fc16565b610100870151909150611a73908263ffffffff61238f16565b9150611a96876103e00151611a4e896104000151856124ec90919063ffffffff16565b91506000611ad7611ab488602001518a606001518b60000151612261565b611ac7888b606001518c60000151612261565b8a604001518b6101e001516122cb565b9050611b0d611afc8261071e8a60a001518b61010001516112b090919063ffffffff16565b60c08901519063ffffffff61238f16565b60c0880152505061010085015250506020820152919050565b611b2e612d5d565b6000611b4a61165c866020015188606001518960000151612261565b9050611b6f6116a48261071e8860a001518961010001516112b090919063ffffffff16565b60c086015260a08501516102c0870151611b99916116df91849161071e919063ffffffff6112b016565b60e086015260048660a001516007811115611bb057fe5b1480611bcb575060058660a001516007811115611bc957fe5b145b80611be5575060068660a001516007811115611be357fe5b145b80611bff575060078660a001516007811115611bfd57fe5b145b15611c0d5760006101208601525b60018660a001516007811115611c1f57fe5b1480611c3a575060038660a001516007811115611c3857fe5b145b80611c54575060058660a001516007811115611c5257fe5b145b80611c6e575060078660a001516007811115611c6c57fe5b145b15611c7c5760006101408601525b5050506020820152919050565b611c91612d5d565b6000611cad61165c866020015188606001518960000151612261565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611cd8612d5d565b60008460400151600014611cf0578460400151611d03565b611d038487606001518860000151610fa5565b6103a087015160400151909150839060009015611d3e576000611d2b896103a001518561250c565b9050808311611d3c57600180895291505b505b876103c00151604001518015611d52575080155b15611d81576000611d68896103c001518561250c565b9050808311611d7a5760028852611d7f565b600388525b505b60408701511515611da557611d9f8689606001518a60000151610fa5565b60408801525b50949695505050505050565b60006001826001811115611dc157fe5b1415611e0657611dd083612616565b60061415611dea57611de3836002612629565b905061069b565b611df383612616565b60071415611e0657611de3836001612629565b5090919050565b60008080610cda6201518085610d65565b60006001826001811115611e2e57fe5b1415611e0657611e3d83612616565b60061415611e5057611de383600161263e565b611e5983612616565b60071415611e0657611de383600261263e565b6000808560e001516001811115611e7f57fe5b1415611ea357846102c00151611e9886602001516123da565b60000b0290506104a1565b61049e611ef48560a0015161071e886102c0015161071e611ed18a602001518c606001518d60000151612261565b611ee48a8d606001518e60000151612261565b8c604001518d6101e001516122cb565b60e08601519063ffffffff61238f16565b6000611f2485610320015186610200015161238f90919063ffffffff16565b611f3186602001516123da565b6000190260000b029050949350505050565b600061049e611f996116a48660a0015161071e88610100015161071e611f768b602001518d606001518e60000151612261565b611f898b8e606001518f60000151612261565b8d604001518e6101e001516122cb565b6101208601519063ffffffff6112b016565b60008360a00151611fbf86602001516123da565b60000b0295945050505050565b600061049e8460a001518561014001516112b090919063ffffffff16565b600060018560c001516003811115611ffe57fe5b141561201757846103000151611e9886602001516123da565b60028560c00151600381111561202957fe5b141561208a5761207d8460a0015161071e87610300015161071e61205a89602001518b606001518c60000151612261565b61206d898c606001518d60000151612261565b8b604001518c6101e001516122cb565b611e9886602001516123da565b61207d8460a0015161071e6120ac876020015189606001518a60000151612261565b6120bf878a606001518b60000151612261565b89604001518a6101e001516122cb565b60006121196120ff8560a0015161071e87610100015161071e611ed18a602001518c606001518d60000151612261565b60c0860151610340880151611a039163ffffffff61238f16565b611fbf86602001516123da565b600080808560200151600581111561213a57fe5b14156121505761072a8484876000015102612629565b60018560200151600581111561216257fe5b141561217b5761072a8484876000015160070202612629565b60028560200151600581111561218d57fe5b14156121a35761072a8484876000015102612653565b6003856020015160058111156121b557fe5b14156121ce5761072a8484876000015160030202612653565b6004856020015160058111156121e057fe5b14156121f95761072a8484876000015160060202612653565b60058560200151600581111561220b57fe5b14156122215761072a84848760000151026126ca565b60405160e560020a62461bcd0281526004016102ec90614088565b60006004820615801561225157506064820615155b8061069b57505061019090061590565b6000600383600881111561227157fe5b14806122885750600483600881111561228657fe5b145b8061229e5750600783600881111561229c57fe5b145b806122b4575060088360088111156122b257fe5b145b156122c05750826102f5565b6104a1848484610fa5565b6000848410156122f05760405160e560020a62461bcd0281526004016102ec90614158565b60008360068111156122fe57fe5b141561230e5761072a85856126f1565b600183600681111561231c57fe5b141561232c5761072a8585612805565b600283600681111561233a57fe5b141561234a5761072a8585612830565b600483600681111561235857fe5b14156123685761072a858561284f565b600383600681111561237657fe5b14156123875761072a858584612910565b5060016104a1565b60008282018183128015906123a45750838112155b806123b957506000831280156123b957508381125b15156102f55760405160e560020a62461bcd0281526004016102ec906140c8565b6000808260098111156123e957fe5b14156123f757506001610670565b600182600981111561240557fe5b14156124145750600019610670565b600682600981111561242257fe5b141561243057506001610670565b600782600981111561243e57fe5b141561244d5750600019610670565b600482600981111561245b57fe5b141561246957506001610670565b600582600981111561247757fe5b14156124865750600019610670565b60405160e560020a62461bcd0281526004016102ec906140e8565b60008183038183128015906124b65750838113155b806124cb57506000831280156124cb57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec90614178565b600081831215611e065750919050565b600081831315611e0657816102f5565b600080808460200151600581111561252057fe5b141561253457610fdb838560000151612629565b60018460200151600581111561254657fe5b141561255d57610fdb838560000151600702612629565b60028460200151600581111561256f57fe5b141561258357610fdb838560000151612653565b60038460200151600581111561259557fe5b14156125ac57610fdb838560000151600302612653565b6004846020015160058111156125be57fe5b14156125d557610fdb838560000151600602612653565b6005846020015160058111156125e757fe5b14156125fb57610fdb8385600001516126ca565b60405160e560020a62461bcd0281526004016102ec906140d8565b6007620151809091046003010660010190565b62015180810282018281101561069b57600080fd5b62015180810282038281111561069b57600080fd5b60008080806126656201518087610d65565b600c91880160001901828104939093019550910660010192509050600061268c84846115b2565b90508082111561269a578091505b620151808706620151806126af8686866129e6565b02019450868510156126c057600080fd5b5050505092915050565b60008080806126dc6201518087610d65565b918701945092509050600061268c84846115b2565b6000806126fd84612a4c565b9050600061270a84612a4c565b9050600061271786612a68565b6127235761016d612727565b61016e5b61ffff169050818314156127595761274f816127438888612a8a565b9063ffffffff612aa516565b935050505061069b565b600061276486612a68565b6127705761016d612774565b61016e5b61ffff16905060006127a5836127438a6127a06127988a600163ffffffff612b7716565b600180612b9f565b612a8a565b905060006127c2836127436127bc88600180612b9f565b8b612a8a565b90506127f86127e860016127dc888a63ffffffff612bb916565b9063ffffffff612bb916565b611a03848463ffffffff61238f16565b9998505050505050505050565b60006102f561016861274362015180612824868863ffffffff612bb916565b9063ffffffff612bfb16565b60006102f561016d61274362015180612824868863ffffffff612bb916565b600080600080600080600061286389612c3d565b97509550935061287288612c3d565b945092509050601f86141561288657601e95505b82601f141561289457601e92505b60006128a6848863ffffffff6124a116565b905060006128ba848863ffffffff6124a116565b905060006128ce848863ffffffff6124a116565b905061290061016861274385611a036128ee87601e63ffffffff612c5b16565b611a038761016863ffffffff612c5b16565b9c9b505050505050505050505050565b60008060008060008060006129248a612c3d565b97509550935061293389612c3d565b9450925090506129428a610d57565b86141561294e57601e95505b878914801561295d5750816002145b158015612971575061296e89610d57565b83145b1561297b57601e92505b600061298d848863ffffffff6124a116565b905060006129a1848863ffffffff6124a116565b905060006129b5848863ffffffff6124a116565b90506129d561016861274385611a036128ee87601e63ffffffff612c5b16565b9d9c50505050505050505050505050565b60006107b28410156129f757600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b60008080612a5d6201518085610d65565b509095945050505050565b6000808080612a7a6201518086610d65565b91945092509050610d7c8361223c565b600081831115612a9957600080fd5b50620151809190030490565b6000811515612ac95760405160e560020a62461bcd0281526004016102ec90614098565b821515612ad85750600061069b565b670de0b6b3a7640000838102908482811515612af057fe5b0514612b115760405160e560020a62461bcd0281526004016102ec906140f8565b82600019148015612b25575060ff60020a84145b15612b455760405160e560020a62461bcd0281526004016102ec90614078565b60008382811515612b5257fe5b0590508015156106975760405160e560020a62461bcd0281526004016102ec906140b8565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec906140a8565b600062015180612bb08585856129e6565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612cd0565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612cff565b60008080612c4e6201518085610d65565b9196909550909350915050565b6000821515612c6c5750600061069b565b82600019148015612c80575060ff60020a82145b15612ca05760405160e560020a62461bcd0281526004016102ec90614138565b828202828482811515612caf57fe5b05146102f55760405160e560020a62461bcd0281526004016102ec90614138565b60008184841115612cf75760405160e560020a62461bcd0281526004016102ec9190614057565b505050900390565b600081818411612d255760405160e560020a62461bcd0281526004016102ec9190614057565b5060008385811515612d3357fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b60006102f58235614217565b60006102f582356141d1565b60006102f582356141be565b60006102f58235614222565b60006102f58235614231565b60006102f58235614240565b60006102f5823561424f565b60006102f5823561425e565b60006102f5823561426d565b60006102f5823561427c565b60006102f5823561428b565b60006102f5823561429a565b600060608284031215612e8857600080fd5b612e926060614197565b90506000612ea08484612dfe565b8252506020612eb184848301612e2e565b6020830152506040612ec584828501612e2e565b60408301525092915050565b60006105008284031215612ee457600080fd5b612eef6102a0614197565b90506000612efd8484612e6a565b8252506020612f0e84848301612dfe565b6020830152506040612f2284828501612dfe565b6040830152506060612f3684828501612dfe565b6060830152506080612f4a84828501612dfe565b60808301525060a0612f5e84828501612dfe565b60a08301525060c0612f7284828501612dfe565b60c08301525060e0612f8684828501612dfe565b60e083015250610100612f9b84828501612dfe565b61010083015250610120612fb184828501612dfe565b61012083015250610140612fc784828501612dfe565b61014083015250610160612fdd84828501612dfe565b61016083015250610180612ff384828501612dfe565b610180830152506101a061300984828501612dfe565b6101a0830152506101c061301f848285016130b0565b6101c083015250610240613035848285016130b0565b6101e0830152506102c061304b848285016130b0565b61020083015250610340613061848285016130b0565b610220830152506103c0613077848285016130b0565b6102408301525061044061308d8482850161311f565b610260830152506104a06130a38482850161311f565b6102808301525092915050565b6000608082840312156130c257600080fd5b6130cc6080614197565b905060006130da8484612dfe565b82525060206130eb84848301612e5e565b60208301525060406130ff84828501612e16565b604083015250606061311384828501612df2565b60608301525092915050565b60006060828403121561313157600080fd5b61313b6060614197565b905060006131498484612dfe565b825250602061315a84848301612e5e565b6020830152506040612ec584828501612df2565b6000610560828403121561318157600080fd5b61318c610460614197565b9050600061319a8484612e16565b82525060206131ab84848301612e3a565b60208301525060406131bf84828501612e46565b60408301525060606131d384828501612e0a565b60608301525060806131e784828501612e16565b60808301525060a06131fb84828501612e6a565b60a08301525060c061320f84828501612e22565b60c08301525060e061322384828501612e16565b60e08301525061010061323884828501612e22565b6101008301525061012061324e84828501612e76565b6101208301525061018061326484828501612e76565b610140830152506101e061327a84828501612de6565b6101608301525061020061329084828501612de6565b610180830152506102206132a684828501612dfe565b6101a0830152506102406132bc84828501612dfe565b6101c0830152506102606132d284828501612dfe565b6101e0830152506102806132e884828501612dfe565b610200830152506102a06132fe84828501612dfe565b610220830152506102c061331484828501612dfe565b610240830152506102e061332a84828501612dfe565b6102608301525061030061334084828501612dfe565b6102808301525061032061335684828501612dfe565b6102a08301525061034061336c84828501612dfe565b6102c08301525061036061338284828501612dfe565b6102e08301525061038061339884828501612dfe565b610300830152506103a06133ae84828501612dfe565b610320830152506103c06133c484828501612dfe565b610340830152506103e06133da84828501612dfe565b610360830152506104006133f084828501612dfe565b610380830152506104206134068482850161311f565b6103a08301525061048061341c8482850161311f565b6103c0830152506104e061343284828501612dfe565b6103e08301525061050061344884828501612dfe565b6104008301525061052061345e84828501612dfe565b6104208301525061054061347484828501612dfe565b6104408301525092915050565b60006101a0828403121561349457600080fd5b61349f6101a0614197565b905060006134ad8484612e22565b82525060206134be84848301612dfe565b60208301525060406134d284828501612dfe565b60408301525060606134e684828501612dfe565b60608301525060806134fa84828501612dfe565b60808301525060a061350e84828501612dfe565b60a08301525060c061352284828501612dfe565b60c08301525060e061353684828501612dfe565b60e08301525061010061354b84828501612dfe565b6101008301525061012061356184828501612dfe565b6101208301525061014061357784828501612dfe565b6101408301525061016061358d84828501612dfe565b610160830152506101806135a384828501612dfe565b6101808301525092915050565b6000602082840312156135c257600080fd5b60006106978484612dfe565b60008061058083850312156135e257600080fd5b60006135ee8585612dfe565b92505060206135ff8582860161316e565b9150509250929050565b60008060008060006108e0868803121561362257600080fd5b600061362e8888612dfe565b955050602061363f8882890161316e565b94505061058061365188828901613481565b93505061072061366388828901612df2565b92505061074061367588828901613481565b9150509295509295909350565b600080600060c0848603121561369757600080fd5b60006136a38686612e16565b93505060206136b486828701612dfe565b92505060406136c5868287016130b0565b9150509250925092565b6000602082840312156136e157600080fd5b60006106978484612e52565b6000806040838503121561370057600080fd5b600061370c8585612e52565b92505060206135ff85828601612dfe565b6000806000610540848603121561373357600080fd5b600061373f8686612ed1565b93505061050061375186828701612dfe565b9250506105206136c586828701612dfe565b600080600080610560858703121561377a57600080fd5b60006137868787612ed1565b94505061050061379887828801612dfe565b9350506105206137aa87828801612dfe565b9250506105406137bc87828801612e52565b91505092959194509250565b600061056082840312156137db57600080fd5b6000610697848461316e565b60008060008061074085870312156137fe57600080fd5b600061380a878761316e565b94505061056061381c87828801613481565b93505061070061382e87828801612dfe565b9250506107206137bc87828801612dfe565b613849816141c1565b613852826141be565b60005b8281101561388257613868858351613898565b613871826141cb565b602095909501949150600101613855565b5050505050565b613892816141d1565b82525050565b613892816141be565b613892816142a9565b613892816142b4565b613892816142bf565b60006138c7826141c7565b8084526138db8160208601602086016142ca565b6138e4816142f6565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602d81527f50414d456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b603681527f50414d456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190613f0f84826138a1565b506020820151613f226020850182613898565b506040820151613f356040850182613898565b506060820151613f486060850182613898565b506080820151613f5b6080850182613898565b5060a0820151613f6e60a0850182613898565b5060c0820151613f8160c0850182613898565b5060e0820151613f9460e0850182613898565b50610100820151613fa9610100850182613898565b50610120820151613fbe610120850182613898565b50610140820151613fd3610140850182613898565b50610160820151613fe8610160850182613898565b50610180820151613ffd610180850182613898565b50505050565b610800810161069b8284613840565b6020810161069b8284613889565b6020810161069b8284613898565b6020810161069b82846138aa565b6040810161404a82856138b3565b6102f56020830184613898565b602080825281016102f581846138bc565b6020808252810161069b816138f1565b6020808252810161069b81613947565b6020808252810161069b8161399d565b6020808252810161069b816139f3565b6020808252810161069b81613a49565b6020808252810161069b81613a79565b6020808252810161069b81613acf565b6020808252810161069b81613b25565b6020808252810161069b81613b7b565b6020808252810161069b81613bd1565b6020808252810161069b81613c27565b6020808252810161069b81613c7d565b6020808252810161069b81613cd3565b6020808252810161069b81613d29565b6020808252810161069b81613d7f565b6020808252810161069b81613dd5565b6020808252810161069b81613e2b565b6020808252810161069b81613ea7565b6101a0810161069b8284613efd565b60405181810167ffffffffffffffff811182821017156141b657600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b6000600482106141e257fe5b5090565b6000600282106141e257fe5b6000601782106141e257fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061069b826141fe565b6000600982106141e257600080fd5b6000600282106141e257600080fd5b6000600482106141e257600080fd5b6000600582106141e257600080fd5b6000600a82106141e257600080fd5b6000600782106141e257600080fd5b6000601782106141e257600080fd5b6000600682106141e257600080fd5b6000600882106141e257600080fd5b600061069b826141d6565b600061069b826141e6565b600061069b826141f2565b60005b838110156142e55781810151838201526020016142cd565b83811115613ffd5750506000910152565b601f01601f19169056fea265627a7a723058207f23c5bf438128fde2014f399bab6e31d2c06be9db579f5e9c111726dc9957d46c6578706572696d656e74616cf50037", + "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"eomc\",\"type\":\"uint8\"},{\"name\":\"startTime\",\"type\":\"uint256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycle\",\"type\":\"tuple\"}],\"name\":\"adjustEndOfMonthConvention\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"hasUnderlying\",\"type\":\"bool\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"underlyingState\",\"type\":\"tuple\"}],\"name\":\"isEventScheduled\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"}],\"name\":\"computeNonCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ONE_POINT_ZERO\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"}],\"name\":\"decodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"},{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computeStateForEvent\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"getEpochOffset\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_event\",\"type\":\"bytes32\"},{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeEventTimeForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PRECISION\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"state\",\"type\":\"tuple\"},{\"name\":\"_event\",\"type\":\"bytes32\"},{\"name\":\"externalData\",\"type\":\"bytes32\"}],\"name\":\"computePayoffForEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"eventType\",\"type\":\"uint8\"},{\"name\":\"scheduleTime\",\"type\":\"uint256\"}],\"name\":\"encodeEvent\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"contractDealDate\",\"type\":\"uint256\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"initialExchangeDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"terminationDate\",\"type\":\"uint256\"},{\"name\":\"purchaseDate\",\"type\":\"uint256\"},{\"name\":\"capitalizationEndDate\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfInterestPayment\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfRateReset\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfScalingIndex\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfFee\",\"type\":\"uint256\"},{\"name\":\"cycleAnchorDateOfPrincipalRedemption\",\"type\":\"uint256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfInterestPayment\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfRateReset\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfScalingIndex\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfFee\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"s\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"cycleOfPrincipalRedemption\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"}],\"name\":\"terms\",\"type\":\"tuple\"},{\"name\":\"segmentStart\",\"type\":\"uint256\"},{\"name\":\"segmentEnd\",\"type\":\"uint256\"},{\"name\":\"eventType\",\"type\":\"uint8\"}],\"name\":\"computeCyclicScheduleSegment\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32[64]\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"name\":\"calendar\",\"type\":\"uint8\"},{\"name\":\"contractRole\",\"type\":\"uint8\"},{\"name\":\"dayCountConvention\",\"type\":\"uint8\"},{\"name\":\"businessDayConvention\",\"type\":\"uint8\"},{\"name\":\"endOfMonthConvention\",\"type\":\"uint8\"},{\"name\":\"scalingEffect\",\"type\":\"uint8\"},{\"name\":\"penaltyType\",\"type\":\"uint8\"},{\"name\":\"feeBasis\",\"type\":\"uint8\"},{\"name\":\"creditEventTypeCovered\",\"type\":\"uint8\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_1\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"object\",\"type\":\"bytes32\"},{\"name\":\"contractReferenceType\",\"type\":\"uint8\"},{\"name\":\"contractReferenceRole\",\"type\":\"uint8\"}],\"name\":\"contractReference_2\",\"type\":\"tuple\"},{\"name\":\"currency\",\"type\":\"address\"},{\"name\":\"settlementCurrency\",\"type\":\"address\"},{\"name\":\"marketObjectCodeRateReset\",\"type\":\"bytes32\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"rateMultiplier\",\"type\":\"int256\"},{\"name\":\"rateSpread\",\"type\":\"int256\"},{\"name\":\"feeRate\",\"type\":\"int256\"},{\"name\":\"nextResetRate\",\"type\":\"int256\"},{\"name\":\"penaltyRate\",\"type\":\"int256\"},{\"name\":\"premiumDiscountAtIED\",\"type\":\"int256\"},{\"name\":\"priceAtPurchaseDate\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"coverageOfCreditEnhancement\",\"type\":\"int256\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"gracePeriod\",\"type\":\"tuple\"},{\"components\":[{\"name\":\"i\",\"type\":\"uint256\"},{\"name\":\"p\",\"type\":\"uint8\"},{\"name\":\"isSet\",\"type\":\"bool\"}],\"name\":\"delinquencyPeriod\",\"type\":\"tuple\"},{\"name\":\"lifeCap\",\"type\":\"int256\"},{\"name\":\"lifeFloor\",\"type\":\"int256\"},{\"name\":\"periodCap\",\"type\":\"int256\"},{\"name\":\"periodFloor\",\"type\":\"int256\"}],\"name\":\"terms\",\"type\":\"tuple\"}],\"name\":\"computeInitialState\",\"outputs\":[{\"components\":[{\"name\":\"contractPerformance\",\"type\":\"uint8\"},{\"name\":\"statusDate\",\"type\":\"uint256\"},{\"name\":\"nonPerformingDate\",\"type\":\"uint256\"},{\"name\":\"maturityDate\",\"type\":\"uint256\"},{\"name\":\"executionDate\",\"type\":\"uint256\"},{\"name\":\"notionalPrincipal\",\"type\":\"int256\"},{\"name\":\"accruedInterest\",\"type\":\"int256\"},{\"name\":\"feeAccrued\",\"type\":\"int256\"},{\"name\":\"nominalInterestRate\",\"type\":\"int256\"},{\"name\":\"interestScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"notionalScalingMultiplier\",\"type\":\"int256\"},{\"name\":\"nextPrincipalRedemptionPayment\",\"type\":\"int256\"},{\"name\":\"executionAmount\",\"type\":\"int256\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"all numbers except unix timestamp are represented as multiple of 10 ** 18 inputs have to be multiplied by 10 ** 18, outputs have to divided by 10 ** 18\",\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"details\":\"The following is considered to dertermine if schedule dates are shifted to the end of month: - The convention SD (same day) means not adjusting, EM (end of month) means adjusting - Dates are only shifted if the schedule start date is an end-of-month date - Dates are only shifted if the schedule cycle is based on an \\\"M\\\" period unit or multiple thereof\",\"params\":{\"cycle\":\"the cycle struct\",\"eomc\":\"the end of month convention to adjust\",\"startTime\":\"timestemp of the cycle start\"},\"return\":\"the adjusted end of month convention\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"params\":{\"eventType\":\"eventType of the cyclic schedule\",\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"details\":\"see initStateSpace()\",\"params\":{\"terms\":\"terms of the contract\"},\"return\":\"initial contract state\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"params\":{\"segmentEnd\":\"end timestamp of the segement\",\"segmentStart\":\"start timestamp of the segment\",\"terms\":\"terms of the contract\"},\"return\":\"event schedule segment\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"params\":{\"_event\":\"prototype event to be evaluated and applied to the contract state\",\"externalData\":\"external data needed for POF evaluation\",\"state\":\"current state of the contract\",\"terms\":\"terms of the contract\"},\"return\":\"the new contract state and the evaluated event\"}},\"title\":\"the stateless component for a PAM contract implements the STF and POF of the Actus standard for a PAM contract\"},\"userdoc\":{\"methods\":{\"adjustEndOfMonthConvention(uint8,uint256,(uint256,uint8,uint8,bool))\":{\"notice\":\"This function makes an adjustment on the end of month convention.\"},\"computeCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256,uint8)\":{\"notice\":\"computes a schedule segment of cyclic contract events based on the contract terms and the specified period\"},\"computeInitialState((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256))\":{\"notice\":\"initialize contract state space based on the contract terms\"},\"computeNonCyclicScheduleSegment((uint8,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,int256,(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,uint8,bool),(uint256,uint8,bool),(uint256,uint8,bool)),uint256,uint256)\":{\"notice\":\"computes a schedule segment of non-cyclic contract events based on the contract terms and the specified period\"},\"computePayoffForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"},\"computeStateForEvent((uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,uint8,(bytes32,uint8,uint8),(bytes32,uint8,uint8),address,address,bytes32,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,int256,(uint256,uint8,bool),(uint256,uint8,bool),int256,int256,int256,int256),(uint8,uint256,uint256,uint256,uint256,int256,int256,int256,int256,int256,int256,int256,int256),bytes32,bytes32)\":{\"notice\":\"applys a prototype event to the current state of a contract and returns the contrat event and the new contract state\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":\"PAMEngine\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4ff9eab34e7bc670373e673658a23a2a2ba3872fe7d85926f4d7784052b84b5c\",\"urls\":[\"bzzr://11036018403a32682d0bb2dd7cde3067ddd05b039c332a0f3a3506b4041786a1\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/BusinessDayConvention.sol\":{\"keccak256\":\"0xf1600a50f0ac29acd1b825c74dfd073225a83e051b1dbb9f4dceba1ce92f8cec\",\"urls\":[\"bzzr://f047d2a1b5390fb2d92fa31f4bf12253a68db419163c96374067370cc49ecf2a\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractDefaultConvention.sol\":{\"keccak256\":\"0xfa84b30c8cc42a606f55054e71eed9df538dd5177576e1a4c1a704abe56e80b0\",\"urls\":[\"bzzr://2e81520b90b5973983113769bc36b4fe96b0807fa50722521729cef1cb8335db\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/ContractRoleConvention.sol\":{\"keccak256\":\"0x6f3b6524457ac67b17197f7ef162132da166aa0b827d2b36408d3f1256065a33\",\"urls\":[\"bzzr://3d776749e74b8e92188e257ffcc004cd86d01db51980cace9bed7dafba6d51fa\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/DayCountConvention.sol\":{\"keccak256\":\"0x5dc0d86a295eed99daaab83c8be5eb0f854856f664c9c1414ff1d288668c6b7a\",\"urls\":[\"bzzr://1bc8aa76c69fbb2ef5d4e6652301d194c2ba8ecd75ff9c33e86732c73efd1d72\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Conventions/EndOfMonthConvention.sol\":{\"keccak256\":\"0x18b9edf68b62a1941c9a089aa482832724b98811136bc71542bdb303e4d93381\",\"urls\":[\"bzzr://fd259b7d86c1ba779695c2d3d53da590467d2d3f0f36244171a679433aa931f8\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Core.sol\":{\"keccak256\":\"0xa31f6c760a45125e6b973aa9bd00374181d67262543af548b211ae9829ceebf9\",\"urls\":[\"bzzr://a64c5b8a9df3ea6ad420258636bf0d780aff5258cbbfb7580c064f877a4d85f2\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Schedule.sol\":{\"keccak256\":\"0x2ecd082e5b1f4976f2350ba8be2a4e01a134ebd7401d4c6328c34ee0539e908d\",\"urls\":[\"bzzr://cbf7d41ff6cfeb62ecf2b7a3f62d3605b5899adcc0853c8271cb6265183ca0e5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x3f1e797d781f6d50bcf76d1a9d8d70434c858d530b8bd12f1c2e7a8d75455f2f\",\"urls\":[\"bzzr://05f35b51bb89c25b67dc1630fa8ace8667d7e251a7d0f6ab88d01a19a01badd5\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Core/Utils.sol\":{\"keccak256\":\"0x8ab2c98976531f1d2be76452c380d39e195e3e7476f0c30a85e13fe16031de2b\",\"urls\":[\"bzzr://1646ffbabcfb960d533c24ab7407e7eae6ed9d4027d397211d7770e9f3ef6fdd\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/BaseEngine.sol\":{\"keccak256\":\"0xa46bab0d62bfd1b229ac8d89bfea285aa09d8a20131511ba53a8c8a4afbb337a\",\"urls\":[\"bzzr://0dcc971d549a729db04f0bef020f769231e7e1c092c84c40c6eeb1184edc4a65\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/IEngine.sol\":{\"keccak256\":\"0xd19fd73e303eed74f45251726e6a156feae6ca92400a0c68199a70b7cdfd38b8\",\"urls\":[\"bzzr://1b0690aff218f01751b4460872860613a88dda9c96df522b910ca3e695b382e3\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/PAMEngine.sol\":{\"keccak256\":\"0x53c7ef48f8be478a70b17a6d204a654b39f2b5b8a3ae2cd4669cb08e7b0508f4\",\"urls\":[\"bzzr://7e1409314b5cccbb532437977c5e645c201c95fc2ada1d6f0b59d87c91c66794\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/POF.sol\":{\"keccak256\":\"0x7b94f43882fde0078d5bd439d38946bae8c33ded0fb8bc8948fd34710d9325a4\",\"urls\":[\"bzzr://71d665991ac3bd617422687a45f710437a87a03889d8adbdca3abae4c32ebcb9\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/Engines/STF.sol\":{\"keccak256\":\"0x017de4a11b9b4da7b463239d26b1b932c7a12a0d9f29dff48f3c4c8c7dc2b1da\",\"urls\":[\"bzzr://7f6ef157d98385352e2032a3d395d2dd0eed483cf86388881a1d0ad99cffb2ab\"]},\"/Users/johannes/Documents/dev/actus-protocol/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x7162caa2f09437b4d09f5a33e20a249f1e6a53c4afb3934cdea86fdba3591347\",\"urls\":[\"bzzr://780e5ff6c452639b751083da979392fbe1d98adf6772d794d084a1632873ad21\"]},\"openzeppelin-solidity/contracts/drafts/SignedSafeMath.sol\":{\"keccak256\":\"0xf1587a6daea33c93e85fff4e205967183de459159aafcb01b7397fb7ec1f9f77\",\"urls\":[\"bzzr://3fa5ad67118819b61448882baec9ca9964dde65630f574ab3c38841110082923\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzzr://292843005e754e752644f767477ec5ad7a1ffc91ddb18c38b8079c62f3993cad\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506142f5806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ec576000357c010000000000000000000000000000000000000000000000000000000090048063811322fb116100a9578063b274e03511610083578063b274e035146101de578063e05a66e0146101f1578063fb8eb23014610204578063fe82691514610217576100ec565b8063811322fb146101b057806387467b61146101c3578063aaf5eb68146101d6576100ec565b8063179331f3146100f1578063333a37cd1461011a57806355464e371461013a5780636f37e55b1461015a578063725400031461016f5780637f86c4b214610190575b600080fd5b6101046100ff36600461363d565b61022a565b6040516101119190613fe9565b60405180910390f35b61012d6101283660046135c4565b6102fc565b6040516101119190613fcd565b61014d6101483660046136d8565b610307565b6040516101119190613fbe565b610162610434565b6040516101119190613fdb565b61018261017d36600461356b565b610440565b604051610111929190613ff7565b6101a361019e3660046137a2565b61048a565b6040516101119190614143565b6101626101be36600461368a565b6104a9565b6101626101d1366004613589565b610675565b6101626106a1565b6101626101ec3660046137a2565b6106a6565b6101626101ff3660046136a8565b61073d565b61014d61021236600461371e565b610762565b6101a3610225366004613783565b610c76565b60008084600181111561023957fe5b14156102b55761024883610ce9565b61025184610d17565b1480156102a0575060028260200151600581111561026b57fe5b1480610286575060038260200151600581111561028457fe5b145b806102a0575060048260200151600581111561029e57fe5b145b156102ad575060006102f5565b5060016102f5565b60018460018111156102c357fe5b14156102d1575060016102f5565b60405160e560020a62461bcd0281526004016102ec90614123565b60405180910390fd5b9392505050565b600195945050505050565b61030f612ccf565b610317612ccf565b60c0850151600090158015610336575061033686606001518686610d32565b156103635761034a6005876060015161073d565b8261ffff83166040811061035a57fe5b60200201526001015b60c0860151156103a95761037c8660c001518686610d32565b156103a95761039060108760c0015161073d565b8261ffff8316604081106103a057fe5b60200201526001015b60a0860151156103ef576103c28660a001518686610d32565b156103ef576103d660158760a0015161073d565b8261ffff8316604081106103e657fe5b60200201526001015b6103fe86608001518686610d32565b1561042b57610412600a876080015161073d565b8261ffff83166040811061042257fe5b60200201526001015b50949350505050565b670de0b6b3a764000081565b6000808060ff7f0100000000000000000000000000000000000000000000000000000000000000850416601681111561047557fe5b92505067ffffffffffffffff83169050915091565b610492612cef565b61049e85858585610d5a565b90505b949350505050565b600060058260168111156104b957fe5b14156104c757506014610670565b600f8260168111156104d557fe5b14156104e357506019610670565b60088260168111156104f157fe5b14156104ff5750601e610670565b600782601681111561050d57fe5b141561051b57506028610670565b600482601681111561052957fe5b141561053757506032610670565b600282601681111561054557fe5b14156105535750603c610670565b600982601681111561056157fe5b141561056f57506050610670565b601182601681111561057d57fe5b141561058b5750605a610670565b601282601681111561059957fe5b14156105a757506064610670565b60138260168111156105b557fe5b14156105c35750606e610670565b60068260168111156105d157fe5b14156105df57506078610670565b60108260168111156105ed57fe5b14156105fb57506082610670565b601582601681111561060957fe5b14156106175750608c610670565b601482601681111561062557fe5b141561063357506096610670565b600a82601681111561064157fe5b141561064f575060a0610670565b600082601681111561065d57fe5b141561066c57506103b6610670565b5060005b919050565b60008061068184610440565b9150506106978184606001518560000151610f37565b9150505b92915050565b601281565b61018084015160009073ffffffffffffffffffffffffffffffffffffffff1615801590610709575084610180015173ffffffffffffffffffffffffffffffffffffffff1685610160015173ffffffffffffffffffffffffffffffffffffffff1614155b156107315761072a8261071e8787878461107a565b9063ffffffff61124216565b90506104a1565b61049e8585858561107a565b60008160f884601681111561074e57fe5b60ff166001029060020a0217905092915050565b61076a612ccf565b610772612ccf565b600883601681111561078057fe5b1415610891576101c086015160600151600090151560011480156107a8575061010087015115155b1561088f576107b5612d58565b6107d288610100015189608001518a6101c0015160018b8b6112ed565b905060005b60108160ff16101561088c578160ff8216601081106107f257fe5b602002015115156108025761088c565b60e08901518260ff83166010811061081657fe5b60200201511161082557610884565b6108438260ff83166010811061083757fe5b60200201518989610d32565b151561084e57610884565b61086c60088360ff84166010811061086257fe5b602002015161073d565b84846040811061087857fe5b60200201526001909201915b6001016107d7565b50505b505b600783601681111561089f57fe5b14156109a4576101c086015160600151600090151560011480156108c7575061010087015115155b80156108d6575060e087015115155b156109a2576108e3612d78565b506101c0870151600160408201526108f9612d58565b6109118961010001518a60e001518460018c8c6112ed565b905060005b60108160ff16101561099e578160ff82166010811061093157fe5b602002015115156109415761099e565b61095f8260ff83166010811061095357fe5b60200201518a8a610d32565b151561096a57610996565b61097e60078360ff84166010811061086257fe5b85856040811061098a57fe5b60200201526001909301925b600101610916565b5050505b505b60128360168111156109b257fe5b1415610a8a576101e086015160600151600090151560011480156109da575061012087015115155b15610a88576109e7612d58565b610a0488610120015189608001518a6101e0015160008b8b6112ed565b905060005b60108160ff161015610a85578160ff821660108110610a2457fe5b60200201511515610a3457610a85565b610a468260ff83166010811061083757fe5b1515610a5157610a7d565b610a6560128360ff84166010811061086257fe5b848460408110610a7157fe5b60200201526001909201915b600101610a09565b50505b505b6004836016811115610a9857fe5b1415610b70576102208601516060015160009015156001148015610ac0575061016087015115155b15610b6e57610acd612d58565b610aea88610160015189608001518a610220015160018b8b6112ed565b905060005b60108160ff161015610b6b578160ff821660108110610b0a57fe5b60200201511515610b1a57610b6b565b610b2c8260ff83166010811061083757fe5b1515610b3757610b63565b610b4b60048360ff84166010811061086257fe5b848460408110610b5757fe5b60200201526001909201915b600101610aef565b50505b505b6013836016811115610b7e57fe5b141561049e5760008087516007811115610b9457fe5b141580610bae5750600287516007811115610bab57fe5b14155b8015610bbe575061014087015115155b15610c6c57610bcb612d58565b610be888610140015189608001518a610200015160018b8b6112ed565b905060005b60108160ff161015610c69578160ff821660108110610c0857fe5b60200201511515610c1857610c69565b610c2a8260ff83166010811061083757fe5b1515610c3557610c61565b610c4960138360ff84166010811061086257fe5b848460408110610c5557fe5b60200201526001909201915b600101610bed565b50505b5095945050505050565b610c7e612cef565b610c86612cef565b60008152670de0b6b3a764000061014082018190526101208201526101c083015160208201526101e0830151606082015261020083015160a082015261022083015161010082015261026083015160c08201526102409092015160e08301525090565b6000808080610cfd62015180865b046114ac565b91945092509050610d0e8383611544565b95945050505050565b60008080610d286201518085610cf7565b9695505050505050565b60008383108015610d435750838210155b15610d50575060016102f5565b5060009392505050565b610d62612cef565b600080610d6e85610440565b90925090506000826016811115610d8157fe5b1415610d9c57610d93878783876115ca565b925050506104a1565b6004826016811115610daa57fe5b1415610dbc57610d9387878387611694565b6005826016811115610dca57fe5b1415610ddc57610d93878783876116f6565b6007826016811115610dea57fe5b1415610dfc57610d938787838761175b565b6008826016811115610e0a57fe5b1415610e1c57610d93878783876117f7565b600e826016811115610e2a57fe5b1415610e3c57610d93878783876115ca565b600a826016811115610e4a57fe5b1415610e5c57610d9387878387611849565b600b826016811115610e6a57fe5b1415610e7c57610d93878783876115ca565b6011826016811115610e8a57fe5b1415610e9c57610d93878783876118d5565b6012826016811115610eaa57fe5b1415610ebc57610d9387878387611969565b6013826016811115610eca57fe5b1415610edc57610d9387878387611ab8565b6015826016811115610eea57fe5b1415610efc57610d9387878387611c1b565b6016826016811115610f0a57fe5b1415610f1c57610d9387878387611c62565b60405160e560020a62461bcd0281526004016102ec906140d3565b60006001836008811115610f4757fe5b1480610f5e57506003836008811115610f5c57fe5b145b15610f7457610f6d8483611d43565b90506102f5565b6002836008811115610f8257fe5b1480610f9957506004836008811115610f9757fe5b145b15610fdd576000610faa8584611d43565b9050610fb585611d9f565b610fbe82611d9f565b1415610fcb5790506102f5565b610fd58584611db0565b9150506102f5565b6005836008811115610feb57fe5b14806110025750600783600881111561100057fe5b145b1561101157610f6d8483611db0565b600683600881111561101f57fe5b14806110365750600883600881111561103457fe5b145b156110725760006110478584611db0565b905061105285611d9f565b61105b82611d9f565b14156110685790506102f5565b610fd58584611d43565b509192915050565b600080600061108885610440565b9092509050600082601681111561109b57fe5b14156110ac576000925050506104a1565b60078260168111156110ba57fe5b14156110cb576000925050506104a1565b60118260168111156110d957fe5b14156110ea576000925050506104a1565b60128260168111156110f857fe5b1415611109576000925050506104a1565b601382601681111561111757fe5b1415611128576000925050506104a1565b601682601681111561113657fe5b1415611147576000925050506104a1565b600482601681111561115557fe5b141561116757610d9387878387611dfe565b600582601681111561117557fe5b141561118757610d9387878387611e97565b600882601681111561119557fe5b14156111a757610d9387878387611ed5565b600e8260168111156111b557fe5b14156111c757610d9387878387611f3d565b600a8260168111156111d557fe5b14156111e757610d9387878387611f5e565b600b8260168111156111f557fe5b141561120757610d9387878387611f7c565b601582601681111561121557fe5b141561122757610d9387878387612061565b60405160e560020a62461bcd0281526004016102ec906140c3565b600082158061124f575081155b1561125c5750600061069b565b82600019148015611270575060ff60020a82145b156112905760405160e560020a62461bcd0281526004016102ec90614103565b82820282848281151561129f57fe5b05146112c05760405160e560020a62461bcd0281526004016102ec90614103565b670de0b6b3a764000081058015156106975760405160e560020a62461bcd0281526004016102ec906140e3565b6112f5612d58565b6112fd612d58565b6060860151600090151561136757611316898686610d32565b15611331578882826010811061132857fe5b60200201526001015b61133c888686610d32565b1561135f576001861515141561135f578782826010811061135957fe5b60200201525b509050610d28565b8860005b898210156113d45761137e828888610d32565b156113bf57600e83106113a65760405160e560020a62461bcd0281526004016102ec90614023565b818484601081106113b357fe5b60200201526001909201915b6001016113cd898c836120b8565b915061136b565b60018815151415611402576113ea8a8888610d32565b1561140257898484601081106113fc57fe5b60200201525b60008311801561142c575061142c8460001985016010811061142057fe5b60200201518888610d32565b1561149d5760008960400151600181111561144357fe5b1480156114505750600183115b801561145c5750818a14155b1561149d5783836010811061146d57fe5b60200201518460001985016010811061148257fe5b602002015283836010811061149357fe5b6020020160008152505b50919998505050505050505050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281151561150557fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806115555750816003145b806115605750816005145b8061156b5750816007145b806115765750816008145b80611581575081600a145b8061158c575081600c145b156115995750601f61069b565b600282146115a95750601e61069b565b6115b2836121ce565b6115bd57601c6115c0565b601d5b60ff169392505050565b6115d2612cef565b60006116116115ee8660200151886060015189600001516121f3565b6116018689606001518a600001516121f3565b8860400151896101e0015161225d565b90506116476116368261071e8860a0015189610100015161124290919063ffffffff16565b60c08701519063ffffffff61232116565b60c086015260a08501516102c08701516116829161167191849161071e919063ffffffff61124216565b60e08701519063ffffffff61232116565b60e08601525050506020820152919050565b61169c612cef565b60006116b86115ee8660200151886060015189600001516121f3565b90506116dd6116368261071e8860a0015189610100015161124290919063ffffffff16565b60c08601525050600060e0840152506020820152919050565b6116fe612cef565b600061171a6115ee8660200151886060015189600001516121f3565b905085610200015161172f876020015161236c565b60000b0260a086015250505061022083015161010083015260208201526102609091015160c082015290565b611763612cef565b600061177f6115ee8660200151886060015189600001516121f3565b90506117c96117b86117a78361071e8960a001518a610100015161124290919063ffffffff16565b60c08801519063ffffffff61232116565b60a08701519063ffffffff61232116565b60a08601819052600060c08701526102c08701516116829161167191849161071e919063ffffffff61124216565b6117ff612cef565b600061181b6115ee8660200151886060015189600001516121f3565b600060c087015260a08601516102c08801519192506116829161167191849161071e9163ffffffff61124216565b611851612cef565b600061186d6115ee8660200151886060015189600001516121f3565b90506118926116368261071e8860a0015189610100015161124290919063ffffffff16565b60c086015260a08501516102c08701516118bc9161167191849161071e919063ffffffff61124216565b60e08601525050600060a0840152506020820152919050565b6118dd612cef565b60006118f96115ee8660200151886060015189600001516121f3565b905061191e6116368261071e8860a0015189610100015161124290919063ffffffff16565b60c086015260a08501516102c08701516119489161167191849161071e919063ffffffff61124216565b60e08601525050506102e09290920151610100820152602081019190915290565b611971612cef565b6102a08501516102808601516000916119a19161199590869063ffffffff61124216565b9063ffffffff61232116565b905060006119bd8661010001518361243390919063ffffffff16565b90506119ec8761042001516119e08961044001518461247e90919063ffffffff16565b9063ffffffff61248e16565b610100870151909150611a05908263ffffffff61232116565b9150611a28876103e001516119e08961040001518561247e90919063ffffffff16565b91506000611a69611a4688602001518a606001518b600001516121f3565b611a59888b606001518c600001516121f3565b8a604001518b6101e0015161225d565b9050611a9f611a8e8261071e8a60a001518b610100015161124290919063ffffffff16565b60c08901519063ffffffff61232116565b60c0880152505061010085015250506020820152919050565b611ac0612cef565b6000611adc6115ee8660200151886060015189600001516121f3565b9050611b016116368261071e8860a0015189610100015161124290919063ffffffff16565b60c086015260a08501516102c0870151611b2b9161167191849161071e919063ffffffff61124216565b60e086015260048660a001516007811115611b4257fe5b1480611b5d575060058660a001516007811115611b5b57fe5b145b80611b77575060068660a001516007811115611b7557fe5b145b80611b91575060078660a001516007811115611b8f57fe5b145b15611b9f5760006101208601525b60018660a001516007811115611bb157fe5b1480611bcc575060038660a001516007811115611bca57fe5b145b80611be6575060058660a001516007811115611be457fe5b145b80611c00575060078660a001516007811115611bfe57fe5b145b15611c0e5760006101408601525b5050506020820152919050565b611c23612cef565b6000611c3f6115ee8660200151886060015189600001516121f3565b5050600060a0850181905260c0850181905260e085015250506020820152919050565b611c6a612cef565b60008460400151600014611c82578460400151611c95565b611c958487606001518860000151610f37565b6103a087015160400151909150839060009015611cd0576000611cbd896103a001518561249e565b9050808311611cce57600180895291505b505b876103c00151604001518015611ce4575080155b15611d13576000611cfa896103c001518561249e565b9050808311611d0c5760028852611d11565b600388525b505b60408701511515611d3757611d318689606001518a60000151610f37565b60408801525b50949695505050505050565b60006001826001811115611d5357fe5b1415611d9857611d62836125a8565b60061415611d7c57611d758360026125bb565b905061069b565b611d85836125a8565b60071415611d9857611d758360016125bb565b5090919050565b60008080610c6c6201518085610cf7565b60006001826001811115611dc057fe5b1415611d9857611dcf836125a8565b60061415611de257611d758360016125d0565b611deb836125a8565b60071415611d9857611d758360026125d0565b6000808560e001516001811115611e1157fe5b1415611e3557846102c00151611e2a866020015161236c565b60000b0290506104a1565b61049e611e868560a0015161071e886102c0015161071e611e638a602001518c606001518d600001516121f3565b611e768a8d606001518e600001516121f3565b8c604001518d6101e0015161225d565b60e08601519063ffffffff61232116565b6000611eb685610320015186610200015161232190919063ffffffff16565b611ec3866020015161236c565b6000190260000b029050949350505050565b600061049e611f2b6116368660a0015161071e88610100015161071e611f088b602001518d606001518e600001516121f3565b611f1b8b8e606001518f600001516121f3565b8d604001518e6101e0015161225d565b6101208601519063ffffffff61124216565b60008360a00151611f51866020015161236c565b60000b0295945050505050565b600061049e8460a0015185610140015161124290919063ffffffff16565b600060018560c001516003811115611f9057fe5b1415611fa957846103000151611e2a866020015161236c565b60028560c001516003811115611fbb57fe5b141561201c5761200f8460a0015161071e87610300015161071e611fec89602001518b606001518c600001516121f3565b611fff898c606001518d600001516121f3565b8b604001518c6101e0015161225d565b611e2a866020015161236c565b61200f8460a0015161071e61203e876020015189606001518a600001516121f3565b612051878a606001518b600001516121f3565b89604001518a6101e0015161225d565b60006120ab6120918560a0015161071e87610100015161071e611e638a602001518c606001518d600001516121f3565b60c08601516103408801516119959163ffffffff61232116565b611f51866020015161236c565b60008080856020015160058111156120cc57fe5b14156120e25761072a84848760000151026125bb565b6001856020015160058111156120f457fe5b141561210d5761072a84848760000151600702026125bb565b60028560200151600581111561211f57fe5b14156121355761072a84848760000151026125e5565b60038560200151600581111561214757fe5b14156121605761072a84848760000151600302026125e5565b60048560200151600581111561217257fe5b141561218b5761072a84848760000151600602026125e5565b60058560200151600581111561219d57fe5b14156121b35761072a848487600001510261265c565b60405160e560020a62461bcd0281526004016102ec90614043565b6000600482061580156121e357506064820615155b8061069b57505061019090061590565b6000600383600881111561220357fe5b148061221a5750600483600881111561221857fe5b145b806122305750600783600881111561222e57fe5b145b806122465750600883600881111561224457fe5b145b156122525750826102f5565b6104a1848484610f37565b6000848410156122825760405160e560020a62461bcd0281526004016102ec90614113565b600083600681111561229057fe5b14156122a05761072a8585612683565b60018360068111156122ae57fe5b14156122be5761072a8585612797565b60028360068111156122cc57fe5b14156122dc5761072a85856127c2565b60048360068111156122ea57fe5b14156122fa5761072a85856127e1565b600383600681111561230857fe5b14156123195761072a8585846128a2565b5060016104a1565b60008282018183128015906123365750838112155b8061234b575060008312801561234b57508381125b15156102f55760405160e560020a62461bcd0281526004016102ec90614083565b60008082600981111561237b57fe5b141561238957506001610670565b600182600981111561239757fe5b14156123a65750600019610670565b60068260098111156123b457fe5b14156123c257506001610670565b60078260098111156123d057fe5b14156123df5750600019610670565b60048260098111156123ed57fe5b14156123fb57506001610670565b600582600981111561240957fe5b14156124185750600019610670565b60405160e560020a62461bcd0281526004016102ec906140a3565b60008183038183128015906124485750838113155b8061245d575060008312801561245d57508381135b15156102f55760405160e560020a62461bcd0281526004016102ec90614133565b600081831215611d985750919050565b600081831315611d9857816102f5565b60008080846020015160058111156124b257fe5b14156124c657610f6d8385600001516125bb565b6001846020015160058111156124d857fe5b14156124ef57610f6d8385600001516007026125bb565b60028460200151600581111561250157fe5b141561251557610f6d8385600001516125e5565b60038460200151600581111561252757fe5b141561253e57610f6d8385600001516003026125e5565b60048460200151600581111561255057fe5b141561256757610f6d8385600001516006026125e5565b60058460200151600581111561257957fe5b141561258d57610f6d83856000015161265c565b60405160e560020a62461bcd0281526004016102ec90614093565b6007620151809091046003010660010190565b62015180810282018281101561069b57600080fd5b62015180810282038281111561069b57600080fd5b60008080806125f76201518087610cf7565b600c91880160001901828104939093019550910660010192509050600061261e8484611544565b90508082111561262c578091505b62015180870662015180612641868686612978565b020194508685101561265257600080fd5b5050505092915050565b600080808061266e6201518087610cf7565b918701945092509050600061261e8484611544565b60008061268f846129de565b9050600061269c846129de565b905060006126a9866129fa565b6126b55761016d6126b9565b61016e5b61ffff169050818314156126eb576126e1816126d58888612a1c565b9063ffffffff612a3716565b935050505061069b565b60006126f6866129fa565b6127025761016d612706565b61016e5b61ffff1690506000612737836126d58a61273261272a8a600163ffffffff612b0916565b600180612b31565b612a1c565b90506000612754836126d561274e88600180612b31565b8b612a1c565b905061278a61277a600161276e888a63ffffffff612b4b16565b9063ffffffff612b4b16565b611995848463ffffffff61232116565b9998505050505050505050565b60006102f56101686126d5620151806127b6868863ffffffff612b4b16565b9063ffffffff612b8d16565b60006102f561016d6126d5620151806127b6868863ffffffff612b4b16565b60008060008060008060006127f589612bcf565b97509550935061280488612bcf565b945092509050601f86141561281857601e95505b82601f141561282657601e92505b6000612838848863ffffffff61243316565b9050600061284c848863ffffffff61243316565b90506000612860848863ffffffff61243316565b90506128926101686126d58561199561288087601e63ffffffff612bed16565b6119958761016863ffffffff612bed16565b9c9b505050505050505050505050565b60008060008060008060006128b68a612bcf565b9750955093506128c589612bcf565b9450925090506128d48a610ce9565b8614156128e057601e95505b87891480156128ef5750816002145b158015612903575061290089610ce9565b83145b1561290d57601e92505b600061291f848863ffffffff61243316565b90506000612933848863ffffffff61243316565b90506000612947848863ffffffff61243316565b90506129676101686126d58561199561288087601e63ffffffff612bed16565b9d9c50505050505050505050505050565b60006107b284101561298957600080fd5b506225bad61960046064600c600d1986018190059687016113248101929092056003028390056112c09092016105b502929092059093016001199582029094039490940161016f029390930591909101030190565b600080806129ef6201518085610cf7565b509095945050505050565b6000808080612a0c6201518086610cf7565b91945092509050610d0e836121ce565b600081831115612a2b57600080fd5b50620151809190030490565b6000811515612a5b5760405160e560020a62461bcd0281526004016102ec90614053565b821515612a6a5750600061069b565b670de0b6b3a7640000838102908482811515612a8257fe5b0514612aa35760405160e560020a62461bcd0281526004016102ec906140b3565b82600019148015612ab7575060ff60020a84145b15612ad75760405160e560020a62461bcd0281526004016102ec90614033565b60008382811515612ae457fe5b0590508015156106975760405160e560020a62461bcd0281526004016102ec90614073565b6000828201838110156102f55760405160e560020a62461bcd0281526004016102ec90614063565b600062015180612b42858585612978565b02949350505050565b60006102f583836040805190810160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612c62565b60006102f583836040805190810160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612c91565b60008080612be06201518085610cf7565b9196909550909350915050565b6000821515612bfe5750600061069b565b82600019148015612c12575060ff60020a82145b15612c325760405160e560020a62461bcd0281526004016102ec906140f3565b828202828482811515612c4157fe5b05146102f55760405160e560020a62461bcd0281526004016102ec906140f3565b60008184841115612c895760405160e560020a62461bcd0281526004016102ec9190614012565b505050900390565b600081818411612cb75760405160e560020a62461bcd0281526004016102ec9190614012565b5060008385811515612cc557fe5b0495945050505050565b610800604051908101604052806040906020820280388339509192915050565b604080516101a0810190915280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610200604051908101604052806010906020820280388339509192915050565b604080516080810190915260008082526020820190815260200160008152600060209091015290565b60006102f582356141d2565b60006102f5823561418c565b60006102f58235614179565b60006102f582356141dd565b60006102f582356141ec565b60006102f582356141fb565b60006102f5823561420a565b60006102f58235614219565b60006102f58235614228565b60006102f58235614237565b60006102f58235614246565b60006102f58235614255565b600060608284031215612e4357600080fd5b612e4d6060614152565b90506000612e5b8484612db9565b8252506020612e6c84848301612de9565b6020830152506040612e8084828501612de9565b60408301525092915050565b60006105008284031215612e9f57600080fd5b612eaa6102a0614152565b90506000612eb88484612e25565b8252506020612ec984848301612db9565b6020830152506040612edd84828501612db9565b6040830152506060612ef184828501612db9565b6060830152506080612f0584828501612db9565b60808301525060a0612f1984828501612db9565b60a08301525060c0612f2d84828501612db9565b60c08301525060e0612f4184828501612db9565b60e083015250610100612f5684828501612db9565b61010083015250610120612f6c84828501612db9565b61012083015250610140612f8284828501612db9565b61014083015250610160612f9884828501612db9565b61016083015250610180612fae84828501612db9565b610180830152506101a0612fc484828501612db9565b6101a0830152506101c0612fda8482850161306b565b6101c083015250610240612ff08482850161306b565b6101e0830152506102c06130068482850161306b565b6102008301525061034061301c8482850161306b565b610220830152506103c06130328482850161306b565b61024083015250610440613048848285016130da565b610260830152506104a061305e848285016130da565b6102808301525092915050565b60006080828403121561307d57600080fd5b6130876080614152565b905060006130958484612db9565b82525060206130a684848301612e19565b60208301525060406130ba84828501612dd1565b60408301525060606130ce84828501612dad565b60608301525092915050565b6000606082840312156130ec57600080fd5b6130f66060614152565b905060006131048484612db9565b825250602061311584848301612e19565b6020830152506040612e8084828501612dad565b6000610560828403121561313c57600080fd5b613147610460614152565b905060006131558484612dd1565b825250602061316684848301612df5565b602083015250604061317a84828501612e01565b604083015250606061318e84828501612dc5565b60608301525060806131a284828501612dd1565b60808301525060a06131b684828501612e25565b60a08301525060c06131ca84828501612ddd565b60c08301525060e06131de84828501612dd1565b60e0830152506101006131f384828501612ddd565b6101008301525061012061320984828501612e31565b6101208301525061018061321f84828501612e31565b610140830152506101e061323584828501612da1565b6101608301525061020061324b84828501612da1565b6101808301525061022061326184828501612db9565b6101a08301525061024061327784828501612db9565b6101c08301525061026061328d84828501612db9565b6101e0830152506102806132a384828501612db9565b610200830152506102a06132b984828501612db9565b610220830152506102c06132cf84828501612db9565b610240830152506102e06132e584828501612db9565b610260830152506103006132fb84828501612db9565b6102808301525061032061331184828501612db9565b6102a08301525061034061332784828501612db9565b6102c08301525061036061333d84828501612db9565b6102e08301525061038061335384828501612db9565b610300830152506103a061336984828501612db9565b610320830152506103c061337f84828501612db9565b610340830152506103e061339584828501612db9565b610360830152506104006133ab84828501612db9565b610380830152506104206133c1848285016130da565b6103a0830152506104806133d7848285016130da565b6103c0830152506104e06133ed84828501612db9565b6103e08301525061050061340384828501612db9565b6104008301525061052061341984828501612db9565b6104208301525061054061342f84828501612db9565b6104408301525092915050565b60006101a0828403121561344f57600080fd5b61345a6101a0614152565b905060006134688484612ddd565b825250602061347984848301612db9565b602083015250604061348d84828501612db9565b60408301525060606134a184828501612db9565b60608301525060806134b584828501612db9565b60808301525060a06134c984828501612db9565b60a08301525060c06134dd84828501612db9565b60c08301525060e06134f184828501612db9565b60e08301525061010061350684828501612db9565b6101008301525061012061351c84828501612db9565b6101208301525061014061353284828501612db9565b6101408301525061016061354884828501612db9565b6101608301525061018061355e84828501612db9565b6101808301525092915050565b60006020828403121561357d57600080fd5b60006106978484612db9565b600080610580838503121561359d57600080fd5b60006135a98585612db9565b92505060206135ba85828601613129565b9150509250929050565b60008060008060006108e086880312156135dd57600080fd5b60006135e98888612db9565b95505060206135fa88828901613129565b94505061058061360c8882890161343c565b93505061072061361e88828901612dad565b9250506107406136308882890161343c565b9150509295509295909350565b600080600060c0848603121561365257600080fd5b600061365e8686612dd1565b935050602061366f86828701612db9565b92505060406136808682870161306b565b9150509250925092565b60006020828403121561369c57600080fd5b60006106978484612e0d565b600080604083850312156136bb57600080fd5b60006136c78585612e0d565b92505060206135ba85828601612db9565b600080600061054084860312156136ee57600080fd5b60006136fa8686612e8c565b93505061050061370c86828701612db9565b92505061052061368086828701612db9565b600080600080610560858703121561373557600080fd5b60006137418787612e8c565b94505061050061375387828801612db9565b93505061052061376587828801612db9565b92505061054061377787828801612e0d565b91505092959194509250565b6000610560828403121561379657600080fd5b60006106978484613129565b60008060008061074085870312156137b957600080fd5b60006137c58787613129565b9450506105606137d78782880161343c565b9350506107006137e987828801612db9565b92505061072061377787828801612db9565b6138048161417c565b61380d82614179565b60005b8281101561383d57613823858351613853565b61382c82614186565b602095909501949150600101613810565b5050505050565b61384d8161418c565b82525050565b61384d81614179565b61384d81614264565b61384d8161426f565b61384d8161427a565b600061388282614182565b808452613896816020860160208601614285565b61389f816142b1565b9093016020019392505050565b602e81527f5363686564756c652e636f6d70757465446174657346726f6d4379636c653a2060208201527f4d41585f4359434c455f53495a45000000000000000000000000000000000000604082015260600190565b602581527f466c6f61744d4154482e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602e81527f5363686564756c652e6765744e6578744379636c65446174653a20415454524960208201527f425554455f4e4f545f464f554e44000000000000000000000000000000000000604082015260600190565b602281527f466c6f61744d6174682e666c6f61744469763a204449564944454442595f5a4560208201527f524f000000000000000000000000000000000000000000000000000000000000604082015260600190565b601b81527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000602082015260400190565b603081527f466c6f61744d6174682e666c6f61744469763a2043414e4e4f545f524550524560208201527f53454e545f4752414e554c415249545900000000000000000000000000000000604082015260600190565b602181527f5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f60208201527f7700000000000000000000000000000000000000000000000000000000000000604082015260600190565b603081527f436f72652e67657454696d657374616d70506c7573506572696f643a2041545460208201527f5249425554455f4e4f545f464f554e4400000000000000000000000000000000604082015260600190565b603481527f436f6e7472616374526f6c65436f6e76656e74696f6e2e726f6c655369676e3a60208201527f204154545249425554455f4e4f545f464f554e44000000000000000000000000604082015260600190565b602581527f466c6f61744d6174682e666c6f61744469763a204f564552464c4f575f44455460208201527f4543544544000000000000000000000000000000000000000000000000000000604082015260600190565b602d81527f50414d456e67696e652e7061796f666646756e6374696f6e3a2041545452494260208201527f5554455f4e4f545f464f554e4400000000000000000000000000000000000000604082015260600190565b603681527f50414d456e67696e652e73746174655472616e736974696f6e46756e6374696f60208201527f6e3a204154545249425554455f4e4f545f464f554e4400000000000000000000604082015260600190565b603181527f466c6f61744d6174682e666c6f61744d756c743a2043414e4e4f545f5245505260208201527f4553454e545f4752414e554c4152495459000000000000000000000000000000604082015260600190565b602781527f5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f60208201527f766572666c6f7700000000000000000000000000000000000000000000000000604082015260600190565b602681527f466c6f61744d6174682e666c6f61744d756c743a204f564552464c4f575f444560208201527f5445435445440000000000000000000000000000000000000000000000000000604082015260600190565b602281527f436f72652e796561724672616374696f6e3a20554e4d45545f434f4e4449544960208201527f4f4e000000000000000000000000000000000000000000000000000000000000604082015260600190565b604581527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660208201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660408201527f4f554e442e000000000000000000000000000000000000000000000000000000606082015260800190565b602481527f5369676e6564536166654d6174683a207375627472616374696f6e206f76657260208201527f666c6f7700000000000000000000000000000000000000000000000000000000604082015260600190565b80516101a0830190613eca848261385c565b506020820151613edd6020850182613853565b506040820151613ef06040850182613853565b506060820151613f036060850182613853565b506080820151613f166080850182613853565b5060a0820151613f2960a0850182613853565b5060c0820151613f3c60c0850182613853565b5060e0820151613f4f60e0850182613853565b50610100820151613f64610100850182613853565b50610120820151613f79610120850182613853565b50610140820151613f8e610140850182613853565b50610160820151613fa3610160850182613853565b50610180820151613fb8610180850182613853565b50505050565b610800810161069b82846137fb565b6020810161069b8284613844565b6020810161069b8284613853565b6020810161069b8284613865565b60408101614005828561386e565b6102f56020830184613853565b602080825281016102f58184613877565b6020808252810161069b816138ac565b6020808252810161069b81613902565b6020808252810161069b81613958565b6020808252810161069b816139ae565b6020808252810161069b81613a04565b6020808252810161069b81613a34565b6020808252810161069b81613a8a565b6020808252810161069b81613ae0565b6020808252810161069b81613b36565b6020808252810161069b81613b8c565b6020808252810161069b81613be2565b6020808252810161069b81613c38565b6020808252810161069b81613c8e565b6020808252810161069b81613ce4565b6020808252810161069b81613d3a565b6020808252810161069b81613d90565b6020808252810161069b81613de6565b6020808252810161069b81613e62565b6101a0810161069b8284613eb8565b60405181810167ffffffffffffffff8111828210171561417157600080fd5b604052919050565b90565b50604090565b5190565b60200190565b151590565b60006004821061419d57fe5b5090565b60006002821061419d57fe5b60006017821061419d57fe5b73ffffffffffffffffffffffffffffffffffffffff1690565b600061069b826141b9565b60006009821061419d57600080fd5b60006002821061419d57600080fd5b60006004821061419d57600080fd5b60006005821061419d57600080fd5b6000600a821061419d57600080fd5b60006007821061419d57600080fd5b60006017821061419d57600080fd5b60006006821061419d57600080fd5b60006008821061419d57600080fd5b600061069b82614191565b600061069b826141a1565b600061069b826141ad565b60005b838110156142a0578181015183820152602001614288565b83811115613fb85750506000910152565b601f01601f19169056fea265627a7a7230582071c6fd3e202457cfdb5ea74b251056bc5ce961a98cc049ea19982910916006d26c6578706572696d656e74616cf50037", "compiler": { "name": "solc", "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.911Z" + "updatedAt": "2019-12-12T15:29:50.946Z" } diff --git a/artifacts/POF.json b/artifacts/POF.json index 419f83d..d131107 100644 --- a/artifacts/POF.json +++ b/artifacts/POF.json @@ -368,5 +368,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.925Z" + "updatedAt": "2019-12-12T14:54:18.728Z" } diff --git a/artifacts/STF.json b/artifacts/STF.json index e66c10c..b141f8d 100644 --- a/artifacts/STF.json +++ b/artifacts/STF.json @@ -368,5 +368,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.953Z" + "updatedAt": "2019-12-12T14:54:18.776Z" } diff --git a/artifacts/SafeMath.json b/artifacts/SafeMath.json index 598f4e5..9bdc4b8 100644 --- a/artifacts/SafeMath.json +++ b/artifacts/SafeMath.json @@ -8,5 +8,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-10T15:52:56.942Z" + "updatedAt": "2019-12-12T14:54:18.885Z" } diff --git a/artifacts/Schedule.json b/artifacts/Schedule.json index ebf52f2..b4b8681 100644 --- a/artifacts/Schedule.json +++ b/artifacts/Schedule.json @@ -323,5 +323,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.856Z" + "updatedAt": "2019-12-12T14:54:18.573Z" } diff --git a/artifacts/SignedMath.json b/artifacts/SignedMath.json index c34753b..5f87410 100644 --- a/artifacts/SignedMath.json +++ b/artifacts/SignedMath.json @@ -37,5 +37,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-10T15:52:56.780Z" + "updatedAt": "2019-12-12T14:54:18.581Z" } diff --git a/artifacts/SignedSafeMath.json b/artifacts/SignedSafeMath.json index a42322c..375ad54 100644 --- a/artifacts/SignedSafeMath.json +++ b/artifacts/SignedSafeMath.json @@ -8,5 +8,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-10T15:52:56.939Z" + "updatedAt": "2019-12-12T14:54:18.882Z" } diff --git a/artifacts/TestPOF.json b/artifacts/TestPOF.json index a868d57..5a54b51 100644 --- a/artifacts/TestPOF.json +++ b/artifacts/TestPOF.json @@ -3198,5 +3198,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.983Z" + "updatedAt": "2019-12-12T14:54:18.867Z" } diff --git a/artifacts/TestSTF.json b/artifacts/TestSTF.json index 3f8ac87..d2b3fb7 100644 --- a/artifacts/TestSTF.json +++ b/artifacts/TestSTF.json @@ -4749,5 +4749,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.989Z" + "updatedAt": "2019-12-12T14:54:18.875Z" } diff --git a/artifacts/Utils.json b/artifacts/Utils.json index 6983206..ea4aa9d 100644 --- a/artifacts/Utils.json +++ b/artifacts/Utils.json @@ -323,5 +323,5 @@ "version": "0.5.2+commit.1df8f40c.Emscripten.clang" }, "networks": {}, - "updatedAt": "2019-12-12T12:59:08.861Z" + "updatedAt": "2019-12-12T14:54:18.588Z" } diff --git a/contracts/Engines/ANNEngine.sol b/contracts/Engines/ANNEngine.sol index 7647df3..e8d0899 100755 --- a/contracts/Engines/ANNEngine.sol +++ b/contracts/Engines/ANNEngine.sol @@ -95,8 +95,8 @@ contract ANNEngine is BaseEngine, STF, POF { if (isInPeriod(terms.maturityDate, segmentStart, segmentEnd) == true) { _eventSchedule[index] = encodeEvent(EventType.MD, terms.maturityDate); index++; - _eventSchedule[index] = encodeEvent(EventType.IP, terms.maturityDate); - index++; + // _eventSchedule[index] = encodeEvent(EventType.IP, terms.maturityDate); + // index++; } return _eventSchedule; @@ -132,15 +132,16 @@ contract ANNEngine is BaseEngine, STF, POF { && terms.cycleAnchorDateOfInterestPayment != 0 ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( - (terms.capitalizationEndDate == 0) ? terms.cycleAnchorDateOfInterestPayment : terms.capitalizationEndDate, - terms.maturityDate, // pure IP schedule ends at beginning of combined IP/PR schedule + terms.cycleAnchorDateOfInterestPayment, + terms.maturityDate, terms.cycleOfInterestPayment, - false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + true, segmentStart, segmentEnd ); for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { if (interestPaymentSchedule[i] == 0) break; + if (interestPaymentSchedule[i] <= terms.capitalizationEndDate) continue; if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; _eventSchedule[index] = encodeEvent(EventType.IP, interestPaymentSchedule[i]); index++; @@ -158,11 +159,14 @@ contract ANNEngine is BaseEngine, STF, POF { && terms.capitalizationEndDate != 0 && terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption ) { + IPS memory cycleOfInterestCapitalization = terms.cycleOfInterestPayment; + cycleOfInterestCapitalization.s = S.SHORT; + uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( terms.cycleAnchorDateOfInterestPayment, terms.capitalizationEndDate, - terms.cycleOfInterestPayment, - false, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + cycleOfInterestCapitalization, + true, segmentStart, segmentEnd ); diff --git a/contracts/Engines/PAMEngine.sol b/contracts/Engines/PAMEngine.sol index 57d8914..cb03d04 100755 --- a/contracts/Engines/PAMEngine.sol +++ b/contracts/Engines/PAMEngine.sol @@ -122,15 +122,16 @@ contract PAMEngine is BaseEngine, STF, POF { && terms.cycleAnchorDateOfInterestPayment != 0 ) { uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( - (terms.capitalizationEndDate == 0) ? terms.cycleAnchorDateOfInterestPayment : terms.capitalizationEndDate, - terms.maturityDate, // pure IP schedule ends at beginning of combined IP/PR schedule + terms.cycleAnchorDateOfInterestPayment, + terms.maturityDate, terms.cycleOfInterestPayment, - true, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + true, segmentStart, segmentEnd ); for (uint8 i = 0; i < MAX_CYCLE_SIZE; i++) { if (interestPaymentSchedule[i] == 0) break; + if (interestPaymentSchedule[i] <= terms.capitalizationEndDate) continue; if (isInPeriod(interestPaymentSchedule[i], segmentStart, segmentEnd) == false) continue; _eventSchedule[index] = encodeEvent(EventType.IP, interestPaymentSchedule[i]); index++; @@ -146,13 +147,15 @@ contract PAMEngine is BaseEngine, STF, POF { terms.cycleOfInterestPayment.isSet == true && terms.cycleAnchorDateOfInterestPayment != 0 && terms.capitalizationEndDate != 0 - && terms.capitalizationEndDate < terms.cycleAnchorDateOfPrincipalRedemption ) { + IPS memory cycleOfInterestCapitalization = terms.cycleOfInterestPayment; + cycleOfInterestCapitalization.s = S.SHORT; + uint256[MAX_CYCLE_SIZE] memory interestPaymentSchedule = computeDatesFromCycleSegment( terms.cycleAnchorDateOfInterestPayment, terms.capitalizationEndDate, - terms.cycleOfInterestPayment, - true, // do not create an event for cycleAnchorDateOfPrincipalRedemption as covered with the PR schedule + cycleOfInterestCapitalization, + true, segmentStart, segmentEnd ); diff --git a/test/Engines/ANN/TestANNEngine.js b/test/Engines/ANN/TestANNEngine.js index 9c4e3bc..0456fe9 100755 --- a/test/Engines/ANN/TestANNEngine.js +++ b/test/Engines/ANN/TestANNEngine.js @@ -50,6 +50,13 @@ contract('ANNEngine', () => { segmentEnd, 15 // PR )); + _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( + generatingTerms, + segmentStart, + segmentEnd, + 18 // RR + )); + return sortEvents(removeNullEvents(_eventSchedule)); } diff --git a/test/Engines/ANN/TestANNSchedules.js b/test/Engines/ANN/TestANNSchedules.js index d29e0c3..6c6c662 100644 --- a/test/Engines/ANN/TestANNSchedules.js +++ b/test/Engines/ANN/TestANNSchedules.js @@ -49,6 +49,13 @@ contract('ANNEngine', () => { segmentEnd, 15 // PR )); + _eventSchedule.push(... await this.ANNEngineInstance.computeCyclicScheduleSegment( + generatingTerms, + segmentStart, + segmentEnd, + 18 // RR + )); + return sortEvents(removeNullEvents(_eventSchedule)); } diff --git a/test/Engines/PAM/TestPAMEngine.js b/test/Engines/PAM/TestPAMEngine.js index b2cd9bb..4f631d5 100755 --- a/test/Engines/PAM/TestPAMEngine.js +++ b/test/Engines/PAM/TestPAMEngine.js @@ -45,6 +45,13 @@ contract('PAMEngine', () => { segmentEnd, 15 // PR )); + _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( + generatingTerms, + segmentStart, + segmentEnd, + 18 // RR + )); + return sortEvents(removeNullEvents(_eventSchedule)); } diff --git a/test/Engines/PAM/TestPAMSchedules.js b/test/Engines/PAM/TestPAMSchedules.js index 6db521e..d79a75f 100644 --- a/test/Engines/PAM/TestPAMSchedules.js +++ b/test/Engines/PAM/TestPAMSchedules.js @@ -43,6 +43,12 @@ contract('PAMEngine', () => { segmentEnd, 15 // PR )); + _eventSchedule.push(... await this.PAMEngineInstance.computeCyclicScheduleSegment( + generatingTerms, + segmentStart, + segmentEnd, + 18 // RR + )); return sortEvents(removeNullEvents(_eventSchedule)); }