EX-99 2 compmatssplitcap.htm EXHIBIT 99.1 COMPUTATIONAL MATERIALS compmats_split_cap

!  HEAT0406.CDI  #CMOVER_3.0B ASSET_BACKED_HOMEEQUITY  !  MAX_CF_VECTSIZE 551

!

!! Created by Intex Deal Maker v3.5.291  ,  subroutines 3.0f3

!!   10/15/2003   8:59 PM

!

!  Modeled in the Intex CMO Modeling Language, (WNYC12556129)

!  which is copyright (c) 2003 by Intex Solutions, Inc.

!  Intex shall not be held liable for the accuracy of this data

!  nor for the accuracy of information which is derived from this data.

!

 COLLAT_GROUPS 1 2

 GROUP 1 = "1F" "1A"

 GROUP 2 = "2F" "2A"

!

  DEFINE PREPAY PPC  GROUP "1F" RISE_PERS 12 START_CPR 4.60 END_CPR 23

  DEFINE PREPAY PPC  GROUP "1A" RISE_PERS 18 START_CPR 27 END_CPR 27

  DEFINE PREPAY PPC  GROUP "2F" RISE_PERS 12 START_CPR 4.60 END_CPR 23

  DEFINE PREPAY PPC  GROUP "2A" RISE_PERS 18 START_CPR 27 END_CPR 27

!

  DEFINE CONSTANT #OrigCollBal = 1200000000.00

  DEFINE CONSTANT #OrigCollBal1 = 725075528.70

  DEFINE CONSTANT #OrigCollBal2 = 474924471.31

!

  DEFINE CONSTANT #OrigBondBal = 1200000000.00

  DEFINE CONSTANT #OrigBondBal1 = 725075528.70

  DEFINE CONSTANT #OrigBondBal2 = 474924471.30

!

  DEFINE CONSTANT #SpecSenEnhPct = 37.9000000%

  DEFINE CONSTANT #SNRTargPct = 62.1000000%

  DEFINE CONSTANT #M1TargPct = 68.10000000%

  DEFINE CONSTANT #M2TargPct = 74.10000000%

  DEFINE CONSTANT #M3TargPct = 78.10000000%

  DEFINE CONSTANT #M4TargPct = 81.10000000%

  DEFINE CONSTANT #M5TargPct = 84.10000000%

  DEFINE CONSTANT #M6TargPct = 87.60000000%

  DEFINE CONSTANT #B1TargPct = 90.10000000%

  DEFINE CONSTANT #B2TargPct = 92.60000000%

  DEFINE CONSTANT #B3TargPct = 95.10000000%

  DEFINE CONSTANT #B4TargPct = 96.60000000%

  DEFINE #BondBal                        = 1200000000.00

!

       FULL_DEALNAME:    HEAT_0407

!

       DEAL SIZE:        $ 1200000000.00

       PRICING SPEED:    GROUP "1F" PPC 100%

       PRICING SPEED:    GROUP "1A" PPC 100%

       PRICING SPEED:    GROUP "2F" PPC 100%

       PRICING SPEED:    GROUP "2A" PPC 100%

!      ISSUE DATE:       20041001

       SETTLEMENT DATE:  20041001

!

       OPTIONAL REDEMPTION: (((COLL_BAL / #OrigCollBal) < 10%));

!

  Record date delay: 0

!

 DEFINE TR_INDEXDEPS_ALL

!

 DEFINE VARNAMES #SDReqPerc, #SDTrigEnhFrac

!

 DEFINE SCHEDULE "NASIO_Amaximus"

!

 DEAL_CLOCK_INFO _

       ISSUE_CDU_DATE             20040901 _

       DEAL_FIRSTPAY_DATE         20041025

!

!

 DEFINE TABLE "CapNotional" (36, 2) = "CURMONTH" "Balance"

1.1            340,000,000

      2.1          330,456,003

      3.1          321,042,641

      4.1          310,844,602

      5.1          300,808,197

      6.1          290,904,365

      7.1          281,059,972

      8.1          271,411,013

      9.1          261,863,791

      10.1         252,460,623

      11.1         243,157,469

      12.1         234,654,655

      13.1         226,568,211

      14.1         218,690,107

      15.1         211,014,987

      16.1         203,537,633

      17.1         196,252,959

      18.1         189,156,012

      19.1         182,241,964

      20.1         175,506,112

      21.1         168,943,876

      22.1         162,550,789

      23.1         156,322,504

      24.1         150,258,443

      25.1         144,374,330

      26.1         138,641,269

      27.1         133,055,393

      28.1         127,612,930

  29.1

   122,310,208

  30.1

   117,143,646

  31.1

   112,109,756

  32.1

   107,205,140

  33.1

   102,426,485

  34.1

    97,770,565

  35.1

    93,234,235

  36.1

   0

!

 DEFINE TABLE "CapRateSch" (36, 2) = "CURMONTH" "Rate"

  1.1           25.00

      2.1            6.52

      3.1            6.74

      4.1            6.53

      5.1            6.53

      6.1            7.23

      7.1            6.53

      8.1            6.75

      9.1            6.53

      10.1           6.75

      11.1           6.53

      12.1           6.53

      13.1           6.75

      14.1           6.54

      15.1           6.75

      16.1           6.54

      17.1           6.54

      18.1           7.24

      19.1           6.54

      20.1           6.76

      21.1           6.54

      22.1           6.76

      23.1           6.85

      24.1           8.00

      25.1           8.72

      26.1           8.44

      27.1           8.72

      28.1           8.44

      29.1

 8.55

      30.1

 9.00

      31.1

 9.00

      32.1

 9.00

      33.1

 9.00

      34.1

 9.00

      35.1

 9.00

      36.1

 25

!

 DEFINE TABLE "CeilingRateSch" (36, 2) = "CURMONTH" "Rate"

  1.1           25.00

      2.1            8.00

      3.1            8.00

      4.1            8.00

      5.1            8.00

      6.1            8.00

      7.1            8.00

      8.1            8.00

      9.1            8.00

      10.1           8.00

      11.1           8.00

      12.1           8.00

      13.1           8.00

      14.1           8.00

      15.1           8.00

      16.1           8.00

      17.1           8.00

      18.1           8.00

      19.1           8.00

      20.1           8.00

      21.1           8.00

      22.1           8.00

      23.1           8.00

  24.1

 

 8.00

      25.1           9.00

      26.1           9.00

      27.1           9.00

      28.1           9.00

      29.1

 9.00

      30.1

 9.00

      31.1

 9.00

      32.1

 9.00

      33.1

 9.00

      34.1

 9.00

      35.1

 9.00

      36.1

25.00

!

  DEFINE DYNAMIC #CapBal = LOOKUP_TBL( "STEP", Curmonth, "CapNotional", "CURMONTH", "Balance" )

!

  DEFINE DYNAMIC #CapBalEnd = LOOKUP_TBL( "STEP", Curmonth + 1, "CapNotional", "CURMONTH", "Balance" )

!

  DEFINE DYNAMIC #CapRate = LOOKUP_TBL( "STEP", Curmonth, "CapRateSch", "CURMONTH", "Rate" )

!

  DEFINE DYNAMIC #CeilingRate = LOOKUP_TBL( "STEP", Curmonth, "CeilingRateSch", "CURMONTH", "Rate" )

!

!

  DEFINE TRANCHE "EXP", "AIOS"[2], "A1", "A2", "A3", "A4", "A5", "A6", "A7", "AIO-1", "AIO-2", "M1", "M2", "M3", "M4", "M5", "M6", "B1", "B2", "B3", "B4", "X"

  DEFINE #FloorCollat        = 0.5% * #OrigCollBal

  DEFINE #CumLossShft        = 0

  DEFINE #TrigCumLossFrac    = 0

  DEFINE #SpecOCTarg         = 1.70% * #OrigCollBal

ifndef #cmover_3.0d _

  DEFINE #OC                 = 0

!

ifdef #cmover_3.0d _

  DEFINE STANDARDIZE OC_ACTUAL_VAL                #OC            = 0

!

  DEFINE STANDARDIZE OCT_INITVAL         CONSTANT #InitOCTarg    = 1.70% * #OrigCollBal

  DEFINE STANDARDIZE OCT_STEPDOWN_MONTH  CONSTANT #StepDownDate  = 37

  DEFINE STANDARDIZE OCT_STEPDOWN_FRAC   CONSTANT #StepOCFrac    = 0.0340

  DEFINE STANDARDIZE EXCESS_INTEREST              #XSSpread      = 0

  DEFINE STANDARDIZE OCT_FLOOR           CONSTANT #FloorOCTarg   = #FloorCollat

  DEFINE STANDARDIZE OCT_VAL             DYNAMIC  #Octval        = #SpecOCTarg

!

  DEFINE COLLAT WT_BY_PREVBAL #NetRate  = LOAN("OPTINT") / LOAN("PREVBAL") * 1200

  DEFINE COLLAT WT_BY_PREVBAL GROUP 1 #NetRate1  = LOAN("OPTINT") / LOAN("PREVBAL") * 1200

  DEFINE COLLAT WT_BY_PREVBAL GROUP 2 #NetRate2  = LOAN("OPTINT") / LOAN("PREVBAL") * 1200

!

  DEFINE DYNAMIC #NetRateActual360 = #Netrate * 30 / DAYS_DIFF(CURDATE , MONTHS_ADD(CURDATE,-1))

!

  DEFINE COLLAT WT_BY_PREVBAL  #MaxCap =  IF LOAN("LIFE_CAP") GT 0 _

                                           THEN LOAN("LIFE_CAP") - (LOAN("GROSSRATE") - LOAN("NETRATE")) _

                                           ELSE LOAN("NETRATE")

  DEFINE DYNAMIC STICKY #Lifecap = #Maxcap - (OPTIMAL_INTPMT("AIOS#1","AIOS#2") / COLL_PREV_BAL * 1200)

!

 DEFINE

#FGBal

= 251750000

 DEFINE

#FGWrapBal

= 251750000

!

  DEFINE TABLE "OC_CUMLOSS0" (49, 2) = "MONTH" "OC_CUMLOSS_FRAC0"

      37.1   0.0275

      38.1   0.02895833

      39.1   0.03041667

      40.1   0.03187500

      41.1   0.03333333

      42.1   0.03479167

      43.1   0.03625000

      44.1   0.03770833

      45.1   0.03916667

      46.1   0.04062500

      47.1   0.04208333

      48.1   0.04354167

      49.1   0.04500000

      50.1   0.04604167

      51.1   0.04708333

      52.1   0.04812500

      53.1   0.04916667

      54.1   0.05020833

      55.1   0.05125000

      56.1   0.05229167

      57.1   0.05333333

      58.1   0.05437500

      59.1   0.05541667

      60.1   0.05645833

      61.1   0.05750000

      62.1   0.05791667

      63.1   0.05833333

      64.1   0.05875000

      65.1   0.05916667

      66.1   0.05958333

      67.1   0.06000000

      68.1   0.06041667

      69.1   0.06083333

      70.1   0.06125000

      71.1   0.06166667

      72.1   0.06208333

      73.1   0.06250000

      74.1   0.06270833

      75.1   0.06291667

      76.1   0.06312500

      77.1   0.06333333

      78.1   0.06354167

      79.1   0.06375000

      80.1   0.06395833

      81.1   0.06416667

      82.1   0.06437500

      83.1   0.06458333

      84.1   0.06479167

      85.1   0.0650

!

!

!

!

TOLERANCE WRITEDOWN_0LOSS 9999999999999.00

TOLERANCE INTEREST        9999999999999.00

!

!!***********custom *********

DEFINE #SpecAcctBal         = 0    

!

 DEFINE SCHEDULE "AIO2_NTL_BAL"

!

  INITIAL INDEX    LIBOR_6MO          2.12

  INITIAL INDEX    LIBOR_1MO          1.75

!

!!**********************NetFunds Cap Definition**************************************************

DEFINE DYNAMIC #WRAP1 =   OPTIMAL_INTPMT("EXP") * BBAL("A1")

!! DEFINE DYNAMIC #WRAP3 =   OPTIMAL_INTPMT("EXP") * BBAL("A3")

!

 DEFINE DYNAMIC #GROUP1CAP

= (COLL_I_MISC("COUPON",1) - OPTIMAL_INTPMT("AIOS#1") ) / COLL_PREV_BAL(1) * 1200*30 / DAYS_DIFF(CURDATE,MONTHS_ADD(CURDATE,-1))

 DEFINE DYNAMIC #GROUP2CAP

= (COLL_I_MISC("COUPON",2) - OPTIMAL_INTPMT("EXP", "AIOS#2") ) / COLL_PREV_BAL(2) * 1200*30 / DAYS_DIFF(CURDATE,MONTHS_ADD(CURDATE,-1))

 DEFINE DYNAMIC #GROUP1CAPI

= (COLL_I_MISC("COUPON",1) - OPTIMAL_INTPMT("AIOS#1") ) / COLL_PREV_BAL(1) * 1200

 DEFINE DYNAMIC #GROUP2CAPI

= (COLL_I_MISC("COUPON",2) - OPTIMAL_INTPMT("EXP", "AIOS#2") ) / COLL_PREV_BAL(2) * 1200

!

  DEFINE DYNAMIC STICKY #SUBBAL1 = COLL_PREV_BAL(1) - BBAL("A1") - BBAL("A2") - BBAL("A7")

  DEFINE DYNAMIC STICKY #SUBBAL2 = COLL_PREV_BAL(2) - BBAL("A6") - BBAL("A3") - BBAL("A4") - BBAL("A5")

  DEFINE DYNAMIC STICKY #SUBCAP

=

 ( #GROUP1CAP * #SUBBAL1 + #GROUP2CAP * #SUBBAL2 )/ ( #SUBBAL1 + #SUBBAL2)

!

DEFINE DYNAMIC STICKY #NETFUNDSCAPIO = _

(((BBAL("A1") + BBAL("A2") + BBAL("A7")) * (#GROUP1CAPI - ((OPTIMAL_INTPMT("A1") - COUPONCAP_SHORTFALL("A1")) + _

 (OPTIMAL_INTPMT("A2") - COUPONCAP_SHORTFALL("A2")) + (OPTIMAL_INTPMT("A7") - COUPONCAP_SHORTFALL("A7"))) / _

 (BBAL("A1") + BBAL("A2") + BBAL("A7")) * 1200 )) + _   

(BBAL("A6") + BBAL("A3") + BBAL("A4") + BBAL("A5")) * _

 (#GROUP2CAPI - ((OPTIMAL_INTPMT("A6") - COUPONCAP_SHORTFALL("A6"))+(OPTIMAL_INTPMT("A3") - COUPONCAP_SHORTFALL("A3"))+ _

 (OPTIMAL_INTPMT("A4") - COUPONCAP_SHORTFALL("A4")) + (OPTIMAL_INTPMT("A5") - COUPONCAP_SHORTFALL("A5"))) _

 / (BBAL("A6") + BBAL("A3") + BBAL("A4") + BBAL("A5")) * 1200 )) / BBAL("A1","A6","A7","A2","A3","A4","A5") / 32.50%

!!******************** end of definition ****************************************

!

Tranche "EXP" SEN_FEE_NO

  Block ( #FGWrapBal ); at 0.00 NOTIONAL WITH FORMULA BEGIN ( IF COLL_PREV_BAL > 0 THEN #FGWrapBal ELSE 0 ); _

                                                       END ( IF COLL_BAL > 0 THEN #FGWrapBal ELSE 0 ); _

          DAYCOUNT 30360 FREQ M _

          Delay 23  Dated 20041001  Next 20041025

!

Tranche "A1" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 480000000.00 at 2.09 GROUP 1 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP1CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.68 ELSE 0.34 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A1#1")) )

     0     999

!

Tranche "A6" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 0.00 at 2.45 GROUP 1 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP1CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 1.40 ELSE 0.70 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A6#1")) )

     0     999

!

Tranche "A7" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 0.00 at 2.12 GROUP 1 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP1CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.74 ELSE 0.37 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A7#1")) )

     0     999

!

Tranche "A2" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block  120000000.00 at 2.17 GROUP 2 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP1CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.84 ELSE 0.42 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A2#1")) )

     0     999

!

Tranche "A3" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 340000000.00 at 2.14 GROUP 2 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP2CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.78 ELSE 0.39 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A3#1")) )

     0     999

!

Tranche "A4" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 43500000.00 at 1.98 GROUP 2 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP2CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.46 ELSE 0.23 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A4#1")) )

     0     999

!

Tranche "A5" SEN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 9500000.00 at 2.25 GROUP 2 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE (  #GROUP2CAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 1.00 ELSE 0.50 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("A5#1")) )

     0     999

!

!!

Tranche "M1" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 36000000.00 at 2.37 FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.93 ELSE 0.62 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("M1#1")) )

     0     999

!

Tranche "M2" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 36000000.00 at 2.41  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 0.99 ELSE 0.66 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("M2#1")) )

     0     999

!

Tranche "M3" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 24000000.00 at 2.48  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 1.095 ELSE 0.73 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("M3#1")) )

     0     999

!

Tranche "M4" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 18000000.00 at 2.90  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 1.65 ELSE 1.15 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("M1#1")) )

     0     999

!

Tranche "M5" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 18000000.00 at 2.95  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 1.70 ELSE 1.20 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("M2#1")) )

     0     999

!

Tranche "M6" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 21000000.00 at 3.17  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 1.92 ELSE 1.42 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("M3#1")) )

     0     999

!

Tranche "B1" MEZ_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 15000000.00 at 3.50  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 2.25 ELSE 1.75 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("B1#1")) )

     0     999

!

Tranche "B2" JUN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 15000000.00 at 3.60  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 2.35 ELSE 1.85 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("B2#1")) )

     0     999

!

Tranche "B3" JUN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 15000000.00 at 5.25  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 4.00 ELSE 3.50 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("B3#1")) )

     0     999

!

Tranche "B4" JUN_FLT ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 9000000.00 at 6.25  FREQ M FLOAT RESET M _

          COUPONCAP ACTUAL360 NONE ( #SUBCAP ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20041001  Next 20041025

     ( MIN((1 * LIBOR_1MO + ( IF ((COLL_BAL("LAGMON_1") / #OrigCollBal) < 10%) THEN 5.00 ELSE 4.50 )), #LifeCap * 30 / NDAYS_ACCRUE_INT("B3#1")) )

     0     999

!

Tranche "AIO-1" SEN_FLT_IO ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 322725000.00 at 6.25  FREQ M FLOAT RESET M NOTIONAL WITH FORMULA ( IF CURMONTH LT 24 THEN ( 32.50%*BBAL("A1", "A6", "A7", "A2", "A3", "A4", "A5") ) ELSE 0 ); _

          COUPONCAP 30360 NONE ( #NETFUNDSCAPIO ); _

          DAYCOUNT 30360 BUSINESS_DAY NONE _

          Delay 0  Dated 20040925  Next 20041025 Settle 20041001

     ( MIN(-1 * LIBOR_1MO + 8, #NETFUNDSCAPIO) )

     0     6.35

!

Tranche "AIO-2" SEN_INV_IO ! PAID_DOWN_WHEN (COLL_BAL LT 0.01);

   Block 1.00 at 0.00  FREQ M FLOAT RESET M NOTIONAL WITH FORMULA ( MIN(COLL_BAL, SCHED_AMOUNT("AIO2_NTL_BAL")) ); _

          DAYCOUNT ACTUAL360 BUSINESS_DAY NONE _

          Delay 0  Dated 20040925  Next 20041025

     -1 * LIBOR_1MO + 1.65

     0     1.65

!

Tranche "AIOS" SEN_FEE_NO

   Block 725075528.70 at 0.00 NOTIONAL WITH GROUP 1 _

         DAYCOUNT 30360 BUSINESS_DAY NONE _

         FREQ M Delay 24  Dated 20041001  Next 20041025

   Block 474924471.30 at 0.00 NOTIONAL WITH GROUP 2 _

         DAYCOUNT 30360 BUSINESS_DAY NONE _

         FREQ M Delay 24  Dated 20041001  Next 20041025

!

Tranche "X" JUN_RES

   Block 1200000000.00 at 0 NOTIONAL WITH GROUP 0 SURPLUS _

         DAYCOUNT 30360 BUSINESS_DAY NONE _

         FREQ M Delay 24  Dated 20041001  Next 20041025

 !

  Tranche "#OC"             SYMVAR

  Tranche "#SpecOCTarg"     SYMVAR

!

DEFINE PSEUDO_TRANCHE COLLAT _

   Delay 24 Dated 20040901 Next 20041025 Settle 20041001

DEFINE PSEUDO_TRANCHE COLLAT GROUP 1 _

   Delay 24 Dated 20040901 Next 20041025 Settle 20041001

DEFINE PSEUDO_TRANCHE COLLAT GROUP 2 _

   Delay 24 Dated 20040901 Next 20041025 Settle 20041001

!

  RESERVE_FUND "YmRsvFnd"   FUNDING_FROM RULES

!

   FINANCIAL_GUARANTY "HEDGE"  _

               FUNDING_FROM RULES _

               COVERS BY RULES                           

                            

!!******************************** CUSTOM SCRIPT **************************************

  RESERVE_FUND "CAP_RF"  ON TRANCHE "AIO-1"&"AIO-2"&"A1"&"A2"&"A3"&"A4"&"A5"&"A6"&"A7"&"M1"&"M2"&"M3"&"M4"&"M5"&"M6"&"B1"&"B2"&"B3"&"B4" _

               COVERS RULES RULES _

               BALANCE_CAP ( #SpecAcctBal ); _

               FUNDING_FROM RULES _   

               EXCESS_TO "X"  _

               BY "DM"

!! ******************************** END CUSTOM SCRIPT **************************************

                           

!!   FINANCIAL_GUARANTY "FG"  ON TRANCHE "A2"_

!!             COVERS DELINQ LOSSES _

!!             BY "DM"                           

CLASS "EXP"

NO_BUILD_TRANCHE _

  

= "EXP"


  CLASS "AIO-1"     =  "AIO-1"

  CLASS "AIO-2"     =  "AIO-2"

  CLASS "AIOS"      =  "AIOS#1" "AIOS#2"


  CLASS "SNR_11"     NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A7"

 CLASS "SNR_111"     NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A1"

 CLASS "SNR_112"     NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A2"

  CLASS "SNR_21"    NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A3"

  CLASS "SNR_221"    NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A4"

  CLASS "SNR_222"    NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A5"

  CLASS "SNR_223"    NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "A6"

  CLASS "M1"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "M1"

  CLASS "M2"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "M2"

  CLASS "M3"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "M3"

  CLASS "M4"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "M4"

  CLASS "M5"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "M5"

  CLASS "M6"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "M6"

  CLASS "B1"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "B1"

  CLASS "B2"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "B2"

  CLASS "B3"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "B3"

  CLASS "B4"        NO_BUILD_TRANCHE _

                    SHORTFALL_PAYBACK  COUPONCAP TRUE _

                    SHORTFALL_EARN_INT COUPONCAP TRUE _

                    = "B4"

  CLASS "RESID"    NO_BUILD_TRANCHE _

                    = "X#1"

  CLASS "SNR_22" DISTRIB_CLASS PRORATA ALLOCATION _

                    = "SNR_221" "SNR_222" "SNR_223"

  CLASS "SNR_2" DISTRIB_CLASS PRORATA ALLOCATION _

                    = "SNR_21" "SNR_22"

  CLASS "SNR_12" DISTRIB_CLASS PRORATA ALLOCATION _

                    = "SNR_111" "SNR_112"

  CLASS "SNR_1" DISTRIB_CLASS PRORATA ALLOCATION _

                    = "SNR_11" "SNR_12"

   CLASS "SNR" DISTRIB_CLASS PRORATA  WRITEDOWN_BAL PRORATA ALLOCATION _

                    = "SNR_1" "SNR_2" "AIO-1" "AIO-2"

!

!

     CLASS "ROOT" _

                 WRITEDOWN_BAL RULES _

                 DISTRIB_CLASS RULES _

                 SHORTFALL_PAYBACK PRINCIPAL_LOSS TRUE _

                 CALC_WDBALINT _

                 SHORTFALL_PAYBACK WDBALINT TRUE _

                 SHORTFALL_EARN_INTEREST WDBALINT TRUE _

                 SHORTFALL_EARN_INT INTEREST TRUE _

                   = "AIOS" "EXP" "SNR" "M1" "M2" "M3" "M4" "M5" "M6" "B1" "B2" "B3" "B4" "RESID"


!

  DEFINE PSEUDO_TRANCHE CLASS "SNR"          Delay 0  Dated 20040901  Next 20041025 DAYCOUNT ACTUAL360 BUSINESS_DAY NONE

  DEFINE PSEUDO_TRANCHE CLASS "SNR_1"        Delay 0  Dated 20040901  Next 20041025 DAYCOUNT ACTUAL360 BUSINESS_DAY NONE

  DEFINE PSEUDO_TRANCHE CLASS "SNR_2"        Delay 0  Dated 20040901  Next 20041025 DAYCOUNT ACTUAL360 BUSINESS_DAY NONE

  DEFINE PSEUDO_TRANCHE CLASS "SNR_22"       Delay 0  Dated 20040901  Next 20041025 DAYCOUNT ACTUAL360 BUSINESS_DAY NONE

!

  CROSSOVER When 0

!

TRIGGER "StepDown-DlqEnh" _

        FULL_NAME   "Step Down Enhancement Delinquency Trigger" _

        ORIG_TESTVAL   0.000% _

        TESTVAL        ( #SDTrigEnhFrac); _

        ORIG_TARGETVAL  12.75% _

        TARGETVAL       (#SDReqPerc); _

        TRIGVAL          LODIFF

!

TRIGGER "STEPDOWN_TRIGGER" _

        FULL_NAME   "Step Down Trigger" _

        DEFINITION "A Step Down Trigger exists, if_

;(1) the aggregate principal balance of all delinquent loans * 1_

 as a percentage of the respective collateral balance exceeds :_

 .43 * the Senior Enhancement Percentage."_

        IMPACT     "If a Step Down Trigger is in effect the OC target CANNOT stepdown to_

 4% of the current balance of the collateral."  _

        TRIGVAL FORMULA (TRIGGER("StepDown-DlqEnh","TRIGVAL"));

!

TRIGGER "StepUp-CumLoss" _

        FULL_NAME   "Step Up Cumulative Loss Trigger" _

        ORIG_TESTVAL   0.000% _

        TESTVAL        ( #TrigCumLossFrac); _

        ORIG_TARGETVAL  3.0% _

        TARGETVAL       (#CumLossShft); _

        TRIGVAL          LODIFF

!

TRIGGER "STEPUP_TRIGGER" _

        FULL_NAME   "Step Up Trigger" _

        DEFINITION "A Step Up Trigger exists, if_

(1) a percentage calculated as the quotient of the amount of cumulative_

 realized losses divided by the original collateral balance exceeds the target defined by a schedule;_

                       Month <=          %;_

                            37           2.75%;  _

                            38           2.895833%;  _

                            39           3.041667%;  _

                            40           3.187500%;  _

                            41           3.333333%;  _

                            42           3.479167%;  _

                            43           3.625000%;  _

                            44           3.770833%;  _

                            45           3.916667;  _

                            46           4.062500%;  _

                            47           4.208333%;  _

                            48           4.354167%;  _

                            49           4.500000%;  _

                            50           4.604167%;  _

                            51           4.708333%;  _

                            52           4.812500%;  _

                            53           4.916667%;  _

                            54           5.020833%;  _

                            55           5.125000%;  _

                            56           5.229167%;  _

                            57           5.333333%;  _

                            58           5.437500%;  _

                            59           5.541667%;  _

                            60           5.645833%;  _

                            61           5.750000%;  _

                            62           5.791667%;  _

                            63           5.833333%;  _

                            64           5.875000%;  _

                            65           5.916667%;  _

                            66           5.958333%;  _

                            67           6.000000%;  _

                            68           6.041667%;  _

                            69           6.083333%;  _

                            70           6.125000%;  _

                            71           6.166667%;  _

                            72           6.208333%;  _

                            73           6.250000%;  _

                            74           6.270833%;  _

                            75           6.291667%;  _

                            76           6.312500%;  _

                            77           6.333333%;  _

                            78           6.354167%;  _

                            79           6.375000%;  _

                            80           6.395833%;  _

                            81           6.416667%;  _

                            82           6.437500%;  _

                            83           6.458333%;  _

                            84           6.479167%;  _

                            360          6.500000%;  _

"_

        IMPACT     "If a Step Up Trigger is in effect the OC target will change to_

 the last value before the trigger occurred if a stepdown has_

 occurred.  It has no effect if a stepdown has not occurred."  _

        TRIGVAL FORMULA (TRIGGER("StepUp-CumLoss","TRIGVAL"));

!

!

 INTEREST_SHORTFALL GROUP 1 FULL_PREPAY    Compensate Pro_rata _

                             PARTIAL_PREPAY Compensate Pro_rata _

                             LOSS           NO_Compensate SUBORDINATED ACCUM

!

 INTEREST_SHORTFALL GROUP 2 FULL_PREPAY    Compensate Pro_rata _

                             PARTIAL_PREPAY Compensate Pro_rata _

                             LOSS           NO_Compensate SUBORDINATED ACCUM

!

      DEFINE MACRO BLOCK #SNR_Int =

{

------------------------------------

        from :  CLASS ( "SNR" )

         pay :  CLASS INTEREST PRO_RATA  ( "SNR_1"; "SNR_2"; "AIO-1"; "AIO-2" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_1" )

         pay :  CLASS INTEREST PRO_RATA  ( "SNR_11"; "SNR_12" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_12" )

         pay :  CLASS INTEREST PRO_RATA  ( "SNR_111"; "SNR_112" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_2" )

         pay :  CLASS INTEREST PRO_RATA  ( "SNR_21"; "SNR_22" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_22" )

         pay :  CLASS INTEREST PRO_RATA  ( "SNR_221"; "SNR_222"; "SNR_223" )

------------------------------------

}

 DEFINE MACRO BLOCK #SNR_InS =

{

------------------------------------

        from :  CLASS ( "SNR" )

         pay :  CLASS INTSHORT PRO_RATA  ( "AIO-1"; "AIO-2"; "SNR_1"; "SNR_2" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_1" )

         pay :  CLASS INTSHORT PRO_RATA  ( "SNR_11"; "SNR_12" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_12" )

         pay :  CLASS INTSHORT PRO_RATA  ( "SNR_111"; "SNR_112" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_2" )

         pay :  CLASS INTSHORT PRO_RATA  ( "SNR_21"; "SNR_22" )

------------------------------------

------------------------------------

        from :  CLASS ( "SNR_22" )

         pay :  CLASS INTSHORT PRO_RATA  ( "SNR_221"; "SNR_222"; "SNR_223" )

------------------------------------

}

 DEFINE MACRO BLOCK #SNR_Prn1 =

{

------------------------------------

 !!****************************** CUSTOM SCRIPT *****************************************

   calculate :  #SeniorPrinc         = #PrincPmt / #DistribAmt * #ClassSNRPDA

!!   calculate :  #SeniorXtraP         = #ClassSNRPDA - #SeniorPrinc

   calculate :  #SeniorXtraP         = MAX(0, #ClassSNRPDA - #SeniorPrinc - #CAP_TO_AVAILFUNDS)

   calculate :  #SeniorCapRFP        = MAX(0, #ClassSNRPDA - #SeniorPrinc - #SeniorXtraP)

!

   calculate :  #DelinqFrac1         = DELINQ_NET_LOSS(1)/DELINQ_NET_LOSS

   calculate :  #DelinqFrac2         = DELINQ_NET_LOSS(2)/DELINQ_NET_LOSS

!

   calculate :  #SeniorPDA1          = MIN( BBAL("SNR_1"), (#SeniorPrinc * #PrincFrac1) + (#SeniorXtraP * #XtraPFrac1) + (#DelinqFrac1 * #SeniorCapRFP))

   calculate :  #SeniorPDA2          = MIN( BBAL("SNR_2"), (#SeniorPrinc * #PrincFrac2) + (#SeniorXtraP * #XtraPFrac2) + (#DelinqFrac2 * #SeniorCapRFP))

------------------------------------

        from :  CLASS ( "SNR" )

  subject to :  CEILING ( #SeniorPDA1)

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_1" )

------------------------------------

        from :  CLASS ( "SNR" )

  subject to :  CEILING ( #SeniorPDA2)

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_2" )

------------------------------------

        from :  CLASS ( "SNR" )

         pay :  CLASS BALANCE PRO_RATA ( "SNR_1"; "SNR_2" )

------------------------------------

        from :  CLASS ( "SNR_1" )

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_11", "SNR_12" )

------------------------------------

        from :  CLASS ( "SNR_12" )

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_111", "SNR_112" )

------------------------------------

        from :  CLASS ( "SNR_2" )

         pay :  CLASS BALANCE PRO_RATA ( "SNR_21"; "SNR_22" )

------------------------------------

        from :  CLASS ( "SNR_22" )

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_221", "SNR_222", "SNR_223" )

------------------------------------

!

        from :  CLASS ( "SNR_11" )

         pay :  SEQUENTIAL ( "A7#1" )

------------------------------------

        from :  CLASS ( "SNR_111" )

         pay :  SEQUENTIAL ( "A1#1" )

------------------------------------

        from :  CLASS ( "SNR_112" )

         pay :  SEQUENTIAL ( "A2#1" )

------------------------------------

        from :  CLASS ( "SNR_21" )

         pay :  SEQUENTIAL ( "A3#1" )

------------------------------------

        from :  CLASS ( "SNR_221" )

         pay :  SEQUENTIAL ( "A4#1" )

------------------------------------

        from :  CLASS ( "SNR_222" )

         pay :  SEQUENTIAL ( "A5#1" )

------------------------------------

        from :  CLASS ( "SNR_223" )

         pay :  SEQUENTIAL ( "A6#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #SNR_Prn2 =

{

------------------------------------

 !!****************************** CUSTOM SCRIPT *****************************************

   calculate :  #SeniorPrinc         = #PrincPmt / #DistribAmt * #ClassSNRPDA

!!   calculate :  #SeniorXtraP         = #ClassSNRPDA - #SeniorPrinc

   calculate :  #SeniorXtraP         = MAX(0, #ClassSNRPDA - #SeniorPrinc - #CAP_TO_AVAILFUNDS)

   calculate :  #SeniorCapRFP        = MAX(0, #ClassSNRPDA - #SeniorPrinc - #SeniorXtraP)

!

   calculate :  #DelinqFrac1         = DELINQ_NET_LOSS(1)/DELINQ_NET_LOSS

   calculate :  #DelinqFrac2         = DELINQ_NET_LOSS(2)/DELINQ_NET_LOSS

!

   calculate :  #SeniorPDA1          = MIN( BBAL("SNR_1"), (#SeniorPrinc * #PrincFrac1) + (#SeniorXtraP * #XtraPFrac1) + (#DelinqFrac1 * #SeniorCapRFP))

   calculate :  #SeniorPDA2          = MIN( BBAL("SNR_2"), (#SeniorPrinc * #PrincFrac2) + (#SeniorXtraP * #XtraPFrac2) + (#DelinqFrac2 * #SeniorCapRFP))

------------------------------------

        from :  CLASS ( "SNR" )

  subject to :  CEILING ( #SeniorPDA1)

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_1" )

------------------------------------

        from :  CLASS ( "SNR" )

  subject to :  CEILING ( #SeniorPDA2)

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_2" )

------------------------------------

        from :  CLASS ( "SNR" )

         pay :  CLASS BALANCE PRO_RATA ( "SNR_1"; "SNR_2" )

------------------------------------

        from :  CLASS ( "SNR_1" )

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_11", "SNR_12" )

------------------------------------

        from :  CLASS ( "SNR_12" )

         pay :  CLASS BALANCE PRO_RATA ( "SNR_111"; "SNR_112" )

------------------------------------

        from :  CLASS ( "SNR_2" )

         pay :  CLASS BALANCE PRO_RATA ( "SNR_21"; "SNR_22" )

------------------------------------

        from :  CLASS ( "SNR_22" )

         pay :  CLASS BALANCE SEQUENTIAL ( "SNR_221", "SNR_222", "SNR_223" )

------------------------------------

!

        from :  CLASS ( "SNR_11" )

         pay :  SEQUENTIAL ( "A7#1" )

------------------------------------

        from :  CLASS ( "SNR_111" )

         pay :  SEQUENTIAL ( "A1#1" )

------------------------------------

        from :  CLASS ( "SNR_112" )

         pay :  SEQUENTIAL ( "A2#1" )

------------------------------------

        from :  CLASS ( "SNR_21" )

         pay :  SEQUENTIAL ( "A3#1" )

------------------------------------

        from :  CLASS ( "SNR_221" )

         pay :  SEQUENTIAL ( "A4#1" )

------------------------------------

        from :  CLASS ( "SNR_222" )

         pay :  SEQUENTIAL ( "A5#1" )

------------------------------------

        from :  CLASS ( "SNR_223" )

         pay :  SEQUENTIAL ( "A6#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #M1_Prn =

{

------------------------------------

        from :  CLASS ( "M1" )

         pay :  SEQUENTIAL ( "M1#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #M2_Prn =

{

------------------------------------

        from :  CLASS ( "M2" )

         pay :  SEQUENTIAL ( "M2#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #M3_Prn =

{

------------------------------------

        from :  CLASS ( "M3" )

         pay :  SEQUENTIAL ( "M3#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #M4_Prn =

{

------------------------------------

        from :  CLASS ( "M4" )

         pay :  SEQUENTIAL ( "M4#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #M5_Prn =

{

------------------------------------

        from :  CLASS ( "M5" )

         pay :  SEQUENTIAL ( "M5#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #M6_Prn =

{

------------------------------------

        from :  CLASS ( "M6" )

         pay :  SEQUENTIAL ( "M6#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #B1_Prn =

{

------------------------------------

        from :  CLASS ( "B1" )

         pay :  SEQUENTIAL ( "B1#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #B2_Prn =

{

------------------------------------

        from :  CLASS ( "B2" )

         pay :  SEQUENTIAL ( "B2#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #B3_Prn =

{

------------------------------------

        from :  CLASS ( "B3" )

         pay :  SEQUENTIAL ( "B3#1" )

------------------------------------

}

 DEFINE MACRO BLOCK #B4_Prn =

{

------------------------------------

        from :  CLASS ( "B4" )

         pay :  SEQUENTIAL ( "B4#1" )

------------------------------------

}

!

 CMO Block Payment Rules

------------------------------------

        from :  CASH_ACCOUNT (100)

  subject to :  CEILING ( (COLL("PREPAYPENALTY")) )

         pay :  CREDIT_ENHANCEMENT ("YmRsvFnd")

------------------------------------

   calculate :   #CapINDEX = IF CURDATE EQ 20041025 THEN 1.75 ELSE LIBOR_1MO("IAC",1)

   calculate :   #CapIN    = MAX(0, (MIN(#CeilingRATE, #CapINDEX) - #CapRATE) * #CapBAL / 1200 * NDAYS_ACCRUE_INT("M1#1") / 30)

   calculate :   #CapOUT  = 0

!

   calculate :   #HedgePayIn  = #CapIN

!!               #HedgePayOut is used as a subaccount

   calculate :   #HedgePayOut = #CapOUT

!!               #HedgePaySave should never be changed

   calculate :   #HedgePaySave = #CapOUT

!

------------------------------------

!!******************************** CUSTOM SCRIPT ************************

        from :  CREDIT_ENHANCEMENT ("HEDGE")

  subject to :  CEILING (#HedgePayIn)

!!         pay :  CASH_ACCOUNT(0)

         pay :  CREDIT_ENHANCEMENT("CAP_RF")

!!******************************** END CUSTOM SCRIPT ************************

------------------------------------

        from :  CASH_ACCOUNT (100)

  subject to :  CEILING (#HedgePayOut)

         pay :  CREDIT_ENHANCEMENT ("HEDGE")

-------------------------------------------------------------------------------

calculate :  #PrincFrac1          = COLL_P(1) / COLL_P

   calculate :  #PrincFrac2          = COLL_P(2) / COLL_P

!

   calculate :  #XtraPFrac1          = COLL_P(1) / COLL_P

   calculate :  #XtraPFrac2          = COLL_P(2) / COLL_P

!

   calculate :  #Princ               = COLL_P

!

   calculate :  #Interest            = COLL_I - #HedgePaySave

!

   calculate :  #PrevSpecOC          = #SpecOCTarg

!

   calculate :  #CurrentOC           = MAX( 0, COLL_BAL - (BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5", "M6", "B1", "B2", "B3", "B4") - #Princ))

!

   calculate :  #XSSpread            = MAX( 0, #Interest - ( COLL_YM * (100% - 0%)) - OPTIMAL_INTPMT("ROOT") - INTSHORT_ACCUM("ROOT") + COUPONCAP_SHORTFALL("ROOT") )

!

   calculate :  #FloorOCTotal        = #FloorOCTarg

!

!!*************************custom **************

   calculate :  #StepOCTarg          = COLL_BAL * #StepOCFrac

!

   calculate :  #StepDownDatePass    = CURMONTH GE #StepDownDate

!

!!!********** BEGINNING OF SENIOR ENHANCEMENT PCT CALCULATION **********

!!! ASSUME STEPDOWN IN ORDER TO CALCULATE SENIOR ENHANCMENT PCT

!!!   calculate :  #SpecOCTarg          = MAX( MIN( #InitOCTarg, #StepOCTarg ) , #FloorOCTotal )

!

!!!   calculate :  #SpecOCTarg          = MIN( #SpecOCTarg, COLL_BAL )

!

!!!   calculate :  #SpecOCTarg          = #Octval

!

!!!   calculate :  #OCDeficiency        = MAX(0, #SpecOCTarg - #CurrentOC)

!

!!!   calculate :  #OCSurplus           = MINMAX(0, #CurrentOC - #SpecOCTarg, COLL_P)

!

!!!   calculate :  #PrincPmt            = MAX(0, COLL_P - #OCSurplus)

!

!!!   calculate :  #XSIntRem            = MAX( 0, #Interest - ( COLL_YM * (100% - 0%)) - OPTIMAL_INTPMT("ROOT") - INTSHORT_ACCUM("ROOT") + #OCSurplus + COUPONCAP_SHORTFALL("ROOT"))

!

!!!   calculate :  #SpreadHol           = MIN( MAX(0, #XSIntRem - DELINQ_NET_LOSS), #XSIntRem * 100/100 )

!

!!!   calculate :  #XSIntRem            = IF CURMONTH LE 2 THEN MAX(0, #XSIntRem - #SpreadHol) ELSE #XSIntRem

!

!!!   calculate :  #SubDefic            = MAX ( 0, ( BBAL("ROOT") - #Princ ) - COLL_BAL )

!

!!!   calculate :  #AddPrinc            = MIN( #XSIntRem, #SubDefic )

!!!   calculate :  #XSIntRem            = MAX( 0, #XSIntRem - #AddPrinc )

!

!!!   calculate :  #XtraPDA             = MIN( #OCDeficiency, #XSIntRem )

!!!   calculate :  #XSIntRem            = MAX( 0, #XSIntRem - #XtraPDA )

!

!!!   calculate :  #DistribAmt          = #PrincPmt + #AddPrinc + #XtraPDA

!

!!!   calculate :  #ClassSNRPDA         = BBAL("A1", "A2", "A3", "A4", "A5") _

!!!                                        - MIN(COLL_BAL - #FloorOCTotal, #SNRTargPct * COLL_BAL)

!!!   calculate :  #ClassSNRPDA         = MAX( 0.0, MIN(BBAL("A1", "A2", "A3", "A4", "A5"), #ClassSNRPDA ))

!!!   calculate :  #ClassSNRPDA         = MAX( 0, MIN( #ClassSNRPDA, #DistribAmt ) )

!

!

!!!********** END OF SENIOR ENHANCEMENT PCT CALCULATION **********

!

   calculate :  #SenEnhancePct       = (COLL_PREV_BAL - BBAL("SNR")) / COLL_BAL

!

   calculate :  #StepDownBal         = (#SenEnhancePct - #SpecSenEnhPct) + 1E-8 GE 0.00

!

   calculate :  #SDReqPerc           = .425 * (COLL_PREV_BAL - BBAL("SNR") ) / COLL_PREV_BAL

!

   calculate :  #SDTrigEnhFrac       = 1 * AVG_COLL("RATE",-1,2,3)

!

   calculate :  #SDTrigEvent         = TRIGGER("STEPDOWN_TRIGGER")

!

   calculate :  #StepDown            = #StepDown OR (( #StepDownDatePass AND #StepDownBal )  AND NOT #SDTrigEvent )

!  calculate :  #StepDown            = 0

!

   calculate :  #CumLossShft         = LOOKUP_TBL( "STEP",  CURMONTH     , "OC_CUMLOSS0", "MONTH", "OC_CUMLOSS_FRAC0" )

   calculate :  #TrigCumLossFrac     = DELINQ_LOSS_ACCUM / #OrigCollBal

!

   calculate :  #TrigCumLoss         = TRIGGER("StepUp-CumLoss")

!

   calculate :  #TrigEvent           = TRIGGER("STEPUP_TRIGGER") OR TRIGGER("STEPDOWN_TRIGGER")

!  calculate :  #TrigEvent           = 1

!

   calculate :  #TrigOCTargPost      = #PrevSpecOC

!

   calculate :  #SpecOCTarg          = IF #StepDown _

                                     THEN IF #TrigEvent _

                                          THEN MAX( MIN( #InitOCTarg, #StepOCTarg ) , #TrigOCTargPost, #FloorOCTotal ) _

                                          ELSE MAX( MIN( #InitOCTarg, #StepOCTarg ) , #FloorOCTotal )  _

                                     ELSE MAX ( #InitOCTarg, #FloorOCTotal )

!

   calculate :  #SpecOCTarg          = MIN( #SpecOCTarg, COLL_BAL )

!

   calculate :  #SpecOCTarg          = #Octval

!

   calculate :  #OCDeficiency        = MAX(0, #SpecOCTarg - #CurrentOC)

!     

!  !!****************************** CUSTOM SCRIPT **********************************************

   Calculate: #CAP_TO_AVAILFUNDS = MIN(DELINQ_NET_LOSS,MAX(0,MIN(#OCDeficiency,CREDIT_ENHANCEMENT("CAP_RF"))-PRINCSHORT_ACCUM("M1","M2","M3","M4","M5","M6","B1","B2","B3","B4") _

- WDBALINT("M1","M2","M3","M4","M5","M6","B1","B2","B3","B4") - WDBALINT_ACCUM("M1","M2","M3","M4","M5","M6","B1","B2","B3","B4")))

-----------------------------------------------------

   from: CREDIT_ENHANCEMENT("CAP_RF")

   subject to:  CEILING(#CAP_TO_AVAILFUNDS)

   pay: CASH_ACCOUNT(0)

-----------------------------------------------------

   calculate: #SpecAcctPayout = #OCDeficiency

   Calculate: #Interest = COLL_I + #CAP_TO_AVAILFUNDS - #HedgePaySave

!!****************************** END CUSTOM SCRIPT ***********************************************

!

   calculate :  #OCSurplus           = MINMAX(0, #CurrentOC - #SpecOCTarg, COLL_P)

!

   calculate :  #PrincPmt            = MAX(0, COLL_P - #OCSurplus)

!

!

   calculate :  #XSIntRem            = MAX( 0, #Interest - ( COLL_YM * (100% - 0%)) - OPTIMAL_INTPMT("ROOT") - INTSHORT_ACCUM("ROOT") + #OCSurplus + COUPONCAP_SHORTFALL("ROOT"))

!

   calculate :  #SpreadHol           = MIN( MAX(0, #XSIntRem - DELINQ_NET_LOSS), #XSIntRem * 100/100 )

!

   calculate :  #XSIntRem            = IF CURMONTH LE 2 THEN MAX(0, #XSIntRem - #SpreadHol) ELSE #XSIntRem

!

   calculate :  #SubDefic            = MAX ( 0, ( BBAL("ROOT") - #Princ ) - COLL_BAL )

!

   calculate :  #AddPrinc            = MIN( #XSIntRem, #SubDefic )

   calculate :  #XSIntRem            = MAX( 0, #XSIntRem - #AddPrinc )

!

   calculate :  #XtraPDA             = MIN( #OCDeficiency, #XSIntRem )

   calculate :  #XSIntRem            = MAX( 0, #XSIntRem - #XtraPDA )

!

   calculate :  #DistribAmt          = #PrincPmt + #AddPrinc + #XtraPDA

!

   calculate :  #ClassSNRPDA         = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7") _

                                        - MIN(COLL_BAL - #FloorOCTotal, #SNRTargPct * COLL_BAL)

   calculate :  #ClassSNRPDA         = MAX( 0.0, MIN(BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7"), #ClassSNRPDA ))

   calculate :  #ClassSNRPDA         = MAX( 0, MIN( #ClassSNRPDA, #DistribAmt ) )

!

!

   calculate :  #ClassM1PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1") - #ClassSNRPDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #M1TargPct * COLL_BAL)

   calculate :  #ClassM1PDA          = MAX( 0.0, MIN(BBAL("M1"), #ClassM1PDA ))

   calculate :  #ClassM1PDA          = MAX( 0, MIN( #ClassM1PDA, #DistribAmt - #ClassSNRPDA ) )

!

!

   calculate :  #ClassM2PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2") - #ClassSNRPDA - #ClassM1PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #M2TargPct * COLL_BAL)

   calculate :  #ClassM2PDA          = MAX( 0.0, MIN(BBAL("M2"), #ClassM2PDA ))

   calculate :  #ClassM2PDA          = MAX( 0, MIN( #ClassM2PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA ) )

!

!

   calculate :  #ClassM3PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #M3TargPct * COLL_BAL)

   calculate :  #ClassM3PDA          = MAX( 0.0, MIN(BBAL("M3"), #ClassM3PDA ))

   calculate :  #ClassM3PDA          = MAX( 0, MIN( #ClassM3PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA ) )

!

!

   calculate :  #ClassM4PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #M4TargPct * COLL_BAL)

   calculate :  #ClassM4PDA          = MAX( 0.0, MIN(BBAL("M4"), #ClassM4PDA ))

   calculate :  #ClassM4PDA          = MAX( 0, MIN( #ClassM4PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA ) )

!

!

   calculate :  #ClassM5PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #M5TargPct * COLL_BAL)

   calculate :  #ClassM5PDA          = MAX( 0.0, MIN(BBAL("M5"), #ClassM5PDA ))

   calculate :  #ClassM5PDA          = MAX( 0, MIN( #ClassM5PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA ) )

!

!

   calculate :  #ClassM6PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5", "M6") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #M6TargPct * COLL_BAL)

   calculate :  #ClassM6PDA          = MAX( 0.0, MIN(BBAL("M6"), #ClassM6PDA ))

   calculate :  #ClassM6PDA          = MAX( 0, MIN( #ClassM6PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA ) )

!

!

   calculate :  #ClassB1PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5", "M6", "B1") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #B1TargPct * COLL_BAL)

   calculate :  #ClassB1PDA          = MAX( 0.0, MIN(BBAL("B1"), #ClassB1PDA ))

   calculate :  #ClassB1PDA          = MAX( 0, MIN( #ClassB1PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA ) )

!

!

   calculate :  #ClassB2PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5", "M6", "B1", "B2") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #B2TargPct * COLL_BAL)

   calculate :  #ClassB2PDA          = MAX( 0.0, MIN(BBAL("B2"), #ClassB2PDA ))

   calculate :  #ClassB2PDA          = MAX( 0, MIN( #ClassB2PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA ) )

!

!

   calculate :  #ClassB3PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA- #ClassB1PDA - #ClassB2PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5", "M6", "B1", "B2", "B3") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA - #ClassB2PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #B3TargPct * COLL_BAL)

   calculate :  #ClassB3PDA          = MAX( 0.0, MIN(BBAL("B3"), #ClassB3PDA ))

   calculate :  #ClassB3PDA          = MAX( 0, MIN( #ClassB3PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA - #ClassB2PDA ) )

!

!

   calculate :  #ClassB4PDA          = IF (#TrigEvent OR (#StepDown EQ 0.0)) _

                                        THEN #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA- #ClassB1PDA - #ClassB2PDA - #ClassB3PDA _

                                        ELSE BBAL("A1", "A2", "A3", "A4", "A5", "A6", "A7", "M1", "M2", "M3", "M4", "M5", "M6", "B1", "B2", "B3", "B4") - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA - #ClassB2PDA - #ClassB3PDA _

                                        - MIN(COLL_BAL - #FloorOCTotal, #B4TargPct * COLL_BAL)

   calculate :  #ClassB4PDA          = MAX( 0.0, MIN(BBAL("B4"), #ClassB4PDA ))

   calculate :  #ClassB4PDA          = MAX( 0, MIN( #ClassB4PDA, #DistribAmt - #ClassSNRPDA - #ClassM1PDA - #ClassM2PDA - #ClassM3PDA - #ClassM4PDA - #ClassM5PDA - #ClassM6PDA - #ClassB1PDA - #ClassB2PDA - #ClassB3PDA) )

!

!

  calculate :  "SNR" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassSNRPDA

!

  calculate :  "M1" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassM1PDA

!

  calculate :  "M2" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassM2PDA

!

  calculate :  "M3" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassM3PDA

!

  calculate :  "M4" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassM4PDA

!

  calculate :  "M5" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassM5PDA

!

  calculate :  "M6" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassM6PDA

!

  calculate :  "B1" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassB1PDA

!

  calculate :  "B2" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassB2PDA

!

  calculate :  "B3" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassB3PDA

!

  calculate :  "B4" _

 NO_CHECK  CUSTOM   AMOUNT        = #ClassB4PDA

!

!!******************************** CUSTOM SCRIPT **************************************

------------------------------------ PAYBACK PREVIOUS WRITEDOWNS

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "M1" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M1" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M1" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "M2" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M2" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M2" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "M3" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M3" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M3" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "M4" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M4" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M4" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "M5" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M5" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M5" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "M6" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M6" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M6" )

!-----------------------------------

!      

from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "B1" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B1" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B1" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "B2" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B2" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B2" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "B3" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B3" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B3" )

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS WDBALINT SEQUENTIAL  ( "B4" )

!        pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B4" )

!        pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B4" )

!----------------------------------- PAY BASIS RISK SHORTFALL

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA( "SNR_11"; "SNR_111"; "SNR_112"; "SNR_21"; "SNR_221"; "SNR_222"; "SNR_223" )

!-----------------------------------

        from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

         pay :  CLASS COUPONCAP_SHORT PRO_RATA("SNR_21")

------------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("M1")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("M2")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("M3")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("M4")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("M5")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("M6")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("B1")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("B2")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("B3")

!-----------------------------------

!       from :  SUBACCOUNT ( #SpecAcctPayout, CREDIT_ENHANCEMENT  "CAP_RF" )

!        pay :  CLASS COUPONCAP_SHORT PRO_RATA("B4")

!-----------------------------------

!! ******************************** END CUSTOM SCRIPT **************************************

------------------------------------

           pay :  CLASS ENTIRETY  SEQUENTIAL  ( "AIOS" )

------------------------------------

           pay :  CLASS ENTIRETY  SEQUENTIAL  ( "EXP" )

------------------------------------

           pay :  CLASS INTEREST  PRO_RATA  ( "SNR" )

------------------------------------

  {#SNR_Int}

------------------------------------

         pay :  CLASS INTSHORT  PRO_RATA  ( "SNR" )

------------------------------------

  {#SNR_InS}

------------------------------------

         pay :  CLASS INTEREST  PRO_RATA  ( "M1" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "M1" )

         pay :  CLASS INTEREST  PRO_RATA  ( "M2" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "M2" )

         pay :  CLASS INTEREST  PRO_RATA  ( "M3" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "M3" )

         pay :  CLASS INTEREST  PRO_RATA  ( "M4" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "M4" )

         pay :  CLASS INTEREST  PRO_RATA  ( "M5" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "M5" )

         pay :  CLASS INTEREST  PRO_RATA  ( "M6" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "M6" )

         pay :  CLASS INTEREST  PRO_RATA  ( "B1" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "B1" )

         pay :  CLASS INTEREST  PRO_RATA  ( "B2" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "B2" )

         pay :  CLASS INTEREST  PRO_RATA  ( "B3" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "B3" )

         pay :  CLASS INTEREST  PRO_RATA  ( "B4" )

         pay :  CLASS INTSHORT  PRO_RATA  ( "B4" )

------------------------------------

        when :  IS_TRUE ((CURMONTH LT 37 AND NOT #TrigCumLoss) OR (CURMONTH GE 37 AND NOT #TrigEvent))

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "SNR" )

------------------------------------

  {#SNR_Prn2}

------------------------------------

!

------------------------------------

        when :  IS_TRUE ((CURMONTH GE 37 AND #TrigEvent) OR (CURMONTH LT 37 AND #TrigCumLoss))

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "SNR" )

------------------------------------

  {#SNR_Prn1}

------------------------------------

!

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "M1" )

------------------------------------

  {#M1_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "M2" )

------------------------------------

  {#M2_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "M3" )

------------------------------------

  {#M3_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "M4" )

------------------------------------

  {#M4_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "M5" )

------------------------------------

  {#M5_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "M6" )

------------------------------------

  {#M6_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "B1" )

------------------------------------

  {#B1_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "B2" )

------------------------------------

  {#B2_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "B3" )

------------------------------------

  {#B3_Prn}

------------------------------------

         pay :  CLASS PRINCIPAL SEQUENTIAL  ( "B4" )

------------------------------------

  {#B4_Prn}

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "M1" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M1" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M1" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "M2" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M2" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M2" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "M3" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M3" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M3" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "M4" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M4" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M4" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "M5" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M5" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M5" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "M6" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "M6" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "M6" )

------------------------------------


 pay :  CLASS WDBALINT SEQUENTIAL  ( "B1" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B1" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B1" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "B2" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B2" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B2" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "B3" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B3" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B3" )

------------------------------------

 pay :  CLASS WDBALINT SEQUENTIAL  ( "B4" )

       pay :  CLASS WDBALINT_SHORT SEQUENTIAL  ( "B4" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS PRINCSHORT_LOSS SEQUENTIAL  ( "B4" )

------------------------------------

        from :  CLASS ( "ROOT" )

         pay :  CLASS COUPONCAP_SHORT PRO_RATA  ( "SNR_11"; "SNR_111"; "SNR_112"; "SNR_21"; "SNR_221"; "SNR_222"; "SNR_223")

-------------------------------------------------------

        from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("M1")

-------------------------------------------------

      

  from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("M2")

-------------------------------------------------

        from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("M3")

-------------------------------------------------

        from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("M4")

-------------------------------------------------

      

  from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("M5")

-------------------------------------------------

        from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("M6")

-------------------------------------------------

  from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("B1")

-------------------------------------------------

   

  from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("B2")

------------------------------------------------------

   

  from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("B3")

------------------------------------------------------

   

  from :  CLASS ( "ROOT" )

 

  pay :  CLASS COUPONCAP_SHORT SEQUENTIAL("B4")

------------------------------------------------------------

!!   calculate : #Write = MIN(DELINQ_NET_LOSS, MAX( 0.0, BBAL( "A3#1" ) - COLL_BAL ))

!!------------------------------------

!!        from :  CREDIT_ENHANCEMENT ("FG")

!!  subject to :  CEILING (#Write)

!!         pay :  CLASS BALANCE PRO_RATA("SNR_22")

!!------------------------------------

!!

!!  Penalty Allocation

!

  calculate:  #AIO1YM           = COLL("PREPAYPENALTY" ) * 100.0%

------------------------------------

        from :  CREDIT_ENHANCEMENT ("YmRsvFnd")

  subject to :  CEILING ( (#AIO1YM) )

         pay :  PREPAYPENALTY SEQUENTIAL("AIO-1#1")

------------------------------------

!

!

        from :  CLASS ( "ROOT" )

         pay :  AS_INTEREST ("X#1")

------------------------------------

   calculate : #WriteDown = MAX(0.0, BBAL("A1#1","A2#1","A3#1","A4#1","A5#1","A6#1","A7#1","M1#1","M2#1","M3#1","M4#1","M5#1","M6#1","B1#1","B2#1","B3#1","B4#1") - COLL_BAL)

------------------------------------

        from :  SUBACCOUNT ( #Writedown )

         pay :  WRITEDOWN PRO_RATA ( "B4#1" )

         pay :  WRITEDOWN PRO_RATA ( "B3#1" )

         pay :  WRITEDOWN PRO_RATA ( "B2#1" )

         pay :  WRITEDOWN PRO_RATA ( "B1#1" )

         pay :  WRITEDOWN PRO_RATA ( "M6#1" )

         pay :  WRITEDOWN PRO_RATA ( "M5#1" )

         pay :  WRITEDOWN PRO_RATA ( "M4#1" )

         pay :  WRITEDOWN PRO_RATA ( "M3#1" )

         pay :  WRITEDOWN PRO_RATA ( "M2#1" )

         pay :  WRITEDOWN PRO_RATA ( "M1#1" )

------------------------------------

   calculate : #BondBal     = BBAL("A1#1","A2#1","A3#1","A4#1","A5#1","A6#1","A7#1","M1#1","M2#1","M3#1","M4#1","M5#1","M6#1","B1#1","B2#1","B3#1","B4#1")

   calculate : #OC          = MAX( 0, COLL_BAL - #BondBal )

------------------------------------

!    calculate : #FGWrapBal

= BBAL("A2#1")

!!------------------------------------

!    calculate : #LastFGBal

= #FGBAL

!    calculate : #FGBal

= CREDIT_ENHANCEMENT("FG")

!    calculate : #FGDraw

= MAX( 0, #FGBAL - #LastFGBal )

!!------------------------------------

!! ******************************** CUSTOM SCRIPT **************************************

   calculate : #SpecAcctBal  = MAX(0, #SpecOCTarg - #OC)

!! ******************************** END CUSTOM SCRIPT **************************************

     Schedule "NASIO_Amaximus"          F

DECLARE

VALUES OK

     20020825          $11,500,000

     20020925          $11,500,000

     20021025          $11,500,000

     20021125          $11,500,000

     20021225          $11,500,000

     20030125          $11,500,000

     20030225          $11,500,000

     20030325          $11,500,000

     20030425          $11,500,000

     20030525          $11,500,000

     20030625          $11,500,000

     20030725          $11,500,000

     20030825          $11,500,000

     20030925          $11,500,000

     20031025          $11,500,000

     20031125          $11,500,000

     20031225          $11,500,000

     20040125          $11,500,000

     20040225          $11,500,000

     20040325          $11,500,000

     20040425          $11,500,000

     20040525          $11,500,000

     20040625          $11,500,000

     20040725          $11,500,000

     20040825          $11,500,000

     20040925          $11,500,000

     20041025          $11,500,000

     20041125          $11,500,000

     20041225          $11,500,000

     20050125          $11,500,000

!

Schedule "AIO2_NTL_BAL"

DECLARE

VALUES OK

     20041025                   0     

     20041125                   0

     20041225       1,100,000,000

     20050125       1,054,000,000

     20050225       1,009,000,000

     20050325         966,000,000

     20050425         925,000,000

     20050525         886,000,000

     20050625         848,000,000

     20050725         812,000,000

     20050825         777,000,000

     20050925         744,000,000

     20051025         713,000,000

     20051125         682,000,000

     20051225         653,000,000

     20060125         626,000,000

     20060225         599,000,000

     20060325         573,000,000

     20060425         549,000,000

     20060525         526,000,000

     20060625         503,000,000

     20060725         482,000,000

     20060825         461,000,000

     20060925         442,000,000

     20061025                    0

     20061125                    0

!

!

!

  DEFINE DYNAMIC #YM_HE6MO80PCT = LOAN("SCHAM_PREP_AMT") * 80% * LOAN("GROSSRATE") / 1200 * 6

!

 Collateral OVER

!

!       Factor      --Delay--

! Type   Date       P/Y    BV   Use BV for 0

  WL  20040801    9999 9999   FALSE

!

! Pool#  Type     Gross     Current     Original   --Fee--  Maturity Orig  ARM            Gross  #mos  #mos   P#mos  P#mos  Life   Reset Life   Max   Look

!                 Coupon    Factor      Balance    P/Y  BV  P/Y   BV Term  Index          Margin ToRst RstPer ToRst  RstPer Cap    Cap   Floor  Negam Back

!! BEGINNING OF COLLATERAL

M        1     "Group 1 Fixed"    WL    00    WAC            10.8019 (      1771683.09 /      1771683.09 );      1771683.09                      0.5223       0.5223           359:1     359:1       360 NO_CHECK                                                                                                                                                                                       BALLOON SCHED_BOTH           180 GROUP "1F"   PREPAY_FLAG YM FOR 27 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        2                        WL    00    WAC             7.6535 (     13338183.03 /     13338183.03 );     13338183.03                      0.5223       0.5223           206:2     206:2       208 NO_CHECK                                                                                                                                                                                                                        GROUP "1F"   PREPAY_FLAG YM FOR 27 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        3                        WL    00    WAC             8.4718 (     13860681.49 /     13860681.49 );     13860681.49                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "1F"   PREPAY_FLAG NONE ;

M        4                        WL    00    WAC             8.8907 (     13340386.49 /     13340386.49 );     13340386.49                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "1F"   PREPAY_FLAG YM FOR 21 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        5                        WL    00    WAC             7.2546 (     88202661.06 /     88202661.06 );     88202661.06                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "1F"   PREPAY_FLAG YM FOR 36 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        6     "Group 1 ARMs"     WL    00    WAC             7.5047 (     71493899.02 /     71493899.02 );     71493899.02                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.4789    23    6 SYNC_INT           13.6373          1.0710          7.4409         0      0  INIT_PERCAP         2.9764  ORIG_GROSSRATE      7.5047                                  GROUP "1A"   PREPAY_FLAG NONE ; TEASER

M        7                        WL    00    WAC             7.4937 (     25517314.98 /     25517314.98 );     25517314.98                      0.5223       0.5223           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   6.6248    24    6 SYNC_INT           13.9264          1.0732          7.4514         0      0  INIT_PERCAP         2.9798  ORIG_GROSSRATE      7.4937                                  GROUP "1A"   PREPAY_FLAG YM FOR 12 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        8                        WL    00    WAC             6.8398 (     15975312.86 /     15975312.86 );     15975312.86                      0.5223       0.5223           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   6.0595    24    6 SYNC_INT           13.5038          1.3320          6.8398         0      0  INIT_PERCAP         2.5668  ORIG_GROSSRATE      6.8398                                  GROUP "1A"   PREPAY_FLAG YM FOR 21 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        9                        WL    00    WAC             7.2420 (    346621567.41 /    346621567.41 );    346621567.41                      0.5237       0.5237           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.2205    23    6 SYNC_INT           13.5050          1.1059          7.2281         0      0  INIT_PERCAP         2.9659  ORIG_GROSSRATE      7.2420                                  GROUP "1A"   PREPAY_FLAG YM FOR 24 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        10                       WL    00    WAC             7.3265 (     21456135.03 /     21456135.03 );     21456135.03                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.8065    23    6 SYNC_INT           13.6065          1.0764          7.1917         0      0  INIT_PERCAP         2.9878  ORIG_GROSSRATE      7.3265                                  GROUP "1A"   PREPAY_FLAG YM FOR 36 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        11                       WL    00    WAC             7.0443 (     15073259.08 /     15073259.08 );     15073259.08                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.7108    35    6 SYNC_INT           13.0993          1.1250          7.0265         0      0  INIT_PERCAP         2.9894  ORIG_GROSSRATE      7.0443                                  GROUP "1A"   PREPAY_FLAG NONE ; TEASER

M        12                       WL    00    WAC             7.0251 (      6446076.58 /      6446076.58 );      6446076.58                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.5645    35    6 SYNC_INT           13.2438          1.2075          7.0026         0      0  INIT_PERCAP         2.8344  ORIG_GROSSRATE      7.0251                                  GROUP "1A"   PREPAY_FLAG YM FOR 21 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        13                       WL    00    WAC             6.6794 (     77509545.65 /     77509545.65 );     77509545.65                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.2704    35    6 SYNC_INT           12.8347          1.0609          6.6766         0      0  INIT_PERCAP         2.9547  ORIG_GROSSRATE      6.6794                                  GROUP "1A"   PREPAY_FLAG YM FOR 36 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        14                       WL    00    WAC             6.9761 (     14468822.93 /     14468822.93 );     14468822.93                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   5.5053    59    6 SYNC_INT           12.3063          1.0394          6.9761         0      0  INIT_PERCAP         4.4933  ORIG_GROSSRATE      6.9761                                  GROUP "1A"   PREPAY_FLAG YM FOR 29 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        15    "Group 2 Fixed"    WL    00    WAC            10.4065 (      2347556.01 /      2347556.01 );      2347556.01                      0.5223       0.5223           359:1     359:1       360 NO_CHECK                                                                                                                                                                                       BALLOON SCHED_BOTH           180 GROUP "2F"   PREPAY_FLAG YM FOR 21 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        16                       WL    00    WAC             8.0073 (      7360458.82 /      7360458.82 );      7360458.82                      0.5223       0.5223           203:2     203:2       205 NO_CHECK                                                                                                                                                                                                                        GROUP "2F"   PREPAY_FLAG YM FOR 28 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        17                       WL    00    WAC             8.1165 (     13451092.73 /     13451092.73 );     13451092.73                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "2F"   PREPAY_FLAG NONE ;

M        18                       WL    00    WAC             7.6569 (      2439224.34 /      2439224.34 );      2439224.34                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "2F"   PREPAY_FLAG YM FOR 12 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        19                       WL    00    WAC             9.4234 (      7152423.56 /      7152423.56 );      7152423.56                      0.5223       0.5223           359:1     359:1       360 NO_CHECK                                                                                                                                                                                                                        GROUP "2F"   PREPAY_FLAG YM FOR 24 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        20                       WL    00    WAC             7.3099 (     51160125.41 /     51160125.41 );     51160125.41                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "2F"   PREPAY_FLAG YM FOR 36 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        21                       WL    00    WAC             6.2397 (      1575523.96 /      1575523.96 );      1575523.96                      0.5223       0.5223           358:2     358:2       360 NO_CHECK                                                                                                                                                                                                                        GROUP "2F"   PREPAY_FLAG YM FOR 60 NONE ; YM_FORMULA ( #YM_HE6MO80PCT );

M        22    "Group 2 ARms"     WL    00    WAC             7.5683 (     53033715.14 /     53033715.14 );     53033715.14                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.4528    23    6 SYNC_INT           13.7650          1.1494          7.5031         0      0  INIT_PERCAP         2.9634  ORIG_GROSSRATE      7.5683                                  GROUP "2A"   PREPAY_FLAG NONE ; TEASER

M        23                       WL    00    WAC             6.8607 (     31713699.61 /     31713699.61 );     31713699.61                      0.5223       0.5223           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   6.2838    24    6 SYNC_INT           13.2703          1.1532          6.8607         0      0  INIT_PERCAP         2.7557  ORIG_GROSSRATE      6.8607                                  GROUP "2A"   PREPAY_FLAG YM FOR 18 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        24                       WL    00    WAC             7.1666 (    230801137.28 /    230801137.28 );    230801137.28                      0.5291       0.5291           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   6.2224    24    6 SYNC_INT           13.5017          1.1680          7.1471         0      0  INIT_PERCAP         2.9899  ORIG_GROSSRATE      7.1666                                  GROUP "2A"   PREPAY_FLAG YM FOR 24 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        25                       WL    00    WAC             6.7842 (     10160544.52 /     10160544.52 );     10160544.52                      0.5223       0.5223           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   6.1692    24    6 SYNC_INT           13.2785          1.1738          6.7309         0      0  INIT_PERCAP         2.9883  ORIG_GROSSRATE      6.7842                                  GROUP "2A"   PREPAY_FLAG YM FOR 36 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        26                       WL    00    WAC             7.4553 (     12682132.79 /     12682132.79 );     12682132.79                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.9952    35    6 SYNC_INT           13.4492          1.3476          7.3888         0      0  INIT_PERCAP         2.9459  ORIG_GROSSRATE      7.4553                                  GROUP "2A"   PREPAY_FLAG NONE ; TEASER

M        27                       WL    00    WAC             7.1192 (      6382803.17 /      6382803.17 );      6382803.17                      0.5223       0.5223           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   6.6298    36    6 SYNC_INT           13.3878          1.3557          7.1192         0      0  INIT_PERCAP         2.6915  ORIG_GROSSRATE      7.1192                                  GROUP "2A"   PREPAY_FLAG YM FOR 24 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        28                       WL    00    WAC             6.9311 (     35371577.18 /     35371577.18 );     35371577.18                      0.5223       0.5223           358:2     358:2       360 NO_CHECK ARM LIBOR_6MO                   6.5034    35    6 SYNC_INT           13.2005          1.2257          6.9260         0      0  INIT_PERCAP         2.8439  ORIG_GROSSRATE      6.9311                                  GROUP "2A"   PREPAY_FLAG YM FOR 36 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER

M        29                       WL    00    WAC             6.5887 (      9292456.79 /      9292456.79 );      9292456.79                      0.5223       0.5223           359:1     359:1       360 NO_CHECK ARM LIBOR_6MO                   5.4000    60    6 SYNC_INT           12.4160          1.0792          6.5887         0      0  INIT_PERCAP         3.5473  ORIG_GROSSRATE      6.5887                                  GROUP "2A"   PREPAY_FLAG YM FOR 26 NONE ; YM_FORMULA ( #YM_HE6MO80PCT ); TEASER