<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def expected_distorted_boundaries(islitlet, csu_bar_slit_center, borderlist, params, parmodel, numpts, deg, debugplot=0):
 """Return expected SpectrumTrail instances associated to a given slitlet. Several SpectrumTrail objects can be computed for the considered slitlet. The parameter borderlist is a list of floats, ranging from 0 to 1, indicating the spatial location of the spectrum trail within the slitlet: 0 means the lower boundary and 1 corresponds to the upper bounday. Any value in (0,1) will provide the spectrum trail located in between accordingly. Parameters islitlet : int Number of slitlet. csu_bar_slit_center : float CSU bar slit center, in mm. borderlist : list of floats Each float provides the fractional vertical location of the spectrum trail relative to the lower boundary. In other words, 0.0 corresponds to the lower boundary, 1.0 to the upper boundary, and any number in the interval (0,1) will be a spectral trail in between. params : :class:`~lmfit.parameter.Parameters` Parameters to be employed in the prediction of the distorted boundaries. parmodel : str Model to be assumed. Allowed values are 'longslit' and 'multislit'. numpts : int Number of points in which the X-range interval is subdivided before fitting the returned polynomial(s). deg : int Degree of the fitted polynomial. debugplot : int Debugging level for messages and plots. For details see 'numina.array.display.pause_debugplot.py'. Returns ------- list_spectrails : list of SpectrumTrail objects List containing the fitted spectrum trails. """


    c2, c4, ff, slit_gap, slit_height, theta0, x0, y0, y_baseline = \
        return_params(islitlet, csu_bar_slit_center, params, parmodel)

    xp = np.linspace(1, EMIR_NAXIS1, numpts)
    slit_dist = (slit_height * 10) + slit_gap

    # undistorted (constant) y-coordinate of the lower and upper boundaries
    ybottom = y_baseline * 100 + (islitlet - 1) * slit_dist
    ytop = ybottom + (slit_height * 10)

    list_spectrails = []
    for borderval in borderlist:
        yvalue = ybottom + borderval * (ytop - ybottom)
        # undistorted boundary
        yp_value = np.ones(numpts) * yvalue
        # distorted boundary
        xdist, ydist = exvp(xp, yp_value, x0=x0, y0=y0,
                            c2=c2, c4=c4, theta0=theta0, ff=ff)
        spectrail = SpectrumTrail()  # declare SpectrumTrail instance
        spectrail.fit(x=xdist, y=ydist, deg=deg, debugplot=debugplot)
        list_spectrails.append(spectrail)

    return list_spectrails