first blockchain implementation

This commit is contained in:
gabriel cancel 2024-03-01 16:11:30 +01:00
parent 2f07c5976b
commit b8868e39d3
14 changed files with 1113 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -0,0 +1 @@
10.799999999999978

View File

@ -0,0 +1 @@
31.39999999999999

View File

@ -0,0 +1 @@
60.699999999999974

View File

@ -0,0 +1 @@
65.69999999999996

View File

@ -0,0 +1 @@
43.99999999999998

View File

@ -0,0 +1 @@
-29.10000000000003

View File

@ -0,0 +1 @@
50.89999999999997

View File

@ -0,0 +1 @@
24.49999999999998

View File

@ -0,0 +1 @@
35.19999999999997

View File

@ -0,0 +1 @@
70.59999999999997

View File

@ -0,0 +1 @@
35.29999999999996

View File

@ -0,0 +1,103 @@
N_TOTAL = 1000
from time import sleep
import random
def read_sold(user):
sold = 0
with open(f'./LACHAINE/{user}.txt', 'r') as file:
file_content = file.read()
sold = float(file_content)
return sold
def write_sold(user, sold):
with open(f'./LACHAINE/{user}.txt', 'w') as file:
file.write(str(sold))
def read_tx():
transactions = []
with open('./tx_list.txt', 'r') as file:
file_content = file.read()
transactions = file_content.split('\n')
tx = []
for t in transactions:
tx.append(t.split(','))
return tx
def main():
tx = read_tx()
for t in tx:
sleep(0.1)
demandeur = t[5]
montant = float(t[4])
montant_without_commission = montant - 0.10
N1 = t[1]
if N1 != demandeur:
print(f'tx:{t[0]: <4} -> Processing transaction 🚫')
continue
print(f'tx:{t[0]: <4} -> Processing transaction ✅')
N2 = t[2]
tx_type = t[3]
sold_N1 = read_sold(N1)
sold_N2 = read_sold(N2)
if tx_type == '-':
sold_N1 -= montant_without_commission
sold_N2 += montant_without_commission
elif tx_type == '+':
sold_N1 -= montant_without_commission
sold_N2 -= montant_without_commission
write_sold(N1, sold_N1)
write_sold(N2, sold_N2)
N0_sold = read_sold('N0')
write_sold('N0',N0_sold+0.1)
def tx_generator():
file_path = './tx_list.txt'
try:
with open(file_path, 'w') as file:
for i in range(1, 1000):
n_i = random.randint(1, 10)
n_i_plus_1 = random.randint(1, 10)
n_demandeur = random.randint(1, 10)
montant = random.randint(1, 10)
tx_type = random.choice(['-', '+'])
if i == 999:
line = f"{i},N{n_i},N{n_i_plus_1 if i < 10 else 1},{tx_type},{montant},N{n_demandeur}"
else:
line = f"{i},N{n_i},N{n_i_plus_1 if i < 10 else 1},{tx_type},{montant},N{n_demandeur}\n"
file.write(line)
print(f"Content successfully written to '{file_path}'.")
except Exception as e:
print(f"An error occurred: {e}")
def reset_account():
for i in range(0, 11):
with open(f'./LACHAINE/N{i}.txt', 'w') as file:
if i == 0:
file.write('0')
else:
file.write('100')
print('Reset done')
if __name__ == '__main__':
tx_generator()
reset_account()
main()

View File

@ -0,0 +1,999 @@
1,N1,N10,+,9,N10
2,N10,N6,-,7,N5
3,N5,N6,-,5,N10
4,N4,N3,+,3,N5
5,N2,N3,-,1,N9
6,N10,N7,+,2,N1
7,N7,N2,+,10,N6
8,N9,N10,+,6,N1
9,N4,N2,+,4,N9
10,N6,N1,+,9,N8
11,N8,N1,+,10,N2
12,N8,N1,+,3,N9
13,N7,N1,+,8,N10
14,N3,N1,+,8,N8
15,N10,N1,-,1,N1
16,N9,N1,-,9,N6
17,N2,N1,+,7,N9
18,N6,N1,-,5,N8
19,N9,N1,+,7,N5
20,N5,N1,-,3,N5
21,N4,N1,+,2,N2
22,N8,N1,-,2,N4
23,N10,N1,+,9,N1
24,N10,N1,-,2,N3
25,N4,N1,+,5,N3
26,N6,N1,-,9,N2
27,N8,N1,+,1,N2
28,N7,N1,+,10,N8
29,N2,N1,-,6,N10
30,N6,N1,-,8,N7
31,N7,N1,+,8,N3
32,N4,N1,+,1,N7
33,N5,N1,-,5,N7
34,N10,N1,+,5,N3
35,N3,N1,+,4,N3
36,N3,N1,+,5,N1
37,N5,N1,-,6,N9
38,N1,N1,+,4,N9
39,N3,N1,+,1,N4
40,N7,N1,+,1,N8
41,N2,N1,+,1,N7
42,N9,N1,+,8,N8
43,N8,N1,-,5,N6
44,N8,N1,+,10,N5
45,N3,N1,+,10,N2
46,N9,N1,+,7,N9
47,N3,N1,+,2,N3
48,N7,N1,+,5,N5
49,N6,N1,+,8,N8
50,N10,N1,-,1,N5
51,N2,N1,+,2,N3
52,N8,N1,+,4,N10
53,N7,N1,-,4,N8
54,N4,N1,-,9,N6
55,N4,N1,-,6,N9
56,N2,N1,+,8,N3
57,N5,N1,-,8,N4
58,N2,N1,-,8,N7
59,N8,N1,-,9,N6
60,N5,N1,+,4,N2
61,N8,N1,-,4,N6
62,N10,N1,+,5,N1
63,N1,N1,+,10,N4
64,N4,N1,+,9,N4
65,N1,N1,-,2,N4
66,N1,N1,-,8,N2
67,N7,N1,-,10,N5
68,N4,N1,+,8,N6
69,N10,N1,-,10,N9
70,N3,N1,-,10,N7
71,N4,N1,-,4,N10
72,N6,N1,-,9,N7
73,N4,N1,+,7,N6
74,N7,N1,-,5,N1
75,N10,N1,+,9,N9
76,N5,N1,+,9,N6
77,N9,N1,-,10,N7
78,N2,N1,+,8,N4
79,N7,N1,-,1,N1
80,N7,N1,+,1,N5
81,N9,N1,+,10,N3
82,N1,N1,-,6,N9
83,N3,N1,+,4,N5
84,N9,N1,+,7,N8
85,N1,N1,-,7,N9
86,N5,N1,-,1,N1
87,N10,N1,+,10,N7
88,N3,N1,-,8,N1
89,N5,N1,+,6,N2
90,N7,N1,+,3,N6
91,N8,N1,-,8,N9
92,N8,N1,+,10,N2
93,N8,N1,+,3,N10
94,N6,N1,-,8,N6
95,N7,N1,+,1,N1
96,N10,N1,+,5,N2
97,N4,N1,-,7,N10
98,N7,N1,-,4,N7
99,N6,N1,+,3,N7
100,N9,N1,+,3,N4
101,N5,N1,-,3,N6
102,N4,N1,-,6,N4
103,N1,N1,+,2,N7
104,N8,N1,-,2,N6
105,N2,N1,-,3,N2
106,N9,N1,-,9,N1
107,N4,N1,-,7,N10
108,N4,N1,+,3,N10
109,N8,N1,+,3,N7
110,N6,N1,+,2,N6
111,N3,N1,-,4,N6
112,N10,N1,-,7,N10
113,N4,N1,-,8,N4
114,N4,N1,-,2,N6
115,N7,N1,-,2,N2
116,N2,N1,+,4,N4
117,N8,N1,-,9,N6
118,N6,N1,+,7,N6
119,N6,N1,+,5,N1
120,N4,N1,+,10,N1
121,N7,N1,-,3,N10
122,N3,N1,+,10,N8
123,N7,N1,+,7,N6
124,N8,N1,+,10,N9
125,N4,N1,+,10,N3
126,N2,N1,+,1,N7
127,N1,N1,+,2,N4
128,N2,N1,+,6,N8
129,N5,N1,-,10,N2
130,N1,N1,+,2,N6
131,N9,N1,+,4,N2
132,N2,N1,+,2,N1
133,N4,N1,+,9,N4
134,N9,N1,+,4,N10
135,N5,N1,+,6,N9
136,N10,N1,+,3,N9
137,N3,N1,-,3,N5
138,N7,N1,-,5,N8
139,N6,N1,+,8,N6
140,N2,N1,-,2,N2
141,N2,N1,+,4,N9
142,N3,N1,-,6,N7
143,N1,N1,+,9,N7
144,N2,N1,-,6,N8
145,N4,N1,+,8,N3
146,N7,N1,+,1,N2
147,N6,N1,-,8,N6
148,N10,N1,-,10,N6
149,N1,N1,+,8,N5
150,N6,N1,+,2,N1
151,N7,N1,-,3,N2
152,N4,N1,-,9,N5
153,N8,N1,+,5,N7
154,N7,N1,+,10,N5
155,N4,N1,+,1,N4
156,N8,N1,+,5,N10
157,N10,N1,+,10,N1
158,N2,N1,-,1,N3
159,N4,N1,-,10,N9
160,N2,N1,-,3,N10
161,N1,N1,-,6,N7
162,N2,N1,+,8,N3
163,N3,N1,-,7,N3
164,N6,N1,+,3,N6
165,N6,N1,+,9,N4
166,N1,N1,-,5,N3
167,N2,N1,-,3,N3
168,N5,N1,+,1,N6
169,N6,N1,-,10,N8
170,N3,N1,+,10,N9
171,N8,N1,+,3,N3
172,N6,N1,+,5,N2
173,N2,N1,-,8,N3
174,N4,N1,-,6,N10
175,N6,N1,-,10,N2
176,N4,N1,-,9,N9
177,N1,N1,-,10,N5
178,N4,N1,-,2,N7
179,N1,N1,+,3,N8
180,N6,N1,-,9,N4
181,N8,N1,+,8,N2
182,N9,N1,+,2,N3
183,N10,N1,+,1,N4
184,N1,N1,-,8,N3
185,N9,N1,-,3,N2
186,N1,N1,-,1,N6
187,N5,N1,-,10,N10
188,N8,N1,+,5,N4
189,N5,N1,-,10,N10
190,N10,N1,+,6,N9
191,N7,N1,+,4,N9
192,N8,N1,-,2,N4
193,N10,N1,+,3,N3
194,N6,N1,-,6,N6
195,N10,N1,-,7,N10
196,N9,N1,+,4,N3
197,N4,N1,-,7,N7
198,N2,N1,+,9,N9
199,N4,N1,-,2,N5
200,N10,N1,+,9,N6
201,N2,N1,+,3,N6
202,N8,N1,-,5,N5
203,N4,N1,+,1,N8
204,N7,N1,+,5,N2
205,N5,N1,+,5,N10
206,N3,N1,+,9,N7
207,N6,N1,+,5,N1
208,N7,N1,-,3,N3
209,N2,N1,-,4,N9
210,N5,N1,-,4,N6
211,N9,N1,+,4,N6
212,N10,N1,+,9,N2
213,N3,N1,-,1,N1
214,N5,N1,+,10,N7
215,N4,N1,-,3,N6
216,N1,N1,+,5,N8
217,N7,N1,-,10,N6
218,N8,N1,+,1,N6
219,N3,N1,+,8,N10
220,N9,N1,-,2,N8
221,N6,N1,+,7,N6
222,N8,N1,+,4,N6
223,N6,N1,-,2,N5
224,N8,N1,+,7,N9
225,N7,N1,+,3,N7
226,N1,N1,+,5,N9
227,N8,N1,-,8,N2
228,N3,N1,+,8,N8
229,N8,N1,+,7,N7
230,N2,N1,+,2,N7
231,N3,N1,+,9,N2
232,N4,N1,-,3,N7
233,N6,N1,+,10,N9
234,N3,N1,+,1,N2
235,N5,N1,+,2,N7
236,N4,N1,+,2,N2
237,N3,N1,+,10,N6
238,N7,N1,-,7,N3
239,N4,N1,+,2,N8
240,N9,N1,+,9,N1
241,N10,N1,+,7,N9
242,N4,N1,-,10,N6
243,N9,N1,-,2,N3
244,N6,N1,+,9,N2
245,N10,N1,+,4,N3
246,N1,N1,+,3,N10
247,N9,N1,-,9,N8
248,N2,N1,-,1,N10
249,N6,N1,-,4,N8
250,N5,N1,-,10,N5
251,N6,N1,+,7,N7
252,N2,N1,-,9,N10
253,N10,N1,+,10,N8
254,N2,N1,+,7,N8
255,N8,N1,+,2,N4
256,N6,N1,+,1,N3
257,N4,N1,+,6,N8
258,N1,N1,-,7,N4
259,N6,N1,-,10,N1
260,N6,N1,-,6,N5
261,N3,N1,-,8,N3
262,N9,N1,-,1,N4
263,N4,N1,+,9,N6
264,N9,N1,+,7,N10
265,N7,N1,+,10,N3
266,N10,N1,-,7,N5
267,N4,N1,+,7,N5
268,N7,N1,+,8,N4
269,N2,N1,-,4,N10
270,N5,N1,+,5,N9
271,N3,N1,+,9,N7
272,N4,N1,-,3,N4
273,N8,N1,-,7,N1
274,N7,N1,-,8,N6
275,N8,N1,-,1,N8
276,N3,N1,-,7,N3
277,N1,N1,+,5,N9
278,N6,N1,-,9,N9
279,N8,N1,-,7,N6
280,N8,N1,+,2,N5
281,N6,N1,+,4,N1
282,N8,N1,+,5,N7
283,N2,N1,-,7,N5
284,N2,N1,-,2,N2
285,N1,N1,-,7,N8
286,N7,N1,+,5,N5
287,N10,N1,+,9,N7
288,N7,N1,-,4,N7
289,N10,N1,-,5,N10
290,N4,N1,+,10,N9
291,N10,N1,+,7,N6
292,N4,N1,+,10,N7
293,N6,N1,-,4,N1
294,N2,N1,+,8,N7
295,N4,N1,+,9,N4
296,N8,N1,+,10,N10
297,N8,N1,+,7,N5
298,N8,N1,+,5,N1
299,N4,N1,+,5,N8
300,N8,N1,+,7,N6
301,N3,N1,-,9,N1
302,N7,N1,-,1,N1
303,N9,N1,-,10,N10
304,N4,N1,+,3,N6
305,N10,N1,-,3,N2
306,N1,N1,+,7,N1
307,N5,N1,+,5,N3
308,N6,N1,-,3,N10
309,N7,N1,+,6,N7
310,N4,N1,+,9,N4
311,N7,N1,-,6,N2
312,N3,N1,+,6,N5
313,N1,N1,-,4,N10
314,N6,N1,+,9,N3
315,N4,N1,+,7,N8
316,N4,N1,+,2,N5
317,N2,N1,-,6,N4
318,N10,N1,-,8,N10
319,N10,N1,-,3,N7
320,N4,N1,-,5,N6
321,N9,N1,+,7,N2
322,N8,N1,-,10,N4
323,N2,N1,+,1,N1
324,N8,N1,+,2,N3
325,N8,N1,+,6,N9
326,N10,N1,+,4,N6
327,N10,N1,-,1,N4
328,N8,N1,+,3,N7
329,N4,N1,-,8,N2
330,N2,N1,-,7,N5
331,N8,N1,+,1,N3
332,N6,N1,-,1,N1
333,N9,N1,-,4,N2
334,N9,N1,-,3,N8
335,N4,N1,-,9,N2
336,N5,N1,+,5,N4
337,N2,N1,-,3,N10
338,N8,N1,-,2,N5
339,N8,N1,+,10,N4
340,N10,N1,+,9,N5
341,N10,N1,-,1,N10
342,N8,N1,-,3,N7
343,N9,N1,+,9,N5
344,N3,N1,-,10,N7
345,N10,N1,+,1,N4
346,N3,N1,-,7,N10
347,N1,N1,+,5,N7
348,N6,N1,-,5,N6
349,N4,N1,-,4,N10
350,N8,N1,-,3,N5
351,N3,N1,+,9,N10
352,N9,N1,+,4,N7
353,N2,N1,+,6,N8
354,N2,N1,+,5,N3
355,N3,N1,+,4,N8
356,N4,N1,+,4,N3
357,N10,N1,-,5,N5
358,N7,N1,-,6,N3
359,N9,N1,-,7,N2
360,N4,N1,-,5,N7
361,N8,N1,+,5,N10
362,N5,N1,-,10,N6
363,N4,N1,-,10,N4
364,N2,N1,+,8,N3
365,N4,N1,+,1,N10
366,N6,N1,-,10,N2
367,N4,N1,+,6,N6
368,N2,N1,+,4,N1
369,N10,N1,+,3,N3
370,N8,N1,+,9,N7
371,N5,N1,-,4,N7
372,N3,N1,-,9,N9
373,N6,N1,-,4,N8
374,N9,N1,-,10,N1
375,N9,N1,+,4,N10
376,N9,N1,-,10,N3
377,N8,N1,+,7,N2
378,N3,N1,+,9,N2
379,N5,N1,-,10,N6
380,N10,N1,-,5,N2
381,N7,N1,+,8,N7
382,N3,N1,+,5,N5
383,N3,N1,+,10,N3
384,N1,N1,+,3,N10
385,N3,N1,+,10,N10
386,N4,N1,-,2,N10
387,N4,N1,-,5,N7
388,N1,N1,-,8,N3
389,N8,N1,-,7,N7
390,N4,N1,+,5,N5
391,N6,N1,-,7,N9
392,N7,N1,+,4,N3
393,N1,N1,+,8,N10
394,N9,N1,+,7,N6
395,N6,N1,-,1,N5
396,N9,N1,+,3,N9
397,N10,N1,+,9,N6
398,N2,N1,-,3,N6
399,N9,N1,+,1,N2
400,N6,N1,-,6,N8
401,N1,N1,+,4,N8
402,N1,N1,+,1,N7
403,N3,N1,+,10,N6
404,N1,N1,-,9,N7
405,N10,N1,-,6,N2
406,N2,N1,+,2,N5
407,N10,N1,+,6,N8
408,N3,N1,+,5,N10
409,N9,N1,+,1,N7
410,N8,N1,-,10,N1
411,N5,N1,+,2,N1
412,N6,N1,-,2,N1
413,N3,N1,-,5,N8
414,N9,N1,+,5,N8
415,N7,N1,-,9,N10
416,N5,N1,-,9,N2
417,N6,N1,-,7,N5
418,N1,N1,-,5,N8
419,N5,N1,-,9,N4
420,N3,N1,+,4,N4
421,N9,N1,-,2,N7
422,N9,N1,+,1,N9
423,N1,N1,+,9,N9
424,N9,N1,-,1,N10
425,N10,N1,+,8,N3
426,N4,N1,-,6,N6
427,N9,N1,-,2,N5
428,N2,N1,+,3,N10
429,N3,N1,+,3,N1
430,N7,N1,-,1,N9
431,N7,N1,+,8,N1
432,N2,N1,+,9,N1
433,N3,N1,-,5,N6
434,N3,N1,+,4,N4
435,N6,N1,+,3,N6
436,N8,N1,-,1,N10
437,N2,N1,+,7,N9
438,N10,N1,+,2,N1
439,N4,N1,-,1,N9
440,N3,N1,-,10,N2
441,N9,N1,+,3,N6
442,N2,N1,+,10,N3
443,N9,N1,+,7,N9
444,N8,N1,+,10,N10
445,N6,N1,-,10,N4
446,N4,N1,+,3,N6
447,N10,N1,-,5,N4
448,N8,N1,+,9,N7
449,N10,N1,-,3,N1
450,N9,N1,-,5,N9
451,N3,N1,+,9,N9
452,N10,N1,+,7,N5
453,N10,N1,-,4,N3
454,N10,N1,+,6,N1
455,N1,N1,+,9,N9
456,N7,N1,+,4,N10
457,N5,N1,+,5,N5
458,N10,N1,+,5,N7
459,N4,N1,-,8,N4
460,N9,N1,-,9,N4
461,N7,N1,-,6,N1
462,N1,N1,-,1,N7
463,N2,N1,-,10,N10
464,N6,N1,+,8,N5
465,N10,N1,+,1,N4
466,N5,N1,+,10,N6
467,N5,N1,-,5,N4
468,N1,N1,+,6,N2
469,N1,N1,+,9,N4
470,N4,N1,+,6,N4
471,N4,N1,-,4,N5
472,N3,N1,-,5,N1
473,N1,N1,+,7,N5
474,N1,N1,+,7,N3
475,N8,N1,-,3,N9
476,N9,N1,-,1,N9
477,N7,N1,-,3,N2
478,N10,N1,-,10,N9
479,N5,N1,-,4,N5
480,N9,N1,-,6,N7
481,N7,N1,+,4,N7
482,N3,N1,+,9,N5
483,N1,N1,-,10,N9
484,N5,N1,-,6,N4
485,N3,N1,-,2,N4
486,N1,N1,+,5,N9
487,N4,N1,+,1,N7
488,N1,N1,+,7,N4
489,N6,N1,-,10,N10
490,N4,N1,-,5,N6
491,N3,N1,-,4,N3
492,N8,N1,-,9,N1
493,N6,N1,-,4,N10
494,N2,N1,-,10,N6
495,N2,N1,+,4,N1
496,N4,N1,-,8,N1
497,N2,N1,-,6,N9
498,N8,N1,-,9,N2
499,N8,N1,-,7,N10
500,N10,N1,-,3,N5
501,N10,N1,+,7,N4
502,N2,N1,-,10,N8
503,N1,N1,+,1,N9
504,N5,N1,-,8,N6
505,N5,N1,-,3,N1
506,N4,N1,-,7,N2
507,N1,N1,-,6,N1
508,N7,N1,+,9,N5
509,N2,N1,+,2,N9
510,N5,N1,-,7,N7
511,N9,N1,+,10,N8
512,N2,N1,-,7,N6
513,N8,N1,-,2,N3
514,N4,N1,+,5,N9
515,N2,N1,+,2,N8
516,N1,N1,+,8,N6
517,N4,N1,-,7,N9
518,N9,N1,-,2,N9
519,N7,N1,-,3,N5
520,N6,N1,+,3,N10
521,N10,N1,-,4,N8
522,N6,N1,-,6,N3
523,N8,N1,-,9,N8
524,N2,N1,+,3,N2
525,N2,N1,-,8,N4
526,N4,N1,+,1,N2
527,N7,N1,+,2,N6
528,N7,N1,-,2,N3
529,N5,N1,+,8,N6
530,N6,N1,-,4,N2
531,N3,N1,+,4,N7
532,N3,N1,-,3,N7
533,N6,N1,-,6,N8
534,N7,N1,-,5,N2
535,N2,N1,-,5,N8
536,N5,N1,-,5,N6
537,N7,N1,-,3,N10
538,N4,N1,+,2,N2
539,N6,N1,+,5,N6
540,N10,N1,-,6,N9
541,N1,N1,-,5,N2
542,N5,N1,+,4,N10
543,N5,N1,-,2,N1
544,N10,N1,+,5,N1
545,N1,N1,+,9,N2
546,N4,N1,-,2,N3
547,N7,N1,-,3,N3
548,N7,N1,+,9,N5
549,N6,N1,-,5,N9
550,N1,N1,-,8,N7
551,N1,N1,+,5,N3
552,N8,N1,-,7,N1
553,N9,N1,+,6,N5
554,N10,N1,+,8,N7
555,N9,N1,-,5,N8
556,N6,N1,+,5,N5
557,N5,N1,+,3,N7
558,N1,N1,+,3,N1
559,N4,N1,+,3,N2
560,N8,N1,+,10,N6
561,N5,N1,+,4,N6
562,N6,N1,-,10,N2
563,N5,N1,+,3,N9
564,N6,N1,-,8,N7
565,N5,N1,+,10,N3
566,N5,N1,+,2,N1
567,N5,N1,+,3,N6
568,N5,N1,-,6,N5
569,N2,N1,+,2,N4
570,N7,N1,-,9,N5
571,N2,N1,+,9,N4
572,N6,N1,-,7,N1
573,N7,N1,+,4,N7
574,N5,N1,+,6,N5
575,N9,N1,+,2,N2
576,N4,N1,-,2,N2
577,N3,N1,+,6,N10
578,N2,N1,+,9,N1
579,N9,N1,+,7,N9
580,N1,N1,-,7,N3
581,N6,N1,-,8,N5
582,N7,N1,+,9,N10
583,N2,N1,-,3,N1
584,N4,N1,-,8,N10
585,N8,N1,+,3,N3
586,N6,N1,-,9,N3
587,N10,N1,+,9,N1
588,N8,N1,-,8,N5
589,N8,N1,-,2,N3
590,N9,N1,+,1,N8
591,N6,N1,+,5,N10
592,N7,N1,-,7,N6
593,N8,N1,+,1,N7
594,N2,N1,+,5,N3
595,N3,N1,+,5,N6
596,N6,N1,-,4,N5
597,N9,N1,+,7,N8
598,N1,N1,-,8,N7
599,N7,N1,-,4,N4
600,N1,N1,+,1,N3
601,N8,N1,-,4,N6
602,N8,N1,-,1,N4
603,N5,N1,-,2,N1
604,N10,N1,+,8,N1
605,N5,N1,-,5,N7
606,N6,N1,-,7,N6
607,N9,N1,-,9,N1
608,N8,N1,+,1,N5
609,N3,N1,+,10,N2
610,N5,N1,-,8,N10
611,N5,N1,+,2,N6
612,N1,N1,+,8,N1
613,N4,N1,-,1,N8
614,N8,N1,-,6,N5
615,N1,N1,+,8,N7
616,N10,N1,-,6,N2
617,N5,N1,-,10,N1
618,N5,N1,+,3,N10
619,N6,N1,+,8,N1
620,N9,N1,+,3,N3
621,N4,N1,-,3,N2
622,N6,N1,+,7,N2
623,N4,N1,+,2,N8
624,N7,N1,-,8,N4
625,N3,N1,-,1,N3
626,N2,N1,-,4,N10
627,N2,N1,+,4,N3
628,N6,N1,+,4,N9
629,N3,N1,+,10,N4
630,N1,N1,-,6,N3
631,N6,N1,+,1,N2
632,N4,N1,-,2,N7
633,N1,N1,+,5,N9
634,N6,N1,+,3,N7
635,N9,N1,+,7,N4
636,N10,N1,-,7,N2
637,N6,N1,-,9,N3
638,N3,N1,-,2,N6
639,N4,N1,-,6,N4
640,N9,N1,+,10,N9
641,N1,N1,+,10,N4
642,N4,N1,-,8,N9
643,N8,N1,+,4,N2
644,N6,N1,+,3,N1
645,N8,N1,+,4,N8
646,N6,N1,+,4,N3
647,N5,N1,-,7,N5
648,N1,N1,-,10,N3
649,N2,N1,-,6,N9
650,N1,N1,-,2,N2
651,N2,N1,+,7,N6
652,N8,N1,-,6,N9
653,N5,N1,+,2,N1
654,N2,N1,+,7,N9
655,N8,N1,+,3,N1
656,N1,N1,-,4,N7
657,N1,N1,+,6,N8
658,N1,N1,+,1,N8
659,N4,N1,-,10,N1
660,N2,N1,+,7,N2
661,N9,N1,-,10,N9
662,N6,N1,-,8,N5
663,N10,N1,+,8,N5
664,N1,N1,+,3,N3
665,N5,N1,-,7,N8
666,N10,N1,-,10,N1
667,N5,N1,-,7,N7
668,N10,N1,-,5,N5
669,N9,N1,+,6,N4
670,N9,N1,+,9,N8
671,N5,N1,-,2,N1
672,N1,N1,+,5,N7
673,N8,N1,+,3,N9
674,N2,N1,-,2,N5
675,N2,N1,-,2,N4
676,N4,N1,+,4,N1
677,N4,N1,-,2,N5
678,N6,N1,-,5,N3
679,N2,N1,+,3,N6
680,N6,N1,-,3,N7
681,N1,N1,+,1,N6
682,N4,N1,+,5,N1
683,N6,N1,+,1,N6
684,N3,N1,+,3,N4
685,N2,N1,+,5,N9
686,N7,N1,-,7,N7
687,N1,N1,-,7,N10
688,N10,N1,+,8,N3
689,N6,N1,+,5,N7
690,N4,N1,+,9,N5
691,N4,N1,-,1,N1
692,N2,N1,+,8,N1
693,N9,N1,-,7,N10
694,N2,N1,-,7,N1
695,N10,N1,+,8,N4
696,N4,N1,+,10,N6
697,N4,N1,+,1,N5
698,N5,N1,-,2,N6
699,N5,N1,+,1,N1
700,N2,N1,+,5,N3
701,N6,N1,-,5,N5
702,N9,N1,+,8,N3
703,N10,N1,+,1,N2
704,N5,N1,-,2,N7
705,N3,N1,-,7,N10
706,N7,N1,+,4,N6
707,N7,N1,+,7,N4
708,N1,N1,-,6,N7
709,N5,N1,+,3,N8
710,N4,N1,+,3,N5
711,N6,N1,-,6,N8
712,N4,N1,-,5,N8
713,N5,N1,-,5,N6
714,N5,N1,+,8,N1
715,N10,N1,-,4,N5
716,N6,N1,+,5,N9
717,N2,N1,+,4,N5
718,N4,N1,-,3,N4
719,N10,N1,-,1,N7
720,N8,N1,-,9,N4
721,N4,N1,+,3,N5
722,N3,N1,-,6,N2
723,N8,N1,-,3,N6
724,N5,N1,-,9,N7
725,N2,N1,-,6,N4
726,N9,N1,+,8,N9
727,N4,N1,-,2,N1
728,N6,N1,-,4,N4
729,N7,N1,-,9,N8
730,N1,N1,+,7,N3
731,N3,N1,+,10,N2
732,N3,N1,-,10,N9
733,N7,N1,+,9,N4
734,N4,N1,+,8,N4
735,N7,N1,-,8,N6
736,N2,N1,+,5,N9
737,N4,N1,+,10,N4
738,N4,N1,+,6,N4
739,N6,N1,-,5,N2
740,N5,N1,+,6,N4
741,N7,N1,-,7,N7
742,N10,N1,+,5,N6
743,N8,N1,-,6,N8
744,N7,N1,+,9,N6
745,N8,N1,-,2,N2
746,N2,N1,+,2,N8
747,N3,N1,+,4,N3
748,N7,N1,-,6,N4
749,N9,N1,+,4,N9
750,N7,N1,+,10,N3
751,N1,N1,+,5,N7
752,N3,N1,-,2,N5
753,N4,N1,+,6,N2
754,N1,N1,-,6,N8
755,N6,N1,+,4,N4
756,N3,N1,+,9,N2
757,N6,N1,-,9,N4
758,N4,N1,+,9,N8
759,N7,N1,-,1,N8
760,N4,N1,+,4,N8
761,N1,N1,-,6,N2
762,N10,N1,+,9,N1
763,N1,N1,-,2,N4
764,N8,N1,+,6,N3
765,N6,N1,+,1,N6
766,N3,N1,+,4,N2
767,N7,N1,+,7,N2
768,N10,N1,-,6,N3
769,N4,N1,-,9,N8
770,N10,N1,+,3,N9
771,N5,N1,+,7,N5
772,N7,N1,-,8,N2
773,N4,N1,-,5,N2
774,N4,N1,+,9,N7
775,N8,N1,+,7,N9
776,N7,N1,+,4,N4
777,N7,N1,-,1,N5
778,N10,N1,+,7,N2
779,N1,N1,-,8,N4
780,N5,N1,+,8,N8
781,N7,N1,-,5,N10
782,N1,N1,+,8,N6
783,N5,N1,+,6,N1
784,N7,N1,-,8,N9
785,N9,N1,-,6,N10
786,N10,N1,-,8,N9
787,N3,N1,+,7,N10
788,N10,N1,+,9,N10
789,N6,N1,+,2,N4
790,N10,N1,+,10,N1
791,N5,N1,-,8,N7
792,N9,N1,-,5,N5
793,N5,N1,+,9,N7
794,N10,N1,+,6,N3
795,N7,N1,-,8,N8
796,N8,N1,-,6,N6
797,N7,N1,+,5,N2
798,N8,N1,+,4,N10
799,N2,N1,-,7,N1
800,N3,N1,+,10,N3
801,N7,N1,+,7,N6
802,N8,N1,-,2,N10
803,N7,N1,+,9,N2
804,N3,N1,-,5,N2
805,N1,N1,+,8,N8
806,N2,N1,-,6,N1
807,N8,N1,+,5,N5
808,N2,N1,+,10,N1
809,N8,N1,+,4,N1
810,N10,N1,-,4,N1
811,N4,N1,+,6,N4
812,N1,N1,-,6,N8
813,N4,N1,+,9,N10
814,N6,N1,-,7,N4
815,N7,N1,-,2,N10
816,N10,N1,-,3,N3
817,N7,N1,-,3,N1
818,N5,N1,-,9,N2
819,N3,N1,-,5,N10
820,N8,N1,+,4,N1
821,N2,N1,+,9,N2
822,N9,N1,+,4,N7
823,N5,N1,+,5,N8
824,N1,N1,-,7,N9
825,N8,N1,+,5,N5
826,N1,N1,+,9,N1
827,N2,N1,-,3,N4
828,N7,N1,-,10,N7
829,N7,N1,+,4,N6
830,N9,N1,-,10,N6
831,N3,N1,+,9,N5
832,N7,N1,-,4,N3
833,N3,N1,+,8,N2
834,N8,N1,+,4,N1
835,N7,N1,+,6,N6
836,N1,N1,+,4,N5
837,N7,N1,+,6,N7
838,N10,N1,+,4,N7
839,N6,N1,+,5,N8
840,N7,N1,-,4,N10
841,N4,N1,+,10,N8
842,N6,N1,-,9,N4
843,N2,N1,-,9,N2
844,N3,N1,+,5,N7
845,N2,N1,+,5,N4
846,N10,N1,+,5,N7
847,N1,N1,-,10,N3
848,N2,N1,-,5,N7
849,N4,N1,+,3,N1
850,N3,N1,+,4,N4
851,N3,N1,+,4,N4
852,N10,N1,-,10,N9
853,N4,N1,-,2,N5
854,N9,N1,+,8,N5
855,N6,N1,+,4,N9
856,N7,N1,-,6,N8
857,N1,N1,+,1,N5
858,N10,N1,+,1,N3
859,N3,N1,+,6,N4
860,N8,N1,+,2,N6
861,N6,N1,+,6,N6
862,N7,N1,+,3,N7
863,N1,N1,+,9,N6
864,N7,N1,-,3,N2
865,N6,N1,+,5,N3
866,N10,N1,-,2,N1
867,N10,N1,-,3,N5
868,N4,N1,+,3,N10
869,N6,N1,+,7,N5
870,N5,N1,+,2,N5
871,N7,N1,+,1,N10
872,N8,N1,+,10,N2
873,N9,N1,+,6,N6
874,N1,N1,+,3,N4
875,N3,N1,+,7,N5
876,N4,N1,-,8,N4
877,N9,N1,-,6,N2
878,N5,N1,-,10,N9
879,N1,N1,+,9,N8
880,N3,N1,-,3,N8
881,N4,N1,+,6,N4
882,N10,N1,-,5,N5
883,N1,N1,+,10,N7
884,N8,N1,+,4,N8
885,N2,N1,-,5,N5
886,N3,N1,-,3,N8
887,N9,N1,+,1,N9
888,N6,N1,-,2,N9
889,N1,N1,-,7,N10
890,N10,N1,+,3,N10
891,N2,N1,-,2,N9
892,N9,N1,+,2,N2
893,N10,N1,-,4,N9
894,N1,N1,+,6,N1
895,N6,N1,-,7,N2
896,N5,N1,+,1,N10
897,N7,N1,+,5,N10
898,N6,N1,+,6,N5
899,N1,N1,+,9,N2
900,N2,N1,-,10,N8
901,N2,N1,+,4,N8
902,N9,N1,-,8,N4
903,N5,N1,-,10,N8
904,N1,N1,+,2,N1
905,N8,N1,-,9,N10
906,N8,N1,+,5,N6
907,N2,N1,-,1,N8
908,N3,N1,-,2,N4
909,N7,N1,+,6,N2
910,N8,N1,-,7,N3
911,N2,N1,+,7,N9
912,N5,N1,+,2,N8
913,N9,N1,+,2,N3
914,N1,N1,+,6,N6
915,N1,N1,+,5,N4
916,N8,N1,+,10,N3
917,N4,N1,-,8,N3
918,N10,N1,+,2,N3
919,N2,N1,+,2,N3
920,N3,N1,+,5,N6
921,N9,N1,-,2,N5
922,N1,N1,+,4,N1
923,N4,N1,+,10,N10
924,N2,N1,+,6,N10
925,N3,N1,+,6,N4
926,N4,N1,-,10,N2
927,N6,N1,+,4,N8
928,N7,N1,-,4,N9
929,N2,N1,-,8,N8
930,N9,N1,-,10,N2
931,N2,N1,+,3,N4
932,N6,N1,+,9,N7
933,N9,N1,-,1,N10
934,N1,N1,+,3,N9
935,N3,N1,+,7,N1
936,N10,N1,-,2,N5
937,N9,N1,-,7,N10
938,N10,N1,+,9,N4
939,N9,N1,-,7,N2
940,N2,N1,-,5,N4
941,N6,N1,-,6,N8
942,N4,N1,+,6,N3
943,N10,N1,+,7,N4
944,N10,N1,+,5,N9
945,N1,N1,+,5,N10
946,N3,N1,+,8,N10
947,N5,N1,-,3,N10
948,N3,N1,+,6,N1
949,N8,N1,-,4,N6
950,N6,N1,-,1,N8
951,N1,N1,-,2,N8
952,N6,N1,-,9,N2
953,N2,N1,-,10,N4
954,N5,N1,+,10,N7
955,N10,N1,+,1,N8
956,N1,N1,-,5,N1
957,N2,N1,-,5,N8
958,N7,N1,+,8,N9
959,N7,N1,-,2,N8
960,N3,N1,-,7,N9
961,N3,N1,+,4,N1
962,N10,N1,+,10,N4
963,N2,N1,+,10,N8
964,N10,N1,+,5,N8
965,N3,N1,+,8,N2
966,N2,N1,+,9,N5
967,N1,N1,-,3,N6
968,N10,N1,-,3,N6
969,N6,N1,-,10,N4
970,N7,N1,+,6,N9
971,N1,N1,+,9,N2
972,N5,N1,+,5,N2
973,N8,N1,+,4,N2
974,N8,N1,-,5,N2
975,N9,N1,+,6,N6
976,N8,N1,-,1,N6
977,N6,N1,+,7,N4
978,N6,N1,+,2,N8
979,N5,N1,-,6,N3
980,N5,N1,-,3,N7
981,N9,N1,-,2,N10
982,N4,N1,+,3,N8
983,N10,N1,+,1,N8
984,N9,N1,-,7,N1
985,N8,N1,+,6,N8
986,N4,N1,+,1,N1
987,N8,N1,-,8,N10
988,N9,N1,+,4,N3
989,N2,N1,-,5,N3
990,N4,N1,-,8,N1
991,N9,N1,+,5,N4
992,N2,N1,+,5,N3
993,N1,N1,+,5,N7
994,N1,N1,-,4,N1
995,N4,N1,-,10,N3
996,N5,N1,+,10,N4
997,N5,N1,-,10,N8
998,N2,N1,-,5,N7
999,N2,N1,-,9,N4