// ************************************************************************** // // // // eses eses // // eses eses // // eses eseses esesese eses Embedded Systems Group // // ese ese ese ese ese // // ese eseseses eseseses ese Department of Computer Science // // eses eses ese eses // // eses eseses eseseses eses University of Kaiserslautern // // eses eses // // // // ************************************************************************** // [512]nat x; thread ParallelPrefixTree_512 { [512]nat y; y[0] = x[0]; y[1] = x[1]; y[2] = x[2]; y[3] = x[3]; y[4] = x[4]; y[5] = x[5]; y[6] = x[6]; y[7] = x[7]; y[8] = x[8]; y[9] = x[9]; y[10] = x[10]; y[11] = x[11]; y[12] = x[12]; y[13] = x[13]; y[14] = x[14]; y[15] = x[15]; y[16] = x[16]; y[17] = x[17]; y[18] = x[18]; y[19] = x[19]; y[20] = x[20]; y[21] = x[21]; y[22] = x[22]; y[23] = x[23]; y[24] = x[24]; y[25] = x[25]; y[26] = x[26]; y[27] = x[27]; y[28] = x[28]; y[29] = x[29]; y[30] = x[30]; y[31] = x[31]; y[32] = x[32]; y[33] = x[33]; y[34] = x[34]; y[35] = x[35]; y[36] = x[36]; y[37] = x[37]; y[38] = x[38]; y[39] = x[39]; y[40] = x[40]; y[41] = x[41]; y[42] = x[42]; y[43] = x[43]; y[44] = x[44]; y[45] = x[45]; y[46] = x[46]; y[47] = x[47]; y[48] = x[48]; y[49] = x[49]; y[50] = x[50]; y[51] = x[51]; y[52] = x[52]; y[53] = x[53]; y[54] = x[54]; y[55] = x[55]; y[56] = x[56]; y[57] = x[57]; y[58] = x[58]; y[59] = x[59]; y[60] = x[60]; y[61] = x[61]; y[62] = x[62]; y[63] = x[63]; y[64] = x[64]; y[65] = x[65]; y[66] = x[66]; y[67] = x[67]; y[68] = x[68]; y[69] = x[69]; y[70] = x[70]; y[71] = x[71]; y[72] = x[72]; y[73] = x[73]; y[74] = x[74]; y[75] = x[75]; y[76] = x[76]; y[77] = x[77]; y[78] = x[78]; y[79] = x[79]; y[80] = x[80]; y[81] = x[81]; y[82] = x[82]; y[83] = x[83]; y[84] = x[84]; y[85] = x[85]; y[86] = x[86]; y[87] = x[87]; y[88] = x[88]; y[89] = x[89]; y[90] = x[90]; y[91] = x[91]; y[92] = x[92]; y[93] = x[93]; y[94] = x[94]; y[95] = x[95]; y[96] = x[96]; y[97] = x[97]; y[98] = x[98]; y[99] = x[99]; y[100] = x[100]; y[101] = x[101]; y[102] = x[102]; y[103] = x[103]; y[104] = x[104]; y[105] = x[105]; y[106] = x[106]; y[107] = x[107]; y[108] = x[108]; y[109] = x[109]; y[110] = x[110]; y[111] = x[111]; y[112] = x[112]; y[113] = x[113]; y[114] = x[114]; y[115] = x[115]; y[116] = x[116]; y[117] = x[117]; y[118] = x[118]; y[119] = x[119]; y[120] = x[120]; y[121] = x[121]; y[122] = x[122]; y[123] = x[123]; y[124] = x[124]; y[125] = x[125]; y[126] = x[126]; y[127] = x[127]; y[128] = x[128]; y[129] = x[129]; y[130] = x[130]; y[131] = x[131]; y[132] = x[132]; y[133] = x[133]; y[134] = x[134]; y[135] = x[135]; y[136] = x[136]; y[137] = x[137]; y[138] = x[138]; y[139] = x[139]; y[140] = x[140]; y[141] = x[141]; y[142] = x[142]; y[143] = x[143]; y[144] = x[144]; y[145] = x[145]; y[146] = x[146]; y[147] = x[147]; y[148] = x[148]; y[149] = x[149]; y[150] = x[150]; y[151] = x[151]; y[152] = x[152]; y[153] = x[153]; y[154] = x[154]; y[155] = x[155]; y[156] = x[156]; y[157] = x[157]; y[158] = x[158]; y[159] = x[159]; y[160] = x[160]; y[161] = x[161]; y[162] = x[162]; y[163] = x[163]; y[164] = x[164]; y[165] = x[165]; y[166] = x[166]; y[167] = x[167]; y[168] = x[168]; y[169] = x[169]; y[170] = x[170]; y[171] = x[171]; y[172] = x[172]; y[173] = x[173]; y[174] = x[174]; y[175] = x[175]; y[176] = x[176]; y[177] = x[177]; y[178] = x[178]; y[179] = x[179]; y[180] = x[180]; y[181] = x[181]; y[182] = x[182]; y[183] = x[183]; y[184] = x[184]; y[185] = x[185]; y[186] = x[186]; y[187] = x[187]; y[188] = x[188]; y[189] = x[189]; y[190] = x[190]; y[191] = x[191]; y[192] = x[192]; y[193] = x[193]; y[194] = x[194]; y[195] = x[195]; y[196] = x[196]; y[197] = x[197]; y[198] = x[198]; y[199] = x[199]; y[200] = x[200]; y[201] = x[201]; y[202] = x[202]; y[203] = x[203]; y[204] = x[204]; y[205] = x[205]; y[206] = x[206]; y[207] = x[207]; y[208] = x[208]; y[209] = x[209]; y[210] = x[210]; y[211] = x[211]; y[212] = x[212]; y[213] = x[213]; y[214] = x[214]; y[215] = x[215]; y[216] = x[216]; y[217] = x[217]; y[218] = x[218]; y[219] = x[219]; y[220] = x[220]; y[221] = x[221]; y[222] = x[222]; y[223] = x[223]; y[224] = x[224]; y[225] = x[225]; y[226] = x[226]; y[227] = x[227]; y[228] = x[228]; y[229] = x[229]; y[230] = x[230]; y[231] = x[231]; y[232] = x[232]; y[233] = x[233]; y[234] = x[234]; y[235] = x[235]; y[236] = x[236]; y[237] = x[237]; y[238] = x[238]; y[239] = x[239]; y[240] = x[240]; y[241] = x[241]; y[242] = x[242]; y[243] = x[243]; y[244] = x[244]; y[245] = x[245]; y[246] = x[246]; y[247] = x[247]; y[248] = x[248]; y[249] = x[249]; y[250] = x[250]; y[251] = x[251]; y[252] = x[252]; y[253] = x[253]; y[254] = x[254]; y[255] = x[255]; y[256] = x[256]; y[257] = x[257]; y[258] = x[258]; y[259] = x[259]; y[260] = x[260]; y[261] = x[261]; y[262] = x[262]; y[263] = x[263]; y[264] = x[264]; y[265] = x[265]; y[266] = x[266]; y[267] = x[267]; y[268] = x[268]; y[269] = x[269]; y[270] = x[270]; y[271] = x[271]; y[272] = x[272]; y[273] = x[273]; y[274] = x[274]; y[275] = x[275]; y[276] = x[276]; y[277] = x[277]; y[278] = x[278]; y[279] = x[279]; y[280] = x[280]; y[281] = x[281]; y[282] = x[282]; y[283] = x[283]; y[284] = x[284]; y[285] = x[285]; y[286] = x[286]; y[287] = x[287]; y[288] = x[288]; y[289] = x[289]; y[290] = x[290]; y[291] = x[291]; y[292] = x[292]; y[293] = x[293]; y[294] = x[294]; y[295] = x[295]; y[296] = x[296]; y[297] = x[297]; y[298] = x[298]; y[299] = x[299]; y[300] = x[300]; y[301] = x[301]; y[302] = x[302]; y[303] = x[303]; y[304] = x[304]; y[305] = x[305]; y[306] = x[306]; y[307] = x[307]; y[308] = x[308]; y[309] = x[309]; y[310] = x[310]; y[311] = x[311]; y[312] = x[312]; y[313] = x[313]; y[314] = x[314]; y[315] = x[315]; y[316] = x[316]; y[317] = x[317]; y[318] = x[318]; y[319] = x[319]; y[320] = x[320]; y[321] = x[321]; y[322] = x[322]; y[323] = x[323]; y[324] = x[324]; y[325] = x[325]; y[326] = x[326]; y[327] = x[327]; y[328] = x[328]; y[329] = x[329]; y[330] = x[330]; y[331] = x[331]; y[332] = x[332]; y[333] = x[333]; y[334] = x[334]; y[335] = x[335]; y[336] = x[336]; y[337] = x[337]; y[338] = x[338]; y[339] = x[339]; y[340] = x[340]; y[341] = x[341]; y[342] = x[342]; y[343] = x[343]; y[344] = x[344]; y[345] = x[345]; y[346] = x[346]; y[347] = x[347]; y[348] = x[348]; y[349] = x[349]; y[350] = x[350]; y[351] = x[351]; y[352] = x[352]; y[353] = x[353]; y[354] = x[354]; y[355] = x[355]; y[356] = x[356]; y[357] = x[357]; y[358] = x[358]; y[359] = x[359]; y[360] = x[360]; y[361] = x[361]; y[362] = x[362]; y[363] = x[363]; y[364] = x[364]; y[365] = x[365]; y[366] = x[366]; y[367] = x[367]; y[368] = x[368]; y[369] = x[369]; y[370] = x[370]; y[371] = x[371]; y[372] = x[372]; y[373] = x[373]; y[374] = x[374]; y[375] = x[375]; y[376] = x[376]; y[377] = x[377]; y[378] = x[378]; y[379] = x[379]; y[380] = x[380]; y[381] = x[381]; y[382] = x[382]; y[383] = x[383]; y[384] = x[384]; y[385] = x[385]; y[386] = x[386]; y[387] = x[387]; y[388] = x[388]; y[389] = x[389]; y[390] = x[390]; y[391] = x[391]; y[392] = x[392]; y[393] = x[393]; y[394] = x[394]; y[395] = x[395]; y[396] = x[396]; y[397] = x[397]; y[398] = x[398]; y[399] = x[399]; y[400] = x[400]; y[401] = x[401]; y[402] = x[402]; y[403] = x[403]; y[404] = x[404]; y[405] = x[405]; y[406] = x[406]; y[407] = x[407]; y[408] = x[408]; y[409] = x[409]; y[410] = x[410]; y[411] = x[411]; y[412] = x[412]; y[413] = x[413]; y[414] = x[414]; y[415] = x[415]; y[416] = x[416]; y[417] = x[417]; y[418] = x[418]; y[419] = x[419]; y[420] = x[420]; y[421] = x[421]; y[422] = x[422]; y[423] = x[423]; y[424] = x[424]; y[425] = x[425]; y[426] = x[426]; y[427] = x[427]; y[428] = x[428]; y[429] = x[429]; y[430] = x[430]; y[431] = x[431]; y[432] = x[432]; y[433] = x[433]; y[434] = x[434]; y[435] = x[435]; y[436] = x[436]; y[437] = x[437]; y[438] = x[438]; y[439] = x[439]; y[440] = x[440]; y[441] = x[441]; y[442] = x[442]; y[443] = x[443]; y[444] = x[444]; y[445] = x[445]; y[446] = x[446]; y[447] = x[447]; y[448] = x[448]; y[449] = x[449]; y[450] = x[450]; y[451] = x[451]; y[452] = x[452]; y[453] = x[453]; y[454] = x[454]; y[455] = x[455]; y[456] = x[456]; y[457] = x[457]; y[458] = x[458]; y[459] = x[459]; y[460] = x[460]; y[461] = x[461]; y[462] = x[462]; y[463] = x[463]; y[464] = x[464]; y[465] = x[465]; y[466] = x[466]; y[467] = x[467]; y[468] = x[468]; y[469] = x[469]; y[470] = x[470]; y[471] = x[471]; y[472] = x[472]; y[473] = x[473]; y[474] = x[474]; y[475] = x[475]; y[476] = x[476]; y[477] = x[477]; y[478] = x[478]; y[479] = x[479]; y[480] = x[480]; y[481] = x[481]; y[482] = x[482]; y[483] = x[483]; y[484] = x[484]; y[485] = x[485]; y[486] = x[486]; y[487] = x[487]; y[488] = x[488]; y[489] = x[489]; y[490] = x[490]; y[491] = x[491]; y[492] = x[492]; y[493] = x[493]; y[494] = x[494]; y[495] = x[495]; y[496] = x[496]; y[497] = x[497]; y[498] = x[498]; y[499] = x[499]; y[500] = x[500]; y[501] = x[501]; y[502] = x[502]; y[503] = x[503]; y[504] = x[504]; y[505] = x[505]; y[506] = x[506]; y[507] = x[507]; y[508] = x[508]; y[509] = x[509]; y[510] = x[510]; y[511] = x[511]; // up-level 0 y[1] = y[0] + y[1]; y[3] = y[2] + y[3]; y[5] = y[4] + y[5]; y[7] = y[6] + y[7]; y[9] = y[8] + y[9]; y[11] = y[10] + y[11]; y[13] = y[12] + y[13]; y[15] = y[14] + y[15]; y[17] = y[16] + y[17]; y[19] = y[18] + y[19]; y[21] = y[20] + y[21]; y[23] = y[22] + y[23]; y[25] = y[24] + y[25]; y[27] = y[26] + y[27]; y[29] = y[28] + y[29]; y[31] = y[30] + y[31]; y[33] = y[32] + y[33]; y[35] = y[34] + y[35]; y[37] = y[36] + y[37]; y[39] = y[38] + y[39]; y[41] = y[40] + y[41]; y[43] = y[42] + y[43]; y[45] = y[44] + y[45]; y[47] = y[46] + y[47]; y[49] = y[48] + y[49]; y[51] = y[50] + y[51]; y[53] = y[52] + y[53]; y[55] = y[54] + y[55]; y[57] = y[56] + y[57]; y[59] = y[58] + y[59]; y[61] = y[60] + y[61]; y[63] = y[62] + y[63]; y[65] = y[64] + y[65]; y[67] = y[66] + y[67]; y[69] = y[68] + y[69]; y[71] = y[70] + y[71]; y[73] = y[72] + y[73]; y[75] = y[74] + y[75]; y[77] = y[76] + y[77]; y[79] = y[78] + y[79]; y[81] = y[80] + y[81]; y[83] = y[82] + y[83]; y[85] = y[84] + y[85]; y[87] = y[86] + y[87]; y[89] = y[88] + y[89]; y[91] = y[90] + y[91]; y[93] = y[92] + y[93]; y[95] = y[94] + y[95]; y[97] = y[96] + y[97]; y[99] = y[98] + y[99]; y[101] = y[100] + y[101]; y[103] = y[102] + y[103]; y[105] = y[104] + y[105]; y[107] = y[106] + y[107]; y[109] = y[108] + y[109]; y[111] = y[110] + y[111]; y[113] = y[112] + y[113]; y[115] = y[114] + y[115]; y[117] = y[116] + y[117]; y[119] = y[118] + y[119]; y[121] = y[120] + y[121]; y[123] = y[122] + y[123]; y[125] = y[124] + y[125]; y[127] = y[126] + y[127]; y[129] = y[128] + y[129]; y[131] = y[130] + y[131]; y[133] = y[132] + y[133]; y[135] = y[134] + y[135]; y[137] = y[136] + y[137]; y[139] = y[138] + y[139]; y[141] = y[140] + y[141]; y[143] = y[142] + y[143]; y[145] = y[144] + y[145]; y[147] = y[146] + y[147]; y[149] = y[148] + y[149]; y[151] = y[150] + y[151]; y[153] = y[152] + y[153]; y[155] = y[154] + y[155]; y[157] = y[156] + y[157]; y[159] = y[158] + y[159]; y[161] = y[160] + y[161]; y[163] = y[162] + y[163]; y[165] = y[164] + y[165]; y[167] = y[166] + y[167]; y[169] = y[168] + y[169]; y[171] = y[170] + y[171]; y[173] = y[172] + y[173]; y[175] = y[174] + y[175]; y[177] = y[176] + y[177]; y[179] = y[178] + y[179]; y[181] = y[180] + y[181]; y[183] = y[182] + y[183]; y[185] = y[184] + y[185]; y[187] = y[186] + y[187]; y[189] = y[188] + y[189]; y[191] = y[190] + y[191]; y[193] = y[192] + y[193]; y[195] = y[194] + y[195]; y[197] = y[196] + y[197]; y[199] = y[198] + y[199]; y[201] = y[200] + y[201]; y[203] = y[202] + y[203]; y[205] = y[204] + y[205]; y[207] = y[206] + y[207]; y[209] = y[208] + y[209]; y[211] = y[210] + y[211]; y[213] = y[212] + y[213]; y[215] = y[214] + y[215]; y[217] = y[216] + y[217]; y[219] = y[218] + y[219]; y[221] = y[220] + y[221]; y[223] = y[222] + y[223]; y[225] = y[224] + y[225]; y[227] = y[226] + y[227]; y[229] = y[228] + y[229]; y[231] = y[230] + y[231]; y[233] = y[232] + y[233]; y[235] = y[234] + y[235]; y[237] = y[236] + y[237]; y[239] = y[238] + y[239]; y[241] = y[240] + y[241]; y[243] = y[242] + y[243]; y[245] = y[244] + y[245]; y[247] = y[246] + y[247]; y[249] = y[248] + y[249]; y[251] = y[250] + y[251]; y[253] = y[252] + y[253]; y[255] = y[254] + y[255]; y[257] = y[256] + y[257]; y[259] = y[258] + y[259]; y[261] = y[260] + y[261]; y[263] = y[262] + y[263]; y[265] = y[264] + y[265]; y[267] = y[266] + y[267]; y[269] = y[268] + y[269]; y[271] = y[270] + y[271]; y[273] = y[272] + y[273]; y[275] = y[274] + y[275]; y[277] = y[276] + y[277]; y[279] = y[278] + y[279]; y[281] = y[280] + y[281]; y[283] = y[282] + y[283]; y[285] = y[284] + y[285]; y[287] = y[286] + y[287]; y[289] = y[288] + y[289]; y[291] = y[290] + y[291]; y[293] = y[292] + y[293]; y[295] = y[294] + y[295]; y[297] = y[296] + y[297]; y[299] = y[298] + y[299]; y[301] = y[300] + y[301]; y[303] = y[302] + y[303]; y[305] = y[304] + y[305]; y[307] = y[306] + y[307]; y[309] = y[308] + y[309]; y[311] = y[310] + y[311]; y[313] = y[312] + y[313]; y[315] = y[314] + y[315]; y[317] = y[316] + y[317]; y[319] = y[318] + y[319]; y[321] = y[320] + y[321]; y[323] = y[322] + y[323]; y[325] = y[324] + y[325]; y[327] = y[326] + y[327]; y[329] = y[328] + y[329]; y[331] = y[330] + y[331]; y[333] = y[332] + y[333]; y[335] = y[334] + y[335]; y[337] = y[336] + y[337]; y[339] = y[338] + y[339]; y[341] = y[340] + y[341]; y[343] = y[342] + y[343]; y[345] = y[344] + y[345]; y[347] = y[346] + y[347]; y[349] = y[348] + y[349]; y[351] = y[350] + y[351]; y[353] = y[352] + y[353]; y[355] = y[354] + y[355]; y[357] = y[356] + y[357]; y[359] = y[358] + y[359]; y[361] = y[360] + y[361]; y[363] = y[362] + y[363]; y[365] = y[364] + y[365]; y[367] = y[366] + y[367]; y[369] = y[368] + y[369]; y[371] = y[370] + y[371]; y[373] = y[372] + y[373]; y[375] = y[374] + y[375]; y[377] = y[376] + y[377]; y[379] = y[378] + y[379]; y[381] = y[380] + y[381]; y[383] = y[382] + y[383]; y[385] = y[384] + y[385]; y[387] = y[386] + y[387]; y[389] = y[388] + y[389]; y[391] = y[390] + y[391]; y[393] = y[392] + y[393]; y[395] = y[394] + y[395]; y[397] = y[396] + y[397]; y[399] = y[398] + y[399]; y[401] = y[400] + y[401]; y[403] = y[402] + y[403]; y[405] = y[404] + y[405]; y[407] = y[406] + y[407]; y[409] = y[408] + y[409]; y[411] = y[410] + y[411]; y[413] = y[412] + y[413]; y[415] = y[414] + y[415]; y[417] = y[416] + y[417]; y[419] = y[418] + y[419]; y[421] = y[420] + y[421]; y[423] = y[422] + y[423]; y[425] = y[424] + y[425]; y[427] = y[426] + y[427]; y[429] = y[428] + y[429]; y[431] = y[430] + y[431]; y[433] = y[432] + y[433]; y[435] = y[434] + y[435]; y[437] = y[436] + y[437]; y[439] = y[438] + y[439]; y[441] = y[440] + y[441]; y[443] = y[442] + y[443]; y[445] = y[444] + y[445]; y[447] = y[446] + y[447]; y[449] = y[448] + y[449]; y[451] = y[450] + y[451]; y[453] = y[452] + y[453]; y[455] = y[454] + y[455]; y[457] = y[456] + y[457]; y[459] = y[458] + y[459]; y[461] = y[460] + y[461]; y[463] = y[462] + y[463]; y[465] = y[464] + y[465]; y[467] = y[466] + y[467]; y[469] = y[468] + y[469]; y[471] = y[470] + y[471]; y[473] = y[472] + y[473]; y[475] = y[474] + y[475]; y[477] = y[476] + y[477]; y[479] = y[478] + y[479]; y[481] = y[480] + y[481]; y[483] = y[482] + y[483]; y[485] = y[484] + y[485]; y[487] = y[486] + y[487]; y[489] = y[488] + y[489]; y[491] = y[490] + y[491]; y[493] = y[492] + y[493]; y[495] = y[494] + y[495]; y[497] = y[496] + y[497]; y[499] = y[498] + y[499]; y[501] = y[500] + y[501]; y[503] = y[502] + y[503]; y[505] = y[504] + y[505]; y[507] = y[506] + y[507]; y[509] = y[508] + y[509]; y[511] = y[510] + y[511]; // up-level 1 y[3] = y[1] + y[3]; y[7] = y[5] + y[7]; y[11] = y[9] + y[11]; y[15] = y[13] + y[15]; y[19] = y[17] + y[19]; y[23] = y[21] + y[23]; y[27] = y[25] + y[27]; y[31] = y[29] + y[31]; y[35] = y[33] + y[35]; y[39] = y[37] + y[39]; y[43] = y[41] + y[43]; y[47] = y[45] + y[47]; y[51] = y[49] + y[51]; y[55] = y[53] + y[55]; y[59] = y[57] + y[59]; y[63] = y[61] + y[63]; y[67] = y[65] + y[67]; y[71] = y[69] + y[71]; y[75] = y[73] + y[75]; y[79] = y[77] + y[79]; y[83] = y[81] + y[83]; y[87] = y[85] + y[87]; y[91] = y[89] + y[91]; y[95] = y[93] + y[95]; y[99] = y[97] + y[99]; y[103] = y[101] + y[103]; y[107] = y[105] + y[107]; y[111] = y[109] + y[111]; y[115] = y[113] + y[115]; y[119] = y[117] + y[119]; y[123] = y[121] + y[123]; y[127] = y[125] + y[127]; y[131] = y[129] + y[131]; y[135] = y[133] + y[135]; y[139] = y[137] + y[139]; y[143] = y[141] + y[143]; y[147] = y[145] + y[147]; y[151] = y[149] + y[151]; y[155] = y[153] + y[155]; y[159] = y[157] + y[159]; y[163] = y[161] + y[163]; y[167] = y[165] + y[167]; y[171] = y[169] + y[171]; y[175] = y[173] + y[175]; y[179] = y[177] + y[179]; y[183] = y[181] + y[183]; y[187] = y[185] + y[187]; y[191] = y[189] + y[191]; y[195] = y[193] + y[195]; y[199] = y[197] + y[199]; y[203] = y[201] + y[203]; y[207] = y[205] + y[207]; y[211] = y[209] + y[211]; y[215] = y[213] + y[215]; y[219] = y[217] + y[219]; y[223] = y[221] + y[223]; y[227] = y[225] + y[227]; y[231] = y[229] + y[231]; y[235] = y[233] + y[235]; y[239] = y[237] + y[239]; y[243] = y[241] + y[243]; y[247] = y[245] + y[247]; y[251] = y[249] + y[251]; y[255] = y[253] + y[255]; y[259] = y[257] + y[259]; y[263] = y[261] + y[263]; y[267] = y[265] + y[267]; y[271] = y[269] + y[271]; y[275] = y[273] + y[275]; y[279] = y[277] + y[279]; y[283] = y[281] + y[283]; y[287] = y[285] + y[287]; y[291] = y[289] + y[291]; y[295] = y[293] + y[295]; y[299] = y[297] + y[299]; y[303] = y[301] + y[303]; y[307] = y[305] + y[307]; y[311] = y[309] + y[311]; y[315] = y[313] + y[315]; y[319] = y[317] + y[319]; y[323] = y[321] + y[323]; y[327] = y[325] + y[327]; y[331] = y[329] + y[331]; y[335] = y[333] + y[335]; y[339] = y[337] + y[339]; y[343] = y[341] + y[343]; y[347] = y[345] + y[347]; y[351] = y[349] + y[351]; y[355] = y[353] + y[355]; y[359] = y[357] + y[359]; y[363] = y[361] + y[363]; y[367] = y[365] + y[367]; y[371] = y[369] + y[371]; y[375] = y[373] + y[375]; y[379] = y[377] + y[379]; y[383] = y[381] + y[383]; y[387] = y[385] + y[387]; y[391] = y[389] + y[391]; y[395] = y[393] + y[395]; y[399] = y[397] + y[399]; y[403] = y[401] + y[403]; y[407] = y[405] + y[407]; y[411] = y[409] + y[411]; y[415] = y[413] + y[415]; y[419] = y[417] + y[419]; y[423] = y[421] + y[423]; y[427] = y[425] + y[427]; y[431] = y[429] + y[431]; y[435] = y[433] + y[435]; y[439] = y[437] + y[439]; y[443] = y[441] + y[443]; y[447] = y[445] + y[447]; y[451] = y[449] + y[451]; y[455] = y[453] + y[455]; y[459] = y[457] + y[459]; y[463] = y[461] + y[463]; y[467] = y[465] + y[467]; y[471] = y[469] + y[471]; y[475] = y[473] + y[475]; y[479] = y[477] + y[479]; y[483] = y[481] + y[483]; y[487] = y[485] + y[487]; y[491] = y[489] + y[491]; y[495] = y[493] + y[495]; y[499] = y[497] + y[499]; y[503] = y[501] + y[503]; y[507] = y[505] + y[507]; y[511] = y[509] + y[511]; // up-level 2 y[7] = y[3] + y[7]; y[15] = y[11] + y[15]; y[23] = y[19] + y[23]; y[31] = y[27] + y[31]; y[39] = y[35] + y[39]; y[47] = y[43] + y[47]; y[55] = y[51] + y[55]; y[63] = y[59] + y[63]; y[71] = y[67] + y[71]; y[79] = y[75] + y[79]; y[87] = y[83] + y[87]; y[95] = y[91] + y[95]; y[103] = y[99] + y[103]; y[111] = y[107] + y[111]; y[119] = y[115] + y[119]; y[127] = y[123] + y[127]; y[135] = y[131] + y[135]; y[143] = y[139] + y[143]; y[151] = y[147] + y[151]; y[159] = y[155] + y[159]; y[167] = y[163] + y[167]; y[175] = y[171] + y[175]; y[183] = y[179] + y[183]; y[191] = y[187] + y[191]; y[199] = y[195] + y[199]; y[207] = y[203] + y[207]; y[215] = y[211] + y[215]; y[223] = y[219] + y[223]; y[231] = y[227] + y[231]; y[239] = y[235] + y[239]; y[247] = y[243] + y[247]; y[255] = y[251] + y[255]; y[263] = y[259] + y[263]; y[271] = y[267] + y[271]; y[279] = y[275] + y[279]; y[287] = y[283] + y[287]; y[295] = y[291] + y[295]; y[303] = y[299] + y[303]; y[311] = y[307] + y[311]; y[319] = y[315] + y[319]; y[327] = y[323] + y[327]; y[335] = y[331] + y[335]; y[343] = y[339] + y[343]; y[351] = y[347] + y[351]; y[359] = y[355] + y[359]; y[367] = y[363] + y[367]; y[375] = y[371] + y[375]; y[383] = y[379] + y[383]; y[391] = y[387] + y[391]; y[399] = y[395] + y[399]; y[407] = y[403] + y[407]; y[415] = y[411] + y[415]; y[423] = y[419] + y[423]; y[431] = y[427] + y[431]; y[439] = y[435] + y[439]; y[447] = y[443] + y[447]; y[455] = y[451] + y[455]; y[463] = y[459] + y[463]; y[471] = y[467] + y[471]; y[479] = y[475] + y[479]; y[487] = y[483] + y[487]; y[495] = y[491] + y[495]; y[503] = y[499] + y[503]; y[511] = y[507] + y[511]; // up-level 3 y[15] = y[7] + y[15]; y[31] = y[23] + y[31]; y[47] = y[39] + y[47]; y[63] = y[55] + y[63]; y[79] = y[71] + y[79]; y[95] = y[87] + y[95]; y[111] = y[103] + y[111]; y[127] = y[119] + y[127]; y[143] = y[135] + y[143]; y[159] = y[151] + y[159]; y[175] = y[167] + y[175]; y[191] = y[183] + y[191]; y[207] = y[199] + y[207]; y[223] = y[215] + y[223]; y[239] = y[231] + y[239]; y[255] = y[247] + y[255]; y[271] = y[263] + y[271]; y[287] = y[279] + y[287]; y[303] = y[295] + y[303]; y[319] = y[311] + y[319]; y[335] = y[327] + y[335]; y[351] = y[343] + y[351]; y[367] = y[359] + y[367]; y[383] = y[375] + y[383]; y[399] = y[391] + y[399]; y[415] = y[407] + y[415]; y[431] = y[423] + y[431]; y[447] = y[439] + y[447]; y[463] = y[455] + y[463]; y[479] = y[471] + y[479]; y[495] = y[487] + y[495]; y[511] = y[503] + y[511]; // up-level 4 y[31] = y[15] + y[31]; y[63] = y[47] + y[63]; y[95] = y[79] + y[95]; y[127] = y[111] + y[127]; y[159] = y[143] + y[159]; y[191] = y[175] + y[191]; y[223] = y[207] + y[223]; y[255] = y[239] + y[255]; y[287] = y[271] + y[287]; y[319] = y[303] + y[319]; y[351] = y[335] + y[351]; y[383] = y[367] + y[383]; y[415] = y[399] + y[415]; y[447] = y[431] + y[447]; y[479] = y[463] + y[479]; y[511] = y[495] + y[511]; // up-level 5 y[63] = y[31] + y[63]; y[127] = y[95] + y[127]; y[191] = y[159] + y[191]; y[255] = y[223] + y[255]; y[319] = y[287] + y[319]; y[383] = y[351] + y[383]; y[447] = y[415] + y[447]; y[511] = y[479] + y[511]; // up-level 6 y[127] = y[63] + y[127]; y[255] = y[191] + y[255]; y[383] = y[319] + y[383]; y[511] = y[447] + y[511]; // up-level 7 y[255] = y[127] + y[255]; y[511] = y[383] + y[511]; // up-level 8 y[511] = y[255] + y[511]; // up-level 9 // down-level 10 // down-level 11 y[383] = y[255] + y[383]; // down-level 12 y[191] = y[127] + y[191]; y[319] = y[255] + y[319]; y[447] = y[383] + y[447]; // down-level 13 y[95] = y[63] + y[95]; y[159] = y[127] + y[159]; y[223] = y[191] + y[223]; y[287] = y[255] + y[287]; y[351] = y[319] + y[351]; y[415] = y[383] + y[415]; y[479] = y[447] + y[479]; // down-level 14 y[47] = y[31] + y[47]; y[79] = y[63] + y[79]; y[111] = y[95] + y[111]; y[143] = y[127] + y[143]; y[175] = y[159] + y[175]; y[207] = y[191] + y[207]; y[239] = y[223] + y[239]; y[271] = y[255] + y[271]; y[303] = y[287] + y[303]; y[335] = y[319] + y[335]; y[367] = y[351] + y[367]; y[399] = y[383] + y[399]; y[431] = y[415] + y[431]; y[463] = y[447] + y[463]; y[495] = y[479] + y[495]; // down-level 15 y[23] = y[15] + y[23]; y[39] = y[31] + y[39]; y[55] = y[47] + y[55]; y[71] = y[63] + y[71]; y[87] = y[79] + y[87]; y[103] = y[95] + y[103]; y[119] = y[111] + y[119]; y[135] = y[127] + y[135]; y[151] = y[143] + y[151]; y[167] = y[159] + y[167]; y[183] = y[175] + y[183]; y[199] = y[191] + y[199]; y[215] = y[207] + y[215]; y[231] = y[223] + y[231]; y[247] = y[239] + y[247]; y[263] = y[255] + y[263]; y[279] = y[271] + y[279]; y[295] = y[287] + y[295]; y[311] = y[303] + y[311]; y[327] = y[319] + y[327]; y[343] = y[335] + y[343]; y[359] = y[351] + y[359]; y[375] = y[367] + y[375]; y[391] = y[383] + y[391]; y[407] = y[399] + y[407]; y[423] = y[415] + y[423]; y[439] = y[431] + y[439]; y[455] = y[447] + y[455]; y[471] = y[463] + y[471]; y[487] = y[479] + y[487]; y[503] = y[495] + y[503]; // down-level 16 y[11] = y[7] + y[11]; y[19] = y[15] + y[19]; y[27] = y[23] + y[27]; y[35] = y[31] + y[35]; y[43] = y[39] + y[43]; y[51] = y[47] + y[51]; y[59] = y[55] + y[59]; y[67] = y[63] + y[67]; y[75] = y[71] + y[75]; y[83] = y[79] + y[83]; y[91] = y[87] + y[91]; y[99] = y[95] + y[99]; y[107] = y[103] + y[107]; y[115] = y[111] + y[115]; y[123] = y[119] + y[123]; y[131] = y[127] + y[131]; y[139] = y[135] + y[139]; y[147] = y[143] + y[147]; y[155] = y[151] + y[155]; y[163] = y[159] + y[163]; y[171] = y[167] + y[171]; y[179] = y[175] + y[179]; y[187] = y[183] + y[187]; y[195] = y[191] + y[195]; y[203] = y[199] + y[203]; y[211] = y[207] + y[211]; y[219] = y[215] + y[219]; y[227] = y[223] + y[227]; y[235] = y[231] + y[235]; y[243] = y[239] + y[243]; y[251] = y[247] + y[251]; y[259] = y[255] + y[259]; y[267] = y[263] + y[267]; y[275] = y[271] + y[275]; y[283] = y[279] + y[283]; y[291] = y[287] + y[291]; y[299] = y[295] + y[299]; y[307] = y[303] + y[307]; y[315] = y[311] + y[315]; y[323] = y[319] + y[323]; y[331] = y[327] + y[331]; y[339] = y[335] + y[339]; y[347] = y[343] + y[347]; y[355] = y[351] + y[355]; y[363] = y[359] + y[363]; y[371] = y[367] + y[371]; y[379] = y[375] + y[379]; y[387] = y[383] + y[387]; y[395] = y[391] + y[395]; y[403] = y[399] + y[403]; y[411] = y[407] + y[411]; y[419] = y[415] + y[419]; y[427] = y[423] + y[427]; y[435] = y[431] + y[435]; y[443] = y[439] + y[443]; y[451] = y[447] + y[451]; y[459] = y[455] + y[459]; y[467] = y[463] + y[467]; y[475] = y[471] + y[475]; y[483] = y[479] + y[483]; y[491] = y[487] + y[491]; y[499] = y[495] + y[499]; y[507] = y[503] + y[507]; // down-level 17 y[5] = y[3] + y[5]; y[9] = y[7] + y[9]; y[13] = y[11] + y[13]; y[17] = y[15] + y[17]; y[21] = y[19] + y[21]; y[25] = y[23] + y[25]; y[29] = y[27] + y[29]; y[33] = y[31] + y[33]; y[37] = y[35] + y[37]; y[41] = y[39] + y[41]; y[45] = y[43] + y[45]; y[49] = y[47] + y[49]; y[53] = y[51] + y[53]; y[57] = y[55] + y[57]; y[61] = y[59] + y[61]; y[65] = y[63] + y[65]; y[69] = y[67] + y[69]; y[73] = y[71] + y[73]; y[77] = y[75] + y[77]; y[81] = y[79] + y[81]; y[85] = y[83] + y[85]; y[89] = y[87] + y[89]; y[93] = y[91] + y[93]; y[97] = y[95] + y[97]; y[101] = y[99] + y[101]; y[105] = y[103] + y[105]; y[109] = y[107] + y[109]; y[113] = y[111] + y[113]; y[117] = y[115] + y[117]; y[121] = y[119] + y[121]; y[125] = y[123] + y[125]; y[129] = y[127] + y[129]; y[133] = y[131] + y[133]; y[137] = y[135] + y[137]; y[141] = y[139] + y[141]; y[145] = y[143] + y[145]; y[149] = y[147] + y[149]; y[153] = y[151] + y[153]; y[157] = y[155] + y[157]; y[161] = y[159] + y[161]; y[165] = y[163] + y[165]; y[169] = y[167] + y[169]; y[173] = y[171] + y[173]; y[177] = y[175] + y[177]; y[181] = y[179] + y[181]; y[185] = y[183] + y[185]; y[189] = y[187] + y[189]; y[193] = y[191] + y[193]; y[197] = y[195] + y[197]; y[201] = y[199] + y[201]; y[205] = y[203] + y[205]; y[209] = y[207] + y[209]; y[213] = y[211] + y[213]; y[217] = y[215] + y[217]; y[221] = y[219] + y[221]; y[225] = y[223] + y[225]; y[229] = y[227] + y[229]; y[233] = y[231] + y[233]; y[237] = y[235] + y[237]; y[241] = y[239] + y[241]; y[245] = y[243] + y[245]; y[249] = y[247] + y[249]; y[253] = y[251] + y[253]; y[257] = y[255] + y[257]; y[261] = y[259] + y[261]; y[265] = y[263] + y[265]; y[269] = y[267] + y[269]; y[273] = y[271] + y[273]; y[277] = y[275] + y[277]; y[281] = y[279] + y[281]; y[285] = y[283] + y[285]; y[289] = y[287] + y[289]; y[293] = y[291] + y[293]; y[297] = y[295] + y[297]; y[301] = y[299] + y[301]; y[305] = y[303] + y[305]; y[309] = y[307] + y[309]; y[313] = y[311] + y[313]; y[317] = y[315] + y[317]; y[321] = y[319] + y[321]; y[325] = y[323] + y[325]; y[329] = y[327] + y[329]; y[333] = y[331] + y[333]; y[337] = y[335] + y[337]; y[341] = y[339] + y[341]; y[345] = y[343] + y[345]; y[349] = y[347] + y[349]; y[353] = y[351] + y[353]; y[357] = y[355] + y[357]; y[361] = y[359] + y[361]; y[365] = y[363] + y[365]; y[369] = y[367] + y[369]; y[373] = y[371] + y[373]; y[377] = y[375] + y[377]; y[381] = y[379] + y[381]; y[385] = y[383] + y[385]; y[389] = y[387] + y[389]; y[393] = y[391] + y[393]; y[397] = y[395] + y[397]; y[401] = y[399] + y[401]; y[405] = y[403] + y[405]; y[409] = y[407] + y[409]; y[413] = y[411] + y[413]; y[417] = y[415] + y[417]; y[421] = y[419] + y[421]; y[425] = y[423] + y[425]; y[429] = y[427] + y[429]; y[433] = y[431] + y[433]; y[437] = y[435] + y[437]; y[441] = y[439] + y[441]; y[445] = y[443] + y[445]; y[449] = y[447] + y[449]; y[453] = y[451] + y[453]; y[457] = y[455] + y[457]; y[461] = y[459] + y[461]; y[465] = y[463] + y[465]; y[469] = y[467] + y[469]; y[473] = y[471] + y[473]; y[477] = y[475] + y[477]; y[481] = y[479] + y[481]; y[485] = y[483] + y[485]; y[489] = y[487] + y[489]; y[493] = y[491] + y[493]; y[497] = y[495] + y[497]; y[501] = y[499] + y[501]; y[505] = y[503] + y[505]; y[509] = y[507] + y[509]; // down-level 18 y[2] = y[1] + y[2]; y[4] = y[3] + y[4]; y[6] = y[5] + y[6]; y[8] = y[7] + y[8]; y[10] = y[9] + y[10]; y[12] = y[11] + y[12]; y[14] = y[13] + y[14]; y[16] = y[15] + y[16]; y[18] = y[17] + y[18]; y[20] = y[19] + y[20]; y[22] = y[21] + y[22]; y[24] = y[23] + y[24]; y[26] = y[25] + y[26]; y[28] = y[27] + y[28]; y[30] = y[29] + y[30]; y[32] = y[31] + y[32]; y[34] = y[33] + y[34]; y[36] = y[35] + y[36]; y[38] = y[37] + y[38]; y[40] = y[39] + y[40]; y[42] = y[41] + y[42]; y[44] = y[43] + y[44]; y[46] = y[45] + y[46]; y[48] = y[47] + y[48]; y[50] = y[49] + y[50]; y[52] = y[51] + y[52]; y[54] = y[53] + y[54]; y[56] = y[55] + y[56]; y[58] = y[57] + y[58]; y[60] = y[59] + y[60]; y[62] = y[61] + y[62]; y[64] = y[63] + y[64]; y[66] = y[65] + y[66]; y[68] = y[67] + y[68]; y[70] = y[69] + y[70]; y[72] = y[71] + y[72]; y[74] = y[73] + y[74]; y[76] = y[75] + y[76]; y[78] = y[77] + y[78]; y[80] = y[79] + y[80]; y[82] = y[81] + y[82]; y[84] = y[83] + y[84]; y[86] = y[85] + y[86]; y[88] = y[87] + y[88]; y[90] = y[89] + y[90]; y[92] = y[91] + y[92]; y[94] = y[93] + y[94]; y[96] = y[95] + y[96]; y[98] = y[97] + y[98]; y[100] = y[99] + y[100]; y[102] = y[101] + y[102]; y[104] = y[103] + y[104]; y[106] = y[105] + y[106]; y[108] = y[107] + y[108]; y[110] = y[109] + y[110]; y[112] = y[111] + y[112]; y[114] = y[113] + y[114]; y[116] = y[115] + y[116]; y[118] = y[117] + y[118]; y[120] = y[119] + y[120]; y[122] = y[121] + y[122]; y[124] = y[123] + y[124]; y[126] = y[125] + y[126]; y[128] = y[127] + y[128]; y[130] = y[129] + y[130]; y[132] = y[131] + y[132]; y[134] = y[133] + y[134]; y[136] = y[135] + y[136]; y[138] = y[137] + y[138]; y[140] = y[139] + y[140]; y[142] = y[141] + y[142]; y[144] = y[143] + y[144]; y[146] = y[145] + y[146]; y[148] = y[147] + y[148]; y[150] = y[149] + y[150]; y[152] = y[151] + y[152]; y[154] = y[153] + y[154]; y[156] = y[155] + y[156]; y[158] = y[157] + y[158]; y[160] = y[159] + y[160]; y[162] = y[161] + y[162]; y[164] = y[163] + y[164]; y[166] = y[165] + y[166]; y[168] = y[167] + y[168]; y[170] = y[169] + y[170]; y[172] = y[171] + y[172]; y[174] = y[173] + y[174]; y[176] = y[175] + y[176]; y[178] = y[177] + y[178]; y[180] = y[179] + y[180]; y[182] = y[181] + y[182]; y[184] = y[183] + y[184]; y[186] = y[185] + y[186]; y[188] = y[187] + y[188]; y[190] = y[189] + y[190]; y[192] = y[191] + y[192]; y[194] = y[193] + y[194]; y[196] = y[195] + y[196]; y[198] = y[197] + y[198]; y[200] = y[199] + y[200]; y[202] = y[201] + y[202]; y[204] = y[203] + y[204]; y[206] = y[205] + y[206]; y[208] = y[207] + y[208]; y[210] = y[209] + y[210]; y[212] = y[211] + y[212]; y[214] = y[213] + y[214]; y[216] = y[215] + y[216]; y[218] = y[217] + y[218]; y[220] = y[219] + y[220]; y[222] = y[221] + y[222]; y[224] = y[223] + y[224]; y[226] = y[225] + y[226]; y[228] = y[227] + y[228]; y[230] = y[229] + y[230]; y[232] = y[231] + y[232]; y[234] = y[233] + y[234]; y[236] = y[235] + y[236]; y[238] = y[237] + y[238]; y[240] = y[239] + y[240]; y[242] = y[241] + y[242]; y[244] = y[243] + y[244]; y[246] = y[245] + y[246]; y[248] = y[247] + y[248]; y[250] = y[249] + y[250]; y[252] = y[251] + y[252]; y[254] = y[253] + y[254]; y[256] = y[255] + y[256]; y[258] = y[257] + y[258]; y[260] = y[259] + y[260]; y[262] = y[261] + y[262]; y[264] = y[263] + y[264]; y[266] = y[265] + y[266]; y[268] = y[267] + y[268]; y[270] = y[269] + y[270]; y[272] = y[271] + y[272]; y[274] = y[273] + y[274]; y[276] = y[275] + y[276]; y[278] = y[277] + y[278]; y[280] = y[279] + y[280]; y[282] = y[281] + y[282]; y[284] = y[283] + y[284]; y[286] = y[285] + y[286]; y[288] = y[287] + y[288]; y[290] = y[289] + y[290]; y[292] = y[291] + y[292]; y[294] = y[293] + y[294]; y[296] = y[295] + y[296]; y[298] = y[297] + y[298]; y[300] = y[299] + y[300]; y[302] = y[301] + y[302]; y[304] = y[303] + y[304]; y[306] = y[305] + y[306]; y[308] = y[307] + y[308]; y[310] = y[309] + y[310]; y[312] = y[311] + y[312]; y[314] = y[313] + y[314]; y[316] = y[315] + y[316]; y[318] = y[317] + y[318]; y[320] = y[319] + y[320]; y[322] = y[321] + y[322]; y[324] = y[323] + y[324]; y[326] = y[325] + y[326]; y[328] = y[327] + y[328]; y[330] = y[329] + y[330]; y[332] = y[331] + y[332]; y[334] = y[333] + y[334]; y[336] = y[335] + y[336]; y[338] = y[337] + y[338]; y[340] = y[339] + y[340]; y[342] = y[341] + y[342]; y[344] = y[343] + y[344]; y[346] = y[345] + y[346]; y[348] = y[347] + y[348]; y[350] = y[349] + y[350]; y[352] = y[351] + y[352]; y[354] = y[353] + y[354]; y[356] = y[355] + y[356]; y[358] = y[357] + y[358]; y[360] = y[359] + y[360]; y[362] = y[361] + y[362]; y[364] = y[363] + y[364]; y[366] = y[365] + y[366]; y[368] = y[367] + y[368]; y[370] = y[369] + y[370]; y[372] = y[371] + y[372]; y[374] = y[373] + y[374]; y[376] = y[375] + y[376]; y[378] = y[377] + y[378]; y[380] = y[379] + y[380]; y[382] = y[381] + y[382]; y[384] = y[383] + y[384]; y[386] = y[385] + y[386]; y[388] = y[387] + y[388]; y[390] = y[389] + y[390]; y[392] = y[391] + y[392]; y[394] = y[393] + y[394]; y[396] = y[395] + y[396]; y[398] = y[397] + y[398]; y[400] = y[399] + y[400]; y[402] = y[401] + y[402]; y[404] = y[403] + y[404]; y[406] = y[405] + y[406]; y[408] = y[407] + y[408]; y[410] = y[409] + y[410]; y[412] = y[411] + y[412]; y[414] = y[413] + y[414]; y[416] = y[415] + y[416]; y[418] = y[417] + y[418]; y[420] = y[419] + y[420]; y[422] = y[421] + y[422]; y[424] = y[423] + y[424]; y[426] = y[425] + y[426]; y[428] = y[427] + y[428]; y[430] = y[429] + y[430]; y[432] = y[431] + y[432]; y[434] = y[433] + y[434]; y[436] = y[435] + y[436]; y[438] = y[437] + y[438]; y[440] = y[439] + y[440]; y[442] = y[441] + y[442]; y[444] = y[443] + y[444]; y[446] = y[445] + y[446]; y[448] = y[447] + y[448]; y[450] = y[449] + y[450]; y[452] = y[451] + y[452]; y[454] = y[453] + y[454]; y[456] = y[455] + y[456]; y[458] = y[457] + y[458]; y[460] = y[459] + y[460]; y[462] = y[461] + y[462]; y[464] = y[463] + y[464]; y[466] = y[465] + y[466]; y[468] = y[467] + y[468]; y[470] = y[469] + y[470]; y[472] = y[471] + y[472]; y[474] = y[473] + y[474]; y[476] = y[475] + y[476]; y[478] = y[477] + y[478]; y[480] = y[479] + y[480]; y[482] = y[481] + y[482]; y[484] = y[483] + y[484]; y[486] = y[485] + y[486]; y[488] = y[487] + y[488]; y[490] = y[489] + y[490]; y[492] = y[491] + y[492]; y[494] = y[493] + y[494]; y[496] = y[495] + y[496]; y[498] = y[497] + y[498]; y[500] = y[499] + y[500]; y[502] = y[501] + y[502]; y[504] = y[503] + y[504]; y[506] = y[505] + y[506]; y[508] = y[507] + y[508]; y[510] = y[509] + y[510]; x[0] = y[0]; x[1] = y[1]; x[2] = y[2]; x[3] = y[3]; x[4] = y[4]; x[5] = y[5]; x[6] = y[6]; x[7] = y[7]; x[8] = y[8]; x[9] = y[9]; x[10] = y[10]; x[11] = y[11]; x[12] = y[12]; x[13] = y[13]; x[14] = y[14]; x[15] = y[15]; x[16] = y[16]; x[17] = y[17]; x[18] = y[18]; x[19] = y[19]; x[20] = y[20]; x[21] = y[21]; x[22] = y[22]; x[23] = y[23]; x[24] = y[24]; x[25] = y[25]; x[26] = y[26]; x[27] = y[27]; x[28] = y[28]; x[29] = y[29]; x[30] = y[30]; x[31] = y[31]; x[32] = y[32]; x[33] = y[33]; x[34] = y[34]; x[35] = y[35]; x[36] = y[36]; x[37] = y[37]; x[38] = y[38]; x[39] = y[39]; x[40] = y[40]; x[41] = y[41]; x[42] = y[42]; x[43] = y[43]; x[44] = y[44]; x[45] = y[45]; x[46] = y[46]; x[47] = y[47]; x[48] = y[48]; x[49] = y[49]; x[50] = y[50]; x[51] = y[51]; x[52] = y[52]; x[53] = y[53]; x[54] = y[54]; x[55] = y[55]; x[56] = y[56]; x[57] = y[57]; x[58] = y[58]; x[59] = y[59]; x[60] = y[60]; x[61] = y[61]; x[62] = y[62]; x[63] = y[63]; x[64] = y[64]; x[65] = y[65]; x[66] = y[66]; x[67] = y[67]; x[68] = y[68]; x[69] = y[69]; x[70] = y[70]; x[71] = y[71]; x[72] = y[72]; x[73] = y[73]; x[74] = y[74]; x[75] = y[75]; x[76] = y[76]; x[77] = y[77]; x[78] = y[78]; x[79] = y[79]; x[80] = y[80]; x[81] = y[81]; x[82] = y[82]; x[83] = y[83]; x[84] = y[84]; x[85] = y[85]; x[86] = y[86]; x[87] = y[87]; x[88] = y[88]; x[89] = y[89]; x[90] = y[90]; x[91] = y[91]; x[92] = y[92]; x[93] = y[93]; x[94] = y[94]; x[95] = y[95]; x[96] = y[96]; x[97] = y[97]; x[98] = y[98]; x[99] = y[99]; x[100] = y[100]; x[101] = y[101]; x[102] = y[102]; x[103] = y[103]; x[104] = y[104]; x[105] = y[105]; x[106] = y[106]; x[107] = y[107]; x[108] = y[108]; x[109] = y[109]; x[110] = y[110]; x[111] = y[111]; x[112] = y[112]; x[113] = y[113]; x[114] = y[114]; x[115] = y[115]; x[116] = y[116]; x[117] = y[117]; x[118] = y[118]; x[119] = y[119]; x[120] = y[120]; x[121] = y[121]; x[122] = y[122]; x[123] = y[123]; x[124] = y[124]; x[125] = y[125]; x[126] = y[126]; x[127] = y[127]; x[128] = y[128]; x[129] = y[129]; x[130] = y[130]; x[131] = y[131]; x[132] = y[132]; x[133] = y[133]; x[134] = y[134]; x[135] = y[135]; x[136] = y[136]; x[137] = y[137]; x[138] = y[138]; x[139] = y[139]; x[140] = y[140]; x[141] = y[141]; x[142] = y[142]; x[143] = y[143]; x[144] = y[144]; x[145] = y[145]; x[146] = y[146]; x[147] = y[147]; x[148] = y[148]; x[149] = y[149]; x[150] = y[150]; x[151] = y[151]; x[152] = y[152]; x[153] = y[153]; x[154] = y[154]; x[155] = y[155]; x[156] = y[156]; x[157] = y[157]; x[158] = y[158]; x[159] = y[159]; x[160] = y[160]; x[161] = y[161]; x[162] = y[162]; x[163] = y[163]; x[164] = y[164]; x[165] = y[165]; x[166] = y[166]; x[167] = y[167]; x[168] = y[168]; x[169] = y[169]; x[170] = y[170]; x[171] = y[171]; x[172] = y[172]; x[173] = y[173]; x[174] = y[174]; x[175] = y[175]; x[176] = y[176]; x[177] = y[177]; x[178] = y[178]; x[179] = y[179]; x[180] = y[180]; x[181] = y[181]; x[182] = y[182]; x[183] = y[183]; x[184] = y[184]; x[185] = y[185]; x[186] = y[186]; x[187] = y[187]; x[188] = y[188]; x[189] = y[189]; x[190] = y[190]; x[191] = y[191]; x[192] = y[192]; x[193] = y[193]; x[194] = y[194]; x[195] = y[195]; x[196] = y[196]; x[197] = y[197]; x[198] = y[198]; x[199] = y[199]; x[200] = y[200]; x[201] = y[201]; x[202] = y[202]; x[203] = y[203]; x[204] = y[204]; x[205] = y[205]; x[206] = y[206]; x[207] = y[207]; x[208] = y[208]; x[209] = y[209]; x[210] = y[210]; x[211] = y[211]; x[212] = y[212]; x[213] = y[213]; x[214] = y[214]; x[215] = y[215]; x[216] = y[216]; x[217] = y[217]; x[218] = y[218]; x[219] = y[219]; x[220] = y[220]; x[221] = y[221]; x[222] = y[222]; x[223] = y[223]; x[224] = y[224]; x[225] = y[225]; x[226] = y[226]; x[227] = y[227]; x[228] = y[228]; x[229] = y[229]; x[230] = y[230]; x[231] = y[231]; x[232] = y[232]; x[233] = y[233]; x[234] = y[234]; x[235] = y[235]; x[236] = y[236]; x[237] = y[237]; x[238] = y[238]; x[239] = y[239]; x[240] = y[240]; x[241] = y[241]; x[242] = y[242]; x[243] = y[243]; x[244] = y[244]; x[245] = y[245]; x[246] = y[246]; x[247] = y[247]; x[248] = y[248]; x[249] = y[249]; x[250] = y[250]; x[251] = y[251]; x[252] = y[252]; x[253] = y[253]; x[254] = y[254]; x[255] = y[255]; x[256] = y[256]; x[257] = y[257]; x[258] = y[258]; x[259] = y[259]; x[260] = y[260]; x[261] = y[261]; x[262] = y[262]; x[263] = y[263]; x[264] = y[264]; x[265] = y[265]; x[266] = y[266]; x[267] = y[267]; x[268] = y[268]; x[269] = y[269]; x[270] = y[270]; x[271] = y[271]; x[272] = y[272]; x[273] = y[273]; x[274] = y[274]; x[275] = y[275]; x[276] = y[276]; x[277] = y[277]; x[278] = y[278]; x[279] = y[279]; x[280] = y[280]; x[281] = y[281]; x[282] = y[282]; x[283] = y[283]; x[284] = y[284]; x[285] = y[285]; x[286] = y[286]; x[287] = y[287]; x[288] = y[288]; x[289] = y[289]; x[290] = y[290]; x[291] = y[291]; x[292] = y[292]; x[293] = y[293]; x[294] = y[294]; x[295] = y[295]; x[296] = y[296]; x[297] = y[297]; x[298] = y[298]; x[299] = y[299]; x[300] = y[300]; x[301] = y[301]; x[302] = y[302]; x[303] = y[303]; x[304] = y[304]; x[305] = y[305]; x[306] = y[306]; x[307] = y[307]; x[308] = y[308]; x[309] = y[309]; x[310] = y[310]; x[311] = y[311]; x[312] = y[312]; x[313] = y[313]; x[314] = y[314]; x[315] = y[315]; x[316] = y[316]; x[317] = y[317]; x[318] = y[318]; x[319] = y[319]; x[320] = y[320]; x[321] = y[321]; x[322] = y[322]; x[323] = y[323]; x[324] = y[324]; x[325] = y[325]; x[326] = y[326]; x[327] = y[327]; x[328] = y[328]; x[329] = y[329]; x[330] = y[330]; x[331] = y[331]; x[332] = y[332]; x[333] = y[333]; x[334] = y[334]; x[335] = y[335]; x[336] = y[336]; x[337] = y[337]; x[338] = y[338]; x[339] = y[339]; x[340] = y[340]; x[341] = y[341]; x[342] = y[342]; x[343] = y[343]; x[344] = y[344]; x[345] = y[345]; x[346] = y[346]; x[347] = y[347]; x[348] = y[348]; x[349] = y[349]; x[350] = y[350]; x[351] = y[351]; x[352] = y[352]; x[353] = y[353]; x[354] = y[354]; x[355] = y[355]; x[356] = y[356]; x[357] = y[357]; x[358] = y[358]; x[359] = y[359]; x[360] = y[360]; x[361] = y[361]; x[362] = y[362]; x[363] = y[363]; x[364] = y[364]; x[365] = y[365]; x[366] = y[366]; x[367] = y[367]; x[368] = y[368]; x[369] = y[369]; x[370] = y[370]; x[371] = y[371]; x[372] = y[372]; x[373] = y[373]; x[374] = y[374]; x[375] = y[375]; x[376] = y[376]; x[377] = y[377]; x[378] = y[378]; x[379] = y[379]; x[380] = y[380]; x[381] = y[381]; x[382] = y[382]; x[383] = y[383]; x[384] = y[384]; x[385] = y[385]; x[386] = y[386]; x[387] = y[387]; x[388] = y[388]; x[389] = y[389]; x[390] = y[390]; x[391] = y[391]; x[392] = y[392]; x[393] = y[393]; x[394] = y[394]; x[395] = y[395]; x[396] = y[396]; x[397] = y[397]; x[398] = y[398]; x[399] = y[399]; x[400] = y[400]; x[401] = y[401]; x[402] = y[402]; x[403] = y[403]; x[404] = y[404]; x[405] = y[405]; x[406] = y[406]; x[407] = y[407]; x[408] = y[408]; x[409] = y[409]; x[410] = y[410]; x[411] = y[411]; x[412] = y[412]; x[413] = y[413]; x[414] = y[414]; x[415] = y[415]; x[416] = y[416]; x[417] = y[417]; x[418] = y[418]; x[419] = y[419]; x[420] = y[420]; x[421] = y[421]; x[422] = y[422]; x[423] = y[423]; x[424] = y[424]; x[425] = y[425]; x[426] = y[426]; x[427] = y[427]; x[428] = y[428]; x[429] = y[429]; x[430] = y[430]; x[431] = y[431]; x[432] = y[432]; x[433] = y[433]; x[434] = y[434]; x[435] = y[435]; x[436] = y[436]; x[437] = y[437]; x[438] = y[438]; x[439] = y[439]; x[440] = y[440]; x[441] = y[441]; x[442] = y[442]; x[443] = y[443]; x[444] = y[444]; x[445] = y[445]; x[446] = y[446]; x[447] = y[447]; x[448] = y[448]; x[449] = y[449]; x[450] = y[450]; x[451] = y[451]; x[452] = y[452]; x[453] = y[453]; x[454] = y[454]; x[455] = y[455]; x[456] = y[456]; x[457] = y[457]; x[458] = y[458]; x[459] = y[459]; x[460] = y[460]; x[461] = y[461]; x[462] = y[462]; x[463] = y[463]; x[464] = y[464]; x[465] = y[465]; x[466] = y[466]; x[467] = y[467]; x[468] = y[468]; x[469] = y[469]; x[470] = y[470]; x[471] = y[471]; x[472] = y[472]; x[473] = y[473]; x[474] = y[474]; x[475] = y[475]; x[476] = y[476]; x[477] = y[477]; x[478] = y[478]; x[479] = y[479]; x[480] = y[480]; x[481] = y[481]; x[482] = y[482]; x[483] = y[483]; x[484] = y[484]; x[485] = y[485]; x[486] = y[486]; x[487] = y[487]; x[488] = y[488]; x[489] = y[489]; x[490] = y[490]; x[491] = y[491]; x[492] = y[492]; x[493] = y[493]; x[494] = y[494]; x[495] = y[495]; x[496] = y[496]; x[497] = y[497]; x[498] = y[498]; x[499] = y[499]; x[500] = y[500]; x[501] = y[501]; x[502] = y[502]; x[503] = y[503]; x[504] = y[504]; x[505] = y[505]; x[506] = y[506]; x[507] = y[507]; x[508] = y[508]; x[509] = y[509]; x[510] = y[510]; x[511] = y[511]; }