ID:2065410
 
So, here I defined a generic Bézier curve function, which will accept an arbitrary number of arguments and an arbitrary level of "fineness". This is useful if it's only being used sparingly, but if it's being used a lot in a short amount of time I expect it can cause some difficulty due to its computational weightiness.

The good thing about Bézier curves, though, is that they can be completely unwrapped if you know ahead of time how many points you want and how smooth/what level of "fineness" you want in the curve. That's why I wrote the following, a Bézier curve meta function. It is a function that allows you to input two parameters—the number of points in and the numbers of points out— and outputs the code to a DM function with zero loops whatsoever.
proc/Choose(n,k)
// Code for this courtesy of http://www.geeksforgeeks.org/space-and-time-efficient-binomial-coefficient/

var/result = 1

if(k > (n-k))
k = n-k

for(var/i = 0, i < k, ++ i)
result *= n - i
result /= i + 1

return result

proc/MetaBezier(points_in, points_out)
// This is a function that will generate a fuction for generating points of a Bezier curve.

/*
* Function name
*/


var/function = "proc/Bezier"

switch(points_in)
if(1)
throw EXCEPTION("Bezier curves must have at least two points.")
if(2)
function += "Linear"
if(3)
function += "Quadratic"
if(4)
function += "Cubic"
else
function += "[points_in]atic"

/*
* Argument.
*/


function += "(list/Points)\n"

/*
* Comment about input.
*/


function += "\t// This input takes a multidimensional list of length [points_in] and depth 2. That is, it takes\n"
function += "\t// [points_in] lists where the first element of these lists is the x coordinate, and the second\n"
function += "\t// element is the y coordinate.\n"

/*
* Variables to store the data so we don't have to look up the data in the list each time.
*/


function += "\n\tvar\n"

for(var/i = 1, i <= points_in, i ++)
function += "\t\tP[i]x = Points\[[i]]\[1]\n"
function += "\t\tP[i]y = Points\[[i]]\[2]\n"

/*
* Set up return.
*/


function += "\n\t// Populate the return list and send it back.\n"
function += "\treturn list("

// First point out is always the first point in.
function += "\n\t\tlist(P1x, P1y),"

for(var/i = 2, i < points_out, i ++)
// Now we compute for the points that are not the first or last ones out.

var
x = ""
y = ""

delta = (i-1)/points_out
n = points_in

for(var/j = n, j > 0, j --)
var/coefficient = delta**(n-j) * (1-delta)**(j-1) * Choose(n-1, j-1)

x += "[coefficient]*P[n-j+1]x + "
y += "[coefficient]*P[n-j+1]y + "

function += "\n\t\tlist([copytext(x, 1, length(x)-2)], [copytext(y, 1, length(y)-2)]),"

// Last point out is always the last point in.
function += "\n\t\tlist(P[points_in]x, P[points_in]y)"

function += "\n\t)"

/*
* Function has been built, so return it.
*/


return function


For example, MetaBezier(2, 10) outputs a linear Bézier curve with ten outputs points. This is kind of silly, because it's just a line and can be exactly described by two, but functions mindlessly do what they're told.
proc/BezierLinear(list/Points)
proc/BezierLinear(list/Points)
// This input takes a multidimensional list of length 2 and depth 2. That is, it takes
// 2 lists where the first element of these lists is the x coordinate, and the second
// element is the y coordinate.

var
P1x = Points[1][1]
P1y = Points[1][2]
P2x = Points[2][1]
P2y = Points[2][2]

// Populate the return list and send it back.
return list(
list(P1x, P1y),
list(0.9*P1x + 0.1*P2x, 0.9*P1y + 0.1*P2y),
list(0.8*P1x + 0.2*P2x, 0.8*P1y + 0.2*P2y),
list(0.7*P1x + 0.3*P2x, 0.7*P1y + 0.3*P2y),
list(0.6*P1x + 0.4*P2x, 0.6*P1y + 0.4*P2y),
list(0.5*P1x + 0.5*P2x, 0.5*P1y + 0.5*P2y),
list(0.4*P1x + 0.6*P2x, 0.4*P1y + 0.6*P2y),
list(0.3*P1x + 0.7*P2x, 0.3*P1y + 0.7*P2y),
list(0.2*P1x + 0.8*P2x, 0.2*P1y + 0.8*P2y),
list(P2x, P2y)
)

And MetaBezier(3, 25)
proc/BezierQuadratic(list/Points)
// This input takes a multidimensional list of length 3 and depth 2. That is, it takes
// 3 lists where the first element of these lists is the x coordinate, and the second
// element is the y coordinate.

var
P1x = Points[1][1]
P1y = Points[1][2]
P2x = Points[2][1]
P2y = Points[2][2]
P3x = Points[3][1]
P3y = Points[3][2]

// Populate the return list and send it back.
return list(
list(P1x, P1y),
list(0.9216*P1x + 0.0768*P2x + 0.0016*P3x, 0.9216*P1y + 0.0768*P2y + 0.0016*P3y),
list(0.8464*P1x + 0.1472*P2x + 0.0064*P3x, 0.8464*P1y + 0.1472*P2y + 0.0064*P3y),
list(0.7744*P1x + 0.2112*P2x + 0.0144*P3x, 0.7744*P1y + 0.2112*P2y + 0.0144*P3y),
list(0.7056*P1x + 0.2688*P2x + 0.0256*P3x, 0.7056*P1y + 0.2688*P2y + 0.0256*P3y),
list(0.64*P1x + 0.32*P2x + 0.04*P3x, 0.64*P1y + 0.32*P2y + 0.04*P3y),
list(0.5776*P1x + 0.3648*P2x + 0.0576*P3x, 0.5776*P1y + 0.3648*P2y + 0.0576*P3y),
list(0.5184*P1x + 0.4032*P2x + 0.0784*P3x, 0.5184*P1y + 0.4032*P2y + 0.0784*P3y),
list(0.4624*P1x + 0.4352*P2x + 0.1024*P3x, 0.4624*P1y + 0.4352*P2y + 0.1024*P3y),
list(0.4096*P1x + 0.4608*P2x + 0.1296*P3x, 0.4096*P1y + 0.4608*P2y + 0.1296*P3y),
list(0.36*P1x + 0.48*P2x + 0.16*P3x, 0.36*P1y + 0.48*P2y + 0.16*P3y),
list(0.3136*P1x + 0.4928*P2x + 0.1936*P3x, 0.3136*P1y + 0.4928*P2y + 0.1936*P3y),
list(0.2704*P1x + 0.4992*P2x + 0.2304*P3x, 0.2704*P1y + 0.4992*P2y + 0.2304*P3y),
list(0.2304*P1x + 0.4992*P2x + 0.2704*P3x, 0.2304*P1y + 0.4992*P2y + 0.2704*P3y),
list(0.1936*P1x + 0.4928*P2x + 0.3136*P3x, 0.1936*P1y + 0.4928*P2y + 0.3136*P3y),
list(0.16*P1x + 0.48*P2x + 0.36*P3x, 0.16*P1y + 0.48*P2y + 0.36*P3y),
list(0.1296*P1x + 0.4608*P2x + 0.4096*P3x, 0.1296*P1y + 0.4608*P2y + 0.4096*P3y),
list(0.1024*P1x + 0.4352*P2x + 0.4624*P3x, 0.1024*P1y + 0.4352*P2y + 0.4624*P3y),
list(0.0784*P1x + 0.4032*P2x + 0.5184*P3x, 0.0784*P1y + 0.4032*P2y + 0.5184*P3y),
list(0.0576*P1x + 0.3648*P2x + 0.5776*P3x, 0.0576*P1y + 0.3648*P2y + 0.5776*P3y),
list(0.04*P1x + 0.32*P2x + 0.64*P3x, 0.04*P1y + 0.32*P2y + 0.64*P3y),
list(0.0256*P1x + 0.2688*P2x + 0.7056*P3x, 0.0256*P1y + 0.2688*P2y + 0.7056*P3y),
list(0.0144*P1x + 0.2112*P2x + 0.7744*P3x, 0.0144*P1y + 0.2112*P2y + 0.7744*P3y),
list(0.0064*P1x + 0.1472*P2x + 0.8464*P3x, 0.0064*P1y + 0.1472*P2y + 0.8464*P3y),
list(P3x, P3y)
)

And MetaBezier(5, 50)
proc/Bezier5atic(list/Points)
// This input takes a multidimensional list of length 5 and depth 2. That is, it takes
// 5 lists where the first element of these lists is the x coordinate, and the second
// element is the y coordinate.

var
P1x = Points[1][1]
P1y = Points[1][2]
P2x = Points[2][1]
P2y = Points[2][2]
P3x = Points[3][1]
P3y = Points[3][2]
P4x = Points[4][1]
P4y = Points[4][2]
P5x = Points[5][1]
P5y = Points[5][2]

// Populate the return list and send it back.
return list(
list(P1x, P1y),
list(0.922368*P1x + 0.0752954*P2x + 0.00230496*P3x + 3.136e-005*P4x + 1.6e-007*P5x, 0.922368*P1y + 0.0752954*P2y + 0.00230496*P3y + 3.136e-005*P4y + 1.6e-007*P5y),
list(0.849346*P1x + 0.141558*P2x + 0.00884736*P3x + 0.00024576*P4x + 2.56e-006*P5x, 0.849346*P1y + 0.141558*P2y + 0.00884736*P3y + 0.00024576*P4y + 2.56e-006*P5y),
list(0.780749*P1x + 0.19934*P2x + 0.0190858*P3x + 0.00081216*P4x + 1.296e-005*P5x, 0.780749*P1y + 0.19934*P2y + 0.0190858*P3y + 0.00081216*P4y + 1.296e-005*P5y),
list(0.716393*P1x + 0.24918*P2x + 0.0325018*P3x + 0.00188416*P4x + 4.096e-005*P5x, 0.716393*P1y + 0.24918*P2y + 0.0325018*P3y + 0.00188416*P4y + 4.096e-005*P5y),
list(0.6561*P1x + 0.2916*P2x + 0.0486*P3x + 0.0036*P4x + 0.0001*P5x, 0.6561*P1y + 0.2916*P2y + 0.0486*P3y + 0.0036*P4y + 0.0001*P5y),
list(0.599695*P1x + 0.327107*P2x + 0.0669082*P3x + 0.00608256*P4x + 0.00020736*P5x, 0.599695*P1y + 0.327107*P2y + 0.0669082*P3y + 0.00608256*P4y + 0.00020736*P5y),
list(0.547008*P1x + 0.356191*P2x + 0.086977*P3x + 0.00943936*P4x + 0.00038416*P5x, 0.547008*P1y + 0.356191*P2y + 0.086977*P3y + 0.00943936*P4y + 0.00038416*P5y),
list(0.497871*P1x + 0.379331*P2x + 0.10838*P3x + 0.0137626*P4x + 0.00065536*P5x, 0.497871*P1y + 0.379331*P2y + 0.10838*P3y + 0.0137626*P4y + 0.00065536*P5y),
list(0.452122*P1x + 0.396985*P2x + 0.130715*P3x + 0.019129*P4x + 0.00104976*P5x, 0.452122*P1y + 0.396985*P2y + 0.130715*P3y + 0.019129*P4y + 0.00104976*P5y),
list(0.4096*P1x + 0.4096*P2x + 0.1536*P3x + 0.0256*P4x + 0.0016*P5x, 0.4096*P1y + 0.4096*P2y + 0.1536*P3y + 0.0256*P4y + 0.0016*P5y),
list(0.370151*P1x + 0.417606*P2x + 0.176679*P3x + 0.0332218*P4x + 0.00234256*P5x, 0.370151*P1y + 0.417606*P2y + 0.176679*P3y + 0.0332218*P4y + 0.00234256*P5y),
list(0.333622*P1x + 0.421417*P2x + 0.199619*P3x + 0.042025*P4x + 0.00331776*P5x, 0.333622*P1y + 0.421417*P2y + 0.199619*P3y + 0.042025*P4y + 0.00331776*P5y),
list(0.299866*P1x + 0.421433*P2x + 0.222107*P3x + 0.052025*P4x + 0.00456976*P5x, 0.299866*P1y + 0.421433*P2y + 0.222107*P3y + 0.052025*P4y + 0.00456976*P5y),
list(0.268739*P1x + 0.418038*P2x + 0.243855*P3x + 0.0632218*P4x + 0.00614656*P5x, 0.268739*P1y + 0.418038*P2y + 0.243855*P3y + 0.0632218*P4y + 0.00614656*P5y),
list(0.2401*P1x + 0.4116*P2x + 0.2646*P3x + 0.0756*P4x + 0.0081*P5x, 0.2401*P1y + 0.4116*P2y + 0.2646*P3y + 0.0756*P4y + 0.0081*P5y),
list(0.213814*P1x + 0.402473*P2x + 0.284099*P3x + 0.0891289*P4x + 0.0104858*P5x, 0.213814*P1y + 0.402473*P2y + 0.284099*P3y + 0.0891289*P4y + 0.0104858*P5y),
list(0.189747*P1x + 0.390995*P2x + 0.302132*P3x + 0.103763*P4x + 0.0133634*P5x, 0.189747*P1y + 0.390995*P2y + 0.302132*P3y + 0.103763*P4y + 0.0133634*P5y),
list(0.167772*P1x + 0.377487*P2x + 0.318505*P3x + 0.119439*P4x + 0.0167962*P5x, 0.167772*P1y + 0.377487*P2y + 0.318505*P3y + 0.119439*P4y + 0.0167962*P5y),
list(0.147763*P1x + 0.362259*P2x + 0.333044*P3x + 0.136083*P4x + 0.0208514*P5x, 0.147763*P1y + 0.362259*P2y + 0.333044*P3y + 0.136083*P4y + 0.0208514*P5y),
list(0.1296*P1x + 0.3456*P2x + 0.3456*P3x + 0.1536*P4x + 0.0256*P5x, 0.1296*P1y + 0.3456*P2y + 0.3456*P3y + 0.1536*P4y + 0.0256*P5y),
list(0.113165*P1x + 0.327788*P2x + 0.356046*P3x + 0.171884*P4x + 0.031117*P5x, 0.113165*P1y + 0.327788*P2y + 0.356046*P3y + 0.171884*P4y + 0.031117*P5y),
list(0.098345*P1x + 0.309084*P2x + 0.364278*P3x + 0.190812*P4x + 0.037481*P5x, 0.098345*P1y + 0.309084*P2y + 0.364278*P3y + 0.190812*P4y + 0.037481*P5y),
list(0.0850305*P1x + 0.289734*P2x + 0.370215*P3x + 0.210246*P4x + 0.0447746*P5x, 0.0850305*P1y + 0.289734*P2y + 0.370215*P3y + 0.210246*P4y + 0.0447746*P5y),
list(0.0731161*P1x + 0.269967*P2x + 0.373801*P3x + 0.230031*P4x + 0.0530842*P5x, 0.0731161*P1y + 0.269967*P2y + 0.373801*P3y + 0.230031*P4y + 0.0530842*P5y),
list(0.0625*P1x + 0.25*P2x + 0.375*P3x + 0.25*P4x + 0.0625*P5x, 0.0625*P1y + 0.25*P2y + 0.375*P3y + 0.25*P4y + 0.0625*P5y),
list(0.0530842*P1x + 0.230031*P2x + 0.373801*P3x + 0.269967*P4x + 0.0731161*P5x, 0.0530842*P1y + 0.230031*P2y + 0.373801*P3y + 0.269967*P4y + 0.0731161*P5y),
list(0.0447746*P1x + 0.210246*P2x + 0.370215*P3x + 0.289734*P4x + 0.0850306*P5x, 0.0447746*P1y + 0.210246*P2y + 0.370215*P3y + 0.289734*P4y + 0.0850306*P5y),
list(0.037481*P1x + 0.190812*P2x + 0.364278*P3x + 0.309084*P4x + 0.098345*P5x, 0.037481*P1y + 0.190812*P2y + 0.364278*P3y + 0.309084*P4y + 0.098345*P5y),
list(0.031117*P1x + 0.171884*P2x + 0.356046*P3x + 0.327788*P4x + 0.113165*P5x, 0.031117*P1y + 0.171884*P2y + 0.356046*P3y + 0.327788*P4y + 0.113165*P5y),
list(0.0256*P1x + 0.1536*P2x + 0.3456*P3x + 0.3456*P4x + 0.1296*P5x, 0.0256*P1y + 0.1536*P2y + 0.3456*P3y + 0.3456*P4y + 0.1296*P5y),
list(0.0208514*P1x + 0.136083*P2x + 0.333044*P3x + 0.362259*P4x + 0.147763*P5x, 0.0208514*P1y + 0.136083*P2y + 0.333044*P3y + 0.362259*P4y + 0.147763*P5y),
list(0.0167962*P1x + 0.119439*P2x + 0.318505*P3x + 0.377487*P4x + 0.167772*P5x, 0.0167962*P1y + 0.119439*P2y + 0.318505*P3y + 0.377487*P4y + 0.167772*P5y),
list(0.0133634*P1x + 0.103763*P2x + 0.302132*P3x + 0.390995*P4x + 0.189747*P5x, 0.0133634*P1y + 0.103763*P2y + 0.302132*P3y + 0.390995*P4y + 0.189747*P5y),
list(0.0104858*P1x + 0.0891289*P2x + 0.284099*P3x + 0.402473*P4x + 0.213814*P5x, 0.0104858*P1y + 0.0891289*P2y + 0.284099*P3y + 0.402473*P4y + 0.213814*P5y),
list(0.0081*P1x + 0.0756*P2x + 0.2646*P3x + 0.4116*P4x + 0.2401*P5x, 0.0081*P1y + 0.0756*P2y + 0.2646*P3y + 0.4116*P4y + 0.2401*P5y),
list(0.00614656*P1x + 0.0632217*P2x + 0.243855*P3x + 0.418038*P4x + 0.268739*P5x, 0.00614656*P1y + 0.0632217*P2y + 0.243855*P3y + 0.418038*P4y + 0.268739*P5y),
list(0.00456976*P1x + 0.052025*P2x + 0.222107*P3x + 0.421433*P4x + 0.299866*P5x, 0.00456976*P1y + 0.052025*P2y + 0.222107*P3y + 0.421433*P4y + 0.299866*P5y),
list(0.00331776*P1x + 0.042025*P2x + 0.199619*P3x + 0.421417*P4x + 0.333622*P5x, 0.00331776*P1y + 0.042025*P2y + 0.199619*P3y + 0.421417*P4y + 0.333622*P5y),
list(0.00234256*P1x + 0.0332218*P2x + 0.176679*P3x + 0.417606*P4x + 0.370151*P5x, 0.00234256*P1y + 0.0332218*P2y + 0.176679*P3y + 0.417606*P4y + 0.370151*P5y),
list(0.0016*P1x + 0.0256*P2x + 0.1536*P3x + 0.4096*P4x + 0.4096*P5x, 0.0016*P1y + 0.0256*P2y + 0.1536*P3y + 0.4096*P4y + 0.4096*P5y),
list(0.00104976*P1x + 0.019129*P2x + 0.130715*P3x + 0.396985*P4x + 0.452122*P5x, 0.00104976*P1y + 0.019129*P2y + 0.130715*P3y + 0.396985*P4y + 0.452122*P5y),
list(0.00065536*P1x + 0.0137626*P2x + 0.10838*P3x + 0.379331*P4x + 0.497871*P5x, 0.00065536*P1y + 0.0137626*P2y + 0.10838*P3y + 0.379331*P4y + 0.497871*P5y),
list(0.00038416*P1x + 0.00943936*P2x + 0.0869769*P3x + 0.356191*P4x + 0.547008*P5x, 0.00038416*P1y + 0.00943936*P2y + 0.0869769*P3y + 0.356191*P4y + 0.547008*P5y),
list(0.00020736*P1x + 0.00608256*P2x + 0.0669082*P3x + 0.327107*P4x + 0.599695*P5x, 0.00020736*P1y + 0.00608256*P2y + 0.0669082*P3y + 0.327107*P4y + 0.599695*P5y),
list(0.0001*P1x + 0.0036*P2x + 0.0486*P3x + 0.2916*P4x + 0.6561*P5x, 0.0001*P1y + 0.0036*P2y + 0.0486*P3y + 0.2916*P4y + 0.6561*P5y),
list(4.096e-005*P1x + 0.00188416*P2x + 0.0325017*P3x + 0.24918*P4x + 0.716393*P5x, 4.096e-005*P1y + 0.00188416*P2y + 0.0325017*P3y + 0.24918*P4y + 0.716393*P5y),
list(1.296e-005*P1x + 0.00081216*P2x + 0.0190858*P3x + 0.19934*P4x + 0.780749*P5x, 1.296e-005*P1y + 0.00081216*P2y + 0.0190858*P3y + 0.19934*P4y + 0.780749*P5y),
list(2.56001e-006*P1x + 0.00024576*P2x + 0.00884737*P3x + 0.141558*P4x + 0.849346*P5x, 2.56001e-006*P1y + 0.00024576*P2y + 0.00884737*P3y + 0.141558*P4y + 0.849346*P5y),
list(P5x, P5y)
)

And going crazy, with MetaBezier(20, 100)
proc/Bezier20atic(list/Points)
// This input takes a multidimensional list of length 20 and depth 2. That is, it takes
// 20 lists where the first element of these lists is the x coordinate, and the second
// element is the y coordinate.

var
P1x = Points[1][1]
P1y = Points[1][2]
P2x = Points[2][1]
P2y = Points[2][2]
P3x = Points[3][1]
P3y = Points[3][2]
P4x = Points[4][1]
P4y = Points[4][2]
P5x = Points[5][1]
P5y = Points[5][2]
P6x = Points[6][1]
P6y = Points[6][2]
P7x = Points[7][1]
P7y = Points[7][2]
P8x = Points[8][1]
P8y = Points[8][2]
P9x = Points[9][1]
P9y = Points[9][2]
P10x = Points[10][1]
P10y = Points[10][2]
P11x = Points[11][1]
P11y = Points[11][2]
P12x = Points[12][1]
P12y = Points[12][2]
P13x = Points[13][1]
P13y = Points[13][2]
P14x = Points[14][1]
P14y = Points[14][2]
P15x = Points[15][1]
P15y = Points[15][2]
P16x = Points[16][1]
P16y = Points[16][2]
P17x = Points[17][1]
P17y = Points[17][2]
P18x = Points[18][1]
P18y = Points[18][2]
P19x = Points[19][1]
P19y = Points[19][2]
P20x = Points[20][1]
P20y = Points[20][2]

// Populate the return list and send it back.
return list(
list(P1x, P1y),
list(0.826169*P1x + 0.158558*P2x + 0.0144143*P3x + 0.000825063*P4x + 3.33359e-005*P5x + 1.01018e-006*P6x + 2.38089e-008*P7x + 4.46632e-010*P8x + 6.76715e-012*P9x + 8.3545e-014*P10x + 8.43889e-016*P11x + 6.97429e-018*P12x + 4.69649e-020*P13x + 2.55442e-022*P14x + 1.10581e-024*P15x + 3.72327e-027*P16x + 9.40219e-030*P17x + 1.67597e-032*P18x + 1.881e-035*P19x + 1e-038*P20x, 0.826169*P1y + 0.158558*P2y + 0.0144143*P3y + 0.000825063*P4y + 3.33359e-005*P5y + 1.01018e-006*P6y + 2.38089e-008*P7y + 4.46632e-010*P8y + 6.76715e-012*P9y + 8.3545e-014*P10y + 8.43889e-016*P11y + 6.97429e-018*P12y + 4.69649e-020*P13y + 2.55442e-022*P14y + 1.10581e-024*P15y + 3.72327e-027*P16y + 9.40219e-030*P17y + 1.67597e-032*P18y + 1.881e-035*P19y + 1e-038*P20y),
list(0.681233*P1x + 0.264152*P2x + 0.0485176*P3x + 0.00561088*P4x + 0.000458031*P5x + 2.80427e-005*P6x + 1.33537e-006*P7x + 5.06116e-008*P8x + 1.54933e-009*P9x + 3.86455e-011*P10x + 7.88684e-013*P11x + 1.31691e-014*P12x + 1.79172e-016*P13x + 1.96892e-018*P14x + 1.72209e-020*P15x + 1.17149e-022*P16x + 5.97698e-025*P17x + 2.15257e-027*P18x + 4.88112e-030*P19x + 5.24288e-033*P20x, 0.681233*P1y + 0.264152*P2y + 0.0485176*P3y + 0.00561088*P4y + 0.000458031*P5y + 2.80427e-005*P6y + 1.33537e-006*P7y + 5.06116e-008*P8y + 1.54933e-009*P9y + 3.86455e-011*P10y + 7.88684e-013*P11y + 1.31691e-014*P12y + 1.79172e-016*P13y + 1.96892e-018*P14y + 1.72209e-020*P15y + 1.17149e-022*P16y + 5.97698e-025*P17y + 2.15257e-027*P18y + 4.88112e-030*P19y + 5.24288e-033*P20y),
list(0.560613*P1x + 0.329432*P2x + 0.0916977*P3x + 0.0160707*P4x + 0.00198813*P5x + 0.000184466*P6x + 1.3312e-005*P7x + 7.64604e-007*P8x + 3.54713e-008*P9x + 1.34084e-009*P10x + 4.14693e-011*P11x + 1.04936e-012*P12x + 2.16364e-014*P13x + 3.6032e-016*P14x + 4.77597e-018*P15x + 4.92368e-020*P16x + 3.80697e-022*P17x + 2.07779e-024*P18x + 7.14016e-027*P19x + 1.16226e-029*P20x, 0.560613*P1y + 0.329432*P2y + 0.0916977*P3y + 0.0160707*P4y + 0.00198813*P5y + 0.000184466*P6y + 1.3312e-005*P7y + 7.64604e-007*P8y + 3.54713e-008*P9y + 1.34084e-009*P10y + 4.14693e-011*P11y + 1.04936e-012*P12y + 2.16364e-014*P13y + 3.6032e-016*P14y + 4.77597e-018*P15y + 4.92368e-020*P16y + 3.80697e-022*P17y + 2.07779e-024*P18y + 7.14016e-027*P19y + 1.16226e-029*P20y),
list(0.460419*P1x + 0.364498*P2x + 0.136687*P3x + 0.0322733*P4x + 0.00537888*P5x + 0.00067236*P6x + 6.53684e-005*P7x + 5.05827e-006*P8x + 3.16142e-007*P9x + 1.60998e-008*P10x + 6.70825e-010*P11x + 2.2869e-011*P12x + 6.35251e-013*P13x + 1.42524e-014*P14x + 2.54508e-016*P15x + 3.53483e-018*P16x + 3.68211e-020*P17x + 2.70744e-022*P18x + 1.25344e-024*P19x + 2.74878e-027*P20x, 0.460419*P1y + 0.364498*P2y + 0.136687*P3y + 0.0322733*P4y + 0.00537888*P5y + 0.00067236*P6y + 6.53684e-005*P7y + 5.05827e-006*P8y + 3.16142e-007*P9y + 1.60998e-008*P10y + 6.70825e-010*P11y + 2.2869e-011*P12y + 6.35251e-013*P13y + 1.42524e-014*P14y + 2.54508e-016*P15y + 3.53483e-018*P16y + 3.68211e-020*P17y + 2.70744e-022*P18y + 1.25344e-024*P19y + 2.74878e-027*P20y),
list(0.377354*P1x + 0.377354*P2x + 0.178746*P3x + 0.0533103*P4x + 0.0112232*P5x + 0.00177209*P6x + 0.000217625*P7x + 2.12716e-005*P8x + 1.67934e-006*P9x + 1.08028e-007*P10x + 5.68566e-009*P11x + 2.44837e-010*P12x + 8.59078e-012*P13x + 2.43463e-013*P14x + 5.49165e-015*P15x + 9.63448e-017*P16x + 1.26769e-018*P17x + 1.17743e-020*P18x + 6.88553e-023*P19x + 1.90735e-025*P20x, 0.377354*P1y + 0.377354*P2y + 0.178746*P3y + 0.0533103*P4y + 0.0112232*P5y + 0.00177209*P6y + 0.000217625*P7y + 2.12716e-005*P8y + 1.67934e-006*P9y + 1.08028e-007*P10y + 5.68566e-009*P11y + 2.44837e-010*P12y + 8.59078e-012*P13y + 2.43463e-013*P14y + 5.49165e-015*P15y + 9.63448e-017*P16y + 1.26769e-018*P17y + 1.17743e-020*P18y + 6.88553e-023*P19y + 1.90735e-025*P20y),
list(0.308624*P1x + 0.374288*P2x + 0.215017*P3x + 0.077772*P4x + 0.0198567*P5x + 0.00380234*P6x + 0.000566306*P7x + 6.71305e-005*P8x + 6.42739e-006*P9x + 5.01428e-007*P10x + 3.2006e-008*P11x + 1.67149e-009*P12x + 7.11274e-011*P13x + 2.44464e-012*P14x + 6.68747e-014*P15x + 1.42287e-015*P16x + 2.27053e-017*P17x + 2.55754e-019*P18x + 1.81386e-021*P19x + 6.09359e-024*P20x, 0.308624*P1y + 0.374288*P2y + 0.215017*P3y + 0.077772*P4y + 0.0198567*P5y + 0.00380234*P6y + 0.000566306*P7y + 6.71305e-005*P8y + 6.42739e-006*P9y + 5.01428e-007*P10y + 3.2006e-008*P11y + 1.67149e-009*P12y + 7.11274e-011*P13y + 2.44464e-012*P14y + 6.68747e-014*P15y + 1.42287e-015*P16y + 2.27053e-017*P17y + 2.55754e-019*P18y + 1.81386e-021*P19y + 6.09359e-024*P20y),
list(0.25187*P1x + 0.360201*P2x + 0.244007*P3x + 0.104075*P4x + 0.0313343*P5x + 0.00707549*P6x + 0.00124265*P7x + 0.000173704*P8x + 1.96117e-005*P9x + 1.80418e-006*P10x + 1.35799e-007*P11x + 8.36297e-009*P12x + 4.19647e-010*P13x + 1.7008e-011*P14x + 5.48646e-013*P15x + 1.37653e-014*P16x + 2.59025e-016*P17x + 3.44056e-018*P18x + 2.87741e-020*P19x + 1.13989e-022*P20x, 0.25187*P1y + 0.360201*P2y + 0.244007*P3y + 0.104075*P4y + 0.0313343*P5y + 0.00707549*P6y + 0.00124265*P7y + 0.000173704*P8y + 1.96117e-005*P9y + 1.80418e-006*P10y + 1.35799e-007*P11y + 8.36297e-009*P12y + 4.19647e-010*P13y + 1.7008e-011*P14y + 5.48646e-013*P15y + 1.37653e-014*P16y + 2.59025e-016*P17y + 3.44056e-018*P18y + 2.87741e-020*P19y + 1.13989e-022*P20y),
list(0.205102*P1x + 0.338863*P2x + 0.265197*P3x + 0.130677*P4x + 0.0454529*P5x + 0.0118573*P6x + 0.00240582*P7x + 0.000388518*P8x + 5.06762e-005*P9x + 5.38588e-006*P10x + 4.68337e-007*P11x + 3.33204e-008*P12x + 1.93162e-009*P13x + 9.04437e-011*P14x + 3.37057e-012*P15x + 9.76978e-014*P16x + 2.12387e-015*P17x + 3.25913e-017*P18x + 3.14892e-019*P19x + 1.44115e-021*P20x, 0.205102*P1y + 0.338863*P2y + 0.265197*P3y + 0.130677*P4y + 0.0454529*P5y + 0.0118573*P6y + 0.00240582*P7y + 0.000388518*P8y + 5.06762e-005*P9y + 5.38588e-006*P10y + 4.68337e-007*P11y + 3.33204e-008*P12y + 1.93162e-009*P13y + 9.04437e-011*P14y + 3.37057e-012*P15y + 9.76978e-014*P16y + 2.12387e-015*P17y + 3.25913e-017*P18y + 3.14892e-019*P19y + 1.44115e-021*P20y),
list(0.166643*P1x + 0.313142*P2x + 0.278731*P3x + 0.156212*P4x + 0.061798*P5x + 0.0183357*P6x + 0.00423131*P7x + 0.000777179*P8x + 0.000115296*P9x + 1.39369e-005*P10x + 1.37837e-006*P11x + 1.11537e-007*P12x + 7.35406e-009*P13x + 3.91636e-010*P14x + 1.66e-011*P15x + 5.47252e-013*P16x + 1.3531e-014*P17x + 2.36158e-016*P18x + 2.59514e-018*P19x + 1.35085e-020*P20x, 0.166643*P1y + 0.313142*P2y + 0.278731*P3y + 0.156212*P4y + 0.061798*P5y + 0.0183357*P6y + 0.00423131*P7y + 0.000777179*P8y + 0.000115296*P9y + 1.39369e-005*P10y + 1.37837e-006*P11y + 1.11537e-007*P12y + 7.35406e-009*P13y + 3.91636e-010*P14y + 1.66e-011*P15y + 5.47252e-013*P16y + 1.3531e-014*P17y + 2.36158e-016*P18y + 2.59514e-018*P19y + 1.35085e-020*P20y),
list(0.135085*P1x + 0.28518*P2x + 0.28518*P3x + 0.179558*P4x + 0.0798034*P5x + 0.0266011*P6x + 0.00689659*P7x + 0.00142311*P8x + 0.000237184*P9x + 3.22102e-005*P10x + 3.57891e-006*P11x + 3.25356e-007*P12x + 2.41004e-008*P13x + 1.44191e-009*P14x + 6.86622e-011*P15x + 2.54304e-012*P16x + 7.06401e-014*P17x + 1.3851e-015*P18x + 1.71e-017*P19x + 1e-019*P20x, 0.135085*P1y + 0.28518*P2y + 0.28518*P3y + 0.179558*P4y + 0.0798034*P5y + 0.0266011*P6y + 0.00689659*P7y + 0.00142311*P8y + 0.000237184*P9y + 3.22102e-005*P10y + 3.57891e-006*P11y + 3.25356e-007*P12y + 2.41004e-008*P13y + 1.44191e-009*P14y + 6.86622e-011*P15y + 2.54304e-012*P16y + 7.06401e-014*P17y + 1.3851e-015*P18y + 1.71e-017*P19y + 1e-019*P20y),
list(0.109247*P1x + 0.256547*P2x + 0.285372*P3x + 0.199867*P4x + 0.0988108*P5x + 0.0366377*P6x + 0.0105659*P7x + 0.00242525*P8x + 0.000449624*P9x + 6.79208e-005*P10x + 8.3947e-006*P11x + 8.48903e-007*P12x + 6.9947e-008*P13x + 4.65507e-009*P14x + 2.46577e-010*P15x + 1.01586e-011*P16x + 3.13889e-013*P17x + 6.84623e-015*P18x + 9.40182e-017*P19x + 6.11591e-019*P20x, 0.109247*P1y + 0.256547*P2y + 0.285372*P3y + 0.199867*P4y + 0.0988108*P5y + 0.0366377*P6y + 0.0105659*P7y + 0.00242525*P8y + 0.000449624*P9y + 6.79208e-005*P10y + 8.3947e-006*P11y + 8.48903e-007*P12y + 6.9947e-008*P13y + 4.65507e-009*P14y + 2.46577e-010*P15y + 1.01586e-011*P16y + 3.13889e-013*P17y + 6.84623e-015*P18y + 9.40182e-017*P19y + 6.11591e-019*P20y),
list(0.0881395*P1x + 0.228362*P2x + 0.280262*P3x + 0.216566*P4x + 0.118127*P5x + 0.0483246*P6x + 0.015376*P7x + 0.00389393*P8x + 0.000796485*P9x + 0.000132748*P10x + 1.81019e-005*P11x + 2.01964e-006*P12x + 1.83603e-007*P13x + 1.34814e-008*P14x + 7.87872e-010*P15x + 3.58124e-011*P16x + 1.22088e-012*P17x + 2.93794e-014*P18x + 4.45142e-016*P19x + 3.1948e-018*P20x, 0.0881395*P1y + 0.228362*P2y + 0.280262*P3y + 0.216566*P4y + 0.118127*P5y + 0.0483246*P6y + 0.015376*P7y + 0.00389393*P8y + 0.000796485*P9y + 0.000132748*P10y + 1.81019e-005*P11y + 2.01964e-006*P12y + 1.83603e-007*P13y + 1.34814e-008*P14y + 7.87872e-010*P15y + 3.58124e-011*P16y + 1.22088e-012*P17y + 2.93794e-014*P18y + 4.45142e-016*P19y + 3.1948e-018*P20y),
list(0.0709359*P1x + 0.201393*P2x + 0.270838*P3x + 0.229331*P4x + 0.137071*P5x + 0.0614457*P6x + 0.0214236*P7x + 0.00594513*P8x + 0.00133253*P9x + 0.000243361*P10x + 3.63643e-005*P11x + 4.44579e-006*P12x + 4.42876e-007*P13x + 3.56337e-008*P14x + 2.28196e-009*P15x + 1.13661e-010*P16x + 4.24595e-012*P17x + 1.11962e-013*P18x + 1.85889e-015*P19x + 1.46192e-017*P20x, 0.0709359*P1y + 0.201393*P2y + 0.270838*P3y + 0.229331*P4y + 0.137071*P5y + 0.0614457*P6y + 0.0214236*P7y + 0.00594513*P8y + 0.00133253*P9y + 0.000243361*P10y + 3.63643e-005*P11y + 4.44579e-006*P12y + 4.42876e-007*P13y + 3.56337e-008*P14y + 2.28196e-009*P15y + 1.13661e-010*P16y + 4.24595e-012*P17y + 1.11962e-013*P18y + 1.85889e-015*P19y + 1.46192e-017*P20y),
list(0.056947*P1x + 0.176138*P2x + 0.258063*P3x + 0.238058*P4x + 0.155015*P5x + 0.0757048*P6x + 0.0287561*P7x + 0.0086937*P8x + 0.00212288*P9x + 0.000422382*P10x + 6.87599e-005*P11x + 9.15829e-006*P12x + 9.93923e-007*P13x + 8.71239e-008*P14x + 6.07841e-009*P15x + 3.29836e-010*P16x + 1.34236e-011*P17x + 3.85629e-013*P18x + 6.9752e-015*P19x + 5.9763e-017*P20x, 0.056947*P1y + 0.176138*P2y + 0.258063*P3y + 0.238058*P4y + 0.155015*P5y + 0.0757048*P6y + 0.0287561*P7y + 0.0086937*P8y + 0.00212288*P9y + 0.000422382*P10y + 6.87599e-005*P11y + 9.15829e-006*P12y + 9.93923e-007*P13y + 8.71239e-008*P14y + 6.07841e-009*P15y + 3.29836e-010*P16y + 1.34236e-011*P17y + 3.85629e-013*P18y + 6.9752e-015*P19y + 5.9763e-017*P20y),
list(0.0455995*P1x + 0.152892*P2x + 0.242829*P3x + 0.242829*P4x + 0.171409*P5x + 0.0907458*P6x + 0.0373659*P7x + 0.012246*P8x + 0.00324158*P9x + 0.000699165*P10x + 0.000123382*P11x + 1.78145e-005*P12x + 2.09582e-006*P13x + 1.99151e-007*P14x + 1.50618e-008*P15x + 8.8599e-010*P16x + 3.90878e-011*P17x + 1.21727e-012*P18x + 2.3868e-014*P19x + 2.21684e-016*P20x, 0.0455995*P1y + 0.152892*P2y + 0.242829*P3y + 0.242829*P4y + 0.171409*P5y + 0.0907458*P6y + 0.0373659*P7y + 0.012246*P8y + 0.00324158*P9y + 0.000699165*P10y + 0.000123382*P11y + 1.78145e-005*P12y + 2.09582e-006*P13y + 1.99151e-007*P14y + 1.50618e-008*P15y + 8.8599e-010*P16y + 3.90878e-011*P17y + 1.21727e-012*P18y + 2.3868e-014*P19y + 2.21684e-016*P20y),
list(0.0364172*P1x + 0.131796*P2x + 0.225935*P3x + 0.243867*P4x + 0.185803*P5x + 0.106173*P6x + 0.0471881*P7x + 0.0166924*P8x + 0.00476925*P9x + 0.0011103*P10x + 0.000211486*P11x + 3.29589e-005*P12x + 4.18525e-006*P13x + 4.29257e-007*P14x + 3.50414e-008*P15x + 2.22485e-009*P16x + 1.05945e-010*P17x + 3.56118e-012*P18x + 7.53689e-014*P19x + 7.55578e-016*P20x, 0.0364172*P1y + 0.131796*P2y + 0.225935*P3y + 0.243867*P4y + 0.185803*P5y + 0.106173*P6y + 0.0471881*P7y + 0.0166924*P8y + 0.00476925*P9y + 0.0011103*P10y + 0.000211486*P11y + 3.29589e-005*P12y + 4.18525e-006*P13y + 4.29257e-007*P14y + 3.50414e-008*P15y + 2.22485e-009*P16y + 1.05945e-010*P17y + 3.56118e-012*P18y + 7.53689e-014*P19y + 7.55578e-016*P20y),
list(0.0290057*P1x + 0.112878*P2x + 0.208076*P3x + 0.241502*P4x + 0.197857*P5x + 0.121575*P6x + 0.0581019*P7x + 0.0221007*P8x + 0.00678998*P9x + 0.00169977*P10x + 0.000348145*P11x + 5.8342e-005*P12x + 7.96638e-006*P13x + 8.7859e-007*P14x + 7.71224e-008*P15x + 5.26538e-009*P16x + 2.69613e-010*P17x + 9.74505e-012*P18x + 2.21775e-013*P19x + 2.39072e-015*P20x, 0.0290057*P1y + 0.112878*P2y + 0.208076*P3y + 0.241502*P4y + 0.197857*P5y + 0.121575*P6y + 0.0581019*P7y + 0.0221007*P8y + 0.00678998*P9y + 0.00169977*P10y + 0.000348145*P11y + 5.8342e-005*P12y + 7.96638e-006*P13y + 8.7859e-007*P14y + 7.71224e-008*P15y + 5.26538e-009*P16y + 2.69613e-010*P17y + 9.74505e-012*P18y + 2.21775e-013*P19y + 2.39072e-015*P20y),
list(0.023039*P1x + 0.0960894*P2x + 0.189835*P3x + 0.236136*P4x + 0.207339*P5x + 0.136541*P6x + 0.0699354*P7x + 0.0285102*P8x + 0.00938752*P9x + 0.0025186*P10x + 0.000552864*P11x + 9.92949e-005*P12x + 1.4531e-005*P13x + 1.71754e-006*P14x + 1.61581e-007*P15x + 1.1823e-008*P16x + 6.48822e-010*P17x + 2.51337e-011*P18x + 6.13018e-013*P19x + 7.08236e-015*P20x, 0.023039*P1y + 0.0960894*P2y + 0.189835*P3y + 0.236136*P4y + 0.207339*P5y + 0.136541*P6y + 0.0699354*P7y + 0.0285102*P8y + 0.00938752*P9y + 0.0025186*P10y + 0.000552864*P11y + 9.92949e-005*P12y + 1.4531e-005*P13y + 1.71754e-006*P14y + 1.61581e-007*P15y + 1.1823e-008*P16y + 6.48822e-010*P17y + 2.51337e-011*P18y + 6.13018e-013*P19y + 7.08236e-015*P20y),
list(0.018248*P1x + 0.0813275*P2x + 0.171691*P3x + 0.228215*P4x + 0.214128*P5x + 0.150683*P6x + 0.0824724*P7x + 0.0359271*P8x + 0.012641*P9x + 0.00362411*P10x + 0.000850099*P11x + 0.00016315*P12x + 2.55132e-005*P13x + 3.22247e-006*P14x + 3.23952e-007*P15x + 2.53296e-008*P16x + 1.48538e-009*P17x + 6.14861e-011*P18x + 1.60252e-012*P19x + 1.97842e-014*P20x, 0.018248*P1y + 0.0813275*P2y + 0.171691*P3y + 0.228215*P4y + 0.214128*P5y + 0.150683*P6y + 0.0824724*P7y + 0.0359271*P8y + 0.012641*P9y + 0.00362411*P10y + 0.000850099*P11y + 0.00016315*P12y + 2.55132e-005*P13y + 3.22247e-006*P14y + 3.23952e-007*P15y + 2.53296e-008*P16y + 1.48538e-009*P17y + 6.14861e-011*P18y + 1.60252e-012*P19y + 1.97842e-014*P20y),
list(0.0144115*P1x + 0.0684547*P2x + 0.154023*P3x + 0.218199*P4x + 0.218199*P5x + 0.16365*P6x + 0.0954623*P7x + 0.0443218*P8x + 0.0166207*P9x + 0.00507854*P10x + 0.00126963*P11x + 0.000259698*P12x + 4.3283e-005*P13x + 5.82655e-006*P14x + 6.24274e-007*P15x + 5.20228e-008*P16x + 3.25143e-009*P17x + 1.43445e-010*P18x + 3.98459e-012*P19x + 5.24288e-014*P20x, 0.0144115*P1y + 0.0684547*P2y + 0.154023*P3y + 0.218199*P4y + 0.218199*P5y + 0.16365*P6y + 0.0954623*P7y + 0.0443218*P8y + 0.0166207*P9y + 0.00507854*P10y + 0.00126963*P11y + 0.000259698*P12y + 4.3283e-005*P13y + 5.82655e-006*P14y + 6.24274e-007*P15y + 5.20228e-008*P16y + 3.25143e-009*P17y + 1.43445e-010*P18y + 3.98459e-012*P19y + 5.24288e-014*P20y),
list(0.0113479*P1x + 0.057314*P2x + 0.137118*P3x + 0.206545*P4x + 0.219618*P5x + 0.175138*P6x + 0.10863*P7x + 0.0536275*P8x + 0.0213831*P9x + 0.00694725*P10x + 0.00184674*P11x + 0.00040165*P12x + 7.11784e-005*P13x + 1.01881e-005*P14x + 1.16067e-006*P15x + 1.02845e-007*P16x + 6.83461e-009*P17x + 3.20611e-010*P18x + 9.46952e-012*P19x + 1.32485e-013*P20x, 0.0113479*P1y + 0.057314*P2y + 0.137118*P3y + 0.206545*P4y + 0.219618*P5y + 0.175138*P6y + 0.10863*P7y + 0.0536275*P8y + 0.0213831*P9y + 0.00694725*P10y + 0.00184674*P11y + 0.00040165*P12y + 7.11784e-005*P13y + 1.01881e-005*P14y + 1.16067e-006*P15y + 1.02845e-007*P16y + 6.83461e-009*P17y + 3.20611e-010*P18y + 9.46952e-012*P19y + 1.32485e-013*P20y),
list(0.00890835*P1x + 0.0477396*P2x + 0.121185*P3x + 0.193689*P4x + 0.218521*P5x + 0.184902*P6x + 0.121688*P7x + 0.0637413*P8x + 0.0269675*P9x + 0.00929648*P10x + 0.00262208*P11x + 0.000605096*P12x + 0.000113779*P13x + 1.728e-005*P14x + 2.08879e-006*P15x + 1.96382e-007*P16x + 1.38475e-008*P17x + 6.89241e-010*P18x + 2.16001e-011*P19x + 3.2065e-013*P20x, 0.00890835*P1y + 0.0477396*P2y + 0.121185*P3y + 0.193689*P4y + 0.218521*P5y + 0.184902*P6y + 0.121688*P7y + 0.0637413*P8y + 0.0269675*P9y + 0.00929648*P10y + 0.00262208*P11y + 0.000605096*P12y + 0.000113779*P13y + 1.728e-005*P14y + 2.08879e-006*P15y + 1.96382e-007*P16y + 1.38475e-008*P17y + 6.89241e-010*P18y + 2.16001e-011*P19y + 3.2065e-013*P20y),
list(0.00697146*P1x + 0.0395653*P2x + 0.106364*P3x + 0.180036*P4x + 0.215108*P5x + 0.192759*P6x + 0.134347*P7x + 0.0745265*P8x + 0.0333917*P9x + 0.0121906*P10x + 0.00364136*P11x + 0.000889919*P12x + 0.000177213*P13x + 2.85028e-005*P14x + 3.64879e-006*P15x + 3.63299e-007*P16x + 2.71295e-008*P17x + 1.43005e-009*P18x + 4.74619e-011*P19x + 7.46155e-013*P20x, 0.00697146*P1y + 0.0395653*P2y + 0.106364*P3y + 0.180036*P4y + 0.215108*P5y + 0.192759*P6y + 0.134347*P7y + 0.0745265*P8y + 0.0333917*P9y + 0.0121906*P10y + 0.00364136*P11y + 0.000889919*P12y + 0.000177213*P13y + 2.85028e-005*P14y + 3.64879e-006*P15y + 3.63299e-007*P16y + 2.71295e-008*P17y + 1.43005e-009*P18y + 4.74619e-011*P19y + 7.46155e-013*P20y),
list(0.00543824*P1x + 0.0326294*P2x + 0.0927363*P3x + 0.165949*P4x + 0.20962*P5x + 0.198587*P6x + 0.146327*P7x + 0.0858161*P8x + 0.0406497*P9x + 0.0156894*P10x + 0.00495454*P11x + 0.00128012*P12x + 0.000269499*P13x + 4.58257e-005*P14x + 6.20198e-006*P15x + 6.5284e-007*P16x + 5.154e-008*P17x + 2.8722e-009*P18x + 1.00779e-010*P19x + 1.67499e-012*P20x, 0.00543824*P1y + 0.0326294*P2y + 0.0927363*P3y + 0.165949*P4y + 0.20962*P5y + 0.198587*P6y + 0.146327*P7y + 0.0858161*P8y + 0.0406497*P9y + 0.0156894*P10y + 0.00495454*P11y + 0.00128012*P12y + 0.000269499*P13y + 4.58257e-005*P14y + 6.20198e-006*P15y + 6.5284e-007*P16y + 5.154e-008*P17y + 2.8722e-009*P18y + 1.00779e-010*P19y + 1.67499e-012*P20y),
list(0.00422828*P1x + 0.0267791*P2x + 0.0803374*P3x + 0.151748*P4x + 0.202331*P5x + 0.202331*P6x + 0.157369*P7x + 0.0974187*P8x + 0.0487094*P9x + 0.0198446*P10x + 0.00661485*P11x + 0.00180405*P12x + 0.0004009*P13x + 7.19564e-005*P14x + 1.02795e-005*P15x + 1.14217e-006*P16x + 9.51804e-008*P17x + 5.59885e-009*P18x + 2.07365e-010*P19x + 3.63798e-012*P20x, 0.00422828*P1y + 0.0267791*P2y + 0.0803374*P3y + 0.151748*P4y + 0.202331*P5y + 0.202331*P6y + 0.157369*P7y + 0.0974187*P8y + 0.0487094*P9y + 0.0198446*P10y + 0.00661485*P11y + 0.00180405*P12y + 0.0004009*P13y + 7.19564e-005*P14y + 1.02795e-005*P15y + 1.14217e-006*P16y + 9.51804e-008*P17y + 5.59885e-009*P18y + 2.07365e-010*P19y + 3.63798e-012*P20y),
list(0.00327644*P1x + 0.0218725*P2x + 0.0691643*P3x + 0.137706*P4x + 0.193532*P5x + 0.203993*P6x + 0.167238*P7x + 0.109124*P8x + 0.0575114*P9x + 0.0246971*P10x + 0.00867736*P11x + 0.00249447*P12x + 0.000584291*P13x + 0.000110542*P14x + 1.66452e-005*P15x + 1.94944e-006*P16x + 1.71235e-007*P17x + 1.06171e-008*P18x + 4.14482e-010*P19x + 7.66467e-012*P20x, 0.00327644*P1y + 0.0218725*P2y + 0.0691643*P3y + 0.137706*P4y + 0.193532*P5y + 0.203993*P6y + 0.167238*P7y + 0.109124*P8y + 0.0575114*P9y + 0.0246971*P10y + 0.00867736*P11y + 0.00249447*P12y + 0.000584291*P13y + 0.000110542*P14y + 1.66452e-005*P15y + 1.94944e-006*P16y + 1.71235e-007*P17y + 1.06171e-008*P18y + 4.14482e-010*P19y + 7.66467e-012*P20y),
list(0.00253008*P1x + 0.0177799*P2x + 0.0591851*P3x + 0.124046*P4x + 0.183519*P5x + 0.203631*P6x + 0.175736*P7x + 0.120711*P8x + 0.06697*P9x + 0.0302741*P10x + 0.0111973*P11x + 0.00338846*P12x + 0.000835512*P13x + 0.000166398*P14x + 2.63762e-005*P15x + 3.25186e-006*P16x + 3.00686e-007*P17x + 1.96257e-008*P18x + 8.06537e-010*P19x + 1.57004e-011*P20x, 0.00253008*P1y + 0.0177799*P2y + 0.0591851*P3y + 0.124046*P4y + 0.183519*P5y + 0.203631*P6y + 0.175736*P7y + 0.120711*P8y + 0.06697*P9y + 0.0302741*P10y + 0.0111973*P11y + 0.00338846*P12y + 0.000835512*P13y + 0.000166398*P14y + 2.63762e-005*P15y + 3.25186e-006*P16y + 3.00686e-007*P17y + 1.96257e-008*P18y + 8.06537e-010*P19y + 1.57004e-011*P20y),
list(0.00194678*P1x + 0.0143846*P2x + 0.050346*P3x + 0.110948*P4x + 0.172585*P5x + 0.201349*P6x + 0.182706*P7x + 0.131954*P8x + 0.0769733*P9x + 0.0365861*P10x + 0.0142279*P11x + 0.00452707*P12x + 0.00117368*P13x + 0.000245771*P14x + 4.09619e-005*P15x + 5.30988e-006*P16x + 5.16238e-007*P17x + 3.54281e-008*P18x + 1.53084e-009*P19x + 3.1333e-011*P20x, 0.00194678*P1y + 0.0143846*P2y + 0.050346*P3y + 0.110948*P4y + 0.172585*P5y + 0.201349*P6y + 0.182706*P7y + 0.131954*P8y + 0.0769733*P9y + 0.0365861*P10y + 0.0142279*P11y + 0.00452707*P12y + 0.00117368*P13y + 0.000245771*P14y + 4.09619e-005*P15y + 5.30988e-006*P16y + 5.16238e-007*P17y + 3.54281e-008*P18y + 1.53084e-009*P19y + 3.1333e-011*P20y),
list(0.00149248*P1x + 0.0115825*P2x + 0.0425779*P3x + 0.0985489*P4x + 0.161009*P5x + 0.197293*P6x + 0.188031*P7x + 0.142631*P8x + 0.0873865*P9x + 0.0436249*P10x + 0.0178186*P11x + 0.00595475*P12x + 0.00162148*P13x + 0.00035662*P14x + 6.24265e-005*P15x + 8.49938e-006*P16x + 8.67894e-007*P17x + 6.25574e-008*P18x + 2.83907e-009*P19x + 6.10326e-011*P20x, 0.00149248*P1y + 0.0115825*P2y + 0.0425779*P3y + 0.0985489*P4y + 0.161009*P5y + 0.197293*P6y + 0.188031*P7y + 0.142631*P8y + 0.0873865*P9y + 0.0436249*P10y + 0.0178186*P11y + 0.00595475*P12y + 0.00162148*P13y + 0.00035662*P14y + 6.24265e-005*P15y + 8.49938e-006*P16y + 8.67894e-007*P17y + 6.25574e-008*P18y + 2.83907e-009*P19y + 6.10326e-011*P20y),
list(0.00113989*P1x + 0.00928196*P2x + 0.0358018*P3x + 0.0869473*P4x + 0.149053*P5x + 0.191639*P6x + 0.191639*P7x + 0.152529*P8x + 0.0980544*P9x + 0.0513618*P10x + 0.0220122*P11x + 0.00771857*P12x + 0.0022053*P13x + 0.000508917*P14x + 9.34745e-005*P15x + 1.33535e-005*P16x + 1.43073e-006*P17x + 1.08207e-007*P18x + 5.1527e-009*P19x + 1.16226e-010*P20x, 0.00113989*P1y + 0.00928196*P2y + 0.0358018*P3y + 0.0869473*P4y + 0.149053*P5y + 0.191639*P6y + 0.191639*P7y + 0.152529*P8y + 0.0980544*P9y + 0.0513618*P10y + 0.0220122*P11y + 0.00771857*P12y + 0.0022053*P13y + 0.000508917*P14y + 9.34745e-005*P15y + 1.33535e-005*P16y + 1.43073e-006*P17y + 1.08207e-007*P18y + 5.1527e-009*P19y + 1.16226e-010*P20y),
list(0.000867227*P1x + 0.00740285*P2x + 0.0299333*P3x + 0.0762069*P4x + 0.136952*P5x + 0.184587*P6x + 0.193504*P7x + 0.161454*P8x + 0.108806*P9x + 0.0597468*P10x + 0.0268428*P11x + 0.0098671*P12x + 0.00295536*P13x + 0.000714954*P14x + 0.000137662*P15x + 2.06161e-005*P16x + 2.31557e-006*P17x + 1.83588e-007*P18x + 9.16459e-009*P19x + 2.16707e-010*P20x, 0.000867227*P1y + 0.00740285*P2y + 0.0299333*P3y + 0.0762069*P4y + 0.136952*P5y + 0.184587*P6y + 0.193504*P7y + 0.161454*P8y + 0.108806*P9y + 0.0597468*P10y + 0.0268428*P11y + 0.0098671*P12y + 0.00295536*P13y + 0.000714954*P14y + 0.000137662*P15y + 2.06161e-005*P16y + 2.31557e-006*P17y + 1.83588e-007*P18y + 9.16459e-009*P19y + 2.16707e-010*P20y),
list(0.000657157*P1x + 0.00587576*P2x + 0.0248856*P3x + 0.0663615*P4x + 0.124916*P5x + 0.176352*P6x + 0.193641*P7x + 0.169233*P8x + 0.119458*P9x + 0.068708*P10x + 0.0323332*P11x + 0.0124491*P12x + 0.00390561*P13x + 0.000989657*P14x + 0.000199595*P15x + 3.1309e-005*P16x + 3.68341e-006*P17x + 3.05889e-007*P18x + 1.59942e-008*P19x + 3.96141e-010*P20x, 0.000657157*P1y + 0.00587576*P2y + 0.0248856*P3y + 0.0663615*P4y + 0.124916*P5y + 0.176352*P6y + 0.193641*P7y + 0.169233*P8y + 0.119458*P9y + 0.068708*P10y + 0.0323332*P11y + 0.0124491*P12y + 0.00390561*P13y + 0.000989657*P14y + 0.000199595*P15y + 3.1309e-005*P16y + 3.68341e-006*P17y + 3.05889e-007*P18y + 1.59942e-008*P19y + 3.96141e-010*P20y),
list(0.00049593*P1x + 0.00464102*P2x + 0.0205729*P3x + 0.0574198*P4x + 0.113126*P5x + 0.167156*P6x + 0.192105*P7x + 0.17572*P8x + 0.129823*P9x + 0.0781523*P10x + 0.0384929*P11x + 0.0155121*P12x + 0.00509352*P13x + 0.00135086*P14x + 0.000285151*P15x + 4.68158e-005*P16x + 5.76463e-006*P17x + 5.01052e-007*P18x + 2.74208e-008*P19x + 7.10829e-010*P20x, 0.00049593*P1y + 0.00464102*P2y + 0.0205729*P3y + 0.0574198*P4y + 0.113126*P5y + 0.167156*P6y + 0.192105*P7y + 0.17572*P8y + 0.129823*P9y + 0.0781523*P10y + 0.0384929*P11y + 0.0155121*P12y + 0.00509352*P13y + 0.00135086*P14y + 0.000285151*P15y + 4.68158e-005*P16y + 5.76463e-006*P17y + 5.01052e-007*P18y + 2.74208e-008*P19y + 7.10829e-010*P20y),
list(0.000372679*P1x + 0.00364773*P2x + 0.0169122*P3x + 0.04937*P4x + 0.101732*P5x + 0.157222*P6x + 0.188985*P7x + 0.180803*P8x + 0.139712*P9x + 0.0879666*P10x + 0.0453161*P11x + 0.0191002*P12x + 0.00655966*P13x + 0.00181958*P14x + 0.000401726*P15x + 6.89832e-005*P16x + 8.8842e-006*P17x + 8.07655e-007*P18x + 4.62294e-008*P19x + 1.25343e-009*P20x, 0.000372679*P1y + 0.00364773*P2y + 0.0169122*P3y + 0.04937*P4y + 0.101732*P5y + 0.157222*P6y + 0.188985*P7y + 0.180803*P8y + 0.139712*P9y + 0.0879666*P10y + 0.0453161*P11y + 0.0191002*P12y + 0.00655966*P13y + 0.00181958*P14y + 0.000401726*P15y + 6.89832e-005*P16y + 8.8842e-006*P17y + 8.07655e-007*P18y + 4.62294e-008*P19y + 1.25343e-009*P20y),
list(0.000278839*P1x + 0.00285274*P2x + 0.0138248*P3x + 0.0421834*P4x + 0.0908565*P5x + 0.146768*P6x + 0.184401*P7x + 0.184401*P8x + 0.148939*P9x + 0.0980199*P10x + 0.05278*P11x + 0.0232527*P12x + 0.00834713*P13x + 0.00242017*P14x + 0.000558501*P15x + 0.000100244*P16x + 1.34944e-005*P17x + 1.28227e-006*P18x + 7.6717e-008*P19x + 2.17417e-009*P20x, 0.000278839*P1y + 0.00285274*P2y + 0.0138248*P3y + 0.0421834*P4y + 0.0908565*P5y + 0.146768*P6y + 0.184401*P7y + 0.184401*P8y + 0.148939*P9y + 0.0980199*P10y + 0.05278*P11y + 0.0232527*P12y + 0.00834713*P13y + 0.00242017*P14y + 0.000558501*P15y + 0.000100244*P16y + 1.34944e-005*P17y + 1.28227e-006*P18y + 7.6717e-008*P19y + 2.17417e-009*P20y),
list(0.000207692*P1x + 0.00221971*P2x + 0.0112373*P3x + 0.0358188*P4x + 0.0805922*P5x + 0.135999*P6x + 0.178499*P7x + 0.186468*P8x + 0.157332*P9x + 0.108166*P10x + 0.0608434*P11x + 0.0280018*P12x + 0.0105007*P13x + 0.00318049*P14x + 0.000766726*P15x + 0.000143761*P16x + 2.02164e-005*P17x + 2.00678e-006*P18x + 1.25423e-007*P19x + 3.7132e-009*P20x, 0.000207692*P1y + 0.00221971*P2y + 0.0112373*P3y + 0.0358188*P4y + 0.0805922*P5y + 0.135999*P6y + 0.178499*P7y + 0.186468*P8y + 0.157332*P9y + 0.108166*P10y + 0.0608434*P11y + 0.0280018*P12y + 0.0105007*P13y + 0.00318049*P14y + 0.000766726*P15y + 0.000143761*P16y + 2.02164e-005*P17y + 2.00678e-006*P18y + 1.25423e-007*P19y + 3.7132e-009*P20y),
list(0.000153982*P1x + 0.00171825*P2x + 0.00908215*P3x + 0.0302258*P4x + 0.0710066*P5x + 0.125107*P6x + 0.171443*P7x + 0.186993*P8x + 0.164732*P9x + 0.118247*P10x + 0.0694466*P11x + 0.0333704*P12x + 0.0130657*P13x + 0.00413188*P14x + 0.00104*P15x + 0.000203597*P16x + 2.98932e-005*P17x + 3.09818e-006*P18x + 2.02174e-007*P19x + 6.24932e-009*P20x, 0.000153982*P1y + 0.00171825*P2y + 0.00908215*P3y + 0.0302258*P4y + 0.0710066*P5y + 0.125107*P6y + 0.171443*P7y + 0.186993*P8y + 0.164732*P9y + 0.118247*P10y + 0.0694466*P11y + 0.0333704*P12y + 0.0130657*P13y + 0.00413188*P14y + 0.00104*P15y + 0.000203597*P16y + 2.98932e-005*P17y + 3.09818e-006*P18y + 2.02174e-007*P19y + 6.24932e-009*P20y),
list(0.000113617*P1x + 0.00132308*P2x + 0.00729831*P3x + 0.0253479*P4x + 0.0621432*P5x + 0.114263*P6x + 0.163409*P7x + 0.186*P8x + 0.171*P9x + 0.128097*P10x + 0.0785109*P11x + 0.0393705*P12x + 0.0160869*P13x + 0.00530907*P14x + 0.00139455*P15x + 0.000284908*P16x + 4.36552e-005*P17x + 4.72172e-006*P18x + 3.21551e-007*P19x + 1.03726e-008*P20x, 0.000113617*P1y + 0.00132308*P2y + 0.00729831*P3y + 0.0253479*P4y + 0.0621432*P5y + 0.114263*P6y + 0.163409*P7y + 0.186*P8y + 0.171*P9y + 0.128097*P10y + 0.0785109*P11y + 0.0393705*P12y + 0.0160869*P13y + 0.00530907*P14y + 0.00139455*P15y + 0.000284908*P16y + 4.36552e-005*P17y + 4.72172e-006*P18y + 3.21551e-007*P19y + 1.03726e-008*P20y),
list(8.34194e-005*P1x + 0.00101334*P2x + 0.00583086*P3x + 0.0211249*P4x + 0.0540244*P5x + 0.103621*P6x + 0.154581*P7x + 0.183543*P8x + 0.176021*P9x + 0.137546*P10x + 0.0879393*P11x + 0.046001*P12x + 0.019607*P13x + 0.00674995*P14x + 0.00184952*P15x + 0.000394159*P16x + 6.30009e-005*P17x + 7.10811e-006*P18x + 5.04947e-007*P19x + 1.69913e-008*P20x, 8.34194e-005*P1y + 0.00101334*P2y + 0.00583086*P3y + 0.0211249*P4y + 0.0540244*P5y + 0.103621*P6y + 0.154581*P7y + 0.183543*P8y + 0.176021*P9y + 0.137546*P10y + 0.0879393*P11y + 0.046001*P12y + 0.019607*P13y + 0.00674995*P14y + 0.00184952*P15y + 0.000394159*P16y + 6.30009e-005*P17y + 7.10811e-006*P18y + 5.04947e-007*P19y + 1.69913e-008*P20y),
list(6.0936e-005*P1x + 0.000771856*P2x + 0.00463114*P3x + 0.0174954*P4x + 0.0466544*P5x + 0.0933088*P6x + 0.145147*P7x + 0.179706*P8x + 0.179706*P9x + 0.146427*P10x + 0.097618*P11x + 0.0532462*P12x + 0.023665*P13x + 0.00849512*P14x + 0.00242718*P15x + 0.000539373*P16x + 8.98954e-005*P17x + 1.05759e-005*P18x + 7.83402e-007*P19x + 2.74878e-008*P20x, 6.0936e-005*P1y + 0.000771856*P2y + 0.00463114*P3y + 0.0174954*P4y + 0.0466544*P5y + 0.0933088*P6y + 0.145147*P7y + 0.179706*P8y + 0.179706*P9y + 0.146427*P10y + 0.097618*P11y + 0.0532462*P12y + 0.023665*P13y + 0.00849512*P14y + 0.00242718*P15y + 0.000539373*P16y + 8.98954e-005*P17y + 1.05759e-005*P18y + 7.83402e-007*P19y + 2.74878e-008*P20y),
list(4.42781e-005*P1x + 0.000584621*P2x + 0.00365636*P3x + 0.0143982*P4x + 0.0400221*P5x + 0.0834359*P6x + 0.135289*P7x + 0.174598*P8x + 0.181996*P9x + 0.154577*P10x + 0.107418*P11x + 0.0610741*P12x + 0.0282942*P13x + 0.0105873*P14x + 0.00315311*P15x + 0.000730381*P16x + 0.000126888*P17x + 1.55606e-005*P18x + 1.20148e-006*P19x + 4.39434e-008*P20x, 4.42781e-005*P1y + 0.000584621*P2y + 0.00365636*P3y + 0.0143982*P4y + 0.0400221*P5y + 0.0834359*P6y + 0.135289*P7y + 0.174598*P8y + 0.181996*P9y + 0.154577*P10y + 0.107418*P11y + 0.0610741*P12y + 0.0282942*P13y + 0.0105873*P14y + 0.00315311*P15y + 0.000730381*P16y + 0.000126888*P17y + 1.55606e-005*P18y + 1.20148e-006*P19y + 4.39434e-008*P20y),
list(3.19987e-005*P1x + 0.000440258*P2x + 0.00286927*P3x + 0.0117739*P4x + 0.0341037*P5x + 0.0740873*P6x + 0.125182*P7x + 0.168348*P8x + 0.182861*P9x + 0.161842*P10x + 0.117196*P11x + 0.069436*P12x + 0.0335208*P13x + 0.0130705*P14x + 0.00405635*P15x + 0.000979118*P16x + 0.000177254*P17x + 2.26511e-005*P18x + 1.8225e-006*P19x + 6.94602e-008*P20x, 3.19987e-005*P1y + 0.000440258*P2y + 0.00286927*P3y + 0.0117739*P4y + 0.0341037*P5y + 0.0740873*P6y + 0.125182*P7y + 0.168348*P8y + 0.182861*P9y + 0.161842*P10y + 0.117196*P11y + 0.069436*P12y + 0.0335208*P13y + 0.0130705*P14y + 0.00405635*P15y + 0.000979118*P16y + 0.000177254*P17y + 2.26511e-005*P18y + 1.8225e-006*P19y + 6.94602e-008*P20y),
list(2.29944e-005*P1x + 0.000329586*P2x + 0.00223772*P3x + 0.00956592*P4x + 0.0288656*P5x + 0.0653274*P6x + 0.114991*P7x + 0.161103*P8x + 0.182301*P9x + 0.168087*P10x + 0.126802*P11x + 0.0782655*P12x + 0.0393616*P13x + 0.015989*P14x + 0.00516937*P15x + 0.0012999*P16x + 0.000245157*P17x + 3.2637e-005*P18x + 2.73565e-006*P19x + 1.08618e-007*P20x, 2.29944e-005*P1y + 0.000329586*P2y + 0.00223772*P3y + 0.00956592*P4y + 0.0288656*P5y + 0.0653274*P6y + 0.114991*P7y + 0.161103*P8y + 0.182301*P9y + 0.168087*P10y + 0.126802*P11y + 0.0782655*P12y + 0.0393616*P13y + 0.015989*P14y + 0.00516937*P15y + 0.0012999*P16y + 0.000245157*P17y + 3.2637e-005*P18y + 2.73565e-006*P19y + 1.08618e-007*P20y),
list(1.64275e-005*P1x + 0.00024524*P2x + 0.0017342*P3x + 0.0077213*P4x + 0.0242669*P5x + 0.0572006*P6x + 0.104868*P7x + 0.153021*P8x + 0.180347*P9x + 0.17319*P10x + 0.136078*P11x + 0.0874786*P12x + 0.0458221*P13x + 0.0193863*P14x + 0.00652804*P15x + 0.00170972*P16x + 0.000335839*P17x + 4.65659e-005*P18x + 4.06527e-006*P19x + 1.68113e-007*P20x, 1.64275e-005*P1y + 0.00024524*P2y + 0.0017342*P3y + 0.0077213*P4y + 0.0242669*P5y + 0.0572006*P6y + 0.104868*P7y + 0.153021*P8y + 0.180347*P9y + 0.17319*P10y + 0.136078*P11y + 0.0874786*P12y + 0.0458221*P13y + 0.0193863*P14y + 0.00652804*P15y + 0.00170972*P16y + 0.000335839*P17y + 4.65659e-005*P18y + 4.06527e-006*P19y + 1.68113e-007*P20y),
list(1.16652e-005*P1x + 0.00018134*P2x + 0.00133532*P3x + 0.00619105*P4x + 0.0202616*P5x + 0.0497331*P6x + 0.094945*P7x + 0.144267*P8x + 0.177055*P9x + 0.177055*P10x + 0.144863*P11x + 0.0969745*P12x + 0.0528952*P13x + 0.0233035*P14x + 0.00817135*P15x + 0.00222855*P16x + 0.000455839*P17x + 6.58164e-005*P18x + 5.98331e-006*P19x + 2.57654e-007*P20x, 1.16652e-005*P1y + 0.00018134*P2y + 0.00133532*P3y + 0.00619105*P4y + 0.0202616*P5y + 0.0497331*P6y + 0.094945*P7y + 0.144267*P8y + 0.177055*P9y + 0.177055*P10y + 0.144863*P11y + 0.0969745*P12y + 0.0528952*P13y + 0.0233035*P14y + 0.00817135*P15y + 0.00222855*P16y + 0.000455839*P17y + 6.58164e-005*P18y + 5.98331e-006*P19y + 2.57654e-007*P20y),
list(8.23154e-006*P1x + 0.000133229*P2x + 0.00102142*P3x + 0.00493057*P4x + 0.0168005*P5x + 0.0429345*P6x + 0.085339*P7x + 0.135007*P8x + 0.172509*P9x + 0.179608*P10x + 0.153*P11x + 0.106636*P12x + 0.0605588*P13x + 0.0277777*P14x + 0.0101411*P15x + 0.00287956*P16x + 0.00061324*P17x + 9.21864e-005*P18x + 8.72546e-006*P19x + 3.912e-007*P20x, 8.23154e-006*P1y + 0.000133229*P2y + 0.00102142*P3y + 0.00493057*P4y + 0.0168005*P5y + 0.0429345*P6y + 0.085339*P7y + 0.135007*P8y + 0.172509*P9y + 0.179608*P10y + 0.153*P11y + 0.106636*P12y + 0.0605588*P13y + 0.0277777*P14y + 0.0101411*P15y + 0.00287956*P16y + 0.00061324*P17y + 9.21864e-005*P18y + 8.72546e-006*P19y + 3.912e-007*P20y),
list(5.77087e-006*P1x + 9.72337e-005*P2x + 0.000776035*P3x + 0.0038997*P4x + 0.0138329*P5x + 0.0368007*P6x + 0.0761474*P7x + 0.125407*P8x + 0.166815*P9x + 0.180804*P10x + 0.160336*P11x + 0.116333*P12x + 0.0687753*P13x + 0.0328404*P14x + 0.0124811*P15x + 0.00368939*P16x + 0.000817932*P17x + 0.000128*P18x + 1.26122e-005*P19x + 5.88653e-007*P20x, 5.77087e-006*P1y + 9.72337e-005*P2y + 0.000776035*P3y + 0.0038997*P4y + 0.0138329*P5y + 0.0368007*P6y + 0.0761474*P7y + 0.125407*P8y + 0.166815*P9y + 0.180804*P10y + 0.160336*P11y + 0.116333*P12y + 0.0687753*P13y + 0.0328404*P14y + 0.0124811*P15y + 0.00368939*P16y + 0.000817932*P17y + 0.000128*P18y + 1.26122e-005*P19y + 5.88653e-007*P20y),
list(4.01849e-006*P1x + 7.04782e-005*P2x + 0.000585511*P3x + 0.00306267*P4x + 0.0113083*P5x + 0.0313154*P6x + 0.0674485*P7x + 0.115626*P8x + 0.160098*P9x + 0.180623*P10x + 0.166729*P11x + 0.125921*P12x + 0.0774899*P13x + 0.0385157*P14x + 0.015237*P15x + 0.0046883*P16x + 0.00108192*P17x + 0.00017624*P18x + 1.80759e-005*P19x + 8.7818e-007*P20x, 4.01849e-006*P1y + 7.04782e-005*P2y + 0.000585511*P3y + 0.00306267*P4y + 0.0113083*P5y + 0.0313154*P6y + 0.0674485*P7y + 0.115626*P8y + 0.160098*P9y + 0.180623*P10y + 0.166729*P11y + 0.125921*P12y + 0.0774899*P13y + 0.0385157*P14y + 0.015237*P15y + 0.0046883*P16y + 0.00108192*P17y + 0.00017624*P18y + 1.80759e-005*P19y + 8.7818e-007*P20y),
list(2.77865e-006*P1x + 5.07239e-005*P2x + 0.000438613*P3x + 0.002388*P4x + 0.00917742*P5x + 0.0264526*P6x + 0.0593022*P7x + 0.105814*P8x + 0.152496*P9x + 0.179075*P10x + 0.172052*P11x + 0.13525*P12x + 0.0866306*P13x + 0.0448179*P14x + 0.0184544*P15x + 0.00591025*P16x + 0.00141962*P17x + 0.000240697*P18x + 2.56953e-005*P19x + 1.29935e-006*P20x, 2.77865e-006*P1y + 5.07239e-005*P2y + 0.000438613*P3y + 0.002388*P4y + 0.00917742*P5y + 0.0264526*P6y + 0.0593022*P7y + 0.105814*P8y + 0.152496*P9y + 0.179075*P10y + 0.172052*P11y + 0.13525*P12y + 0.0866306*P13y + 0.0448179*P14y + 0.0184544*P15y + 0.00591025*P16y + 0.00141962*P17y + 0.000240697*P18y + 2.56953e-005*P19y + 1.29935e-006*P20y),
list(1.90735e-006*P1x + 3.62396e-005*P2x + 0.000326157*P3x + 0.00184822*P4x + 0.00739288*P5x + 0.0221786*P6x + 0.0517502*P7x + 0.0961075*P8x + 0.144161*P9x + 0.176197*P10x + 0.176197*P11x + 0.144161*P12x + 0.0961075*P13x + 0.0517502*P14x + 0.0221786*P15x + 0.00739288*P16x + 0.00184822*P17x + 0.000326157*P18x + 3.62396e-005*P19x + 1.90735e-006*P20x, 1.90735e-006*P1y + 3.62396e-005*P2y + 0.000326157*P3y + 0.00184822*P4y + 0.00739288*P5y + 0.0221786*P6y + 0.0517502*P7y + 0.0961075*P8y + 0.144161*P9y + 0.176197*P10y + 0.176197*P11y + 0.144161*P12y + 0.0961075*P13y + 0.0517502*P14y + 0.0221786*P15y + 0.00739288*P16y + 0.00184822*P17y + 0.000326157*P18y + 3.62396e-005*P19y + 1.90735e-006*P20y),
list(1.29935e-006*P1x + 2.56953e-005*P2x + 0.000240697*P3x + 0.00141962*P4x + 0.00591025*P5x + 0.0184544*P6x + 0.0448179*P7x + 0.0866306*P8x + 0.13525*P9x + 0.172052*P10x + 0.179075*P11x + 0.152496*P12x + 0.105814*P13x + 0.0593022*P14x + 0.0264526*P15x + 0.00917742*P16x + 0.002388*P17x + 0.000438613*P18x + 5.07239e-005*P19x + 2.77865e-006*P20x, 1.29935e-006*P1y + 2.56953e-005*P2y + 0.000240697*P3y + 0.00141962*P4y + 0.00591025*P5y + 0.0184544*P6y + 0.0448179*P7y + 0.0866306*P8y + 0.13525*P9y + 0.172052*P10y + 0.179075*P11y + 0.152496*P12y + 0.105814*P13y + 0.0593022*P14y + 0.0264526*P15y + 0.00917742*P16y + 0.002388*P17y + 0.000438613*P18y + 5.07239e-005*P19y + 2.77865e-006*P20y),
list(8.78181e-007*P1x + 1.80759e-005*P2x + 0.00017624*P3x + 0.00108192*P4x + 0.00468831*P5x + 0.015237*P6x + 0.0385157*P7x + 0.07749*P8x + 0.125921*P9x + 0.166729*P10x + 0.180623*P11x + 0.160098*P12x + 0.115626*P13x + 0.0674485*P14x + 0.0313154*P15x + 0.0113083*P16x + 0.00306267*P17x + 0.000585511*P18x + 7.04782e-005*P19x + 4.01849e-006*P20x, 8.78181e-007*P1y + 1.80759e-005*P2y + 0.00017624*P3y + 0.00108192*P4y + 0.00468831*P5y + 0.015237*P6y + 0.0385157*P7y + 0.07749*P8y + 0.125921*P9y + 0.166729*P10y + 0.180623*P11y + 0.160098*P12y + 0.115626*P13y + 0.0674485*P14y + 0.0313154*P15y + 0.0113083*P16y + 0.00306267*P17y + 0.000585511*P18y + 7.04782e-005*P19y + 4.01849e-006*P20y),
list(5.88654e-007*P1x + 1.26122e-005*P2x + 0.000128001*P3x + 0.000817932*P4x + 0.0036894*P5x + 0.0124812*P6x + 0.0328405*P7x + 0.0687753*P8x + 0.116333*P9x + 0.160336*P10x + 0.180804*P11x + 0.166815*P12x + 0.125407*P13x + 0.0761474*P14x + 0.0368007*P15x + 0.0138329*P16x + 0.0038997*P17x + 0.000776035*P18x + 9.72337e-005*P19x + 5.77087e-006*P20x, 5.88654e-007*P1y + 1.26122e-005*P2y + 0.000128001*P3y + 0.000817932*P4y + 0.0036894*P5y + 0.0124812*P6y + 0.0328405*P7y + 0.0687753*P8y + 0.116333*P9y + 0.160336*P10y + 0.180804*P11y + 0.166815*P12y + 0.125407*P13y + 0.0761474*P14y + 0.0368007*P15y + 0.0138329*P16y + 0.0038997*P17y + 0.000776035*P18y + 9.72337e-005*P19y + 5.77087e-006*P20y),
list(3.912e-007*P1x + 8.72545e-006*P2x + 9.21863e-005*P3x + 0.000613239*P4x + 0.00287956*P5x + 0.0101411*P6x + 0.0277777*P7x + 0.0605588*P8x + 0.106636*P9x + 0.153*P10x + 0.179608*P11x + 0.172509*P12x + 0.135007*P13x + 0.085339*P14x + 0.0429346*P15x + 0.0168005*P16x + 0.00493058*P17x + 0.00102142*P18x + 0.000133229*P19x + 8.23155e-006*P20x, 3.912e-007*P1y + 8.72545e-006*P2y + 9.21863e-005*P3y + 0.000613239*P4y + 0.00287956*P5y + 0.0101411*P6y + 0.0277777*P7y + 0.0605588*P8y + 0.106636*P9y + 0.153*P10y + 0.179608*P11y + 0.172509*P12y + 0.135007*P13y + 0.085339*P14y + 0.0429346*P15y + 0.0168005*P16y + 0.00493058*P17y + 0.00102142*P18y + 0.000133229*P19y + 8.23155e-006*P20y),
list(2.57654e-007*P1x + 5.98331e-006*P2x + 6.58164e-005*P3x + 0.000455839*P4x + 0.00222855*P5x + 0.00817135*P6x + 0.0233035*P7x + 0.0528952*P8x + 0.0969745*P9x + 0.144863*P10x + 0.177055*P11x + 0.177055*P12x + 0.144267*P13x + 0.094945*P14x + 0.0497331*P15x + 0.0202616*P16x + 0.00619105*P17x + 0.00133532*P18x + 0.00018134*P19x + 1.16652e-005*P20x, 2.57654e-007*P1y + 5.98331e-006*P2y + 6.58164e-005*P3y + 0.000455839*P4y + 0.00222855*P5y + 0.00817135*P6y + 0.0233035*P7y + 0.0528952*P8y + 0.0969745*P9y + 0.144863*P10y + 0.177055*P11y + 0.177055*P12y + 0.144267*P13y + 0.094945*P14y + 0.0497331*P15y + 0.0202616*P16y + 0.00619105*P17y + 0.00133532*P18y + 0.00018134*P19y + 1.16652e-005*P20y),
list(1.68113e-007*P1x + 4.06527e-006*P2x + 4.65659e-005*P3x + 0.000335839*P4x + 0.00170972*P5x + 0.00652804*P6x + 0.0193863*P7x + 0.0458221*P8x + 0.0874786*P9x + 0.136078*P10x + 0.17319*P11x + 0.180347*P12x + 0.153021*P13x + 0.104868*P14x + 0.0572006*P15x + 0.0242669*P16x + 0.0077213*P17x + 0.0017342*P18x + 0.00024524*P19x + 1.64275e-005*P20x, 1.68113e-007*P1y + 4.06527e-006*P2y + 4.65659e-005*P3y + 0.000335839*P4y + 0.00170972*P5y + 0.00652804*P6y + 0.0193863*P7y + 0.0458221*P8y + 0.0874786*P9y + 0.136078*P10y + 0.17319*P11y + 0.180347*P12y + 0.153021*P13y + 0.104868*P14y + 0.0572006*P15y + 0.0242669*P16y + 0.0077213*P17y + 0.0017342*P18y + 0.00024524*P19y + 1.64275e-005*P20y),
list(1.08618e-007*P1x + 2.73565e-006*P2x + 3.2637e-005*P3x + 0.000245157*P4x + 0.0012999*P5x + 0.00516937*P6x + 0.015989*P7x + 0.0393616*P8x + 0.0782655*P9x + 0.126802*P10x + 0.168087*P11x + 0.182301*P12x + 0.161103*P13x + 0.114991*P14x + 0.0653274*P15x + 0.0288656*P16x + 0.00956592*P17x + 0.00223772*P18x + 0.000329586*P19x + 2.29944e-005*P20x, 1.08618e-007*P1y + 2.73565e-006*P2y + 3.2637e-005*P3y + 0.000245157*P4y + 0.0012999*P5y + 0.00516937*P6y + 0.015989*P7y + 0.0393616*P8y + 0.0782655*P9y + 0.126802*P10y + 0.168087*P11y + 0.182301*P12y + 0.161103*P13y + 0.114991*P14y + 0.0653274*P15y + 0.0288656*P16y + 0.00956592*P17y + 0.00223772*P18y + 0.000329586*P19y + 2.29944e-005*P20y),
list(6.94603e-008*P1x + 1.82251e-006*P2x + 2.26512e-005*P3x + 0.000177254*P4x + 0.000979119*P5x + 0.00405635*P6x + 0.0130705*P7x + 0.0335208*P8x + 0.069436*P9x + 0.117196*P10x + 0.161842*P11x + 0.182861*P12x + 0.168348*P13x + 0.125182*P14x + 0.0740872*P15x + 0.0341036*P16x + 0.0117739*P17x + 0.00286926*P18x + 0.000440257*P19x + 3.19987e-005*P20x, 6.94603e-008*P1y + 1.82251e-006*P2y + 2.26512e-005*P3y + 0.000177254*P4y + 0.000979119*P5y + 0.00405635*P6y + 0.0130705*P7y + 0.0335208*P8y + 0.069436*P9y + 0.117196*P10y + 0.161842*P11y + 0.182861*P12y + 0.168348*P13y + 0.125182*P14y + 0.0740872*P15y + 0.0341036*P16y + 0.0117739*P17y + 0.00286926*P18y + 0.000440257*P19y + 3.19987e-005*P20y),
list(4.39434e-008*P1x + 1.20148e-006*P2x + 1.55606e-005*P3x + 0.000126888*P4x + 0.000730382*P5x + 0.00315311*P6x + 0.0105873*P7x + 0.0282942*P8x + 0.0610741*P9x + 0.107418*P10x + 0.154576*P11x + 0.181996*P12x + 0.174598*P13x + 0.135289*P14x + 0.0834358*P15x + 0.040022*P16x + 0.0143982*P17x + 0.00365635*P18x + 0.00058462*P19x + 4.4278e-005*P20x, 4.39434e-008*P1y + 1.20148e-006*P2y + 1.55606e-005*P3y + 0.000126888*P4y + 0.000730382*P5y + 0.00315311*P6y + 0.0105873*P7y + 0.0282942*P8y + 0.0610741*P9y + 0.107418*P10y + 0.154576*P11y + 0.181996*P12y + 0.174598*P13y + 0.135289*P14y + 0.0834358*P15y + 0.040022*P16y + 0.0143982*P17y + 0.00365635*P18y + 0.00058462*P19y + 4.4278e-005*P20y),
list(2.74878e-008*P1x + 7.83401e-007*P2x + 1.05759e-005*P3x + 8.98953e-005*P4x + 0.000539372*P5x + 0.00242717*P6x + 0.00849511*P7x + 0.0236649*P8x + 0.0532461*P9x + 0.0976179*P10x + 0.146427*P11x + 0.179706*P12x + 0.179706*P13x + 0.145147*P14x + 0.0933088*P15x + 0.0466544*P16x + 0.0174954*P17x + 0.00463114*P18x + 0.000771856*P19x + 6.0936e-005*P20x, 2.74878e-008*P1y + 7.83401e-007*P2y + 1.05759e-005*P3y + 8.98953e-005*P4y + 0.000539372*P5y + 0.00242717*P6y + 0.00849511*P7y + 0.0236649*P8y + 0.0532461*P9y + 0.0976179*P10y + 0.146427*P11y + 0.179706*P12y + 0.179706*P13y + 0.145147*P14y + 0.0933088*P15y + 0.0466544*P16y + 0.0174954*P17y + 0.00463114*P18y + 0.000771856*P19y + 6.0936e-005*P20y),
list(1.69913e-008*P1x + 5.04947e-007*P2x + 7.10811e-006*P3x + 6.30009e-005*P4x + 0.000394159*P5x + 0.00184952*P6x + 0.00674995*P7x + 0.019607*P8x + 0.046001*P9x + 0.0879393*P10x + 0.137546*P11x + 0.176021*P12x + 0.183543*P13x + 0.154581*P14x + 0.103621*P15x + 0.0540244*P16x + 0.0211249*P17x + 0.00583086*P18x + 0.00101334*P19x + 8.34194e-005*P20x, 1.69913e-008*P1y + 5.04947e-007*P2y + 7.10811e-006*P3y + 6.30009e-005*P4y + 0.000394159*P5y + 0.00184952*P6y + 0.00674995*P7y + 0.019607*P8y + 0.046001*P9y + 0.0879393*P10y + 0.137546*P11y + 0.176021*P12y + 0.183543*P13y + 0.154581*P14y + 0.103621*P15y + 0.0540244*P16y + 0.0211249*P17y + 0.00583086*P18y + 0.00101334*P19y + 8.34194e-005*P20y),
list(1.03726e-008*P1x + 3.21551e-007*P2x + 4.72172e-006*P3x + 4.36552e-005*P4x + 0.000284908*P5x + 0.00139455*P6x + 0.00530907*P7x + 0.0160869*P8x + 0.0393705*P9x + 0.0785109*P10x + 0.128097*P11x + 0.171*P12x + 0.186*P13x + 0.163409*P14x + 0.114263*P15x + 0.0621432*P16x + 0.0253479*P17x + 0.00729831*P18x + 0.00132308*P19x + 0.000113617*P20x, 1.03726e-008*P1y + 3.21551e-007*P2y + 4.72172e-006*P3y + 4.36552e-005*P4y + 0.000284908*P5y + 0.00139455*P6y + 0.00530907*P7y + 0.0160869*P8y + 0.0393705*P9y + 0.0785109*P10y + 0.128097*P11y + 0.171*P12y + 0.186*P13y + 0.163409*P14y + 0.114263*P15y + 0.0621432*P16y + 0.0253479*P17y + 0.00729831*P18y + 0.00132308*P19y + 0.000113617*P20y),
list(6.24932e-009*P1x + 2.02174e-007*P2x + 3.09818e-006*P3x + 2.98932e-005*P4x + 0.000203597*P5x + 0.00104*P6x + 0.00413188*P7x + 0.0130657*P8x + 0.0333704*P9x + 0.0694466*P10x + 0.118247*P11x + 0.164732*P12x + 0.186993*P13x + 0.171443*P14x + 0.125107*P15x + 0.0710066*P16x + 0.0302258*P17x + 0.00908215*P18x + 0.00171825*P19x + 0.000153982*P20x, 6.24932e-009*P1y + 2.02174e-007*P2y + 3.09818e-006*P3y + 2.98932e-005*P4y + 0.000203597*P5y + 0.00104*P6y + 0.00413188*P7y + 0.0130657*P8y + 0.0333704*P9y + 0.0694466*P10y + 0.118247*P11y + 0.164732*P12y + 0.186993*P13y + 0.171443*P14y + 0.125107*P15y + 0.0710066*P16y + 0.0302258*P17y + 0.00908215*P18y + 0.00171825*P19y + 0.000153982*P20y),
list(3.7132e-009*P1x + 1.25423e-007*P2x + 2.00678e-006*P3x + 2.02164e-005*P4x + 0.000143761*P5x + 0.000766726*P6x + 0.00318049*P7x + 0.0105007*P8x + 0.0280018*P9x + 0.0608434*P10x + 0.108166*P11x + 0.157332*P12x + 0.186468*P13x + 0.178499*P14x + 0.135999*P15x + 0.0805922*P16x + 0.0358188*P17x + 0.0112373*P18x + 0.00221971*P19x + 0.000207692*P20x, 3.7132e-009*P1y + 1.25423e-007*P2y + 2.00678e-006*P3y + 2.02164e-005*P4y + 0.000143761*P5y + 0.000766726*P6y + 0.00318049*P7y + 0.0105007*P8y + 0.0280018*P9y + 0.0608434*P10y + 0.108166*P11y + 0.157332*P12y + 0.186468*P13y + 0.178499*P14y + 0.135999*P15y + 0.0805922*P16y + 0.0358188*P17y + 0.0112373*P18y + 0.00221971*P19y + 0.000207692*P20y),
list(2.17417e-009*P1x + 7.67171e-008*P2x + 1.28227e-006*P3x + 1.34944e-005*P4x + 0.000100244*P5x + 0.000558502*P6x + 0.00242018*P7x + 0.00834713*P8x + 0.0232527*P9x + 0.05278*P10x + 0.09802*P11x + 0.148939*P12x + 0.184401*P13x + 0.184401*P14x + 0.146768*P15x + 0.0908565*P16x + 0.0421834*P17x + 0.0138248*P18x + 0.00285274*P19x + 0.000278839*P20x, 2.17417e-009*P1y + 7.67171e-008*P2y + 1.28227e-006*P3y + 1.34944e-005*P4y + 0.000100244*P5y + 0.000558502*P6y + 0.00242018*P7y + 0.00834713*P8y + 0.0232527*P9y + 0.05278*P10y + 0.09802*P11y + 0.148939*P12y + 0.184401*P13y + 0.184401*P14y + 0.146768*P15y + 0.0908565*P16y + 0.0421834*P17y + 0.0138248*P18y + 0.00285274*P19y + 0.000278839*P20y),
list(1.25343e-009*P1x + 4.62293e-008*P2x + 8.07653e-007*P3x + 8.88419e-006*P4x + 6.89831e-005*P5x + 0.000401725*P6x + 0.00181958*P7x + 0.00655966*P8x + 0.0191002*P9x + 0.0453161*P10x + 0.0879666*P11x + 0.139712*P12x + 0.180803*P13x + 0.188985*P14x + 0.157223*P15x + 0.101732*P16x + 0.0493701*P17x + 0.0169122*P18x + 0.00364774*P19x + 0.000372679*P20x, 1.25343e-009*P1y + 4.62293e-008*P2y + 8.07653e-007*P3y + 8.88419e-006*P4y + 6.89831e-005*P5y + 0.000401725*P6y + 0.00181958*P7y + 0.00655966*P8y + 0.0191002*P9y + 0.0453161*P10y + 0.0879666*P11y + 0.139712*P12y + 0.180803*P13y + 0.188985*P14y + 0.157223*P15y + 0.101732*P16y + 0.0493701*P17y + 0.0169122*P18y + 0.00364774*P19y + 0.000372679*P20y),
list(7.10828e-010*P1x + 2.74207e-008*P2x + 5.01051e-007*P3x + 5.76462e-006*P4x + 4.68157e-005*P5x + 0.00028515*P6x + 0.00135086*P7x + 0.00509352*P8x + 0.0155121*P9x + 0.0384929*P10x + 0.0781523*P11x + 0.129823*P12x + 0.17572*P13x + 0.192105*P14x + 0.167156*P15x + 0.113126*P16x + 0.0574199*P17x + 0.0205729*P18x + 0.00464103*P19x + 0.000495931*P20x, 7.10828e-010*P1y + 2.74207e-008*P2y + 5.01051e-007*P3y + 5.76462e-006*P4y + 4.68157e-005*P5y + 0.00028515*P6y + 0.00135086*P7y + 0.00509352*P8y + 0.0155121*P9y + 0.0384929*P10y + 0.0781523*P11y + 0.129823*P12y + 0.17572*P13y + 0.192105*P14y + 0.167156*P15y + 0.113126*P16y + 0.0574199*P17y + 0.0205729*P18y + 0.00464103*P19y + 0.000495931*P20y),
list(3.96141e-010*P1x + 1.59942e-008*P2x + 3.05889e-007*P3x + 3.68341e-006*P4x + 3.1309e-005*P5x + 0.000199595*P6x + 0.000989657*P7x + 0.00390561*P8x + 0.0124491*P9x + 0.0323332*P10x + 0.068708*P11x + 0.119458*P12x + 0.169233*P13x + 0.193641*P14x + 0.176352*P15x + 0.124916*P16x + 0.0663615*P17x + 0.0248856*P18x + 0.00587576*P19x + 0.000657157*P20x, 3.96141e-010*P1y + 1.59942e-008*P2y + 3.05889e-007*P3y + 3.68341e-006*P4y + 3.1309e-005*P5y + 0.000199595*P6y + 0.000989657*P7y + 0.00390561*P8y + 0.0124491*P9y + 0.0323332*P10y + 0.068708*P11y + 0.119458*P12y + 0.169233*P13y + 0.193641*P14y + 0.176352*P15y + 0.124916*P16y + 0.0663615*P17y + 0.0248856*P18y + 0.00587576*P19y + 0.000657157*P20y),
list(2.16707e-010*P1x + 9.16459e-009*P2x + 1.83588e-007*P3x + 2.31557e-006*P4x + 2.06161e-005*P5x + 0.000137662*P6x + 0.000714954*P7x + 0.00295536*P8x + 0.0098671*P9x + 0.0268428*P10x + 0.0597468*P11x + 0.108806*P12x + 0.161454*P13x + 0.193504*P14x + 0.184587*P15x + 0.136952*P16x + 0.0762069*P17x + 0.0299333*P18x + 0.00740285*P19x + 0.000867227*P20x, 2.16707e-010*P1y + 9.16459e-009*P2y + 1.83588e-007*P3y + 2.31557e-006*P4y + 2.06161e-005*P5y + 0.000137662*P6y + 0.000714954*P7y + 0.00295536*P8y + 0.0098671*P9y + 0.0268428*P10y + 0.0597468*P11y + 0.108806*P12y + 0.161454*P13y + 0.193504*P14y + 0.184587*P15y + 0.136952*P16y + 0.0762069*P17y + 0.0299333*P18y + 0.00740285*P19y + 0.000867227*P20y),
list(1.16226e-010*P1x + 5.1527e-009*P2x + 1.08207e-007*P3x + 1.43073e-006*P4x + 1.33535e-005*P5x + 9.34745e-005*P6x + 0.000508917*P7x + 0.0022053*P8x + 0.00771857*P9x + 0.0220122*P10x + 0.0513618*P11x + 0.0980544*P12x + 0.152529*P13x + 0.191639*P14x + 0.191639*P15x + 0.149053*P16x + 0.0869473*P17x + 0.0358018*P18x + 0.00928196*P19x + 0.00113989*P20x, 1.16226e-010*P1y + 5.1527e-009*P2y + 1.08207e-007*P3y + 1.43073e-006*P4y + 1.33535e-005*P5y + 9.34745e-005*P6y + 0.000508917*P7y + 0.0022053*P8y + 0.00771857*P9y + 0.0220122*P10y + 0.0513618*P11y + 0.0980544*P12y + 0.152529*P13y + 0.191639*P14y + 0.191639*P15y + 0.149053*P16y + 0.0869473*P17y + 0.0358018*P18y + 0.00928196*P19y + 0.00113989*P20y),
list(6.10327e-011*P1x + 2.83907e-009*P2x + 6.25575e-008*P3x + 8.67895e-007*P4x + 8.49939e-006*P5x + 6.24265e-005*P6x + 0.00035662*P7x + 0.00162148*P8x + 0.00595475*P9x + 0.0178186*P10x + 0.0436249*P11x + 0.0873865*P12x + 0.142631*P13x + 0.188031*P14x + 0.197293*P15x + 0.161009*P16x + 0.0985488*P17x + 0.0425779*P18x + 0.0115825*P19x + 0.00149248*P20x, 6.10327e-011*P1y + 2.83907e-009*P2y + 6.25575e-008*P3y + 8.67895e-007*P4y + 8.49939e-006*P5y + 6.24265e-005*P6y + 0.00035662*P7y + 0.00162148*P8y + 0.00595475*P9y + 0.0178186*P10y + 0.0436249*P11y + 0.0873865*P12y + 0.142631*P13y + 0.188031*P14y + 0.197293*P15y + 0.161009*P16y + 0.0985488*P17y + 0.0425779*P18y + 0.0115825*P19y + 0.00149248*P20y),
list(3.1333e-011*P1x + 1.53084e-009*P2x + 3.5428e-008*P3x + 5.16237e-007*P4x + 5.30987e-006*P5x + 4.09618e-005*P6x + 0.000245771*P7x + 0.00117368*P8x + 0.00452706*P9x + 0.0142279*P10x + 0.0365861*P11x + 0.0769733*P12x + 0.131954*P13x + 0.182706*P14x + 0.201349*P15x + 0.172585*P16x + 0.110948*P17x + 0.050346*P18x + 0.0143846*P19x + 0.00194678*P20x, 3.1333e-011*P1y + 1.53084e-009*P2y + 3.5428e-008*P3y + 5.16237e-007*P4y + 5.30987e-006*P5y + 4.09618e-005*P6y + 0.000245771*P7y + 0.00117368*P8y + 0.00452706*P9y + 0.0142279*P10y + 0.0365861*P11y + 0.0769733*P12y + 0.131954*P13y + 0.182706*P14y + 0.201349*P15y + 0.172585*P16y + 0.110948*P17y + 0.050346*P18y + 0.0143846*P19y + 0.00194678*P20y),
list(1.57004e-011*P1x + 8.06536e-010*P2x + 1.96257e-008*P3x + 3.00685e-007*P4x + 3.25186e-006*P5x + 2.63762e-005*P6x + 0.000166398*P7x + 0.000835511*P8x + 0.00338846*P9x + 0.0111973*P10x + 0.0302741*P11x + 0.0669699*P12x + 0.120711*P13x + 0.175736*P14x + 0.203631*P15x + 0.183519*P16x + 0.124045*P17x + 0.0591851*P18x + 0.0177799*P19x + 0.00253008*P20x, 1.57004e-011*P1y + 8.06536e-010*P2y + 1.96257e-008*P3y + 3.00685e-007*P4y + 3.25186e-006*P5y + 2.63762e-005*P6y + 0.000166398*P7y + 0.000835511*P8y + 0.00338846*P9y + 0.0111973*P10y + 0.0302741*P11y + 0.0669699*P12y + 0.120711*P13y + 0.175736*P14y + 0.203631*P15y + 0.183519*P16y + 0.124045*P17y + 0.0591851*P18y + 0.0177799*P19y + 0.00253008*P20y),
list(7.66467e-012*P1x + 4.14482e-010*P2x + 1.06171e-008*P3x + 1.71235e-007*P4x + 1.94944e-006*P5x + 1.66452e-005*P6x + 0.000110542*P7x + 0.000584291*P8x + 0.00249447*P9x + 0.00867736*P10x + 0.0246971*P11x + 0.0575114*P12x + 0.109124*P13x + 0.167238*P14x + 0.203993*P15x + 0.193532*P16x + 0.137706*P17x + 0.0691643*P18x + 0.0218725*P19x + 0.00327644*P20x, 7.66467e-012*P1y + 4.14482e-010*P2y + 1.06171e-008*P3y + 1.71235e-007*P4y + 1.94944e-006*P5y + 1.66452e-005*P6y + 0.000110542*P7y + 0.000584291*P8y + 0.00249447*P9y + 0.00867736*P10y + 0.0246971*P11y + 0.0575114*P12y + 0.109124*P13y + 0.167238*P14y + 0.203993*P15y + 0.193532*P16y + 0.137706*P17y + 0.0691643*P18y + 0.0218725*P19y + 0.00327644*P20y),
list(3.63798e-012*P1x + 2.07365e-010*P2x + 5.59885e-009*P3x + 9.51804e-008*P4x + 1.14217e-006*P5x + 1.02795e-005*P6x + 7.19564e-005*P7x + 0.0004009*P8x + 0.00180405*P9x + 0.00661485*P10x + 0.0198446*P11x + 0.0487094*P12x + 0.0974187*P13x + 0.157369*P14x + 0.202331*P15x + 0.202331*P16x + 0.151748*P17x + 0.0803374*P18x + 0.0267791*P19x + 0.00422828*P20x, 3.63798e-012*P1y + 2.07365e-010*P2y + 5.59885e-009*P3y + 9.51804e-008*P4y + 1.14217e-006*P5y + 1.02795e-005*P6y + 7.19564e-005*P7y + 0.0004009*P8y + 0.00180405*P9y + 0.00661485*P10y + 0.0198446*P11y + 0.0487094*P12y + 0.0974187*P13y + 0.157369*P14y + 0.202331*P15y + 0.202331*P16y + 0.151748*P17y + 0.0803374*P18y + 0.0267791*P19y + 0.00422828*P20y),
list(1.675e-012*P1x + 1.00779e-010*P2x + 2.8722e-009*P3x + 5.154e-008*P4x + 6.5284e-007*P5x + 6.20198e-006*P6x + 4.58258e-005*P7x + 0.000269499*P8x + 0.00128012*P9x + 0.00495454*P10x + 0.0156894*P11x + 0.0406498*P12x + 0.0858161*P13x + 0.146328*P14x + 0.198587*P15x + 0.20962*P16x + 0.165949*P17x + 0.0927363*P18x + 0.0326294*P19x + 0.00543824*P20x, 1.675e-012*P1y + 1.00779e-010*P2y + 2.8722e-009*P3y + 5.154e-008*P4y + 6.5284e-007*P5y + 6.20198e-006*P6y + 4.58258e-005*P7y + 0.000269499*P8y + 0.00128012*P9y + 0.00495454*P10y + 0.0156894*P11y + 0.0406498*P12y + 0.0858161*P13y + 0.146328*P14y + 0.198587*P15y + 0.20962*P16y + 0.165949*P17y + 0.0927363*P18y + 0.0326294*P19y + 0.00543824*P20y),
list(7.46156e-013*P1x + 4.7462e-011*P2x + 1.43005e-009*P3x + 2.71295e-008*P4x + 3.63299e-007*P5x + 3.64879e-006*P6x + 2.85029e-005*P7x + 0.000177213*P8x + 0.000889919*P9x + 0.00364136*P10x + 0.0121906*P11x + 0.0333918*P12x + 0.0745265*P13x + 0.134347*P14x + 0.192759*P15x + 0.215108*P16x + 0.180036*P17x + 0.106364*P18x + 0.0395653*P19x + 0.00697146*P20x, 7.46156e-013*P1y + 4.7462e-011*P2y + 1.43005e-009*P3y + 2.71295e-008*P4y + 3.63299e-007*P5y + 3.64879e-006*P6y + 2.85029e-005*P7y + 0.000177213*P8y + 0.000889919*P9y + 0.00364136*P10y + 0.0121906*P11y + 0.0333918*P12y + 0.0745265*P13y + 0.134347*P14y + 0.192759*P15y + 0.215108*P16y + 0.180036*P17y + 0.106364*P18y + 0.0395653*P19y + 0.00697146*P20y),
list(3.20651e-013*P1x + 2.16002e-011*P2x + 6.89242e-010*P3x + 1.38475e-008*P4x + 1.96383e-007*P5x + 2.0888e-006*P6x + 1.728e-005*P7x + 0.000113779*P8x + 0.000605097*P9x + 0.00262209*P10x + 0.00929649*P11x + 0.0269675*P12x + 0.0637414*P13x + 0.121688*P14x + 0.184903*P15x + 0.218521*P16x + 0.193689*P17x + 0.121185*P18x + 0.0477396*P19x + 0.00890835*P20x, 3.20651e-013*P1y + 2.16002e-011*P2y + 6.89242e-010*P3y + 1.38475e-008*P4y + 1.96383e-007*P5y + 2.0888e-006*P6y + 1.728e-005*P7y + 0.000113779*P8y + 0.000605097*P9y + 0.00262209*P10y + 0.00929649*P11y + 0.0269675*P12y + 0.0637414*P13y + 0.121688*P14y + 0.184903*P15y + 0.218521*P16y + 0.193689*P17y + 0.121185*P18y + 0.0477396*P19y + 0.00890835*P20y),
list(1.32485e-013*P1x + 9.4695e-012*P2x + 3.2061e-010*P3x + 6.8346e-009*P4x + 1.02844e-007*P5x + 1.16067e-006*P6x + 1.01881e-005*P7x + 7.11783e-005*P8x + 0.000401649*P9x + 0.00184674*P10x + 0.00694725*P11x + 0.0213831*P12x + 0.0536274*P13x + 0.10863*P14x + 0.175138*P15x + 0.219618*P16x + 0.206545*P17x + 0.137118*P18x + 0.057314*P19x + 0.0113479*P20x, 1.32485e-013*P1y + 9.4695e-012*P2y + 3.2061e-010*P3y + 6.8346e-009*P4y + 1.02844e-007*P5y + 1.16067e-006*P6y + 1.01881e-005*P7y + 7.11783e-005*P8y + 0.000401649*P9y + 0.00184674*P10y + 0.00694725*P11y + 0.0213831*P12y + 0.0536274*P13y + 0.10863*P14y + 0.175138*P15y + 0.219618*P16y + 0.206545*P17y + 0.137118*P18y + 0.057314*P19y + 0.0113479*P20y),
list(5.24287e-014*P1x + 3.98458e-012*P2x + 1.43445e-010*P3x + 3.25142e-009*P4x + 5.20227e-008*P5x + 6.24273e-007*P6x + 5.82655e-006*P7x + 4.32829e-005*P8x + 0.000259698*P9x + 0.00126963*P10x + 0.00507853*P11x + 0.0166207*P12x + 0.0443217*P13x + 0.0954622*P14x + 0.16365*P15x + 0.218199*P16x + 0.218199*P17x + 0.154023*P18x + 0.0684547*P19x + 0.0144115*P20x, 5.24287e-014*P1y + 3.98458e-012*P2y + 1.43445e-010*P3y + 3.25142e-009*P4y + 5.20227e-008*P5y + 6.24273e-007*P6y + 5.82655e-006*P7y + 4.32829e-005*P8y + 0.000259698*P9y + 0.00126963*P10y + 0.00507853*P11y + 0.0166207*P12y + 0.0443217*P13y + 0.0954622*P14y + 0.16365*P15y + 0.218199*P16y + 0.218199*P17y + 0.154023*P18y + 0.0684547*P19y + 0.0144115*P20y),
list(1.97842e-014*P1x + 1.60252e-012*P2x + 6.14861e-011*P3x + 1.48538e-009*P4x + 2.53296e-008*P5x + 3.23952e-007*P6x + 3.22247e-006*P7x + 2.55132e-005*P8x + 0.00016315*P9x + 0.000850099*P10x + 0.00362411*P11x + 0.012641*P12x + 0.0359271*P13x + 0.0824724*P14x + 0.150683*P15x + 0.214128*P16x + 0.228215*P17x + 0.171691*P18x + 0.0813275*P19x + 0.018248*P20x, 1.97842e-014*P1y + 1.60252e-012*P2y + 6.14861e-011*P3y + 1.48538e-009*P4y + 2.53296e-008*P5y + 3.23952e-007*P6y + 3.22247e-006*P7y + 2.55132e-005*P8y + 0.00016315*P9y + 0.000850099*P10y + 0.00362411*P11y + 0.012641*P12y + 0.0359271*P13y + 0.0824724*P14y + 0.150683*P15y + 0.214128*P16y + 0.228215*P17y + 0.171691*P18y + 0.0813275*P19y + 0.018248*P20y),
list(7.08236e-015*P1x + 6.13018e-013*P2x + 2.51337e-011*P3x + 6.48822e-010*P4x + 1.1823e-008*P5x + 1.61581e-007*P6x + 1.71754e-006*P7x + 1.4531e-005*P8x + 9.92949e-005*P9x + 0.000552864*P10x + 0.0025186*P11x + 0.00938752*P12x + 0.0285102*P13x + 0.0699354*P14x + 0.136541*P15x + 0.207339*P16x + 0.236136*P17x + 0.189835*P18x + 0.0960894*P19x + 0.023039*P20x, 7.08236e-015*P1y + 6.13018e-013*P2y + 2.51337e-011*P3y + 6.48822e-010*P4y + 1.1823e-008*P5y + 1.61581e-007*P6y + 1.71754e-006*P7y + 1.4531e-005*P8y + 9.92949e-005*P9y + 0.000552864*P10y + 0.0025186*P11y + 0.00938752*P12y + 0.0285102*P13y + 0.0699354*P14y + 0.136541*P15y + 0.207339*P16y + 0.236136*P17y + 0.189835*P18y + 0.0960894*P19y + 0.023039*P20y),
list(2.39073e-015*P1x + 2.21775e-013*P2x + 9.74506e-012*P3x + 2.69613e-010*P4x + 5.26539e-009*P5x + 7.71225e-008*P6x + 8.78591e-007*P7x + 7.96638e-006*P8x + 5.8342e-005*P9x + 0.000348146*P10x + 0.00169977*P11x + 0.00678999*P12x + 0.0221007*P13x + 0.0581019*P14x + 0.121575*P15x + 0.197857*P16x + 0.241502*P17x + 0.208076*P18x + 0.112878*P19x + 0.0290057*P20x, 2.39073e-015*P1y + 2.21775e-013*P2y + 9.74506e-012*P3y + 2.69613e-010*P4y + 5.26539e-009*P5y + 7.71225e-008*P6y + 8.78591e-007*P7y + 7.96638e-006*P8y + 5.8342e-005*P9y + 0.000348146*P10y + 0.00169977*P11y + 0.00678999*P12y + 0.0221007*P13y + 0.0581019*P14y + 0.121575*P15y + 0.197857*P16y + 0.241502*P17y + 0.208076*P18y + 0.112878*P19y + 0.0290057*P20y),
list(7.55581e-016*P1x + 7.53692e-014*P2x + 3.56119e-012*P3x + 1.05945e-010*P4x + 2.22485e-009*P5x + 3.50415e-008*P6x + 4.29258e-007*P7x + 4.18526e-006*P8x + 3.29589e-005*P9x + 0.000211486*P10x + 0.0011103*P11x + 0.00476926*P12x + 0.0166924*P13x + 0.0471881*P14x + 0.106173*P15x + 0.185803*P16x + 0.243867*P17x + 0.225935*P18x + 0.131795*P19x + 0.0364172*P20x, 7.55581e-016*P1y + 7.53692e-014*P2y + 3.56119e-012*P3y + 1.05945e-010*P4y + 2.22485e-009*P5y + 3.50415e-008*P6y + 4.29258e-007*P7y + 4.18526e-006*P8y + 3.29589e-005*P9y + 0.000211486*P10y + 0.0011103*P11y + 0.00476926*P12y + 0.0166924*P13y + 0.0471881*P14y + 0.106173*P15y + 0.185803*P16y + 0.243867*P17y + 0.225935*P18y + 0.131795*P19y + 0.0364172*P20y),
list(2.21683e-016*P1x + 2.38679e-014*P2x + 1.21726e-012*P3x + 3.90877e-011*P4x + 8.85987e-010*P5x + 1.50618e-008*P6x + 1.9915e-007*P7x + 2.09582e-006*P8x + 1.78145e-005*P9x + 0.000123382*P10x + 0.000699163*P11x + 0.00324158*P12x + 0.012246*P13x + 0.0373659*P14x + 0.0907457*P15x + 0.171409*P16x + 0.242829*P17x + 0.242829*P18x + 0.152892*P19x + 0.0455995*P20x, 2.21683e-016*P1y + 2.38679e-014*P2y + 1.21726e-012*P3y + 3.90877e-011*P4y + 8.85987e-010*P5y + 1.50618e-008*P6y + 1.9915e-007*P7y + 2.09582e-006*P8y + 1.78145e-005*P9y + 0.000123382*P10y + 0.000699163*P11y + 0.00324158*P12y + 0.012246*P13y + 0.0373659*P14y + 0.0907457*P15y + 0.171409*P16y + 0.242829*P17y + 0.242829*P18y + 0.152892*P19y + 0.0455995*P20y),
list(5.97629e-017*P1x + 6.97519e-015*P2x + 3.85628e-013*P3x + 1.34235e-011*P4x + 3.29836e-010*P5x + 6.0784e-009*P6x + 8.71237e-008*P7x + 9.93922e-007*P8x + 9.15828e-006*P9x + 6.87598e-005*P10x + 0.000422382*P11x + 0.00212288*P12x + 0.0086937*P13x + 0.0287561*P14x + 0.0757048*P15x + 0.155015*P16x + 0.238058*P17x + 0.258063*P18x + 0.176138*P19x + 0.056947*P20x, 5.97629e-017*P1y + 6.97519e-015*P2y + 3.85628e-013*P3y + 1.34235e-011*P4y + 3.29836e-010*P5y + 6.0784e-009*P6y + 8.71237e-008*P7y + 9.93922e-007*P8y + 9.15828e-006*P9y + 6.87598e-005*P10y + 0.000422382*P11y + 0.00212288*P12y + 0.0086937*P13y + 0.0287561*P14y + 0.0757048*P15y + 0.155015*P16y + 0.238058*P17y + 0.258063*P18y + 0.176138*P19y + 0.056947*P20y),
list(1.46192e-017*P1x + 1.85889e-015*P2x + 1.11962e-013*P3x + 4.24595e-012*P4x + 1.13661e-010*P5x + 2.28196e-009*P6x + 3.56337e-008*P7x + 4.42876e-007*P8x + 4.44579e-006*P9x + 3.63643e-005*P10x + 0.000243361*P11x + 0.00133253*P12x + 0.00594513*P13x + 0.0214236*P14x + 0.0614457*P15x + 0.137071*P16x + 0.229331*P17x + 0.270838*P18x + 0.201393*P19x + 0.0709359*P20x, 1.46192e-017*P1y + 1.85889e-015*P2y + 1.11962e-013*P3y + 4.24595e-012*P4y + 1.13661e-010*P5y + 2.28196e-009*P6y + 3.56337e-008*P7y + 4.42876e-007*P8y + 4.44579e-006*P9y + 3.63643e-005*P10y + 0.000243361*P11y + 0.00133253*P12y + 0.00594513*P13y + 0.0214236*P14y + 0.0614457*P15y + 0.137071*P16y + 0.229331*P17y + 0.270838*P18y + 0.201393*P19y + 0.0709359*P20y),
list(3.1948e-018*P1x + 4.45142e-016*P2x + 2.93794e-014*P3x + 1.22088e-012*P4x + 3.58124e-011*P5x + 7.87873e-010*P6x + 1.34814e-008*P7x + 1.83604e-007*P8x + 2.01964e-006*P9x + 1.81019e-005*P10x + 0.000132748*P11x + 0.000796486*P12x + 0.00389393*P13x + 0.015376*P14x + 0.0483247*P15x + 0.118127*P16x + 0.216566*P17x + 0.280262*P18x + 0.228362*P19x + 0.0881395*P20x, 3.1948e-018*P1y + 4.45142e-016*P2y + 2.93794e-014*P3y + 1.22088e-012*P4y + 3.58124e-011*P5y + 7.87873e-010*P6y + 1.34814e-008*P7y + 1.83604e-007*P8y + 2.01964e-006*P9y + 1.81019e-005*P10y + 0.000132748*P11y + 0.000796486*P12y + 0.00389393*P13y + 0.015376*P14y + 0.0483247*P15y + 0.118127*P16y + 0.216566*P17y + 0.280262*P18y + 0.228362*P19y + 0.0881395*P20y),
list(6.11592e-019*P1x + 9.40184e-017*P2x + 6.84625e-015*P3x + 3.1389e-013*P4x + 1.01586e-011*P5x + 2.46577e-010*P6x + 4.65508e-009*P7x + 6.99471e-008*P8x + 8.48904e-007*P9x + 8.39472e-006*P10x + 6.79209e-005*P11x + 0.000449625*P12x + 0.00242525*P13x + 0.0105659*P14x + 0.0366377*P15x + 0.0988109*P16x + 0.199867*P17x + 0.285372*P18x + 0.256547*P19x + 0.109247*P20x, 6.11592e-019*P1y + 9.40184e-017*P2y + 6.84625e-015*P3y + 3.1389e-013*P4y + 1.01586e-011*P5y + 2.46577e-010*P6y + 4.65508e-009*P7y + 6.99471e-008*P8y + 8.48904e-007*P9y + 8.39472e-006*P10y + 6.79209e-005*P11y + 0.000449625*P12y + 0.00242525*P13y + 0.0105659*P14y + 0.0366377*P15y + 0.0988109*P16y + 0.199867*P17y + 0.285372*P18y + 0.256547*P19y + 0.109247*P20y),
list(1e-019*P1x + 1.71001e-017*P2x + 1.38511e-015*P3x + 7.06404e-014*P4x + 2.54305e-012*P5x + 6.86624e-011*P6x + 1.44191e-009*P7x + 2.41005e-008*P8x + 3.25357e-007*P9x + 3.57892e-006*P10x + 3.22103e-005*P11x + 0.000237185*P12x + 0.00142311*P13x + 0.0068966*P14x + 0.0266012*P15x + 0.0798034*P16x + 0.179558*P17x + 0.28518*P18x + 0.28518*P19x + 0.135085*P20x, 1e-019*P1y + 1.71001e-017*P2y + 1.38511e-015*P3y + 7.06404e-014*P4y + 2.54305e-012*P5y + 6.86624e-011*P6y + 1.44191e-009*P7y + 2.41005e-008*P8y + 3.25357e-007*P9y + 3.57892e-006*P10y + 3.22103e-005*P11y + 0.000237185*P12y + 0.00142311*P13y + 0.0068966*P14y + 0.0266012*P15y + 0.0798034*P16y + 0.179558*P17y + 0.28518*P18y + 0.28518*P19y + 0.135085*P20y),
list(1.35084e-020*P1x + 2.59512e-018*P2x + 2.36156e-016*P3x + 1.35309e-014*P4x + 5.47249e-013*P5x + 1.65999e-011*P6x + 3.91635e-010*P7x + 7.35403e-009*P8x + 1.11536e-007*P9x + 1.37837e-006*P10x + 1.39368e-005*P11x + 0.000115296*P12x + 0.000777178*P13x + 0.00423131*P14x + 0.0183357*P15x + 0.061798*P16x + 0.156212*P17x + 0.278731*P18x + 0.313142*P19x + 0.166643*P20x, 1.35084e-020*P1y + 2.59512e-018*P2y + 2.36156e-016*P3y + 1.35309e-014*P4y + 5.47249e-013*P5y + 1.65999e-011*P6y + 3.91635e-010*P7y + 7.35403e-009*P8y + 1.11536e-007*P9y + 1.37837e-006*P10y + 1.39368e-005*P11y + 0.000115296*P12y + 0.000777178*P13y + 0.00423131*P14y + 0.0183357*P15y + 0.061798*P16y + 0.156212*P17y + 0.278731*P18y + 0.313142*P19y + 0.166643*P20y),
list(1.44115e-021*P1x + 3.14891e-019*P2x + 3.25912e-017*P3x + 2.12386e-015*P4x + 9.76975e-014*P5x + 3.37057e-012*P6x + 9.04435e-011*P7x + 1.93162e-009*P8x + 3.33204e-008*P9x + 4.68337e-007*P10x + 5.38587e-006*P11x + 5.06762e-005*P12x + 0.000388517*P13x + 0.00240582*P14x + 0.0118573*P15x + 0.0454528*P16x + 0.130677*P17x + 0.265197*P18x + 0.338863*P19x + 0.205102*P20x, 1.44115e-021*P1y + 3.14891e-019*P2y + 3.25912e-017*P3y + 2.12386e-015*P4y + 9.76975e-014*P5y + 3.37057e-012*P6y + 9.04435e-011*P7y + 1.93162e-009*P8y + 3.33204e-008*P9y + 4.68337e-007*P10y + 5.38587e-006*P11y + 5.06762e-005*P12y + 0.000388517*P13y + 0.00240582*P14y + 0.0118573*P15y + 0.0454528*P16y + 0.130677*P17y + 0.265197*P18y + 0.338863*P19y + 0.205102*P20y),
list(1.13989e-022*P1x + 2.8774e-020*P2x + 3.44055e-018*P3x + 2.59024e-016*P4x + 1.37653e-014*P5x + 5.48645e-013*P6x + 1.7008e-011*P7x + 4.19647e-010*P8x + 8.36296e-009*P9x + 1.35799e-007*P10x + 1.80418e-006*P11x + 1.96117e-005*P12x + 0.000173703*P13x + 0.00124265*P14x + 0.00707549*P15x + 0.0313343*P16x + 0.104075*P17x + 0.244007*P18x + 0.360201*P19x + 0.25187*P20x, 1.13989e-022*P1y + 2.8774e-020*P2y + 3.44055e-018*P3y + 2.59024e-016*P4y + 1.37653e-014*P5y + 5.48645e-013*P6y + 1.7008e-011*P7y + 4.19647e-010*P8y + 8.36296e-009*P9y + 1.35799e-007*P10y + 1.80418e-006*P11y + 1.96117e-005*P12y + 0.000173703*P13y + 0.00124265*P14y + 0.00707549*P15y + 0.0313343*P16y + 0.104075*P17y + 0.244007*P18y + 0.360201*P19y + 0.25187*P20y),
list(6.0936e-024*P1x + 1.81386e-021*P2x + 2.55755e-019*P3x + 2.27053e-017*P4x + 1.42287e-015*P5x + 6.68747e-014*P6x + 2.44464e-012*P7x + 7.11275e-011*P8x + 1.6715e-009*P9x + 3.2006e-008*P10x + 5.01428e-007*P11x + 6.42739e-006*P12x + 6.71306e-005*P13x + 0.000566306*P14x + 0.00380234*P15x + 0.0198567*P16x + 0.077772*P17x + 0.215017*P18x + 0.374288*P19x + 0.308624*P20x, 6.0936e-024*P1y + 1.81386e-021*P2y + 2.55755e-019*P3y + 2.27053e-017*P4y + 1.42287e-015*P5y + 6.68747e-014*P6y + 2.44464e-012*P7y + 7.11275e-011*P8y + 1.6715e-009*P9y + 3.2006e-008*P10y + 5.01428e-007*P11y + 6.42739e-006*P12y + 6.71306e-005*P13y + 0.000566306*P14y + 0.00380234*P15y + 0.0198567*P16y + 0.077772*P17y + 0.215017*P18y + 0.374288*P19y + 0.308624*P20y),
list(1.90736e-025*P1x + 6.88556e-023*P2x + 1.17743e-020*P3x + 1.2677e-018*P4x + 9.63451e-017*P5x + 5.49167e-015*P6x + 2.43464e-013*P7x + 8.5908e-012*P8x + 2.44838e-010*P9x + 5.68567e-009*P10x + 1.08028e-007*P11x + 1.67934e-006*P12x + 2.12716e-005*P13x + 0.000217625*P14x + 0.00177209*P15x + 0.0112232*P16x + 0.0533104*P17x + 0.178746*P18x + 0.377354*P19x + 0.377354*P20x, 1.90736e-025*P1y + 6.88556e-023*P2y + 1.17743e-020*P3y + 1.2677e-018*P4y + 9.63451e-017*P5y + 5.49167e-015*P6y + 2.43464e-013*P7y + 8.5908e-012*P8y + 2.44838e-010*P9y + 5.68567e-009*P10y + 1.08028e-007*P11y + 1.67934e-006*P12y + 2.12716e-005*P13y + 0.000217625*P14y + 0.00177209*P15y + 0.0112232*P16y + 0.0533104*P17y + 0.178746*P18y + 0.377354*P19y + 0.377354*P20y),
list(2.74881e-027*P1x + 1.25346e-024*P2x + 2.70746e-022*P3x + 3.68215e-020*P4x + 3.53486e-018*P5x + 2.5451e-016*P6x + 1.42525e-014*P7x + 6.35255e-013*P8x + 2.28692e-011*P9x + 6.70829e-010*P10x + 1.60999e-008*P11x + 3.16143e-007*P12x + 5.05829e-006*P13x + 6.53686e-005*P14x + 0.000672362*P15x + 0.00537889*P16x + 0.0322733*P17x + 0.136687*P18x + 0.364499*P19x + 0.460419*P20x, 2.74881e-027*P1y + 1.25346e-024*P2y + 2.70746e-022*P3y + 3.68215e-020*P4y + 3.53486e-018*P5y + 2.5451e-016*P6y + 1.42525e-014*P7y + 6.35255e-013*P8y + 2.28692e-011*P9y + 6.70829e-010*P10y + 1.60999e-008*P11y + 3.16143e-007*P12y + 5.05829e-006*P13y + 6.53686e-005*P14y + 0.000672362*P15y + 0.00537889*P16y + 0.0322733*P17y + 0.136687*P18y + 0.364499*P19y + 0.460419*P20y),
list(1.16224e-029*P1x + 7.14004e-027*P2x + 2.07775e-024*P3x + 3.80691e-022*P4x + 4.92361e-020*P5x + 4.7759e-018*P6x + 3.60316e-016*P7x + 2.16361e-014*P8x + 1.04935e-012*P9x + 4.14689e-011*P10x + 1.34083e-009*P11x + 3.54711e-008*P12x + 7.64599e-007*P13x + 1.33119e-005*P14x + 0.000184465*P15x + 0.00198812*P16x + 0.0160707*P17x + 0.0916975*P18x + 0.329432*P19x + 0.560613*P20x, 1.16224e-029*P1y + 7.14004e-027*P2y + 2.07775e-024*P3y + 3.80691e-022*P4y + 4.92361e-020*P5y + 4.7759e-018*P6y + 3.60316e-016*P7y + 2.16361e-014*P8y + 1.04935e-012*P9y + 4.14689e-011*P10y + 1.34083e-009*P11y + 3.54711e-008*P12y + 7.64599e-007*P13y + 1.33119e-005*P14y + 0.000184465*P15y + 0.00198812*P16y + 0.0160707*P17y + 0.0916975*P18y + 0.329432*P19y + 0.560613*P20y),
list(5.24278e-033*P1x + 4.88104e-030*P2x + 2.15254e-027*P3x + 5.97689e-025*P4x + 1.17147e-022*P5x + 1.72207e-020*P6x + 1.9689e-018*P7x + 1.7917e-016*P8x + 1.3169e-014*P9x + 7.88677e-013*P10x + 3.86452e-011*P11x + 1.54932e-009*P12x + 5.06113e-008*P13x + 1.33536e-006*P14x + 2.80426e-005*P15x + 0.000458029*P16x + 0.00561087*P17x + 0.0485175*P18x + 0.264151*P19x + 0.681233*P20x, 5.24278e-033*P1y + 4.88104e-030*P2y + 2.15254e-027*P3y + 5.97689e-025*P4y + 1.17147e-022*P5y + 1.72207e-020*P6y + 1.9689e-018*P7y + 1.7917e-016*P8y + 1.3169e-014*P9y + 7.88677e-013*P10y + 3.86452e-011*P11y + 1.54932e-009*P12y + 5.06113e-008*P13y + 1.33536e-006*P14y + 2.80426e-005*P15y + 0.000458029*P16y + 0.00561087*P17y + 0.0485175*P18y + 0.264151*P19y + 0.681233*P20y),
list(P20x, P20y)
)
Again, kudos for taking the time to work all this out.

Even though most people won't use this, it's still nice someone has done it.



















;)
Kaiochao pointed out that some people would probably prefer just a flat list structure, where the odd terms are x coordinates and the even terms are y coordinates. The code is pretty similar, no surprise,
proc/MetaBezier(points_in, points_out)
// This is a function that will generate a fuction for generating points of a Bezier curve.

/*
* Function name
*/


var/function = "proc/Bezier"

switch(points_in)
if(1)
throw EXCEPTION("Bezier curves must have at least two points.")
if(2)
function += "Linear"
if(3)
function += "Quadratic"
if(4)
function += "Cubic"
else
function += "[points_in]atic"

/*
* Argument.
*/


function += "(list/Points)\n"

/*
* Comment about input.
*/


function += "\t// This input takes a flat list of length [points_in]*2 = [points_in*2]. The odd terms refer to the x coordinates"
function += "\n\t// of the passed (virtual) points, and the odd terms refer to the y coordinates of those (virtual)"
function += "\n\t// points. The returned list has the same structure.\n"

/*
* Variables to store the data so we don't have to look up the data in the list each time.
*/


function += "\n\tvar\n"

for(var/i = 1, i <= 2*points_in, i += 2)
function += "\t\tP[round(i/2)+1]x = Points\[[i]]\n"
function += "\t\tP[round(i/2)+1]y = Points\[[i+1]]\n"

/*
* Set up return.
*/


function += "\n\t// Populate the return list and send it back.\n"
function += "\treturn list("

// First point out is always the first point in.
function += "\n\t\tP1x, P1y,"

for(var/i = 2, i < points_out, i ++)
// Now we compute for the points that are not the first or last ones out.

var
x = ""
y = ""

delta = (i-1)/points_out
n = points_in

for(var/j = n, j > 0, j --)
var/coefficient = delta**(n-j) * (1-delta)**(j-1) * Choose(n-1, j-1)

x += "[coefficient]*P[n-j+1]x + "
y += "[coefficient]*P[n-j+1]y + "

function += "\n\t\t[copytext(x, 1, length(x)-2)], [copytext(y, 1, length(y)-2)],"

// Last point out is always the last point in.
function += "\n\t\tP[points_in]x, P[points_in]y"

function += "\n\t)"

/*
* Function has been built, so return it.
*/


return function

With this variation, we have MetaBezier(4, 30) as,
proc/BezierCubic(list/Points)
// This input takes a flat list of length 4*2 = 8. The odd terms refer to the x coordinates
// of the passed (virtual) points, and the odd terms refer to the y coordinates of those (virtual)
// points. The returned list has the same structure.

var
P1x = Points[1]
P1y = Points[2]
P2x = Points[3]
P2y = Points[4]
P3x = Points[5]
P3y = Points[6]
P4x = Points[7]
P4y = Points[8]


// Populate the return list and send it back.
return list(
P1x, P1y,
0.903296*P1x + 0.0934444*P2x + 0.00322222*P3x + 3.7037e-005*P4x, 0.903296*P1y + 0.0934444*P2y + 0.00322222*P3y + 3.7037e-005*P4y,
0.813037*P1x + 0.174222*P2x + 0.0124444*P3x + 0.000296296*P4x, 0.813037*P1y + 0.174222*P2y + 0.0124444*P3y + 0.000296296*P4y,
0.729*P1x + 0.243*P2x + 0.027*P3x + 0.001*P4x, 0.729*P1y + 0.243*P2y + 0.027*P3y + 0.001*P4y,
0.650963*P1x + 0.300444*P2x + 0.0462222*P3x + 0.00237037*P4x, 0.650963*P1y + 0.300444*P2y + 0.0462222*P3y + 0.00237037*P4y,
0.578704*P1x + 0.347222*P2x + 0.0694444*P3x + 0.00462963*P4x, 0.578704*P1y + 0.347222*P2y + 0.0694444*P3y + 0.00462963*P4y,
0.512*P1x + 0.384*P2x + 0.096*P3x + 0.008*P4x, 0.512*P1y + 0.384*P2y + 0.096*P3y + 0.008*P4y,
0.45063*P1x + 0.411444*P2x + 0.125222*P3x + 0.0127037*P4x, 0.45063*P1y + 0.411444*P2y + 0.125222*P3y + 0.0127037*P4y,
0.39437*P1x + 0.430222*P2x + 0.156444*P3x + 0.018963*P4x, 0.39437*P1y + 0.430222*P2y + 0.156444*P3y + 0.018963*P4y,
0.343*P1x + 0.441*P2x + 0.189*P3x + 0.027*P4x, 0.343*P1y + 0.441*P2y + 0.189*P3y + 0.027*P4y,
0.296296*P1x + 0.444444*P2x + 0.222222*P3x + 0.037037*P4x, 0.296296*P1y + 0.444444*P2y + 0.222222*P3y + 0.037037*P4y,
0.254037*P1x + 0.441222*P2x + 0.255444*P3x + 0.0492963*P4x, 0.254037*P1y + 0.441222*P2y + 0.255444*P3y + 0.0492963*P4y,
0.216*P1x + 0.432*P2x + 0.288*P3x + 0.064*P4x, 0.216*P1y + 0.432*P2y + 0.288*P3y + 0.064*P4y,
0.181963*P1x + 0.417444*P2x + 0.319222*P3x + 0.0813704*P4x, 0.181963*P1y + 0.417444*P2y + 0.319222*P3y + 0.0813704*P4y,
0.151704*P1x + 0.398222*P2x + 0.348444*P3x + 0.10163*P4x, 0.151704*P1y + 0.398222*P2y + 0.348444*P3y + 0.10163*P4y,
0.125*P1x + 0.375*P2x + 0.375*P3x + 0.125*P4x, 0.125*P1y + 0.375*P2y + 0.375*P3y + 0.125*P4y,
0.10163*P1x + 0.348444*P2x + 0.398222*P3x + 0.151704*P4x, 0.10163*P1y + 0.348444*P2y + 0.398222*P3y + 0.151704*P4y,
0.0813704*P1x + 0.319222*P2x + 0.417444*P3x + 0.181963*P4x, 0.0813704*P1y + 0.319222*P2y + 0.417444*P3y + 0.181963*P4y,
0.064*P1x + 0.288*P2x + 0.432*P3x + 0.216*P4x, 0.064*P1y + 0.288*P2y + 0.432*P3y + 0.216*P4y,
0.0492963*P1x + 0.255444*P2x + 0.441222*P3x + 0.254037*P4x, 0.0492963*P1y + 0.255444*P2y + 0.441222*P3y + 0.254037*P4y,
0.037037*P1x + 0.222222*P2x + 0.444444*P3x + 0.296296*P4x, 0.037037*P1y + 0.222222*P2y + 0.444444*P3y + 0.296296*P4y,
0.027*P1x + 0.189*P2x + 0.441*P3x + 0.343*P4x, 0.027*P1y + 0.189*P2y + 0.441*P3y + 0.343*P4y,
0.018963*P1x + 0.156444*P2x + 0.430222*P3x + 0.39437*P4x, 0.018963*P1y + 0.156444*P2y + 0.430222*P3y + 0.39437*P4y,
0.0127037*P1x + 0.125222*P2x + 0.411444*P3x + 0.45063*P4x, 0.0127037*P1y + 0.125222*P2y + 0.411444*P3y + 0.45063*P4y,
0.008*P1x + 0.096*P2x + 0.384*P3x + 0.512*P4x, 0.008*P1y + 0.096*P2y + 0.384*P3y + 0.512*P4y,
0.00462963*P1x + 0.0694445*P2x + 0.347222*P3x + 0.578704*P4x, 0.00462963*P1y + 0.0694445*P2y + 0.347222*P3y + 0.578704*P4y,
0.00237037*P1x + 0.0462222*P2x + 0.300444*P3x + 0.650963*P4x, 0.00237037*P1y + 0.0462222*P2y + 0.300444*P3y + 0.650963*P4y,
0.001*P1x + 0.027*P2x + 0.243*P3x + 0.729*P4x, 0.001*P1y + 0.027*P2y + 0.243*P3y + 0.729*P4y,
0.000296296*P1x + 0.0124444*P2x + 0.174222*P3x + 0.813037*P4x, 0.000296296*P1y + 0.0124444*P2y + 0.174222*P3y + 0.813037*P4y,
P4x, P4y
)