Merge lp:~simon-funke/libadjoint/online_revolve_dolfin_adjoint into lp:libadjoint
- online_revolve_dolfin_adjoint
- Merge into trunk
Status: | Superseded |
---|---|
Proposed branch: | lp:~simon-funke/libadjoint/online_revolve_dolfin_adjoint |
Merge into: | lp:libadjoint |
Diff against target: |
16486 lines (+16380/-0) 19 files modified
__init__.py (+3/-0) assembly.py (+23/-0) solving.py (+859/-0) tests/burgers_newton/burgers_newton.py (+63/-0) tests/burgers_picard/burgers_picard.py (+80/-0) tests/checkpoint_burgers/checkpoint_burgers.py (+79/-0) tests/checkpoint_stokes/checkpoint_stokes.py (+137/-0) tests/heat/heat.py (+115/-0) tests/navier_stokes/navier_stokes.py (+151/-0) tests/stokes/stokes.py (+146/-0) tests/sw/basin.geo (+9/-0) tests/sw/basin.msh (+7135/-0) tests/sw/basin.xml (+6979/-0) tests/sw/kelvin_new.py (+51/-0) tests/sw/sw.py (+46/-0) tests/sw/sw_lib.py (+237/-0) tests/test.py (+22/-0) tests/tlm_simple/tlm_simple.py (+67/-0) utils.py (+178/-0) |
To merge this branch: | bzr merge lp:~simon-funke/libadjoint/online_revolve_dolfin_adjoint |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Patrick Farrell | Pending | ||
Review via email: mp+88950@code.launchpad.net |
Commit message
Description of the change
- Implementation of the read, write and delete callbacks
- checkpoint burgers example uses memory and disk checkpoints
- 86. By Simon Funke
-
Use str() instead of __str__()
Unmerged revisions
- 86. By Simon Funke
-
Use str() instead of __str__()
- 85. By Simon Funke
-
Merge from "trunk"
- 84. By Simon Funke
-
Some final tidy up
- 83. By Simon Funke
-
Fix the timestep prediction in the checkpoint burgers test. The test now tests a multistage revolve with memory and disk checkpoints.
- 82. By Simon Funke
-
After implementing the Vector.delete() the offline checkpointing works.
- 81. By Simon Funke
-
An implementation of the Vector's read and write functions. With these we can now use offline checkpointing that stores the checkpoints on disk. However, the delete function is not implemented yet, causing the simulation to crash at the very end.
- 80. By Patrick Farrell
-
Get checkpointing working for simulations which solve multiple equations per timestep.
That was surprisingly easy, once I realised how.Add a checkpoint_stokes test. We do 11 timesteps, but only give 5 checkpoint slots, so it has
to replay several times during the adjoint run in order to acquire the solutions about
which it wants to linearise. - 79. By Simon Funke
-
Remove the print statement.
- 78. By Simon Funke
-
Commit a checkpointing test.
- 77. By Patrick Farrell
-
Impose the homogenised boundary conditions on the R* term, too.
Preview Diff
1 | === added file '__init__.py' |
2 | --- __init__.py 1970-01-01 00:00:00 +0000 |
3 | +++ __init__.py 2012-01-17 22:06:24 +0000 |
4 | @@ -0,0 +1,3 @@ |
5 | +from solving import * |
6 | +from assembly import * |
7 | +from utils import * |
8 | |
9 | === added file 'assembly.py' |
10 | --- assembly.py 1970-01-01 00:00:00 +0000 |
11 | +++ assembly.py 2012-01-17 22:06:24 +0000 |
12 | @@ -0,0 +1,23 @@ |
13 | +import dolfin |
14 | +import copy |
15 | +import collections |
16 | + |
17 | +assembly_cache = {} |
18 | +bc_cache = collections.defaultdict(list) |
19 | + |
20 | +dolfin_assemble = dolfin.assemble |
21 | +def assemble(*args, **kwargs): |
22 | + form = args[0] |
23 | + output = dolfin_assemble(*args, **kwargs) |
24 | + assembly_cache[output] = form |
25 | + return output |
26 | + |
27 | +bc_apply = dolfin.DirichletBC.apply |
28 | +def adjoint_bc_apply(self, *args, **kwargs): |
29 | + for arg in args: |
30 | + bc_data = copy.copy(bc_cache[arg]) |
31 | + bc_data.append(self) |
32 | + bc_cache[arg] = bc_data |
33 | + return bc_apply(self, *args, **kwargs) |
34 | +dolfin.DirichletBC.apply = adjoint_bc_apply |
35 | + |
36 | |
37 | === added file 'solving.py' |
38 | --- solving.py 1970-01-01 00:00:00 +0000 |
39 | +++ solving.py 2012-01-17 22:06:24 +0000 |
40 | @@ -0,0 +1,859 @@ |
41 | +import ufl |
42 | +import ufl.classes |
43 | +import ufl.algorithms |
44 | +import ufl.operators |
45 | + |
46 | +import dolfin.fem.solving |
47 | +import dolfin |
48 | + |
49 | +import libadjoint |
50 | +import libadjoint.exceptions |
51 | + |
52 | +import hashlib |
53 | +import time |
54 | + |
55 | +import assembly |
56 | + |
57 | +debugging={} |
58 | + |
59 | +class CoeffStore(object): |
60 | + '''This object manages the mapping from Dolfin coefficients to libadjoint Variables. |
61 | + In the process, it also manages the incrementing of the timestep associated with each |
62 | + variable, so that the user does not have to manually manage the time information.''' |
63 | + def __init__(self): |
64 | + self.coeffs={} |
65 | + |
66 | + def next(self, coeff): |
67 | + '''Increment the timestep corresponding to the provided Dolfin |
68 | + coefficient and then return the corresponding libadjoint variable.''' |
69 | + |
70 | + try: |
71 | + self.coeffs[coeff]+=1 |
72 | + except KeyError: |
73 | + self.coeffs[coeff]=0 |
74 | + |
75 | + return libadjoint.Variable(str(coeff), self.coeffs[coeff], 0) |
76 | + |
77 | + def __getitem__(self, coeff): |
78 | + '''Return the libadjoint variable corresponding to coeff.''' |
79 | + |
80 | + if not self.coeffs.has_key(coeff): |
81 | + self.coeffs[coeff]=0 |
82 | + |
83 | + return libadjoint.Variable(str(coeff), self.coeffs[coeff], 0) |
84 | + |
85 | +adj_variables=CoeffStore() |
86 | + |
87 | +# Set record_all to true to enable recording all variables in the forward |
88 | +# run. This is primarily useful for debugging. |
89 | +debugging["record_all"] = False |
90 | +debugging["test_hermitian"] = None |
91 | +debugging["test_derivative"] = None |
92 | +debugging["fussy_replay"] = True |
93 | + |
94 | +# Create the adjointer, the central object that records the forward solve |
95 | +# as it happens. |
96 | +adjointer = libadjoint.Adjointer() |
97 | + |
98 | +# A dictionary that saves the functionspaces of all checkpoint variables that have been saved to disk |
99 | +checkpoint_fs = {} |
100 | + |
101 | +def annotate(*args, **kwargs): |
102 | + '''This routine handles all of the annotation, recording the solves as they |
103 | + happen so that libadjoint can rewind them later.''' |
104 | + |
105 | + if isinstance(args[0], ufl.classes.Equation): |
106 | + # annotate ! |
107 | + |
108 | + # Unpack the arguments, using the same routine as the real Dolfin solve call |
109 | + unpacked_args = dolfin.fem.solving._extract_args(*args, **kwargs) |
110 | + eq = unpacked_args[0] |
111 | + u = unpacked_args[1] |
112 | + bcs = unpacked_args[2] |
113 | + J = unpacked_args[3] |
114 | + |
115 | + if isinstance(eq.lhs, ufl.Form) and isinstance(eq.rhs, ufl.Form): |
116 | + eq_lhs = eq.lhs |
117 | + eq_rhs = eq.rhs |
118 | + eq_bcs = bcs |
119 | + linear = True |
120 | + else: |
121 | + eq_lhs, eq_rhs = define_nonlinear_equation(eq.lhs, u) |
122 | + F = eq.lhs |
123 | + eq_bcs = [] |
124 | + linear = False |
125 | + |
126 | + newargs = list(args) |
127 | + |
128 | + try: |
129 | + solver_params = kwargs["solver_parameters"] |
130 | + ksp = solver_params["linear_solver"] |
131 | + except KeyError: |
132 | + ksp = None |
133 | + |
134 | + try: |
135 | + solver_params = kwargs["solver_parameters"] |
136 | + pc = solver_params["preconditioner"] |
137 | + except KeyError: |
138 | + pc = None |
139 | + |
140 | + elif isinstance(args[0], dolfin.cpp.Matrix): |
141 | + linear = True |
142 | + try: |
143 | + eq_lhs = assembly.assembly_cache[args[0]] |
144 | + except KeyError: |
145 | + raise libadjoint.exceptions.LibadjointErrorInvalidInputs("dolfin_adjoint did not assemble your form, and so does not recognise your matrix. Did you from dolfin_adjoint import *?") |
146 | + |
147 | + try: |
148 | + eq_rhs = assembly.assembly_cache[args[2]] |
149 | + except KeyError: |
150 | + raise libadjoint.exceptions.LibadjointErrorInvalidInputs("dolfin_adjoint did not assemble your form, and so does not recognise your right-hand side. Did you from dolfin_adjoint import *?") |
151 | + |
152 | + u = args[1] |
153 | + if not isinstance(u, dolfin.Function): |
154 | + raise libadjoint.exceptions.LibadjointErrorInvalidInputs("dolfin_adjoint needs the Function you are solving for, rather than its .vector().") |
155 | + newargs = list(args) |
156 | + newargs[1] = u.vector() # for the real solve later |
157 | + |
158 | + try: |
159 | + ksp = args[3] |
160 | + except IndexError: |
161 | + ksp = None |
162 | + |
163 | + try: |
164 | + pc = args[4] |
165 | + except IndexError: |
166 | + pc = None |
167 | + |
168 | + eq_bcs = list(set(assembly.bc_cache[args[0]] + assembly.bc_cache[args[2]])) |
169 | + else: |
170 | + raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to annotate your equation, sorry!") |
171 | + |
172 | + # Suppose we are solving for a variable w, and that variable shows up in the |
173 | + # coefficients of eq_lhs/eq_rhs. |
174 | + # Does that mean: |
175 | + # a) the /previous value/ of that variable, and you want to timestep? |
176 | + # b) the /value to be solved for/ in this solve? |
177 | + # i.e. is it timelevel n-1, or n? |
178 | + # if Dolfin is doing a linear solve, we want case a); |
179 | + # if Dolfin is doing a nonlinear solve, we want case b). |
180 | + # so if we are doing a nonlinear solve, we bump the timestep number here |
181 | + # /before/ we map the coefficients -> dependencies, |
182 | + # so that libadjoint records the dependencies with the right timestep number. |
183 | + if not linear: |
184 | + var = adj_variables.next(u) |
185 | + |
186 | + # Set up the data associated with the matrix on the left-hand side. This goes on the diagonal |
187 | + # of the 'large' system that incorporates all of the timelevels, which is why it is prefixed |
188 | + # with diag. |
189 | + diag_name = hashlib.md5(str(eq_lhs) + str(eq_rhs) + str(u) + str(time.time())).hexdigest() # we don't have a useful human-readable name, so take the md5sum of the string representation of the forms |
190 | + diag_deps = [adj_variables[coeff] for coeff in ufl.algorithms.extract_coefficients(eq_lhs) if hasattr(coeff, "function_space")] |
191 | + diag_coeffs = [coeff for coeff in ufl.algorithms.extract_coefficients(eq_lhs) if hasattr(coeff, "function_space")] |
192 | + diag_block = libadjoint.Block(diag_name, dependencies=diag_deps, test_hermitian=debugging["test_hermitian"], test_derivative=debugging["test_derivative"]) |
193 | + |
194 | + # Similarly, create the object associated with the right-hand side data. |
195 | + if linear: |
196 | + rhs = RHS(eq_rhs) |
197 | + else: |
198 | + rhs = NonlinearRHS(eq_rhs, F, u, bcs, mass=eq_lhs) |
199 | + |
200 | + # We need to check if this is the first equation, |
201 | + # so that we can register the appropriate initial conditions. |
202 | + # These equations are necessary so that libadjoint can assemble the |
203 | + # relevant adjoint equations for the adjoint variables associated with |
204 | + # the initial conditions. |
205 | + for coeff, dep in zip(rhs.coefficients(),rhs.dependencies()) + zip(diag_coeffs, diag_deps): |
206 | + # If coeff is not known, it must be an initial condition. |
207 | + if not adjointer.variable_known(dep): |
208 | + |
209 | + if not linear: # don't register initial conditions for the first nonlinear solve. |
210 | + if dep == var: |
211 | + continue |
212 | + |
213 | + fn_space = coeff.function_space() |
214 | + block_name = "Identity: %s" % str(fn_space) |
215 | + identity_block = libadjoint.Block(block_name) |
216 | + |
217 | + init_rhs=Vector(coeff).duplicate() |
218 | + init_rhs.axpy(1.0,Vector(coeff)) |
219 | + |
220 | + def identity_assembly_cb(variables, dependencies, hermitian, coefficient, context): |
221 | + assert coefficient == 1 |
222 | + return (Matrix(ufl.Identity(fn_space.dim())), Vector(dolfin.Function(fn_space))) |
223 | + |
224 | + identity_block.assemble=identity_assembly_cb |
225 | + |
226 | + if debugging["record_all"]: |
227 | + adjointer.record_variable(dep, libadjoint.MemoryStorage(Vector(coeff))) |
228 | + |
229 | + initial_eq = libadjoint.Equation(dep, blocks=[identity_block], targets=[dep], rhs=RHS(init_rhs)) |
230 | + adjointer.register_equation(initial_eq) |
231 | + assert adjointer.variable_known(dep) |
232 | + |
233 | + |
234 | + # c.f. the discussion above. In the linear case, we want to bump the |
235 | + # timestep number /after/ all of the dependencies' timesteps have been |
236 | + # computed for libadjoint. |
237 | + if linear: |
238 | + var = adj_variables.next(u) |
239 | + |
240 | + # With the initial conditions out of the way, let us now define the callbacks that |
241 | + # define the actions of the operator the user has passed in on the lhs of this equation. |
242 | + |
243 | + def diag_assembly_cb(dependencies, values, hermitian, coefficient, context): |
244 | + '''This callback must conform to the libadjoint Python block assembly |
245 | + interface. It returns either the form or its transpose, depending on |
246 | + the value of the logical hermitian.''' |
247 | + |
248 | + assert coefficient == 1 |
249 | + |
250 | + value_coeffs=[v.data for v in values] |
251 | + eq_l=dolfin.replace(eq_lhs, dict(zip(diag_coeffs, value_coeffs))) |
252 | + |
253 | + if hermitian: |
254 | + # Homogenise the adjoint boundary conditions. This creates the adjoint |
255 | + # solution associated with the lifted discrete system that is actually solved. |
256 | + adjoint_bcs = [dolfin.homogenize(bc) for bc in eq_bcs if isinstance(bc, dolfin.DirichletBC)] |
257 | + if len(adjoint_bcs) == 0: adjoint_bcs = None |
258 | + return (Matrix(dolfin.adjoint(eq_l), bcs=adjoint_bcs, pc=pc, ksp=ksp), Vector(None, fn_space=u.function_space())) |
259 | + else: |
260 | + return (Matrix(eq_l, bcs=eq_bcs, pc=pc, ksp=ksp), Vector(None, fn_space=u.function_space())) |
261 | + diag_block.assemble = diag_assembly_cb |
262 | + |
263 | + def diag_action_cb(dependencies, values, hermitian, coefficient, input, context): |
264 | + value_coeffs = [v.data for v in values] |
265 | + eq_l = dolfin.replace(eq_lhs, dict(zip(diag_coeffs, value_coeffs))) |
266 | + |
267 | + if hermitian: |
268 | + eq_l = dolfin.adjoint(eq_l) |
269 | + |
270 | + output_vec = dolfin.assemble(coefficient * dolfin.action(eq_l, input.data)) |
271 | + output_fn = dolfin.Function(input.data.function_space()) |
272 | + vec = output_fn.vector() |
273 | + for i in range(len(vec)): |
274 | + vec[i] = output_vec[i] |
275 | + |
276 | + return Vector(output_fn) |
277 | + diag_block.action = diag_action_cb |
278 | + |
279 | + if len(diag_deps) > 0: |
280 | + # If this block is nonlinear (the entries of the matrix on the LHS |
281 | + # depend on any variable previously computed), then that will induce |
282 | + # derivative terms in the adjoint equations. Here, we define the |
283 | + # callback libadjoint will need to compute such terms. |
284 | + def derivative_action(dependencies, values, variable, contraction_vector, hermitian, input, coefficient, context): |
285 | + dolfin_variable = values[dependencies.index(variable)].data |
286 | + dolfin_values = [val.data for val in values] |
287 | + |
288 | + current_form = dolfin.replace(eq_lhs, dict(zip(diag_coeffs, dolfin_values))) |
289 | + |
290 | + deriv = dolfin.derivative(current_form, dolfin_variable) |
291 | + args = ufl.algorithms.extract_arguments(deriv) |
292 | + deriv = dolfin.replace(deriv, {args[1]: contraction_vector.data}) # contract over the middle index |
293 | + |
294 | + if hermitian: |
295 | + deriv = dolfin.adjoint(deriv) |
296 | + |
297 | + action = coefficient * dolfin.action(deriv, input.data) |
298 | + |
299 | + return Vector(action) |
300 | + diag_block.derivative_action = derivative_action |
301 | + |
302 | + eqn = libadjoint.Equation(var, blocks=[diag_block], targets=[var], rhs=rhs) |
303 | + |
304 | + cs = adjointer.register_equation(eqn) |
305 | + if cs == int(libadjoint.constants.adj_constants["ADJ_CHECKPOINT_STORAGE_MEMORY"]): |
306 | + for coeff in adj_variables.coeffs.keys(): |
307 | + if adj_variables[coeff] == var: continue |
308 | + adjointer.record_variable(adj_variables[coeff], libadjoint.MemoryStorage(Vector(coeff), cs=True)) |
309 | + |
310 | + elif cs == int(libadjoint.constants.adj_constants["ADJ_CHECKPOINT_STORAGE_DISK"]): |
311 | + for coeff in adj_variables.coeffs.keys(): |
312 | + if adj_variables[coeff] == var: continue |
313 | + adjointer.record_variable(adj_variables[coeff], libadjoint.DiskStorage(Vector(coeff), cs=True)) |
314 | + return linear, newargs |
315 | + |
316 | +def solve(*args, **kwargs): |
317 | + '''This solve routine comes from the dolfin_adjoint package, and wraps the real Dolfin |
318 | + solve call. Its purpose is to annotate the model, recording what solves occur and what |
319 | + forms are involved, so that the adjoint model may be constructed automatically by libadjoint. |
320 | + |
321 | + To disable the annotation, just pass annotate=False to this routine, and it acts exactly |
322 | + like the Dolfin solve call. This is useful in cases where the solve is known to be irrelevant |
323 | + or diagnostic for the purposes of the adjoint computation (such as projecting fields to |
324 | + other function spaces for the purposes of visualisation).''' |
325 | + |
326 | + # First, decide if we should annotate or not. |
327 | + to_annotate = True |
328 | + if "annotate" in kwargs: |
329 | + to_annotate = kwargs["annotate"] |
330 | + del kwargs["annotate"] # so we don't pass it on to the real solver |
331 | + |
332 | + if to_annotate: |
333 | + linear, newargs = annotate(*args, **kwargs) |
334 | + else: |
335 | + newargs = args |
336 | + |
337 | + ret = dolfin.fem.solving.solve(*newargs, **kwargs) |
338 | + |
339 | + if to_annotate: |
340 | + if not linear and debugging["fussy_replay"]: |
341 | + # we have annotated M.u = M.u - F(u), |
342 | + # but actually solved F(u) = 0. |
343 | + # so we need to do the mass solve too, so that the |
344 | + # replay is exact. |
345 | + nonlinear_post_solve_projection(*args, **kwargs) |
346 | + |
347 | + # Finally, if we want to record all of the solutions of the real forward model |
348 | + # (for comparison with a libadjoint replay later), |
349 | + # then we should record the value of the variable we just solved for. |
350 | + if debugging["record_all"]: |
351 | + if isinstance(args[0], ufl.classes.Equation): |
352 | + unpacked_args = dolfin.fem.solving._extract_args(*args, **kwargs) |
353 | + u = unpacked_args[1] |
354 | + adjointer.record_variable(adj_variables[u], libadjoint.MemoryStorage(Vector(u))) |
355 | + elif isinstance(args[0], dolfin.cpp.Matrix): |
356 | + u = args[1] |
357 | + adjointer.record_variable(adj_variables[u], libadjoint.MemoryStorage(Vector(u))) |
358 | + else: |
359 | + raise libadjoint.exceptions.LibadjointErrorInvalidInputs("Don't know how to record, sorry") |
360 | + |
361 | + return ret |
362 | + |
363 | +def adj_html(*args, **kwargs): |
364 | + '''This routine dumps the current state of the adjointer to a HTML visualisation. |
365 | + Use it like: |
366 | + adj_html("forward.html", "forward") # for the equations recorded on the forward run |
367 | + adj_html("adjoint.html", "adjoint") # for the equations to be assembled on the adjoint run |
368 | + ''' |
369 | + return adjointer.to_html(*args, **kwargs) |
370 | + |
371 | + |
372 | +class Vector(libadjoint.Vector): |
373 | + '''This class implements the libadjoint.Vector abstract base class for the Dolfin adjoint. |
374 | + In particular, it must implement the data callbacks for tasks such as adding two vectors |
375 | + together, duplicating vectors, taking norms, etc., that occur in the process of constructing |
376 | + the adjoint equations.''' |
377 | + |
378 | + def __init__(self, data, zero=False, fn_space=None): |
379 | + |
380 | + self.data=data |
381 | + # self.zero is true if we can prove that the vector is zero. |
382 | + if data is None: |
383 | + self.zero=True |
384 | + else: |
385 | + self.zero=zero |
386 | + |
387 | + if fn_space is not None: |
388 | + self.fn_space = fn_space |
389 | + |
390 | + def duplicate(self): |
391 | + |
392 | + if isinstance(self.data, ufl.form.Form): |
393 | + # The data type will be determined by the first addto. |
394 | + data = None |
395 | + elif isinstance(self.data, dolfin.Function): |
396 | + data = dolfin.Function(self.data.function_space()) |
397 | + else: |
398 | + data = None |
399 | + |
400 | + fn_space = None |
401 | + if hasattr(self, "fn_space"): |
402 | + fn_space = self.fn_space |
403 | + |
404 | + return Vector(data, zero=True, fn_space=fn_space) |
405 | + |
406 | + def axpy(self, alpha, x): |
407 | + |
408 | + if x.zero: |
409 | + return |
410 | + |
411 | + if (self.data is None): |
412 | + # self is an empty form. |
413 | + assert(isinstance(x.data, ufl.form.Form)) |
414 | + self.data=alpha*x.data |
415 | + elif isinstance(self.data, dolfin.Coefficient): |
416 | + if isinstance(x.data, dolfin.Coefficient): |
417 | + self.data.vector().axpy(alpha, x.data.vector()) |
418 | + else: |
419 | + # This occurs when adding a RHS derivative to an adjoint equation |
420 | + # corresponding to the initial conditions. |
421 | + self.data.vector().axpy(alpha, dolfin.assemble(x.data)) |
422 | + else: |
423 | + # self is a non-empty form. |
424 | + assert(isinstance(x.data, ufl.form.Form)) |
425 | + assert(isinstance(self.data, ufl.form.Form)) |
426 | + |
427 | + # Let's do a bit of argument shuffling, shall we? |
428 | + xargs = ufl.algorithms.extract_arguments(x.data) |
429 | + sargs = ufl.algorithms.extract_arguments(self.data) |
430 | + |
431 | + if xargs != sargs: |
432 | + # OK, let's check that all of the function spaces are happy and so on. |
433 | + for i in range(len(xargs)): |
434 | + assert xargs[i].element() == sargs[i].element() |
435 | + assert xargs[i].function_space() == sargs[i].function_space() |
436 | + |
437 | + # Now that we are happy, let's replace the xargs with the sargs ones. |
438 | + x_form = dolfin.replace(x.data, dict(zip(xargs, sargs))) |
439 | + else: |
440 | + x_form = x.data |
441 | + |
442 | + self.data+=alpha*x_form |
443 | + |
444 | + self.zero = False |
445 | + |
446 | + def norm(self): |
447 | + |
448 | + if isinstance(self.data, dolfin.Function): |
449 | + return (abs(dolfin.assemble(dolfin.inner(self.data, self.data)*dolfin.dx)))**0.5 |
450 | + elif isinstance(self.data, ufl.form.Form): |
451 | + import scipy.linalg |
452 | + vec = dolfin.assemble(self.data) |
453 | + n = scipy.linalg.norm(vec) |
454 | + return n |
455 | + |
456 | + def dot_product(self,y): |
457 | + |
458 | + if isinstance(self.data, ufl.form.Form): |
459 | + return dolfin.assemble(dolfin.inner(self.data, y.data)*dolfin.dx) |
460 | + elif isinstance(self.data, dolfin.Function): |
461 | + import numpy |
462 | + if isinstance(y.data, ufl.form.Form): |
463 | + other = dolfin.assemble(y.data) |
464 | + else: |
465 | + other = y.data.vector() |
466 | + return numpy.dot(numpy.array(self.data.vector()), numpy.array(other)) |
467 | + else: |
468 | + raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to dot anything else.") |
469 | + |
470 | + def set_random(self): |
471 | + assert isinstance(self.data, dolfin.Function) or hasattr(self, "fn_space") |
472 | + import random |
473 | + |
474 | + if self.data is None: |
475 | + self.data = dolfin.Function(self.fn_space) |
476 | + |
477 | + vec = self.data.vector() |
478 | + for i in range(len(vec)): |
479 | + vec[i] = random.random() |
480 | + |
481 | + self.zero = False |
482 | + |
483 | + def size(self): |
484 | + if hasattr(self, "fn_space"): |
485 | + return self.fn_space.dim() |
486 | + |
487 | + if isinstance(self.data, dolfin.Function): |
488 | + return len(self.data.vector()) |
489 | + |
490 | + if isinstance(self.data, ufl.form.Form): |
491 | + return len(dolfin.assemble(self.data)) |
492 | + |
493 | + raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to get the size.") |
494 | + |
495 | + def set_values(self, array): |
496 | + if isinstance(self.data, dolfin.Function): |
497 | + vec = self.data.vector() |
498 | + for i in range(len(array)): |
499 | + vec[i] = array[i] |
500 | + self.zero = False |
501 | + else: |
502 | + raise libadjoint.exceptions.LibadjointErrorNotImplemented("Don't know how to set values.") |
503 | + |
504 | + def write(self, var): |
505 | + import os.path |
506 | + |
507 | + filename = var.__str__() |
508 | + suffix = "xml" |
509 | + if not os.path.isfile(filename+".%s" % suffix): |
510 | + print "Warning: Overwritting checkpoint file "+filename+"."+suffix |
511 | + file = dolfin.File(filename+".%s" % suffix) |
512 | + file << self.data |
513 | + |
514 | + # Save the function space into checkpoint_fs. It will be needed when reading the variable back in. |
515 | + checkpoint_fs[filename] = self.data.function_space() |
516 | + |
517 | + @staticmethod |
518 | + def read(var): |
519 | + |
520 | + filename = var.__str__() |
521 | + suffix = "xml" |
522 | + |
523 | + V = checkpoint_fs[filename] |
524 | + v = dolfin.Function(V, filename+".%s" % suffix) |
525 | + return Vector(v) |
526 | + |
527 | + @staticmethod |
528 | + def delete(var): |
529 | + import os |
530 | + import os.path |
531 | + |
532 | + filename = var.__str__() |
533 | + suffix = "xml" |
534 | + |
535 | + assert(os.path.isfile(filename+".%s" % suffix)) |
536 | + os.remove(filename+".%s" % suffix) |
537 | + |
538 | +class Matrix(libadjoint.Matrix): |
539 | + '''This class implements the libadjoint.Matrix abstract base class for the Dolfin adjoint. |
540 | + In particular, it must implement the data callbacks for tasks such as adding two matrices |
541 | + together, duplicating matrices, etc., that occur in the process of constructing |
542 | + the adjoint equations.''' |
543 | + |
544 | + def __init__(self, data, bcs=None, ksp=None, pc=None): |
545 | + |
546 | + if bcs is None: |
547 | + self.bcs = [] |
548 | + else: |
549 | + self.bcs=bcs |
550 | + |
551 | + self.data=data |
552 | + |
553 | + self.ksp = ksp |
554 | + self.pc = pc |
555 | + |
556 | + def solve(self, var, b): |
557 | + |
558 | + if isinstance(self.data, ufl.Identity): |
559 | + x=b.duplicate() |
560 | + x.axpy(1.0, b) |
561 | + else: |
562 | + if var.type in ['ADJ_TLM', 'ADJ_ADJOINT']: |
563 | + bcs = [dolfin.homogenize(bc) for bc in self.bcs if isinstance(bc, dolfin.DirichletBC)] + [bc for bc in self.bcs if not isinstance(bc, dolfin.DirichletBC)] |
564 | + else: |
565 | + bcs = self.bcs |
566 | + |
567 | + solver_parameters = {} |
568 | + if self.pc is not None: |
569 | + solver_parameters["preconditioner"] = self.pc |
570 | + if self.ksp is not None: |
571 | + solver_parameters["linear_solver"] = self.ksp |
572 | + |
573 | + x=Vector(dolfin.Function(self.test_function().function_space())) |
574 | + dolfin.fem.solving.solve(self.data==b.data, x.data, bcs, solver_parameters=solver_parameters) |
575 | + |
576 | + return x |
577 | + |
578 | + def axpy(self, alpha, x): |
579 | + assert isinstance(x.data, ufl.Form) |
580 | + assert isinstance(self.data, ufl.Form) |
581 | + |
582 | + # Let's do a bit of argument shuffling, shall we? |
583 | + xargs = ufl.algorithms.extract_arguments(x.data) |
584 | + sargs = ufl.algorithms.extract_arguments(self.data) |
585 | + |
586 | + if xargs != sargs: |
587 | + # OK, let's check that all of the function spaces are happy and so on. |
588 | + for i in range(len(xargs)): |
589 | + assert xargs[i].element() == sargs[i].element() |
590 | + assert xargs[i].function_space() == sargs[i].function_space() |
591 | + |
592 | + # Now that we are happy, let's replace the xargs with the sargs ones. |
593 | + x_form = dolfin.replace(x.data, dict(zip(xargs, sargs))) |
594 | + else: |
595 | + x_form = x.data |
596 | + |
597 | + self.data+=alpha*x_form |
598 | + self.bcs += x.bcs # Err, I hope they are compatible ... |
599 | + |
600 | + def test_function(self): |
601 | + '''test_function(self) |
602 | + |
603 | + Return the ufl.Argument corresponding to the trial space for the form''' |
604 | + |
605 | + return ufl.algorithms.extract_arguments(self.data)[-1] |
606 | + |
607 | +class Functional(libadjoint.Functional): |
608 | + '''This class implements the libadjoint.Functional abstract base class for the Dolfin adjoint. |
609 | + It takes in a form, and implements the necessary routines such as calling the functional |
610 | + and taking its derivative.''' |
611 | + |
612 | + def __init__(self, form): |
613 | + |
614 | + self.form = form |
615 | + self.activated = False |
616 | + |
617 | + def __call__(self, dependencies, values): |
618 | + |
619 | + dolfin_dependencies=[dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")] |
620 | + |
621 | + dolfin_values=[val.data for val in values] |
622 | + |
623 | + return dolfin.assemble(dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values)))) |
624 | + |
625 | + def derivative(self, variable, dependencies, values): |
626 | + |
627 | + # Find the dolfin Function corresponding to variable. |
628 | + dolfin_variable = values[dependencies.index(variable)].data |
629 | + |
630 | + dolfin_dependencies = [dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")] |
631 | + |
632 | + dolfin_values = [val.data for val in values] |
633 | + |
634 | + current_form = dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values))) |
635 | + test = dolfin.TestFunction(dolfin_variable.function_space()) |
636 | + |
637 | + return Vector(dolfin.derivative(current_form, dolfin_variable, test)) |
638 | + |
639 | + def dependencies(self, adjointer, timestep): |
640 | + |
641 | + if self.activated is False: |
642 | + deps = [adj_variables[coeff] for coeff in ufl.algorithms.extract_coefficients(self.form) if hasattr(coeff, "function_space")] |
643 | + self.activated = True |
644 | + else: |
645 | + deps = [] |
646 | + |
647 | + return deps |
648 | + |
649 | + def __str__(self): |
650 | + |
651 | + return hashlib.md5(str(self.form)).hexdigest() |
652 | + |
653 | +class RHS(libadjoint.RHS): |
654 | + '''This class implements the libadjoint.RHS abstract base class for the Dolfin adjoint. |
655 | + It takes in a form, and implements the necessary routines such as calling the right-hand side |
656 | + and taking its derivative.''' |
657 | + def __init__(self, form): |
658 | + |
659 | + self.form=form |
660 | + |
661 | + if isinstance(self.form, ufl.form.Form): |
662 | + self.deps = [adj_variables[coeff] for coeff in ufl.algorithms.extract_coefficients(self.form) if hasattr(coeff, "function_space")] |
663 | + else: |
664 | + self.deps = [] |
665 | + |
666 | + if isinstance(self.form, ufl.form.Form): |
667 | + self.coeffs = [coeff for coeff in ufl.algorithms.extract_coefficients(self.form) if hasattr(coeff, "function_space")] |
668 | + else: |
669 | + self.coeffs = [] |
670 | + |
671 | + def __call__(self, dependencies, values): |
672 | + |
673 | + if isinstance(self.form, ufl.form.Form): |
674 | + |
675 | + dolfin_dependencies=[dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")] |
676 | + |
677 | + dolfin_values=[val.data for val in values] |
678 | + |
679 | + return Vector(dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values)))) |
680 | + |
681 | + else: |
682 | + # RHS is a Vector. |
683 | + assert isinstance(self.form, Vector) |
684 | + return self.form |
685 | + |
686 | + |
687 | + def derivative_action(self, dependencies, values, variable, contraction_vector, hermitian): |
688 | + |
689 | + if isinstance(self.form, ufl.form.Form): |
690 | + # Find the dolfin Function corresponding to variable. |
691 | + dolfin_variable = values[dependencies.index(variable)].data |
692 | + |
693 | + dolfin_dependencies = [dep for dep in ufl.algorithms.extract_coefficients(self.form) if hasattr(dep, "function_space")] |
694 | + |
695 | + dolfin_values = [val.data for val in values] |
696 | + |
697 | + current_form = dolfin.replace(self.form, dict(zip(dolfin_dependencies, dolfin_values))) |
698 | + trial = dolfin.TrialFunction(dolfin_variable.function_space()) |
699 | + |
700 | + d_rhs=dolfin.derivative(current_form, dolfin_variable, trial) |
701 | + |
702 | + if hermitian: |
703 | + action = dolfin.action(dolfin.adjoint(d_rhs),contraction_vector.data) |
704 | + else: |
705 | + action = dolfin.action(d_rhs,contraction_vector.data) |
706 | + |
707 | + return Vector(action) |
708 | + else: |
709 | + # RHS is a Vector. Its derivative is therefore zero. |
710 | + raise exceptions.LibadjointErrorNotImplemented("No derivative method for constant RHS.") |
711 | + |
712 | + |
713 | + def dependencies(self): |
714 | + |
715 | + return self.deps |
716 | + |
717 | + def coefficients(self): |
718 | + |
719 | + return self.coeffs |
720 | + |
721 | + def __str__(self): |
722 | + |
723 | + return hashlib.md5(str(self.form)).hexdigest() |
724 | + |
725 | +class NonlinearRHS(RHS): |
726 | + '''For nonlinear problems, the source term isn't assembled in the usual way. |
727 | + If the nonlinear problem is given as |
728 | + F(u) = 0, |
729 | + we annotate it as |
730 | + M.u = M.u - F(u) . |
731 | + So in order to actually assemble the right-hand side term, |
732 | + we first need to solve F(u) = 0 to find the specific u, |
733 | + and then multiply that by the mass matrix.''' |
734 | + def __init__(self, form, F, u, bcs, mass): |
735 | + '''form is M.u - F(u). F is the nonlinear equation, F(u) := 0.''' |
736 | + RHS.__init__(self, form) |
737 | + self.F = F |
738 | + self.u = u |
739 | + self.bcs = bcs |
740 | + self.mass = mass |
741 | + |
742 | + # We want to mark that the RHS term /also/ depends on |
743 | + # the previous value of u, as that's what we need to initialise |
744 | + # the nonlinear solver. |
745 | + var = adj_variables[self.u] |
746 | + if var.timestep > 0 and debugging["fussy_replay"]: |
747 | + var.c_object.timestep = var.c_object.timestep - 1 |
748 | + self.deps.append(var) |
749 | + self.ic_var = var |
750 | + else: |
751 | + self.ic_var = None |
752 | + |
753 | + def __call__(self, dependencies, values): |
754 | + assert isinstance(self.form, ufl.form.Form) |
755 | + |
756 | + ic = self.u.function_space() # by default, initialise with a blank function in the solution FunctionSpace |
757 | + replace_map = {} |
758 | + |
759 | + for i in range(len(self.deps)): |
760 | + if self.deps[i] in dependencies: |
761 | + j = dependencies.index(self.deps[i]) |
762 | + if self.deps[i] == self.ic_var: |
763 | + ic = values[j].data # ahah, we have found an initial condition! |
764 | + else: |
765 | + replace_map[self.coeffs[i]] = values[j].data |
766 | + |
767 | + current_F = dolfin.replace(self.F, replace_map) |
768 | + u = dolfin.Function(ic) |
769 | + current_F = dolfin.replace(current_F, {self.u: u}) |
770 | + |
771 | + # OK, here goes nothing: |
772 | + dolfin.solve(current_F == 0, u, self.bcs) |
773 | + |
774 | + return Vector(dolfin.action(self.mass, u)) |
775 | + |
776 | + def derivative_action(self, dependencies, values, variable, contraction_vector, hermitian): |
777 | + '''If variable is the variable for the initial condition, we want to ignore it, |
778 | + and set the derivative to zero. Assuming the solver converges, the sensitivity of |
779 | + the solution to the initial condition should be extremely small, and computing it |
780 | + is very difficult (one would have to do a little adjoint solve to compute it). |
781 | + Even I'm not that fussy.''' |
782 | + |
783 | + if variable == self.ic_var: |
784 | + deriv_value = values[dependencies.index(variable)].data |
785 | + return Vector(None, fn_space=deriv_value.function_space()) |
786 | + else: |
787 | + return RHS.derivative_action(self, dependencies, values, variable, contraction_vector, hermitian) |
788 | + |
789 | + def derivative_assembly(self, dependencies, values, variable, hermitian): |
790 | + replace_map = {} |
791 | + |
792 | + for i in range(len(self.deps)): |
793 | + if self.deps[i] == self.ic_var: continue |
794 | + j = dependencies.index(self.deps[i]) |
795 | + replace_map[self.coeffs[i]] = values[j].data |
796 | + |
797 | + diff_var = values[dependencies.index(variable)].data |
798 | + |
799 | + current_form = dolfin.replace(self.form, replace_map) |
800 | + deriv = dolfin.derivative(current_form, diff_var) |
801 | + |
802 | + if hermitian: |
803 | + deriv = dolfin.adjoint(deriv) |
804 | + bcs = [dolfin.homogenize(bc) for bc in self.bcs if isinstance(bc, dolfin.DirichletBC)] |
805 | + else: |
806 | + bcs = self.bcs |
807 | + |
808 | + return Matrix(deriv, bcs=bcs) |
809 | + |
810 | +dolfin_assign = dolfin.Function.assign |
811 | +def dolfin_adjoint_assign(self, other, annotate=True): |
812 | + '''We also need to monkeypatch the Function.assign method, as it is often used inside |
813 | + the main time loop, and not annotating it means you get the adjoint wrong for totally |
814 | + nonobvious reasons. If anyone objects to me monkeypatching your objects, my apologies |
815 | + in advance.''' |
816 | + |
817 | + # ignore anything not a dolfin.Function |
818 | + if not isinstance(other, dolfin.Function) or annotate is False: |
819 | + return dolfin_assign(self, other) |
820 | + |
821 | + # ignore anything that is an interpolation, rather than a straight assignment |
822 | + if self.function_space() != other.function_space(): |
823 | + return dolfin_assign(self, other) |
824 | + |
825 | + other_var = adj_variables[other] |
826 | + # ignore any functions we haven't seen before -- we DON'T want to |
827 | + # annotate the assignment of initial conditions here. That happens |
828 | + # in the main solve wrapper. |
829 | + if not adjointer.variable_known(other_var): |
830 | + return dolfin_assign(self, other) |
831 | + |
832 | + # OK, so we have a variable we've seen before. Beautiful. |
833 | + fn_space = other.function_space() |
834 | + u, v = dolfin.TestFunction(fn_space), dolfin.TrialFunction(fn_space) |
835 | + M = dolfin.inner(u, v)*dolfin.dx |
836 | + if debugging["fussy_replay"]: |
837 | + return solve(M == dolfin.action(M, other), self) # this takes care of all the annotation etc |
838 | + else: |
839 | + annotate(M == dolfin.action(M, other), self) |
840 | + return dolfin_assign(self, other) |
841 | + |
842 | +dolfin.Function.assign = dolfin_adjoint_assign |
843 | + |
844 | +def define_nonlinear_equation(F, u): |
845 | + # Given an F := 0, |
846 | + # we write the equation for libadjoint's annotation purposes as |
847 | + # M.u = M.u + F(u) |
848 | + # as we need to have something on the diagonal in our big time system |
849 | + |
850 | + fn_space = u.function_space() |
851 | + test = dolfin.TestFunction(fn_space) |
852 | + trial = dolfin.TrialFunction(fn_space) |
853 | + |
854 | + mass = dolfin.inner(test, trial)*dolfin.dx |
855 | + |
856 | + return (mass, dolfin.action(mass, u) - F) |
857 | + |
858 | +def nonlinear_post_solve_projection(*args, **kwargs): |
859 | + '''we have annotated M.u = M.u - F(u), |
860 | + but actually solved F(u) = 0. |
861 | + so we need to do the mass solve too, so that the |
862 | + replay is exact.''' |
863 | + |
864 | + # Unpack the arguments, using the same routine as the real Dolfin solve call |
865 | + unpacked_args = dolfin.fem.solving._extract_args(*args, **kwargs) |
866 | + u = unpacked_args[1] |
867 | + |
868 | + fn_space = u.function_space() |
869 | + test = dolfin.TestFunction(fn_space) |
870 | + trial = dolfin.TrialFunction(fn_space) |
871 | + |
872 | + mass = dolfin.inner(test, trial)*dolfin.dx |
873 | + |
874 | + dolfin.fem.solving.solve(mass == dolfin.action(mass, u), u) |
875 | + |
876 | +def adjoint_checkpointing(strategy, steps, snaps_on_disk, snaps_in_ram, verbose=False): |
877 | + adjointer.set_checkpoint_strategy(strategy) |
878 | + adjointer.set_revolve_options(steps, snaps_on_disk, snaps_in_ram, verbose) |
879 | + |
880 | +class InitialConditionParameter(libadjoint.Parameter): |
881 | + '''This Parameter is used as input to the tangent linear model (TLM) |
882 | + when one wishes to compute dJ/d(initial condition) in a particular direction (perturbation).''' |
883 | + def __init__(self, coeff, perturbation): |
884 | + '''coeff: the variable whose initial condition you wish to perturb. |
885 | + perturbation: the perturbation direction in which you wish to compute the gradient. Must be a Function.''' |
886 | + self.var = adj_variables[coeff] |
887 | + self.var.c_object.timestep = 0 # we want to put in the source term only at the initial condition. |
888 | + self.perturbation = Vector(perturbation).duplicate() |
889 | + self.perturbation.axpy(1.0, Vector(perturbation)) |
890 | + |
891 | + def __call__(self, dependencies, values, variable): |
892 | + # The TLM source term only kicks in at the start, for the initial condition: |
893 | + if self.var == variable: |
894 | + return self.perturbation |
895 | + else: |
896 | + return None |
897 | + |
898 | + def __str__(self): |
899 | + return self.var.name + ':InitialCondition' |
900 | |
901 | === added directory 'tests' |
902 | === added directory 'tests/burgers_newton' |
903 | === added file 'tests/burgers_newton/burgers_newton.py' |
904 | --- tests/burgers_newton/burgers_newton.py 1970-01-01 00:00:00 +0000 |
905 | +++ tests/burgers_newton/burgers_newton.py 2012-01-17 22:06:24 +0000 |
906 | @@ -0,0 +1,63 @@ |
907 | +""" |
908 | +Implementation of Burger's equation with nonlinear solve in each |
909 | +timestep |
910 | +""" |
911 | + |
912 | +import sys |
913 | + |
914 | +from dolfin import * |
915 | +from dolfin_adjoint import * |
916 | + |
917 | +debugging["record_all"] = True |
918 | + |
919 | +n = 30 |
920 | +mesh = UnitInterval(n) |
921 | +V = FunctionSpace(mesh, "CG", 2) |
922 | + |
923 | +def Dt(u, u_, timestep): |
924 | + return (u - u_)/timestep |
925 | + |
926 | +def main(ic, annotate=False): |
927 | + |
928 | + u_ = Function(ic) |
929 | + u = Function(V) |
930 | + v = TestFunction(V) |
931 | + |
932 | + nu = Constant(0.0001) |
933 | + |
934 | + timestep = Constant(1.0/n) |
935 | + |
936 | + F = (Dt(u, u_, timestep)*v |
937 | + + u*grad(u)*v + nu*grad(u)*grad(v))*dx |
938 | + bc = DirichletBC(V, 0.0, "on_boundary") |
939 | + |
940 | + t = 0.0 |
941 | + end = 0.2 |
942 | + while (t <= end): |
943 | + solve(F == 0, u, bc, annotate=annotate) |
944 | + u_.assign(u, annotate=annotate) |
945 | + |
946 | + t += float(timestep) |
947 | + |
948 | + return u_ |
949 | + |
950 | +if __name__ == "__main__": |
951 | + |
952 | + ic = project(Expression("sin(2*pi*x[0])"), V) |
953 | + forward = main(ic, annotate=True) |
954 | + |
955 | + adj_html("burgers_newton_forward.html", "forward") |
956 | + adj_html("burgers_newton_adjoint.html", "adjoint") |
957 | + |
958 | + print "Running forward replay .... " |
959 | + replay_dolfin() |
960 | + print "Running adjoint ... " |
961 | + |
962 | + J = Functional(forward*forward*dx) |
963 | + adjoint = adjoint_dolfin(J) |
964 | + |
965 | + def Jfunc(ic): |
966 | + forward = main(ic, annotate=False) |
967 | + return assemble(forward*forward*dx) |
968 | + |
969 | + minconv = test_initial_condition_adjoint(Jfunc, ic, adjoint, seed=1.0e-6) |
970 | |
971 | === added directory 'tests/burgers_picard' |
972 | === added file 'tests/burgers_picard/burgers_picard.py' |
973 | --- tests/burgers_picard/burgers_picard.py 1970-01-01 00:00:00 +0000 |
974 | +++ tests/burgers_picard/burgers_picard.py 2012-01-17 22:06:24 +0000 |
975 | @@ -0,0 +1,80 @@ |
976 | +""" |
977 | +Naive implementation of Burgers' equation, goes oscillatory later |
978 | +""" |
979 | + |
980 | +import sys |
981 | + |
982 | +from dolfin import * |
983 | +from dolfin_adjoint import * |
984 | + |
985 | +n = 100 |
986 | +mesh = UnitInterval(n) |
987 | +V = FunctionSpace(mesh, "CG", 2) |
988 | + |
989 | +parameters["num_threads"] = 2 |
990 | + |
991 | +debugging["record_all"] = True |
992 | +#debugging["test_hermitian"] = (100, 1.0e-14) |
993 | +#debugging["test_derivative"] = 6 |
994 | + |
995 | +def Dt(u, u_, timestep): |
996 | + return (u - u_)/timestep |
997 | + |
998 | +def main(ic, annotate=False): |
999 | + |
1000 | + u_ = ic |
1001 | + u = TrialFunction(V) |
1002 | + v = TestFunction(V) |
1003 | + |
1004 | + nu = Constant(0.0001) |
1005 | + |
1006 | + timestep = Constant(1.0/n) |
1007 | + |
1008 | + F = (Dt(u, u_, timestep)*v |
1009 | + + u_*grad(u)*v + nu*grad(u)*grad(v))*dx |
1010 | + |
1011 | + (a, L) = system(F) |
1012 | + |
1013 | + bc = DirichletBC(V, 0.0, "on_boundary") |
1014 | + |
1015 | + t = 0.0 |
1016 | + end = 0.025 |
1017 | + u = Function(V) |
1018 | + while (t <= end): |
1019 | + solve(a == L, u, bc, annotate=annotate) |
1020 | + |
1021 | + u_.assign(u, annotate=annotate) |
1022 | + |
1023 | + t += float(timestep) |
1024 | + #plot(u) |
1025 | + |
1026 | + #interactive() |
1027 | + return u_ |
1028 | + |
1029 | +if __name__ == "__main__": |
1030 | + |
1031 | + ic = project(Expression("sin(2*pi*x[0])"), V) |
1032 | + ic_copy = Function(ic) |
1033 | + forward = main(ic, annotate=True) |
1034 | + forward_copy = Function(forward) |
1035 | + adj_html("burgers_picard_forward.html", "forward") |
1036 | + adj_html("burgers_picard_adjoint.html", "adjoint") |
1037 | + print "Running adjoint ... " |
1038 | + |
1039 | + J = Functional(forward*forward*dx) |
1040 | + adjoint = adjoint_dolfin(J, forget=False) |
1041 | + |
1042 | + def Jfunc(ic): |
1043 | + forward = main(ic, annotate=False) |
1044 | + return assemble(forward*forward*dx) |
1045 | + |
1046 | + ic.vector()[:] = ic_copy.vector() |
1047 | + minconv = test_initial_condition_adjoint(Jfunc, ic, adjoint, seed=1.0e-3) |
1048 | + if minconv < 1.9: |
1049 | + sys.exit(1) |
1050 | + |
1051 | + ic.vector()[:] = ic_copy.vector() |
1052 | + dJ = assemble(derivative(forward_copy*forward_copy*dx, forward_copy)) |
1053 | + minconv = test_initial_condition_tlm(Jfunc, dJ, ic, seed=1.0e-5) |
1054 | + if minconv < 1.9: |
1055 | + sys.exit(1) |
1056 | |
1057 | === added directory 'tests/checkpoint_burgers' |
1058 | === added file 'tests/checkpoint_burgers/checkpoint_burgers.py' |
1059 | --- tests/checkpoint_burgers/checkpoint_burgers.py 1970-01-01 00:00:00 +0000 |
1060 | +++ tests/checkpoint_burgers/checkpoint_burgers.py 2012-01-17 22:06:24 +0000 |
1061 | @@ -0,0 +1,79 @@ |
1062 | +""" |
1063 | +Naive implementation of Burgers' equation, goes oscillatory later |
1064 | +""" |
1065 | + |
1066 | +import sys |
1067 | + |
1068 | +from dolfin import * |
1069 | +from dolfin_adjoint import * |
1070 | +from math import ceil |
1071 | + |
1072 | +n = 100 |
1073 | +mesh = UnitInterval(n) |
1074 | +V = FunctionSpace(mesh, "CG", 2) |
1075 | + |
1076 | +#debugging["record_all"] = True |
1077 | +#debugging["test_hermitian"] = (100, 1.0e-14) |
1078 | +#debugging["test_derivative"] = 6 |
1079 | + |
1080 | +def Dt(u, u_, timestep): |
1081 | + return (u - u_)/timestep |
1082 | + |
1083 | +def main(ic, annotate=False): |
1084 | + |
1085 | + u_ = Function(ic) |
1086 | + u = TrialFunction(V) |
1087 | + v = TestFunction(V) |
1088 | + |
1089 | + nu = Constant(0.0001) |
1090 | + |
1091 | + timestep = Constant(1.0/n) |
1092 | + |
1093 | + F = (Dt(u, u_, timestep)*v |
1094 | + + u_*grad(u)*v + nu*grad(u)*grad(v))*dx |
1095 | + |
1096 | + (a, L) = system(F) |
1097 | + |
1098 | + bc = DirichletBC(V, 0.0, "on_boundary") |
1099 | + |
1100 | + t = 0.0 |
1101 | + end = 0.5 |
1102 | + if annotate: |
1103 | + adjoint_checkpointing('multistage', int(ceil(end/float(timestep)))+1, 5, 10, verbose=True) |
1104 | + |
1105 | + u = Function(V) |
1106 | + while (t <= end): |
1107 | + solve(a == L, u, bc, annotate=annotate) |
1108 | + |
1109 | + u_.assign(u, annotate=annotate) |
1110 | + |
1111 | + t += float(timestep) |
1112 | + #plot(u) |
1113 | + |
1114 | + #interactive() |
1115 | + return u_ |
1116 | + |
1117 | +if __name__ == "__main__": |
1118 | + |
1119 | + |
1120 | + ic = project(Expression("sin(2*pi*x[0])"), V) |
1121 | + forward = main(ic, annotate=True) |
1122 | + adj_html("burgers_picard_checkpointing_forward.html", "forward") |
1123 | + adj_html("burgers_picard_checkpointing_adjoint.html", "adjoint") |
1124 | + #print "Running forward replay .... " |
1125 | + #replay_dolfin() |
1126 | + print "Running adjoint ... " |
1127 | + |
1128 | + J = Functional(forward*forward*dx) |
1129 | + adjoint = adjoint_dolfin(J) |
1130 | + |
1131 | + def Jfunc(ic): |
1132 | + forward = main(ic, annotate=False) |
1133 | + return assemble(forward*forward*dx) |
1134 | + |
1135 | + minconv = test_initial_condition_adjoint(Jfunc, ic, adjoint, seed=1.0e-3) |
1136 | + if minconv < 1.9: |
1137 | + exit_code = 1 |
1138 | + else: |
1139 | + exit_code = 0 |
1140 | + sys.exit(exit_code) |
1141 | |
1142 | === added directory 'tests/checkpoint_stokes' |
1143 | === added file 'tests/checkpoint_stokes/checkpoint_stokes.py' |
1144 | --- tests/checkpoint_stokes/checkpoint_stokes.py 1970-01-01 00:00:00 +0000 |
1145 | +++ tests/checkpoint_stokes/checkpoint_stokes.py 2012-01-17 22:06:24 +0000 |
1146 | @@ -0,0 +1,137 @@ |
1147 | +""" |
1148 | +Very stupid scheme for decoupled stationary Stokes + heat equation: |
1149 | + |
1150 | +Given nu and f, find (u, p) such that |
1151 | + |
1152 | + (nu grad(u), grad(v)) + (p, div(v)) = (f, v) |
1153 | + (div(u), q) = 0 |
1154 | + |
1155 | +for all (v, q). |
1156 | + |
1157 | +Given velocity u, find T such that |
1158 | + |
1159 | + (Dt(T), s) + (s*div(v) + (grad(T), grad(s)) = (1, s) |
1160 | + |
1161 | +for all s |
1162 | + |
1163 | +""" |
1164 | + |
1165 | +import sys |
1166 | +from math import ceil |
1167 | + |
1168 | +from dolfin import * |
1169 | + |
1170 | +def stokes(W, nu, f): |
1171 | + (u, p) = TrialFunctions(W) |
1172 | + (v, q) = TestFunctions(W) |
1173 | + a = (nu*inner(grad(u), grad(v)) + |
1174 | + p*div(v) + q*div(u))*dx |
1175 | + L = inner(f, v)*dx |
1176 | + return (a, L) |
1177 | + |
1178 | +def temperature(X, kappa, v, t_, k): |
1179 | + t = TrialFunction(X) |
1180 | + s = TestFunction(X) |
1181 | + |
1182 | + F = ((t - t_)/k*s + inner(kappa*grad(t), grad(s)) |
1183 | + + dot(v, grad(t))*s)*dx - s*dx |
1184 | + (a, L) = system(F) |
1185 | + return (a, L) |
1186 | + |
1187 | +def flow_boundary_conditions(W): |
1188 | + u0 = Constant((0.0,0.0)) |
1189 | + bottom = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 0.0)") |
1190 | + top = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 1.0)") |
1191 | + left = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 0.0)") |
1192 | + right = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 1.0)") |
1193 | + bcs = [bottom, top, left, right] |
1194 | + return bcs |
1195 | + |
1196 | +def temperature_boundary_conditions(Q): |
1197 | + bc = DirichletBC(Q, 0.0, "near(x[1], 1.0)") |
1198 | + return [bc] |
1199 | + |
1200 | +n = 16 |
1201 | +mesh = UnitSquare(n, n) |
1202 | +X = FunctionSpace(mesh, "CG", 1) |
1203 | + |
1204 | +def main(ic, annotate=False): |
1205 | + |
1206 | + # Define meshes and function spaces |
1207 | + V = VectorFunctionSpace(mesh, "CG", 2) |
1208 | + Q = FunctionSpace(mesh, "CG", 1) |
1209 | + W = V * Q |
1210 | + |
1211 | + # Define boundary conditions |
1212 | + flow_bcs = flow_boundary_conditions(W) |
1213 | + temp_bcs = temperature_boundary_conditions(X) |
1214 | + |
1215 | + # Temperature variables |
1216 | + T_ = Function(ic) |
1217 | + T = Function(ic) |
1218 | + |
1219 | + # Flow variable(s) |
1220 | + w = Function(W) |
1221 | + (u, p) = split(w) |
1222 | + |
1223 | + # Some parameters |
1224 | + Ra = Constant(1.e4) |
1225 | + nu = Constant(1.0) |
1226 | + kappa = Constant(1.0) |
1227 | + timestep = 0.1 |
1228 | + |
1229 | + # Define flow equation |
1230 | + g = as_vector((Ra*T_, 0)) |
1231 | + flow_eq = stokes(W, nu, g) |
1232 | + |
1233 | + # Define temperature equation |
1234 | + temp_eq = temperature(X, kappa, u, T_, timestep) |
1235 | + |
1236 | + # Time loop |
1237 | + t = 0.0 |
1238 | + end = 1.0 |
1239 | + |
1240 | + if annotate: |
1241 | + adjoint_checkpointing('multistage', int(ceil(end/float(timestep)))+2, 0, 5, verbose=True) |
1242 | + print "Velocity: ", w |
1243 | + print "Temperature: ", T |
1244 | + |
1245 | + while (t <= end): |
1246 | + |
1247 | + solve(flow_eq[0] == flow_eq[1], w, flow_bcs, annotate=annotate) |
1248 | + |
1249 | + solve(temp_eq[0] == temp_eq[1], T, temp_bcs, annotate=annotate) |
1250 | + T_.assign(T, annotate=annotate) |
1251 | + #plot(T) |
1252 | + |
1253 | + t += timestep |
1254 | + |
1255 | + return T_ |
1256 | + |
1257 | +if __name__ == "__main__": |
1258 | + |
1259 | + from dolfin_adjoint import * |
1260 | + |
1261 | + # Run model |
1262 | + T0_expr = "0.5*(1.0 - x[1]*x[1]) + 0.01*cos(pi*x[0]/l)*sin(pi*x[1]/h)" |
1263 | + T0 = Expression(T0_expr, l=1.0, h=1.0) |
1264 | + ic = Function(interpolate(T0, X)) |
1265 | + T = main(ic, annotate=True) |
1266 | + |
1267 | + adj_html("stokes_forward.html", "forward") |
1268 | + adj_html("stokes_adjoint.html", "adjoint") |
1269 | + |
1270 | + print "Running adjoint ... " |
1271 | + adjoint = adjoint_dolfin(Functional(T*T*dx)) |
1272 | + |
1273 | + def J(ic): |
1274 | + T = main(ic, annotate=False) |
1275 | + return assemble(T*T*dx) |
1276 | + |
1277 | + minconv = test_initial_condition_adjoint(J, ic, adjoint) |
1278 | + if minconv < 1.9: |
1279 | + exit_code = 1 |
1280 | + else: |
1281 | + exit_code = 0 |
1282 | + sys.exit(exit_code) |
1283 | + |
1284 | |
1285 | === added directory 'tests/heat' |
1286 | === added file 'tests/heat/heat.py' |
1287 | --- tests/heat/heat.py 1970-01-01 00:00:00 +0000 |
1288 | +++ tests/heat/heat.py 2012-01-17 22:06:24 +0000 |
1289 | @@ -0,0 +1,115 @@ |
1290 | +import sys |
1291 | + |
1292 | +from dolfin import * |
1293 | +from dolfin_adjoint import * |
1294 | + |
1295 | +debugging["record_all"] = True |
1296 | + |
1297 | +f = Expression("x[0]*(x[0]-1)*x[1]*(x[1]-1)") |
1298 | +mesh = UnitSquare(4, 4) |
1299 | +V = FunctionSpace(mesh, "CG", 1) |
1300 | + |
1301 | +def run_forward(initial_condition=None, annotate=True, dump=True): |
1302 | + u = TrialFunction(V) |
1303 | + v = TestFunction(V) |
1304 | + |
1305 | + u_0 = Function(V) |
1306 | + if initial_condition is not None: |
1307 | + u_0.assign(initial_condition) |
1308 | + |
1309 | + u_1 = Function(V) |
1310 | + |
1311 | + dt = Constant(0.1) |
1312 | + |
1313 | + F = ( (u - u_0)/dt*v + inner(grad(u), grad(v)) + f*v)*dx |
1314 | + |
1315 | + bc = DirichletBC(V, 1.0, "on_boundary") |
1316 | + |
1317 | + a, L = lhs(F), rhs(F) |
1318 | + |
1319 | + t = float(dt) |
1320 | + T = 1.0 |
1321 | + n = 1 |
1322 | + |
1323 | + if dump: |
1324 | + u_out = File("u.pvd", "compressed") |
1325 | + u_out << u_0 |
1326 | + |
1327 | + while t <= T: |
1328 | + |
1329 | + solve(a == L, u_0, bc, annotate=annotate) |
1330 | + #solve(a == L, u_0, annotate=annotate) |
1331 | + |
1332 | + t += float(dt) |
1333 | + if dump: |
1334 | + u_out << u_0 |
1335 | + |
1336 | + return u_0 |
1337 | + |
1338 | +def run_replay(): |
1339 | + print "Replaying forward model (will error if differs from correct solution) ..." |
1340 | + |
1341 | + |
1342 | + u_out = File("u_replay.pvd", "compressed") |
1343 | + |
1344 | + for i in range(adjointer.equation_count): |
1345 | + (fwd_var, output) = adjointer.get_forward_solution(i) |
1346 | + |
1347 | + storage = libadjoint.MemoryStorage(output) |
1348 | + storage.set_compare(tol=0.0) |
1349 | + storage.set_overwrite(True) |
1350 | + adjointer.record_variable(fwd_var, storage) |
1351 | + |
1352 | + u_out << output.data |
1353 | + |
1354 | +def run_adjoint(): |
1355 | + z_out = File("adjoint.pvd", "compressed") |
1356 | + |
1357 | + for i in range(adjointer.equation_count)[::-1]: |
1358 | + |
1359 | + (adj_var, output) = adjointer.get_adjoint_solution(i, functional) |
1360 | + |
1361 | + storage = libadjoint.MemoryStorage(output) |
1362 | + adjointer.record_variable(adj_var, storage) |
1363 | + |
1364 | + # if we cared about memory, here is where we would put the call to forget |
1365 | + # any variables we no longer need. |
1366 | + |
1367 | + z_out << output.data |
1368 | + |
1369 | + return output.data |
1370 | + |
1371 | +if __name__ == "__main__": |
1372 | + |
1373 | + final_forward = run_forward() |
1374 | + |
1375 | + adj_html("heat_forward.html", "forward") |
1376 | + adj_html("heat_adjoint.html", "adjoint") |
1377 | + |
1378 | + # The functional is only a function of final state. |
1379 | + functional=Functional(final_forward*final_forward*dx) |
1380 | + f_direct = adjointer.evaluate_functional(functional, adjointer.equation_count-1) |
1381 | + |
1382 | + print "Running adjoint model ..." |
1383 | + |
1384 | + final_adjoint = run_adjoint() |
1385 | + |
1386 | + def J(ic): |
1387 | + perturbed_u0 = run_forward(initial_condition=ic, annotate=False, dump=False) |
1388 | + return assemble(perturbed_u0*perturbed_u0*dx) |
1389 | + |
1390 | + minconv = test_initial_condition_adjoint(J, Function(V), final_adjoint, seed=10.0) |
1391 | + |
1392 | + if minconv < 1.9: |
1393 | + sys.exit(1) |
1394 | + |
1395 | + dJ = assemble(derivative(final_forward*final_forward*dx, final_forward)) |
1396 | + |
1397 | + ic = final_forward |
1398 | + ic.vector()[:] = 0 |
1399 | + |
1400 | + minconv = test_initial_condition_tlm(J, dJ, ic, seed=1.0) |
1401 | + |
1402 | + if minconv < 1.9: |
1403 | + sys.exit(1) |
1404 | + |
1405 | |
1406 | === added directory 'tests/navier_stokes' |
1407 | === added file 'tests/navier_stokes/lshape.xml.gz' |
1408 | Binary files tests/navier_stokes/lshape.xml.gz 1970-01-01 00:00:00 +0000 and tests/navier_stokes/lshape.xml.gz 2012-01-17 22:06:24 +0000 differ |
1409 | === added file 'tests/navier_stokes/navier_stokes.py' |
1410 | --- tests/navier_stokes/navier_stokes.py 1970-01-01 00:00:00 +0000 |
1411 | +++ tests/navier_stokes/navier_stokes.py 2012-01-17 22:06:24 +0000 |
1412 | @@ -0,0 +1,151 @@ |
1413 | +"""This demo program solves the incompressible Navier-Stokes equations |
1414 | +on an L-shaped domain using Chorin's splitting method.""" |
1415 | + |
1416 | +# Copyright (C) 2010-2011 Anders Logg |
1417 | +# |
1418 | +# This file is part of DOLFIN. |
1419 | +# |
1420 | +# DOLFIN is free software: you can redistribute it and/or modify |
1421 | +# it under the terms of the GNU Lesser General Public License as published by |
1422 | +# the Free Software Foundation, either version 3 of the License, or |
1423 | +# (at your option) any later version. |
1424 | +# |
1425 | +# DOLFIN is distributed in the hope that it will be useful, |
1426 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
1427 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
1428 | +# GNU Lesser General Public License for more details. |
1429 | +# |
1430 | +# You should have received a copy of the GNU Lesser General Public License |
1431 | +# along with DOLFIN. If not, see <http://www.gnu.org/licenses/>. |
1432 | +# |
1433 | +# Modified by Mikael Mortensen 2011 |
1434 | +# |
1435 | +# First added: 2010-08-30 |
1436 | +# Last changed: 2011-06-30 |
1437 | + |
1438 | +# Begin demo |
1439 | + |
1440 | +from dolfin import * |
1441 | +from dolfin_adjoint import * |
1442 | + |
1443 | +# Record all variables solved for |
1444 | +debugging["record_all"] = True |
1445 | + |
1446 | +# Print log messages only from the root process in parallel |
1447 | +parameters["std_out_all_processes"] = False; |
1448 | + |
1449 | +#parameters["mesh_partitioner"] = "SCOTCH"; |
1450 | + |
1451 | +# Load mesh from file |
1452 | +mesh = Mesh("lshape.xml.gz") |
1453 | + |
1454 | +# Define function spaces (P2-P1) |
1455 | +V = VectorFunctionSpace(mesh, "CG", 2) |
1456 | +Q = FunctionSpace(mesh, "CG", 1) |
1457 | + |
1458 | +# Define trial and test functions |
1459 | +u = TrialFunction(V) |
1460 | +p = TrialFunction(Q) |
1461 | +v = TestFunction(V) |
1462 | +q = TestFunction(Q) |
1463 | + |
1464 | +def main(ic, annotate=False): |
1465 | + # Set parameter values |
1466 | + dt = 0.01 |
1467 | + T = 0.05 |
1468 | + nu = 0.01 |
1469 | + |
1470 | + # Define time-dependent pressure boundary condition |
1471 | + p_in = Expression("sin(3.0*t)", t=1.0) |
1472 | + |
1473 | + # Define boundary conditions |
1474 | + noslip = DirichletBC(V, (0, 0), |
1475 | + "on_boundary && \ |
1476 | + (x[0] < DOLFIN_EPS | x[1] < DOLFIN_EPS | \ |
1477 | + (x[0] > 0.5 - DOLFIN_EPS && x[1] > 0.5 - DOLFIN_EPS))") |
1478 | + inflow = DirichletBC(Q, p_in, "x[1] > 1.0 - DOLFIN_EPS") |
1479 | + outflow = DirichletBC(Q, 0, "x[0] > 1.0 - DOLFIN_EPS") |
1480 | + bcu = [noslip] |
1481 | + bcp = [inflow, outflow] |
1482 | + |
1483 | + # Create functions |
1484 | + u0 = Function(ic) |
1485 | + u1 = Function(V) |
1486 | + p1 = Function(Q) |
1487 | + |
1488 | + # Define coefficients |
1489 | + k = Constant(dt) |
1490 | + f = Constant((0, 0)) |
1491 | + |
1492 | + # Tentative velocity step |
1493 | + F1 = (1/k)*inner(u - u0, v)*dx + inner(grad(u0)*u0, v)*dx + \ |
1494 | + nu*inner(grad(u), grad(v))*dx - inner(f, v)*dx |
1495 | + a1 = lhs(F1) |
1496 | + L1 = rhs(F1) |
1497 | + |
1498 | + # Pressure update |
1499 | + a2 = inner(grad(p), grad(q))*dx |
1500 | + L2 = -(1/k)*div(u1)*q*dx |
1501 | + |
1502 | + # Velocity update |
1503 | + a3 = inner(u, v)*dx |
1504 | + L3 = inner(u1, v)*dx - k*inner(grad(p1), v)*dx |
1505 | + |
1506 | + # Assemble matrices |
1507 | + A1 = assemble(a1) |
1508 | + A2 = assemble(a2) |
1509 | + A3 = assemble(a3) |
1510 | + |
1511 | + # Time-stepping |
1512 | + t = dt |
1513 | + while t < T + DOLFIN_EPS: |
1514 | + |
1515 | + # Update pressure boundary condition |
1516 | + #p_in.t = t |
1517 | + |
1518 | + # Compute tentative velocity step |
1519 | + begin("Computing tentative velocity") |
1520 | + b1 = assemble(L1) |
1521 | + [bc.apply(A1, b1) for bc in bcu] |
1522 | + solve(A1, u1, b1, "gmres", "default") |
1523 | + end() |
1524 | + |
1525 | + # Pressure correction |
1526 | + begin("Computing pressure correction") |
1527 | + b2 = assemble(L2) |
1528 | + [bc.apply(A2, b2) for bc in bcp] |
1529 | + solve(A2, p1, b2, "gmres", "amg") |
1530 | + end() |
1531 | + |
1532 | + # Velocity correction |
1533 | + begin("Computing velocity correction") |
1534 | + b3 = assemble(L3) |
1535 | + [bc.apply(A3, b3) for bc in bcu] |
1536 | + solve(A3, u1, b3, "gmres", "default") |
1537 | + end() |
1538 | + |
1539 | + # Move to next time step |
1540 | + u0.assign(u1) |
1541 | + t += dt |
1542 | + return u0 |
1543 | + |
1544 | +if __name__ == "__main__": |
1545 | + |
1546 | + import sys |
1547 | + |
1548 | + ic = Function(V) |
1549 | + final_soln = main(ic, annotate=True) |
1550 | + adj_html("navier_stokes_forward.html", "forward") |
1551 | + adj_html("navier_stokes_adjoint.html", "adjoint") |
1552 | + replay_dolfin(forget=False) |
1553 | + |
1554 | + J = Functional(inner(final_soln, final_soln)*dx) |
1555 | + final_adj = adjoint_dolfin(J, forget=False) |
1556 | + |
1557 | + def J(ic): |
1558 | + soln = main(ic) |
1559 | + return assemble(inner(soln, soln)*dx) |
1560 | + |
1561 | + minconv = test_initial_condition_adjoint(J, ic, final_adj, seed=1.0e-3) |
1562 | + if minconv < 1.9: |
1563 | + sys.exit(1) |
1564 | |
1565 | === added directory 'tests/stokes' |
1566 | === added file 'tests/stokes/stokes.py' |
1567 | --- tests/stokes/stokes.py 1970-01-01 00:00:00 +0000 |
1568 | +++ tests/stokes/stokes.py 2012-01-17 22:06:24 +0000 |
1569 | @@ -0,0 +1,146 @@ |
1570 | +""" |
1571 | +Very stupid scheme for decoupled stationary Stokes + heat equation: |
1572 | + |
1573 | +Given nu and f, find (u, p) such that |
1574 | + |
1575 | + (nu grad(u), grad(v)) + (p, div(v)) = (f, v) |
1576 | + (div(u), q) = 0 |
1577 | + |
1578 | +for all (v, q). |
1579 | + |
1580 | +Given velocity u, find T such that |
1581 | + |
1582 | + (Dt(T), s) + (s*div(v) + (grad(T), grad(s)) = (1, s) |
1583 | + |
1584 | +for all s |
1585 | + |
1586 | +""" |
1587 | + |
1588 | +import sys |
1589 | + |
1590 | +from dolfin import * |
1591 | + |
1592 | +def stokes(W, nu, f): |
1593 | + (u, p) = TrialFunctions(W) |
1594 | + (v, q) = TestFunctions(W) |
1595 | + a = (nu*inner(grad(u), grad(v)) + |
1596 | + p*div(v) + q*div(u))*dx |
1597 | + L = inner(f, v)*dx |
1598 | + return (a, L) |
1599 | + |
1600 | +def temperature(X, kappa, v, t_, k): |
1601 | + t = TrialFunction(X) |
1602 | + s = TestFunction(X) |
1603 | + |
1604 | + F = ((t - t_)/k*s + inner(kappa*grad(t), grad(s)) |
1605 | + + dot(v, grad(t))*s)*dx - s*dx |
1606 | + (a, L) = system(F) |
1607 | + return (a, L) |
1608 | + |
1609 | +def flow_boundary_conditions(W): |
1610 | + u0 = Constant((0.0,0.0)) |
1611 | + bottom = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 0.0)") |
1612 | + top = DirichletBC(W.sub(0), (0.0, 0.0), "near(x[1], 1.0)") |
1613 | + left = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 0.0)") |
1614 | + right = DirichletBC(W.sub(0).sub(0), 0.0, "near(x[0], 1.0)") |
1615 | + bcs = [bottom, top, left, right] |
1616 | + return bcs |
1617 | + |
1618 | +def temperature_boundary_conditions(Q): |
1619 | + bc = DirichletBC(Q, 0.0, "near(x[1], 1.0)") |
1620 | + return [bc] |
1621 | + |
1622 | +n = 16 |
1623 | +mesh = UnitSquare(n, n) |
1624 | +X = FunctionSpace(mesh, "CG", 1) |
1625 | + |
1626 | +def main(ic, annotate=False): |
1627 | + |
1628 | + # Define meshes and function spaces |
1629 | + V = VectorFunctionSpace(mesh, "CG", 2) |
1630 | + Q = FunctionSpace(mesh, "CG", 1) |
1631 | + W = V * Q |
1632 | + |
1633 | + # Define boundary conditions |
1634 | + flow_bcs = flow_boundary_conditions(W) |
1635 | + temp_bcs = temperature_boundary_conditions(X) |
1636 | + |
1637 | + # Temperature variables |
1638 | + T_ = Function(ic) |
1639 | + T = Function(ic) |
1640 | + |
1641 | + # Flow variable(s) |
1642 | + w = Function(W) |
1643 | + (u, p) = split(w) |
1644 | + |
1645 | + # Some parameters |
1646 | + Ra = Constant(1.e4) |
1647 | + nu = Constant(1.0) |
1648 | + kappa = Constant(1.0) |
1649 | + timestep = 0.1 |
1650 | + |
1651 | + # Define flow equation |
1652 | + g = as_vector((Ra*T_, 0)) |
1653 | + flow_eq = stokes(W, nu, g) |
1654 | + |
1655 | + # Define temperature equation |
1656 | + temp_eq = temperature(X, kappa, u, T_, timestep) |
1657 | + |
1658 | + # Time loop |
1659 | + t = 0.0 |
1660 | + end = 1.0 |
1661 | + while (t <= end): |
1662 | + |
1663 | + solve(flow_eq[0] == flow_eq[1], w, flow_bcs, annotate=annotate) |
1664 | + |
1665 | + solve(temp_eq[0] == temp_eq[1], T, temp_bcs, annotate=annotate) |
1666 | + T_.assign(T, annotate=annotate) |
1667 | + #plot(T) |
1668 | + |
1669 | + t += timestep |
1670 | + |
1671 | + return T_ |
1672 | + |
1673 | +def replay(): |
1674 | + print "Replaying forward run" |
1675 | + |
1676 | + for i in range(adjointer.equation_count): |
1677 | + (fwd_var, output) = adjointer.get_forward_solution(i) |
1678 | + |
1679 | + s=libadjoint.MemoryStorage(output) |
1680 | + s.set_compare(0.0) |
1681 | + s.set_overwrite(True) |
1682 | + |
1683 | + adjointer.record_variable(fwd_var, s) |
1684 | + |
1685 | +if __name__ == "__main__": |
1686 | + |
1687 | + from dolfin_adjoint import * |
1688 | + debugging["record_all"] = True |
1689 | + |
1690 | + # Run model |
1691 | + T0_expr = "0.5*(1.0 - x[1]*x[1]) + 0.01*cos(pi*x[0]/l)*sin(pi*x[1]/h)" |
1692 | + T0 = Expression(T0_expr, l=1.0, h=1.0) |
1693 | + ic = Function(interpolate(T0, X)) |
1694 | + T = main(ic, annotate=True) |
1695 | + |
1696 | + adj_html("stokes_forward.html", "forward") |
1697 | + adj_html("stokes_adjoint.html", "adjoint") |
1698 | + |
1699 | + # Replay model |
1700 | + replay() |
1701 | + |
1702 | + print "Running adjoint ... " |
1703 | + adjoint = adjoint_dolfin(Functional(T*T*dx)) |
1704 | + |
1705 | + def J(ic): |
1706 | + T = main(ic, annotate=False) |
1707 | + return assemble(T*T*dx) |
1708 | + |
1709 | + minconv = test_initial_condition_adjoint(J, ic, adjoint) |
1710 | + if minconv < 1.9: |
1711 | + exit_code = 1 |
1712 | + else: |
1713 | + exit_code = 0 |
1714 | + sys.exit(exit_code) |
1715 | + |
1716 | |
1717 | === added directory 'tests/sw' |
1718 | === added file 'tests/sw/basin.geo' |
1719 | --- tests/sw/basin.geo 1970-01-01 00:00:00 +0000 |
1720 | +++ tests/sw/basin.geo 2012-01-17 22:06:24 +0000 |
1721 | @@ -0,0 +1,9 @@ |
1722 | +Point(1) = {250000.0,0,0,10000.0}; |
1723 | +Point(2) = {0,0,0,10000.0}; |
1724 | +Point(3) = {-250000.0,0,0,10000.0}; |
1725 | +Circle(1) = {1,2,3}; |
1726 | +Circle(2) = {3,2,1}; |
1727 | +Physical Line(3) = {1,2}; |
1728 | +Line Loop(4) = {1,2}; |
1729 | +Plane Surface(5) = {4}; |
1730 | +Physical Surface(6) = {5}; |
1731 | |
1732 | === added file 'tests/sw/basin.msh' |
1733 | --- tests/sw/basin.msh 1970-01-01 00:00:00 +0000 |
1734 | +++ tests/sw/basin.msh 2012-01-17 22:06:24 +0000 |
1735 | @@ -0,0 +1,7135 @@ |
1736 | +$MeshFormat |
1737 | +2.2 0 8 |
1738 | +$EndMeshFormat |
1739 | +$Nodes |
1740 | +2376 |
1741 | +1 250000 0 0 |
1742 | +2 -250000 0 0 |
1743 | +3 249797.2495429117 10066.48502687441 0 |
1744 | +4 249189.3270336297 20116.64217822506 0 |
1745 | +5 248177.218524687 30134.17006240198 0 |
1746 | +6 246762.5656597861 40102.82021254587 0 |
1747 | +7 244947.6630110468 50006.42344166077 0 |
1748 | +8 242735.4543572019 59828.91606909453 0 |
1749 | +9 240129.5279087774 69554.36597588743 0 |
1750 | +10 237134.1104880018 79166.99844672756 0 |
1751 | +11 233754.0606728848 88651.22175659664 0 |
1752 | +12 229994.8609165255 97991.6524607484 0 |
1753 | +13 225862.608654524 107173.1403466994 0 |
1754 | +14 221364.0064153264 116180.7930070859 0 |
1755 | +15 216506.3509482155 124999.9999963526 0 |
1756 | +16 211297.521388123 133616.4565285118 0 |
1757 | +17 205745.9664756437 142016.1866795588 0 |
1758 | +18 199860.690853147 150185.5660564717 0 |
1759 | +19 193651.2404592145 158111.3438960262 0 |
1760 | +20 187127.6870450927 165780.664557583 0 |
1761 | +21 180300.6118382752 173181.0883749828 0 |
1762 | +22 173181.0883797194 180300.6118337257 0 |
1763 | +23 165780.6645625112 187127.6870407267 0 |
1764 | +24 158111.343901139 193651.2404550401 0 |
1765 | +25 150185.5660617616 199860.6908491719 0 |
1766 | +26 142016.1866850181 205745.9664718755 0 |
1767 | +27 133616.4565341323 211297.5213845689 0 |
1768 | +28 125000.000002126 216506.3509448822 0 |
1769 | +29 116180.7930130034 221364.0064122206 0 |
1770 | +30 107173.1403527521 225862.608651652 0 |
1771 | +31 97991.65246692697 229994.860913893 0 |
1772 | +32 88651.22176245433 233754.0606706633 0 |
1773 | +33 79166.99845209412 237134.1104862102 0 |
1774 | +34 69554.36598073867 240129.5279073722 0 |
1775 | +35 59828.91607340895 242735.4543561385 0 |
1776 | +36 50006.42344541974 244947.6630102794 0 |
1777 | +37 40102.82021573343 246762.565659268 0 |
1778 | +38 30134.17006500524 248177.2185243709 0 |
1779 | +39 20116.64218023379 249189.3270334676 0 |
1780 | +40 10066.48502828154 249797.249542855 0 |
1781 | +41 8.011522421489357e-07 250000 0 |
1782 | +42 -10066.48502671414 249797.2495429182 0 |
1783 | +43 -20116.64217870397 249189.327033591 0 |
1784 | +44 -30134.17006351502 248177.2185245518 0 |
1785 | +45 -40102.82021428507 246762.5656595034 0 |
1786 | +46 -50006.423444015 244947.6630105661 0 |
1787 | +47 -59828.91607204972 242735.4543564735 0 |
1788 | +48 -69554.36597942641 240129.5279077523 0 |
1789 | +49 -79166.99845083017 237134.1104866321 0 |
1790 | +50 -88651.22176124 233754.0606711239 0 |
1791 | +51 -97991.65246576624 229994.8609143876 0 |
1792 | +52 -107173.1403516547 225862.6086521727 0 |
1793 | +53 -116180.7930119693 221364.0064127634 0 |
1794 | +54 -125000.0000011553 216506.3509454427 0 |
1795 | +55 -133616.4565332246 211297.5213851429 0 |
1796 | +56 -142016.1866841728 205745.9664724589 0 |
1797 | +57 -150185.566060978 199860.6908497607 0 |
1798 | +58 -158111.3439004162 193651.2404556303 0 |
1799 | +59 -165780.6645618477 187127.6870413144 0 |
1800 | +60 -173181.088379114 180300.6118343072 0 |
1801 | +61 -180300.6118377233 173181.0883755575 0 |
1802 | +62 -187127.6870445898 165780.6645581507 0 |
1803 | +63 -193651.2404587591 158111.343896584 0 |
1804 | +64 -199860.6908527374 150185.5660570167 0 |
1805 | +65 -205745.9664752781 142016.1866800885 0 |
1806 | +66 -211297.5213877996 133616.4565290233 0 |
1807 | +67 -216506.350947932 124999.9999968435 0 |
1808 | +68 -221364.0064150808 116180.7930075539 0 |
1809 | +69 -225862.6086543138 107173.1403471424 0 |
1810 | +70 -229994.8609163483 97991.65246116419 0 |
1811 | +71 -233754.06067274 88651.22175697848 0 |
1812 | +72 -237134.1104878869 79166.99844707175 0 |
1813 | +73 -240129.5279086891 69554.36597619246 0 |
1814 | +74 -242735.4543571367 59828.9160693589 0 |
1815 | +75 -244947.6630110013 50006.4234418831 0 |
1816 | +76 -246762.5656597569 40102.82021272503 0 |
1817 | +77 -248177.2185246706 30134.17006253709 0 |
1818 | +78 -249189.3270336224 20116.64217831559 0 |
1819 | +79 -249797.2495429099 10066.48502691991 0 |
1820 | +80 -249797.2495429117 -10066.48502687441 0 |
1821 | +81 -249189.3270336297 -20116.64217822506 0 |
1822 | +82 -248177.218524687 -30134.17006240198 0 |
1823 | +83 -246762.5656597861 -40102.82021254587 0 |
1824 | +84 -244947.6630110468 -50006.42344166077 0 |
1825 | +85 -242735.4543572019 -59828.91606909453 0 |
1826 | +86 -240129.5279087774 -69554.36597588743 0 |
1827 | +87 -237134.1104880018 -79166.99844672756 0 |
1828 | +88 -233754.0606728848 -88651.22175659664 0 |
1829 | +89 -229994.8609165255 -97991.6524607484 0 |
1830 | +90 -225862.608654524 -107173.1403466994 0 |
1831 | +91 -221364.0064153264 -116180.7930070859 0 |
1832 | +92 -216506.3509482155 -124999.9999963526 0 |
1833 | +93 -211297.521388123 -133616.4565285118 0 |
1834 | +94 -205745.9664756437 -142016.1866795588 0 |
1835 | +95 -199860.690853147 -150185.5660564717 0 |
1836 | +96 -193651.2404592145 -158111.3438960262 0 |
1837 | +97 -187127.6870450927 -165780.664557583 0 |
1838 | +98 -180300.6118382752 -173181.0883749828 0 |
1839 | +99 -173181.0883797194 -180300.6118337257 0 |
1840 | +100 -165780.6645625112 -187127.6870407267 0 |
1841 | +101 -158111.343901139 -193651.2404550401 0 |
1842 | +102 -150185.5660617616 -199860.6908491719 0 |
1843 | +103 -142016.1866850181 -205745.9664718755 0 |
1844 | +104 -133616.4565341323 -211297.5213845689 0 |
1845 | +105 -125000.000002126 -216506.3509448822 0 |
1846 | +106 -116180.7930130034 -221364.0064122206 0 |
1847 | +107 -107173.1403527521 -225862.608651652 0 |
1848 | +108 -97991.65246692697 -229994.860913893 0 |
1849 | +109 -88651.22176245433 -233754.0606706633 0 |
1850 | +110 -79166.99845209412 -237134.1104862102 0 |
1851 | +111 -69554.36598073867 -240129.5279073722 0 |
1852 | +112 -59828.91607340895 -242735.4543561385 0 |
1853 | +113 -50006.42344541974 -244947.6630102794 0 |
1854 | +114 -40102.82021573343 -246762.565659268 0 |
1855 | +115 -30134.17006500524 -248177.2185243709 0 |
1856 | +116 -20116.64218023379 -249189.3270334676 0 |
1857 | +117 -10066.48502828154 -249797.249542855 0 |
1858 | +118 -8.011522421489357e-07 -250000 0 |
1859 | +119 10066.48502671414 -249797.2495429182 0 |
1860 | +120 20116.64217870397 -249189.327033591 0 |
1861 | +121 30134.17006351502 -248177.2185245518 0 |
1862 | +122 40102.82021428507 -246762.5656595034 0 |
1863 | +123 50006.423444015 -244947.6630105661 0 |
1864 | +124 59828.91607204972 -242735.4543564735 0 |
1865 | +125 69554.36597942641 -240129.5279077523 0 |
1866 | +126 79166.99845083017 -237134.1104866321 0 |
1867 | +127 88651.22176124 -233754.0606711239 0 |
1868 | +128 97991.65246576624 -229994.8609143876 0 |
1869 | +129 107173.1403516547 -225862.6086521727 0 |
1870 | +130 116180.7930119693 -221364.0064127634 0 |
1871 | +131 125000.0000011553 -216506.3509454427 0 |
1872 | +132 133616.4565332246 -211297.5213851429 0 |
1873 | +133 142016.1866841728 -205745.9664724589 0 |
1874 | +134 150185.566060978 -199860.6908497607 0 |
1875 | +135 158111.3439004162 -193651.2404556303 0 |
1876 | +136 165780.6645618477 -187127.6870413144 0 |
1877 | +137 173181.088379114 -180300.6118343072 0 |
1878 | +138 180300.6118377233 -173181.0883755575 0 |
1879 | +139 187127.6870445898 -165780.6645581507 0 |
1880 | +140 193651.2404587591 -158111.343896584 0 |
1881 | +141 199860.6908527374 -150185.5660570167 0 |
1882 | +142 205745.9664752781 -142016.1866800885 0 |
1883 | +143 211297.5213877996 -133616.4565290233 0 |
1884 | +144 216506.350947932 -124999.9999968435 0 |
1885 | +145 221364.0064150808 -116180.7930075539 0 |
1886 | +146 225862.6086543138 -107173.1403471424 0 |
1887 | +147 229994.8609163483 -97991.65246116419 0 |
1888 | +148 233754.06067274 -88651.22175697848 0 |
1889 | +149 237134.1104878869 -79166.99844707175 0 |
1890 | +150 240129.5279086891 -69554.36597619246 0 |
1891 | +151 242735.4543571367 -59828.9160693589 0 |
1892 | +152 244947.6630110013 -50006.4234418831 0 |
1893 | +153 246762.5656597569 -40102.82021272503 0 |
1894 | +154 248177.2185246706 -30134.17006253709 0 |
1895 | +155 249189.3270336224 -20116.64217831559 0 |
1896 | +156 249797.2495429099 -10066.48502691991 0 |
1897 | +157 69598.98980894087 -84318.06563020704 0 |
1898 | +158 9500.523833238925 65332.55942151947 0 |
1899 | +159 -59662.33931100983 -40680.44554845821 0 |
1900 | +160 -98999.92954319349 -61697.44729801487 0 |
1901 | +161 -87125.437191631 -80595.79738502072 0 |
1902 | +162 -136122.0873560809 -94603.3275489064 0 |
1903 | +163 -119396.2129454342 -145928.0165559765 0 |
1904 | +164 159283.7271279393 151126.2432026265 0 |
1905 | +165 166738.6059324629 102976.8181218711 0 |
1906 | +166 -127881.2100960798 -180997.0948166743 0 |
1907 | +167 204166.4614232108 63466.19537718844 0 |
1908 | +168 238604.6006239162 35093.1507580011 0 |
1909 | +169 -108362.044943477 -205061.0029953629 0 |
1910 | +170 95399.60926401477 -195931.6193896914 0 |
1911 | +171 7858.969233700307 202078.8901918534 0 |
1912 | +172 218704.887521285 93728.34300655869 0 |
1913 | +173 160466.4742325949 -116366.2141668368 0 |
1914 | +174 -93754.72140361721 179485.347689636 0 |
1915 | +175 47053.20126622816 201312.7403257605 0 |
1916 | +176 -198504.2095294177 -69799.91064263761 0 |
1917 | +177 -170428.964693687 55790.02894995834 0 |
1918 | +178 178677.5059765374 28758.49202503047 0 |
1919 | +179 -28027.14476188747 189412.8303269786 0 |
1920 | +180 -46612.412270525 128821.4299427205 0 |
1921 | +181 -69044.74857289031 -130699.0059721259 0 |
1922 | +182 -206035.0331438485 31590.95468095646 0 |
1923 | +183 201446.2257573534 -31810.76840191242 0 |
1924 | +184 -53723.35880472053 -78764.29538346377 0 |
1925 | +185 -73103.43877057616 73135.38161070673 0 |
1926 | +186 147983.9735217847 -55869.61596664554 0 |
1927 | +187 9316.147940144163 -198633.4649356803 0 |
1928 | +188 -172316.5626153013 -7489.74439878566 0 |
1929 | +189 -34133.97745635222 10281.11950140096 0 |
1930 | +190 150272.3117444075 -85513.19103700083 0 |
1931 | +191 52909.8394199686 -167746.238812252 0 |
1932 | +192 1684.952564653016 -38522.80322664511 0 |
1933 | +193 117928.6815954593 -94642.34678720865 0 |
1934 | +194 152855.3407244197 -149088.6947764225 0 |
1935 | +195 4223.287987375753 117078.2104303327 0 |
1936 | +196 -202935.5211833716 -30971.28731305028 0 |
1937 | +197 118382.7091257526 -148169.9846561539 0 |
1938 | +198 41270.86584607993 165576.8764494067 0 |
1939 | +199 38363.28784729906 -6561.951015627915 0 |
1940 | +200 -179600.9723621826 -55671.72535961688 0 |
1941 | +201 94869.93889733814 -155805.2518157474 0 |
1942 | +202 122264.5383140042 -119970.8203927201 0 |
1943 | +203 89463.66495571182 204148.278443529 0 |
1944 | +204 -162735.0311172339 -44082.789070942 0 |
1945 | +205 -116497.0526252967 -33408.71564356023 0 |
1946 | +206 75123.26556187122 182520.856327192 0 |
1947 | +207 -113105.5407097792 18498.1515537053 0 |
1948 | +208 109002.2652131006 184403.6900849376 0 |
1949 | +209 -109075.9975785097 130747.5644973716 0 |
1950 | +210 135316.5375068569 163249.3778151765 0 |
1951 | +211 -139770.2768218017 -71374.22840956876 0 |
1952 | +212 -204950.1488603984 -105641.2848341257 0 |
1953 | +213 -174685.604531078 -90997.04602476578 0 |
1954 | +214 -89975.32458126069 -177319.489054403 0 |
1955 | +215 -184354.0228134016 -112510.9819653316 0 |
1956 | +216 142144.2019529661 127062.8759784671 0 |
1957 | +217 -155321.2970306207 -128500.3837267054 0 |
1958 | +218 -159056.888324864 143233.9919779223 0 |
1959 | +219 -178602.5627427398 124508.805015623 0 |
1960 | +220 -182910.6779549962 -141054.7812280367 0 |
1961 | +221 -24080.35490454231 -230253.3372014483 0 |
1962 | +222 -121262.7426846677 -171197.4302882819 0 |
1963 | +223 -165522.0559589992 -151789.5544118347 0 |
1964 | +224 -145553.4064660116 -167029.0207086271 0 |
1965 | +225 126095.8015128296 90194.62962106081 0 |
1966 | +226 168345.6914750906 130310.7757725305 0 |
1967 | +227 51210.23526767195 98095.1144615338 0 |
1968 | +228 187525.1993103406 123926.8234535955 0 |
1969 | +229 66875.99356005418 -216983.7993033719 0 |
1970 | +230 205279.7144130435 110837.7137969577 0 |
1971 | +231 197628.6651489953 91900.0325084236 0 |
1972 | +232 -50777.4551662821 -228338.8591372945 0 |
1973 | +233 -128720.702407072 -164546.8056544624 0 |
1974 | +234 221058.5378154129 48732.45738090267 0 |
1975 | +235 -83868.97448089617 214014.174481113 0 |
1976 | +236 120381.8853876375 -186194.6302490441 0 |
1977 | +237 178645.3583754164 74991.06007940158 0 |
1978 | +238 -136223.4150110885 178077.174905392 0 |
1979 | +239 -78604.53030737551 -208840.2658888187 0 |
1980 | +240 29769.0637553222 209072.4581550912 0 |
1981 | +241 184135.2096780335 -103636.631524052 0 |
1982 | +242 184162.1500711923 146625.5205244849 0 |
1983 | +243 -228354.7334878794 22406.86655557705 0 |
1984 | +244 91109.66364762773 -220818.5134778656 0 |
1985 | +245 155213.1650303018 182240.7511288454 0 |
1986 | +246 237714.4311776749 43648.55046904161 0 |
1987 | +247 -122657.474098446 195571.1498803193 0 |
1988 | +248 -129427.909544348 -204373.7393435618 0 |
1989 | +249 -117937.4005448677 -117655.3874098197 0 |
1990 | +250 218299.1408379671 84920.28097898074 0 |
1991 | +251 -234470.2299931188 -3300.297911266603 0 |
1992 | +252 -209829.4593055095 -86428.5053589528 0 |
1993 | +253 39678.00032052422 226011.7813686568 0 |
1994 | +254 174282.7407878368 -154673.3043529167 0 |
1995 | +255 -103772.0785458457 -91995.25268730795 0 |
1996 | +256 67946.50342052129 221569.4959871809 0 |
1997 | +257 -114004.8938201321 202491.3351059862 0 |
1998 | +258 181711.2080074575 154598.2119943296 0 |
1999 | +259 110886.336281458 -210419.4832897029 0 |
2000 | +260 -148079.139001848 -188891.7802402438 0 |
2001 | +261 48705.55613444242 231369.7382434197 0 |
2002 | +262 -110464.6406434134 -59341.44953709219 0 |
2003 | +263 -59363.96621242409 -226926.429906813 0 |
2004 | +264 189788.0615632338 -130037.8049673024 0 |
2005 | +265 -229900.5109258663 -74417.72029179057 0 |
2006 | +266 102583.9599946433 -218362.5261123384 0 |
2007 | +267 -118722.4694629832 -208739.5655955907 0 |
2008 | +268 -81482.16815122265 -57459.09305222048 0 |
2009 | +269 12837.18950389985 -150599.9288669577 0 |
2010 | +270 4860.2366189512 -103221.6531208585 0 |
2011 | +271 79244.4238007782 -21910.78176511056 0 |
2012 | +272 124084.1380832045 -17215.72779944552 0 |
2013 | +273 -31528.27227099752 -164584.2618639522 0 |
2014 | +274 166396.2156935897 -16641.99843772126 0 |
2015 | +275 50150.40895666205 50587.02264743923 0 |
2016 | +276 110921.6008274604 -62397.05656951443 0 |
2017 | +277 50112.82599766048 -44567.82464646845 0 |
2018 | +278 -19481.81874303422 100770.5481522476 0 |
2019 | +279 -34481.97813256031 69290.9651196746 0 |
2020 | +280 22530.73235584107 -79950.3641150294 0 |
2021 | +281 -72685.11929171391 13722.32151377866 0 |
2022 | +282 -89364.58128614846 -17403.92480670284 0 |
2023 | +283 44403.59139127228 -119194.1952863956 0 |
2024 | +284 -70895.64620567605 -167513.4258336421 0 |
2025 | +285 98467.83281258734 87468.09439491153 0 |
2026 | +286 84220.89859030842 -126115.2930256152 0 |
2027 | +287 -53759.44160722138 41233.31190701575 0 |
2028 | +288 39078.07506673429 -73158.83410092653 0 |
2029 | +289 -7378.3628235162 154293.2597694795 0 |
2030 | +290 -176616.7132507137 82209.39179177742 0 |
2031 | +291 -14772.35868565025 36100.2426302953 0 |
2032 | +292 -71244.40369058501 160212.6943981706 0 |
2033 | +293 -91862.95458889578 46706.28422619888 0 |
2034 | +294 65441.14555756932 140688.0067475898 0 |
2035 | +295 -154480.4282890593 122220.4378534043 0 |
2036 | +296 -22247.38845960511 -208861.2712345238 0 |
2037 | +297 102180.3718998933 160847.8277272205 0 |
2038 | +298 9389.503305393378 176559.5060428769 0 |
2039 | +299 143275.9305530851 23692.99294260886 0 |
2040 | +300 24151.90963507789 27435.34675146451 0 |
2041 | +301 -63139.27700526472 174716.0153127312 0 |
2042 | +302 -128489.9214869933 52977.94306975129 0 |
2043 | +303 -92235.72755981766 104911.5753306866 0 |
2044 | +304 102656.8098716951 -110122.8356878873 0 |
2045 | +305 -108659.0994738557 79428.75445860653 0 |
2046 | +306 -83300.28663978034 -153987.6681996447 0 |
2047 | +307 80270.7790676444 161271.4835239761 0 |
2048 | +308 2427.443114849206 4363.846766619331 0 |
2049 | +309 118201.619002787 148939.3624822253 0 |
2050 | +310 -57147.27204519395 100706.9551424911 0 |
2051 | +311 -40392.20536550086 220763.6470815274 0 |
2052 | +312 180894.9271375085 -83282.55828329342 0 |
2053 | +313 -63528.39689209355 209829.7688298573 0 |
2054 | +314 46609.77436022415 131535.3872571237 0 |
2055 | +315 -30279.01521961587 -115602.3791441105 0 |
2056 | +316 39169.54073887214 -186998.7156434456 0 |
2057 | +317 96048.00502399732 -87730.02710973611 0 |
2058 | +318 -169093.5133045173 103218.6104580623 0 |
2059 | +319 200161.4924447254 -76114.59884330878 0 |
2060 | +320 11392.19929720751 95649.05182538438 0 |
2061 | +321 -125070.7097210555 157212.10551967 0 |
2062 | +322 214636.2357386751 -4440.994059758009 0 |
2063 | +323 -138329.0991179741 139926.0762941877 0 |
2064 | +324 114953.5607150189 69588.95793321943 0 |
2065 | +325 -148093.9832190454 36062.44935973761 0 |
2066 | +326 -191054.1967418934 66392.69931887589 0 |
2067 | +327 -96683.7758101349 -140335.5019121538 0 |
2068 | +328 136951.7148068625 56971.02834318128 0 |
2069 | +329 -26885.48480581145 -57118.56108666258 0 |
2070 | +330 -49444.37198575977 -15087.88520431544 0 |
2071 | +331 -117654.4793428708 -11202.71767764143 0 |
2072 | +332 -21031.48612789527 131746.3202687212 0 |
2073 | +333 -80626.64617094328 -46121.32510498712 0 |
2074 | +334 175299.5491332742 -59043.86349847133 0 |
2075 | +335 203377.1985615763 17118.11918679602 0 |
2076 | +336 -98682.98667888543 -122386.5583520683 0 |
2077 | +337 135724.2703309811 -170769.1998434299 0 |
2078 | +338 38558.55225022089 82824.19322692943 0 |
2079 | +339 105411.6561919672 -133455.4328920182 0 |
2080 | +340 -188323.0616340429 14542.12477946511 0 |
2081 | +341 24088.41282489432 188042.4828889367 0 |
2082 | +342 165855.867256663 -76169.13305684502 0 |
2083 | +343 60881.64665450252 -195764.1345994062 0 |
2084 | +344 -61685.9383823259 -95272.87676570514 0 |
2085 | +345 -93191.07315075627 -109177.74634987 0 |
2086 | +346 -49114.80633401008 -59850.64866132366 0 |
2087 | +347 -140502.4701535559 -45436.89974057272 0 |
2088 | +348 -4621.190663988041 -221452.106106105 0 |
2089 | +349 123589.21678298 126904.2393272796 0 |
2090 | +350 -153944.9423086137 -95399.77647025646 0 |
2091 | +351 -117071.4220934996 176881.4038185891 0 |
2092 | +352 -75152.60592715572 -192535.7539403559 0 |
2093 | +353 -161778.052162392 -62791.06190734752 0 |
2094 | +354 33720.03859106696 -227354.8256076423 0 |
2095 | +355 23639.71238154205 147705.8092050958 0 |
2096 | +356 202547.0324177858 38025.02617891192 0 |
2097 | +357 -166465.060433605 -109269.7719072719 0 |
2098 | +358 26771.95826528773 108401.7730566485 0 |
2099 | +359 -23843.59680399118 210246.7040750975 0 |
2100 | +360 -78399.83012352344 -98098.40171665864 0 |
2101 | +361 114275.9304764144 107776.0666421804 0 |
2102 | +362 168018.3215786962 -95214.58023980816 0 |
2103 | +363 -8112.476957786018 216110.5212537478 0 |
2104 | +364 167183.9090587858 -137448.1312325858 0 |
2105 | +365 -138154.9304583346 -140238.6402740569 0 |
2106 | +366 17081.13702998126 -22736.87716934236 0 |
2107 | +367 67551.97747549182 106484.775790246 0 |
2108 | +368 45161.16185510205 186779.8966937033 0 |
2109 | +369 -229914.8897504654 -31513.96235665153 0 |
2110 | +370 12347.0580272972 -231547.0421913313 0 |
2111 | +371 227285.1030552076 -61798.4464468564 0 |
2112 | +372 -8542.6701910459 197324.2602979243 0 |
2113 | +373 -158648.2751009022 -79413.38105046 0 |
2114 | +374 107364.5483653172 -172720.4793140357 0 |
2115 | +375 -151571.0574005157 68673.7035409271 0 |
2116 | +376 -188704.7031990696 44121.2560325826 0 |
2117 | +377 -219089.7529095099 -16303.61661014421 0 |
2118 | +378 -149971.9739546945 -148742.2036465687 0 |
2119 | +379 -189619.6772796227 107965.7696922872 0 |
2120 | +380 135759.7128524886 144094.3905617382 0 |
2121 | +381 158496.7888923144 51209.87950722292 0 |
2122 | +382 -146056.506310306 -55973.37881457073 0 |
2123 | +383 193413.2729036812 51023.04537544962 0 |
2124 | +384 -182568.1469351991 -38454.86784893725 0 |
2125 | +385 -145457.2579930619 -110877.5629720135 0 |
2126 | +386 140449.8742805384 -100148.361722928 0 |
2127 | +387 -217241.6603694756 4857.912072292508 0 |
2128 | +388 134681.7529861953 -73129.74120734463 0 |
2129 | +389 125615.7737546733 192923.4934914571 0 |
2130 | +390 161831.5810977418 -168687.467760681 0 |
2131 | +391 139116.4349464644 -132725.4258968665 0 |
2132 | +392 -185139.3896138232 -21957.21137500781 0 |
2133 | +393 -133269.1057553297 -157503.8273770159 0 |
2134 | +394 61055.89437308309 171136.6066018679 0 |
2135 | +395 188885.4517750633 114323.8976687034 0 |
2136 | +396 -148893.093268821 161490.6968609583 0 |
2137 | +397 189568.3416856256 98257.60335861584 0 |
2138 | +398 180988.2554536673 -124785.1020027952 0 |
2139 | +399 76894.01201696556 -184721.3184985336 0 |
2140 | +400 147217.7411397955 97035.37452805263 0 |
2141 | +401 -124439.2832936817 -85425.05596123835 0 |
2142 | +402 148745.7843710167 -95233.85451736639 0 |
2143 | +403 134779.7084240499 110259.3623034098 0 |
2144 | +404 -99057.66815890359 -43524.74997282903 0 |
2145 | +405 92700.28795583259 -177612.5132324559 0 |
2146 | +406 158160.9695533629 84722.60675830932 0 |
2147 | +407 -201386.4726621587 -88003.59822673351 0 |
2148 | +408 -37229.83405380369 -79609.43082210993 0 |
2149 | +409 -208184.9138855893 -52627.12648478792 0 |
2150 | +410 -111599.2671397578 190220.7349394037 0 |
2151 | +411 202539.5718030685 -114764.7062060066 0 |
2152 | +412 114032.2111139183 203380.3832105632 0 |
2153 | +413 80131.16668845185 -204942.8605697981 0 |
2154 | +414 -195300.8936180379 -124203.9736694482 0 |
2155 | +415 -88801.0353461982 -198686.4096204624 0 |
2156 | +416 149401.1032213242 -132978.7430858207 0 |
2157 | +417 91514.81158225896 179223.2599173279 0 |
2158 | +418 -197273.5096076039 -52323.23189021763 0 |
2159 | +419 -182948.2074103735 -128139.7256431212 0 |
2160 | +420 151370.0129717027 113535.0418631582 0 |
2161 | +421 -168166.8260800076 -27478.269448351 0 |
2162 | +422 129003.0639353387 -150071.109971859 0 |
2163 | +423 -105732.7030854411 198940.0269439701 0 |
2164 | +424 -107233.6276717185 -77673.36701671167 0 |
2165 | +425 -183948.1435886856 144333.1344304887 0 |
2166 | +426 -218314.1107669875 -56536.87414953717 0 |
2167 | +427 -216908.5385675398 -44116.62275758405 0 |
2168 | +428 -70305.54762343776 -207965.1151701801 0 |
2169 | +429 175228.6807952535 84927.82998090754 0 |
2170 | +430 -205493.6711982363 15578.81960003696 0 |
2171 | +431 -72746.55805124086 -63771.87932662514 0 |
2172 | +432 -195555.2143642058 -101065.6422481591 0 |
2173 | +433 88689.54288200538 193510.9229061659 0 |
2174 | +434 122794.7362414874 173018.9437332913 0 |
2175 | +435 -110150.2498836013 -112689.7943664095 0 |
2176 | +436 11019.26471053998 222384.2160167526 0 |
2177 | +437 -75969.76744679954 -81784.46705679351 0 |
2178 | +438 -83236.68941639118 -65863.51410769408 0 |
2179 | +439 -100236.0083102459 -71736.51017809025 0 |
2180 | +440 -61006.41858049754 -58703.10369089942 0 |
2181 | +441 219129.2395942512 29962.99803336894 0 |
2182 | +442 152163.803768315 141786.3032798241 0 |
2183 | +443 -103137.9408749162 -195571.6794574346 0 |
2184 | +444 -166975.7145968718 140120.0579281446 0 |
2185 | +445 -207754.8192789152 111851.6439940335 0 |
2186 | +446 -205365.6298079197 -115292.1294047233 0 |
2187 | +447 163632.2254132347 -151957.3753575701 0 |
2188 | +448 139636.9938217237 -190291.0688322371 0 |
2189 | +449 54989.06336870645 -227827.8762292253 0 |
2190 | +450 63740.61810357266 211652.0301556278 0 |
2191 | +451 88007.65463072005 223542.3490566645 0 |
2192 | +452 -201865.2847014307 -13609.12853157261 0 |
2193 | +453 231770.6360802533 2665.359341053829 0 |
2194 | +454 -171632.4808008332 -126704.9994791955 0 |
2195 | +455 139041.8297558074 77158.5985634786 0 |
2196 | +456 184120.6589639723 -140118.6622704293 0 |
2197 | +457 50640.80319752474 220620.8008027576 0 |
2198 | +458 71114.43999927408 -159319.1781043563 0 |
2199 | +459 -105842.024334894 -49957.65822889981 0 |
2200 | +460 -125582.5976040079 -111524.6080805795 0 |
2201 | +461 214178.2412192883 57302.40279700504 0 |
2202 | +462 134290.4256389973 -83413.39610658977 0 |
2203 | +463 168410.3809912683 71510.21050450596 0 |
2204 | +464 104881.3345657179 -191977.4931798951 0 |
2205 | +465 -215593.8585483751 27830.54669160855 0 |
2206 | +466 -172880.1456847519 -137042.0853390035 0 |
2207 | +467 212418.6633500013 102146.170759015 0 |
2208 | +468 -120794.9079713257 -102599.581701656 0 |
2209 | +469 108580.7866490707 -155077.0309371373 0 |
2210 | +470 57739.90402826334 226674.1483645755 0 |
2211 | +471 159583.0560453889 129085.2001950475 0 |
2212 | +472 -91131.60425412307 -71194.83788825014 0 |
2213 | +473 -200243.5069119256 130848.4301102507 0 |
2214 | +474 78317.19606457518 218702.685335854 0 |
2215 | +475 -166973.4465901321 161275.9348102467 0 |
2216 | +476 -176140.4692662488 -71354.40723829807 0 |
2217 | +477 -185474.7427972335 -104147.1632720166 0 |
2218 | +478 -223951.9496996008 8278.601753479912 0 |
2219 | +479 -220413.4746535464 -69535.08505086448 0 |
2220 | +480 168758.8882374897 120913.2407588169 0 |
2221 | +481 200516.0668348682 83154.74651272313 0 |
2222 | +482 -163386.9735450256 -177553.9411860257 0 |
2223 | +483 -115525.9823519366 -51013.35339715722 0 |
2224 | +484 101855.5443873168 212760.9476697758 0 |
2225 | +485 212177.1811557506 -114246.1731562311 0 |
2226 | +486 -120858.255437255 -158512.5824473133 0 |
2227 | +487 -164481.8204066432 -143601.7901090147 0 |
2228 | +488 43534.79773326606 215800.2595772638 0 |
2229 | +489 -163608.9783551777 -160458.0538721304 0 |
2230 | +490 -71245.95198795707 -52226.24790712105 0 |
2231 | +491 -94352.13590385222 212970.5876251473 0 |
2232 | +492 -209858.4641426015 -74730.70524988227 0 |
2233 | +493 -33427.26192804992 -234157.6848847006 0 |
2234 | +494 212610.0508429137 68732.42418621514 0 |
2235 | +495 241304.0385988575 14656.79436551889 0 |
2236 | +496 -141767.0580054363 -88219.94121426018 0 |
2237 | +497 -178181.0646134412 -165247.4208082509 0 |
2238 | +498 -109352.4792888322 -173505.685997412 0 |
2239 | +499 -105963.7277081219 -184932.1433514098 0 |
2240 | +500 64777.36202597903 232884.5077302037 0 |
2241 | +501 186704.3749569854 66235.57731610652 0 |
2242 | +502 97406.52984936279 197309.3693852284 0 |
2243 | +503 -139643.3834625022 -196186.4327467528 0 |
2244 | +504 211939.5388270775 78354.04251038223 0 |
2245 | +505 216032.8462500256 109546.6473278695 0 |
2246 | +506 -190373.8479409588 -60331.08025767712 0 |
2247 | +507 -196308.316383878 -140862.3706811687 0 |
2248 | +508 -55808.79293706373 -219621.854286342 0 |
2249 | +509 175926.6024634383 138608.0300500903 0 |
2250 | +510 -130955.7287279544 186722.5721089045 0 |
2251 | +511 201271.02459583 100424.7374835482 0 |
2252 | +512 -97116.59565381586 -205203.0776187582 0 |
2253 | +513 78397.48166101104 -219156.8952450346 0 |
2254 | +514 -6009.578536533246 230816.3443091196 0 |
2255 | +515 163883.2156199415 139951.0027042935 0 |
2256 | +516 197915.8418590722 132179.3404812391 0 |
2257 | +517 124554.7087858122 -108571.1433192725 0 |
2258 | +518 -220237.7250768656 -80526.70389800235 0 |
2259 | +519 99785.54884544545 -207851.9136822609 0 |
2260 | +520 -138347.305353669 -184706.5102311641 0 |
2261 | +521 -170531.6751544072 -49652.89951656054 0 |
2262 | +522 -115924.9460602637 -183002.3608717324 0 |
2263 | +523 -194433.3257893787 -111753.1888200616 0 |
2264 | +524 -137366.5336573718 -174162.5156473333 0 |
2265 | +525 -129317.9783389235 -192601.3889655576 0 |
2266 | +526 125969.0616566642 -205955.1210259431 0 |
2267 | +527 194478.0043679374 -96353.45962316266 0 |
2268 | +528 39848.28979678759 207041.624429564 0 |
2269 | +529 -94867.66884087403 -88876.4782550947 0 |
2270 | +530 194012.0443575002 143181.049302673 0 |
2271 | +531 38335.65074991006 238303.9721023231 0 |
2272 | +532 -215416.7046962293 -108974.3349737301 0 |
2273 | +533 -241849.3235368476 4349.10723592933 0 |
2274 | +534 177680.9579157344 127069.1472187462 0 |
2275 | +535 198013.4203017415 120148.0392706783 0 |
2276 | +536 -117939.5317373095 -128161.8684218578 0 |
2277 | +537 -148567.1215492702 183975.9000667525 0 |
2278 | +538 224249.3897598609 -93805.79778957904 0 |
2279 | +539 228925.2220914731 41103.67297245146 0 |
2280 | +540 -136258.3362383688 -166193.6892765413 0 |
2281 | +541 -120473.0606074558 -190511.616800573 0 |
2282 | +542 -238697.7576503519 14842.91563725225 0 |
2283 | +543 -62122.92869734678 -211510.3769851976 0 |
2284 | +544 -7095.404836303729 -242319.0879264475 0 |
2285 | +545 74023.55362677717 -231847.3390793512 0 |
2286 | +546 -203974.2289652649 -95543.58095074072 0 |
2287 | +547 22928.48620858649 206418.2109978354 0 |
2288 | +548 -123276.2049176165 207692.4571289166 0 |
2289 | +549 185866.7956317559 135627.1746759267 0 |
2290 | +550 -221801.5808996112 99795.39421888832 0 |
2291 | +551 208691.8650437158 89906.65169370633 0 |
2292 | +552 -16742.48584982899 -77541.55716667304 0 |
2293 | +553 -174635.4585888632 -148750.4364291313 0 |
2294 | +554 -66880.06008513006 -229849.4650059566 0 |
2295 | +555 -72190.87446792707 -215209.1583894145 0 |
2296 | +556 34428.82652766604 217283.8737852411 0 |
2297 | +557 -222995.9282414321 -90871.16849151699 0 |
2298 | +558 -184928.4879167745 -152886.0653104579 0 |
2299 | +559 15650.08485141863 214521.3963921093 0 |
2300 | +560 210371.5671367631 120247.911534638 0 |
2301 | +561 177046.1423641666 -163388.6561515046 0 |
2302 | +562 -133490.8526765429 199180.8024896378 0 |
2303 | +563 13716.55839237022 241330.3244825565 0 |
2304 | +564 221533.6057325258 75747.49963352406 0 |
2305 | +565 -3273.361299830924 241245.4029928282 0 |
2306 | +566 190633.0520443205 151579.3956692846 0 |
2307 | +567 221657.7040225894 100239.4326359876 0 |
2308 | +568 26382.93238544709 238229.2158735719 0 |
2309 | +569 -106426.2953267149 217440.6690901944 0 |
2310 | +570 24693.57500759019 216301.3466032085 0 |
2311 | +571 77335.74024892625 228866.5997726985 0 |
2312 | +572 -89823.89586189303 -53893.0062873022 0 |
2313 | +573 -114840.7762055608 212613.6963459879 0 |
2314 | +574 -65150.49619092231 -221147.6377959787 0 |
2315 | +575 -119497.9627241666 -199802.3916681215 0 |
2316 | +576 184096.6911110384 -156046.0964505996 0 |
2317 | +577 -36322.87731328145 236734.4624786201 0 |
2318 | +578 -107884.5887094712 -216503.3613319237 0 |
2319 | +579 -43896.98278972268 -237558.6242651595 0 |
2320 | +580 -74610.88119116891 -223648.1902937025 0 |
2321 | +581 28199.42069241455 226482.3441673706 0 |
2322 | +582 -88206.39690679793 223669.2108152417 0 |
2323 | +583 119618.5721865941 -211323.5786168741 0 |
2324 | +584 225327.7347452319 86428.0834544986 0 |
2325 | +585 -56962.13275001453 -236323.1417972701 0 |
2326 | +586 -130075.4097374183 -171826.3291288874 0 |
2327 | +587 56211.6323415027 235722.3023409233 0 |
2328 | +588 -239903.8475182648 -12935.15271756393 0 |
2329 | +589 4922.059016358912 236575.1720373344 0 |
2330 | +590 90614.33426218999 5362.048724506718 0 |
2331 | +591 -11298.00830116475 -130885.1656071144 0 |
2332 | +592 112468.5626150189 4739.741785531097 0 |
2333 | +593 70200.00464467614 -51204.55389169884 0 |
2334 | +594 -30115.52936521179 -138646.5737037881 0 |
2335 | +595 7523.333457064818 -122995.0339952877 0 |
2336 | +596 -8046.146471423207 -181507.3904365567 0 |
2337 | +597 95833.25190623164 -46779.86329943559 0 |
2338 | +598 42729.40450885092 -93706.10181266014 0 |
2339 | +599 -49699.06848232526 -144735.2912052168 0 |
2340 | +600 22136.0037431509 -113962.8092852481 0 |
2341 | +601 116631.9777817817 -41247.78547093773 0 |
2342 | +602 80777.7314220398 61027.38755578933 0 |
2343 | +603 70526.83907655852 44866.09918992075 0 |
2344 | +604 75177.01209438885 -108424.1460708965 0 |
2345 | +605 29075.34812839668 -97335.08376080848 0 |
2346 | +606 98733.56695990521 66421.33278562363 0 |
2347 | +607 90220.70051578565 -69209.63394914767 0 |
2348 | +608 10033.54991903316 -174780.1932276998 0 |
2349 | +609 136543.9195261975 -38210.87068958536 0 |
2350 | +610 -8182.466219597518 -153316.6572643706 0 |
2351 | +611 155009.3708442256 -36815.87939170266 0 |
2352 | +612 58326.20735368503 -101206.8470926866 0 |
2353 | +613 173374.7718211155 -39942.29768091089 0 |
2354 | +614 68577.90262446961 2261.919617695903 0 |
2355 | +615 73830.42945517662 23142.3050269851 0 |
2356 | +616 54478.05606502601 -64064.60826726846 0 |
2357 | +617 -102080.176175297 -1507.861788314987 0 |
2358 | +618 88720.19088961306 -94503.48979859689 0 |
2359 | +619 47844.08398666849 -145810.4505174398 0 |
2360 | +620 133208.0231772856 5168.500374419793 0 |
2361 | +621 -5422.400424233143 85640.36185025384 0 |
2362 | +622 34680.83147960688 -157291.9166833829 0 |
2363 | +623 122449.8521464478 25871.10996067768 0 |
2364 | +624 -13771.48816961046 67721.01691477357 0 |
2365 | +625 30486.59137825591 56862.83055404661 0 |
2366 | +626 101669.8990628906 -18984.26646000784 0 |
2367 | +627 61302.87678160379 -141018.5763926134 0 |
2368 | +628 56833.50115919403 -12914.39143399678 0 |
2369 | +629 153199.1659884651 5343.300552161199 0 |
2370 | +630 -24632.79756351596 -189209.325788915 0 |
2371 | +631 -92975.95504962532 15384.57683651552 0 |
2372 | +632 144540.9711093784 -16051.58605948845 0 |
2373 | +633 183963.6152852094 -26355.69988607379 0 |
2374 | +634 -17473.57404005852 168715.2559135352 0 |
2375 | +635 -66206.47968602431 -150446.5833941676 0 |
2376 | +636 -68230.51641011746 -16191.41844982926 0 |
2377 | +637 28782.6093036236 -135322.4830700906 0 |
2378 | +638 -41669.28598121474 -183346.9026864137 0 |
2379 | +639 4968.342380691393 32507.22578155333 0 |
2380 | +640 26580.91206513418 -216509.3301433301 0 |
2381 | +641 17142.71809291264 45181.82080309145 0 |
2382 | +642 -54264.17997475572 71020.32925430538 0 |
2383 | +643 -48555.03410530524 -123502.8482425402 0 |
2384 | +644 -34348.1646040648 115329.7950309821 0 |
2385 | +645 -38699.53899332798 100188.6461791527 0 |
2386 | +646 -120199.9720871825 38928.51578949445 0 |
2387 | +647 -52996.31992853605 12219.80081462493 0 |
2388 | +648 -45834.68143204223 85383.5350839297 0 |
2389 | +649 86561.87542207877 141503.3972579 0 |
2390 | +650 -34347.56005257374 38852.68038424863 0 |
2391 | +651 20377.71136985578 -522.4404541541443 0 |
2392 | +652 -73018.71557640143 43688.64867475979 0 |
2393 | +653 -3599.437380815494 49929.82915036584 0 |
2394 | +654 96842.50760185241 107255.7987565356 0 |
2395 | +655 -8695.998010636518 181026.7946611864 0 |
2396 | +656 -24166.75233795628 52777.88378535062 0 |
2397 | +657 -61185.74719933781 -1610.761832140728 0 |
2398 | +658 108735.2292695275 52497.00438619592 0 |
2399 | +659 -32214.13931729454 207205.7505611659 0 |
2400 | +660 -81384.9652143524 -1555.604621334197 0 |
2401 | +661 44780.76945187613 147610.3105233112 0 |
2402 | +662 31167.13412800294 10515.53502611461 0 |
2403 | +663 -82887.41965192364 29968.01677783217 0 |
2404 | +664 9306.469061556047 -221210.529255416 0 |
2405 | +665 -63457.26887540721 57244.92274901248 0 |
2406 | +666 -43963.98720671701 25477.26789032287 0 |
2407 | +667 -59032.13735338827 143296.8346570506 0 |
2408 | +668 -15669.59510490563 7951.751221091312 0 |
2409 | +669 -100234.8760995347 63346.83698600361 0 |
2410 | +670 -133783.4955275824 71552.55348729277 0 |
2411 | +671 -129443.2353717756 83355.05730791822 0 |
2412 | +672 66478.69796630804 -123924.8048771138 0 |
2413 | +673 -11302.28929342278 -109042.8371024711 0 |
2414 | +674 83371.96172949487 98639.87028409669 0 |
2415 | +675 42598.41701782353 21952.30736362454 0 |
2416 | +676 42803.48526205042 67735.61887591671 0 |
2417 | +677 32914.87075138288 -206141.4085779389 0 |
2418 | +678 36770.182428686 39110.96953752914 0 |
2419 | +679 -83745.47744177251 89007.51326075238 0 |
2420 | +680 12564.39687236929 160337.4952970949 0 |
2421 | +681 100757.563820207 151466.036029734 0 |
2422 | +682 130460.4164785937 -58592.30852629431 0 |
2423 | +683 60122.27872036162 -30925.60792249614 0 |
2424 | +684 -90547.96164180418 76863.15582992593 0 |
2425 | +685 -102065.3381228552 33378.59519758596 0 |
2426 | +686 -5878.459466593224 19966.22362903555 0 |
2427 | +687 -109771.3903888322 50944.66107352314 0 |
2428 | +688 -52197.41673207089 -166025.9026244419 0 |
2429 | +689 -25805.67817175984 84626.60686611968 0 |
2430 | +690 188005.2362761759 -46463.21536911287 0 |
2431 | +691 -114492.498004132 95206.32413763728 0 |
2432 | +692 82045.88506911212 132698.6251573678 0 |
2433 | +693 160916.4957584888 24292.64781070496 0 |
2434 | +694 -33167.99319641006 -16044.88690109293 0 |
2435 | +695 186308.4245818574 14902.09763563582 0 |
2436 | +696 -44071.95377664844 55010.81090997763 0 |
2437 | +697 225387.9801812539 -80404.54078217062 0 |
2438 | +698 -108552.3616749195 -15845.21822632415 0 |
2439 | +699 -9238.466081747416 -197934.0377893465 0 |
2440 | +700 75809.61097226193 92500.69945201495 0 |
2441 | +701 195978.6684665331 -14167.39898827095 0 |
2442 | +702 55578.01658577836 32766.99854124304 0 |
2443 | +703 -2327.646506781956 136435.0758348714 0 |
2444 | +704 -103016.219754104 117660.2578398864 0 |
2445 | +705 -46452.88692411005 183289.4884605185 0 |
2446 | +706 29863.28360686851 -36532.04518037302 0 |
2447 | +707 8632.3266633453 -12209.94104007105 0 |
2448 | +708 -103485.2009276254 109451.6169685003 0 |
2449 | +709 26318.26222597669 72383.03791991326 0 |
2450 | +710 -63297.37019732426 27700.41267149177 0 |
2451 | +711 -60080.7869850816 -183131.3880627149 0 |
2452 | +712 44059.33198841516 -23825.70718588374 0 |
2453 | +713 108472.6160567646 143002.088361496 0 |
2454 | +714 -86613.13781183895 -135728.8185384882 0 |
2455 | +715 7418.924383727314 -66127.72396528276 0 |
2456 | +716 -75170.24366091433 -106749.8026042649 0 |
2457 | +717 66100.39722822061 122988.905437183 0 |
2458 | +718 -24856.43693374827 23052.34115579915 0 |
2459 | +719 -26963.50556317367 -7546.156933034868 0 |
2460 | +720 -82197.41323853559 59936.00611973219 0 |
2461 | +721 84034.6239637205 80526.32396840813 0 |
2462 | +722 -832.8357434408359 -22074.40170434573 0 |
2463 | +723 -170261.4435488932 38104.38175195064 0 |
2464 | +724 -64664.05101227594 86810.11982681909 0 |
2465 | +725 137567.1986875088 38808.52422483298 0 |
2466 | +726 20924.48876372347 166380.7077129519 0 |
2467 | +727 -90382.8759166797 -124636.1342863745 0 |
2468 | +728 -106760.0392157816 -27526.56932713861 0 |
2469 | +729 -84909.03739521083 -114607.5149392954 0 |
2470 | +730 -45077.68331231511 -38849.10728542516 0 |
2471 | +731 -12671.05923636634 -45539.94071218404 0 |
2472 | +732 -141643.9137044499 113386.8198461896 0 |
2473 | +733 88956.79610566639 -144254.8245360542 0 |
2474 | +734 -39728.24720458312 -27345.22439920651 0 |
2475 | +735 -207768.5783481774 43710.08993213137 0 |
2476 | +736 21506.6840975734 -41218.13942080703 0 |
2477 | +737 -159347.7319628961 98344.25624766397 0 |
2478 | +738 -161587.5572331226 86154.89518439746 0 |
2479 | +739 -79375.81358919023 -143381.1754923633 0 |
2480 | +740 -124874.0352842831 144829.2230739834 0 |
2481 | +741 11354.06742907366 86686.0667632345 0 |
2482 | +742 207046.1680588718 -15456.54196635492 0 |
2483 | +743 154888.9369007933 39778.0765664634 0 |
2484 | +744 56429.78961079457 80989.52220516573 0 |
2485 | +745 -18383.58532343856 121758.5566590021 0 |
2486 | +746 -48027.51230768959 -86262.64038650287 0 |
2487 | +747 28458.80981371203 -187220.5494920693 0 |
2488 | +748 12824.15335534621 15733.91034812273 0 |
2489 | +749 -131854.5474389411 121500.6787625731 0 |
2490 | +750 60992.24837532636 63213.43639627746 0 |
2491 | +751 -25645.23993408841 152815.4377406528 0 |
2492 | +752 49505.6196280198 5297.100138071798 0 |
2493 | +753 321.1854331128278 109048.8225281903 0 |
2494 | +754 1716.455947444263 99923.14251313663 0 |
2495 | +755 38243.43452876317 138034.3319687059 0 |
2496 | +756 -160720.0929430015 74284.38569125424 0 |
2497 | +757 -121848.6063044032 -462.627771608001 0 |
2498 | +758 -197941.4998375292 49939.38396137505 0 |
2499 | +759 11137.40208713109 -43316.37955342476 0 |
2500 | +760 193576.8319780282 23811.47075067131 0 |
2501 | +761 -98683.32737252074 93452.92742202558 0 |
2502 | +762 -51230.84003481542 114819.8740060148 0 |
2503 | +763 53481.16811146298 -81973.83887743788 0 |
2504 | +764 -160832.1702137128 44276.51268811189 0 |
2505 | +765 -171573.9249769705 66377.88108337093 0 |
2506 | +766 151308.1670628322 -168752.2430383171 0 |
2507 | +767 -24284.86689684087 143203.0847180944 0 |
2508 | +768 60153.77155931925 161494.0331817469 0 |
2509 | +769 -46761.72103657273 -104946.7320263342 0 |
2510 | +770 -65917.91733702681 -112392.4673448418 0 |
2511 | +771 77038.55346772143 -141037.2651767927 0 |
2512 | +772 58813.64129651347 91697.82374816819 0 |
2513 | +773 -73034.22775298785 191234.8944580926 0 |
2514 | +774 25211.01089541797 -19151.57870573004 0 |
2515 | +775 -155288.3917555151 -2325.754475463488 0 |
2516 | +776 -126204.7854406005 133071.4006831282 0 |
2517 | +777 -117481.1213216251 67535.54595068718 0 |
2518 | +778 -73901.15867685026 144029.4123253022 0 |
2519 | +779 -36818.63079251122 -202094.2100619332 0 |
2520 | +780 -205063.1507483756 74143.70003059082 0 |
2521 | +781 76211.12044652579 -175401.2352248147 0 |
2522 | +782 -42274.86760246133 -2222.729147494968 0 |
2523 | +783 -156379.9526573849 -14655.0661946657 0 |
2524 | +784 -188020.1565005807 27018.43456753805 0 |
2525 | +785 -28678.80729236925 -96636.74308733833 0 |
2526 | +786 83414.99581600822 115631.3502496954 0 |
2527 | +787 84506.3315224094 -169884.4869130245 0 |
2528 | +788 -3305.146223387902 162507.6474039968 0 |
2529 | +789 1678.226961332883 -76003.63672550615 0 |
2530 | +790 115453.3226224822 -81837.99939099047 0 |
2531 | +791 -110123.9692885118 169523.8837028219 0 |
2532 | +792 27658.93878608116 177991.8910912205 0 |
2533 | +793 50716.46987810155 107908.6654149267 0 |
2534 | +794 27629.02823069963 154056.7679927311 0 |
2535 | +795 -3332.278620600624 -210576.7001229388 0 |
2536 | +796 112052.7554751535 127276.5033085937 0 |
2537 | +797 195417.4616278513 34830.91567768894 0 |
2538 | +798 -179359.1891299769 31257.21986944637 0 |
2539 | +799 188321.5866739612 -64441.89564752255 0 |
2540 | +800 -193405.9598903784 77862.98786131796 0 |
2541 | +801 -1882.94242031257 188896.1850113804 0 |
2542 | +802 213913.0070650186 -83183.47007317316 0 |
2543 | +803 177199.6731763104 44896.33223786369 0 |
2544 | +804 93357.45922963212 -115264.4919988783 0 |
2545 | +805 167279.9773544576 43444.20368096661 0 |
2546 | +806 59051.20819088232 -186275.6439439646 0 |
2547 | +807 187708.9979480432 42687.67750669023 0 |
2548 | +808 -10896.14710834559 129761.9018648237 0 |
2549 | +809 -186712.4565825921 97931.40451121239 0 |
2550 | +810 -131666.431458477 -3893.70082726115 0 |
2551 | +811 -134765.1742648652 45797.16172901709 0 |
2552 | +812 -56466.37717895881 -31261.1724019159 0 |
2553 | +813 -141452.6190155943 63210.36791860562 0 |
2554 | +814 -12646.80475583341 -11470.04426966292 0 |
2555 | +815 -153949.7109457458 50645.57295302546 0 |
2556 | +816 66667.89074767727 -179278.8458366467 0 |
2557 | +817 30261.44220517711 -44861.89027147651 0 |
2558 | +818 -216752.9553073326 38679.95882665784 0 |
2559 | +819 115222.3222992268 89383.61997297143 0 |
2560 | +820 7575.557490673564 191774.2224636836 0 |
2561 | +821 -179575.1977679828 10523.20098281867 0 |
2562 | +822 101125.90045426 -122583.5311643364 0 |
2563 | +823 108365.3554109932 116664.6886073245 0 |
2564 | +824 111851.1286001942 99000.29497015881 0 |
2565 | +825 -114321.0737184561 160208.6305961238 0 |
2566 | +826 -77682.22830265606 -173918.9781675472 0 |
2567 | +827 182488.5508536421 -72712.0709957259 0 |
2568 | +828 -106785.5446513481 142256.5458449214 0 |
2569 | +829 -6441.304589086797 -34133.81120488782 0 |
2570 | +830 -54148.49998070897 234736.1748650176 0 |
2571 | +831 -70980.84322876936 -184003.330846526 0 |
2572 | +832 -58445.22157642669 224976.9178119149 0 |
2573 | +833 -132633.1632073157 -16422.14676254292 0 |
2574 | +834 22950.20653866763 -228346.6499989037 0 |
2575 | +835 -64947.36408541355 166089.4231697869 0 |
2576 | +836 111138.3470190766 80787.24224319006 0 |
2577 | +837 149645.6068417613 -74181.47606794735 0 |
2578 | +838 -23343.33739891593 -219135.9804766667 0 |
2579 | +839 222119.3167876141 -28770.03361625772 0 |
2580 | +840 -52030.31692134897 216797.7240391165 0 |
2581 | +841 -150614.8883763689 -65684.94534641986 0 |
2582 | +842 16239.67958546635 119081.0544474651 0 |
2583 | +843 34758.68080201249 186609.7910710736 0 |
2584 | +844 -85888.84769683045 -37532.84421665714 0 |
2585 | +845 -164597.9835161103 -92698.03175447356 0 |
2586 | +846 93461.20410186077 -132518.4702385378 0 |
2587 | +847 -156105.9074709695 -36604.99403686696 0 |
2588 | +848 9779.349815612428 -95856.30182350833 0 |
2589 | +849 125814.6629590349 -77355.15275545041 0 |
2590 | +850 18687.09668280188 -63967.69579692131 0 |
2591 | +851 -149058.6339567666 173986.6441468976 0 |
2592 | +852 -95663.13802684314 -32401.1995730531 0 |
2593 | +853 142027.9108646761 -163434.5264172074 0 |
2594 | +854 -162758.9611731688 26971.53358377164 0 |
2595 | +855 -10736.95744226117 -91119.34207838339 0 |
2596 | +856 164308.13816587 -127198.3605228977 0 |
2597 | +857 -86674.23608567998 -165505.523176313 0 |
2598 | +858 -17236.8870168318 -56431.14785161679 0 |
2599 | +859 -215573.7346605128 48571.32346720167 0 |
2600 | +860 49810.45743155119 -191697.3828484181 0 |
2601 | +861 101905.3228100458 -80962.52098300181 0 |
2602 | +862 105785.9226268121 173543.7205404838 0 |
2603 | +863 40825.24000650326 -198575.7787864786 0 |
2604 | +864 -30046.88319564097 132361.1538972485 0 |
2605 | +865 208941.2609018968 5896.290529950064 0 |
2606 | +866 -62521.28202831014 192362.9433871756 0 |
2607 | +867 -65763.85962566907 -191663.413525244 0 |
2608 | +868 157986.0882696571 -69537.2788477647 0 |
2609 | +869 -189585.6943175111 55355.60613391855 0 |
2610 | +870 44180.48098892142 -174934.2279158694 0 |
2611 | +871 -24979.56024621347 200518.6251383939 0 |
2612 | +872 -166693.0193008186 122791.9424329711 0 |
2613 | +873 -13057.74846690941 145952.0372184142 0 |
2614 | +874 -219869.8590893699 -33067.53518550392 0 |
2615 | +875 50662.03511368552 166817.7255458965 0 |
2616 | +876 -192690.6946072604 -36234.75493061385 0 |
2617 | +877 -158269.9192349763 157927.8449424169 0 |
2618 | +878 72875.72870133299 149695.8762667869 0 |
2619 | +879 -143010.9047024722 150051.7794692363 0 |
2620 | +880 -197584.8071854726 23433.46896454046 0 |
2621 | +881 119188.5645321005 161328.2995450169 0 |
2622 | +882 -69368.43605514466 -43565.19140944615 0 |
2623 | +883 -42520.43434319325 -212456.8248099394 0 |
2624 | +884 -106713.4094147204 180571.6829402048 0 |
2625 | +885 -143323.3554661979 -124807.4751504534 0 |
2626 | +886 -77211.37946731687 -160997.7467301571 0 |
2627 | +887 -194273.4366328509 118989.1626906466 0 |
2628 | +888 -31719.02981384243 216202.0139871372 0 |
2629 | +889 -196956.0913278474 100366.3528164446 0 |
2630 | +890 112299.6546359286 166947.1652670628 0 |
2631 | +891 -98519.64511498687 -169100.7806501179 0 |
2632 | +892 -217450.3313965963 75012.07879019703 0 |
2633 | +893 128446.1103870899 -99709.02475837804 0 |
2634 | +894 120728.0424051201 -176666.2385588021 0 |
2635 | +895 -145098.096952393 131035.5289410229 0 |
2636 | +896 -132125.441626522 148988.4268230284 0 |
2637 | +897 -212875.0334226651 -24415.59409803288 0 |
2638 | +898 -58137.650126042 -86827.75070115701 0 |
2639 | +899 -17659.26492356216 194278.8227117351 0 |
2640 | +900 -145292.2546681874 -135015.1011307347 0 |
2641 | +901 -182055.1591644334 72497.44622784553 0 |
2642 | +902 136973.9183920714 93624.4101149693 0 |
2643 | +903 101892.9110420843 -140786.7281010707 0 |
2644 | +904 -160028.7890871048 133140.9680367476 0 |
2645 | +905 18507.43655971761 103675.7410544556 0 |
2646 | +906 -22614.67018343374 -28811.84879025381 0 |
2647 | +907 130965.9026642938 100796.7378109469 0 |
2648 | +908 118578.9037728227 137644.9066829679 0 |
2649 | +909 196497.0962554342 7665.910558189295 0 |
2650 | +910 -53257.26214069658 -48034.60374776134 0 |
2651 | +911 40850.41704106048 176074.8345359033 0 |
2652 | +912 -159191.0909965511 -26512.11864472426 0 |
2653 | +913 3225.483903094735 -227174.0495759317 0 |
2654 | +914 55514.01524907729 -212802.9598060284 0 |
2655 | +915 42227.66099562858 91214.19389114995 0 |
2656 | +916 -160846.3496535101 -118202.9242801882 0 |
2657 | +917 -72001.74346808503 200889.0832095742 0 |
2658 | +918 128726.7675364054 -178406.77150687 0 |
2659 | +919 -169994.2770294022 -99895.55679628121 0 |
2660 | +920 -155728.4764874453 -110567.6642628744 0 |
2661 | +921 112186.7153327389 194719.7411454887 0 |
2662 | +922 -175675.659728135 153273.3260005171 0 |
2663 | +923 148172.7434564878 51051.09892789974 0 |
2664 | +924 -193662.9403129382 -27349.65306878027 0 |
2665 | +925 136686.4867377692 66857.43444217958 0 |
2666 | +926 -95395.9785039976 -158041.4108644637 0 |
2667 | +927 -13243.59737718975 -215361.6185748004 0 |
2668 | +928 -177595.3927784358 20267.71537356183 0 |
2669 | +929 144659.5702678704 -141806.8755021078 0 |
2670 | +930 71124.7757412566 -201015.8780034596 0 |
2671 | +931 63649.29174371948 -206938.8601000451 0 |
2672 | +932 129714.9533086739 61673.3509515904 0 |
2673 | +933 93549.364891961 -166661.2165146559 0 |
2674 | +934 -179648.0671205254 50501.23138888749 0 |
2675 | +935 77254.21397856942 172474.5088841359 0 |
2676 | +936 69926.95500203971 166634.7669850879 0 |
2677 | +937 126897.5134802507 157197.009201844 0 |
2678 | +938 61538.00551197795 -162534.6605816809 0 |
2679 | +939 -166829.7078338896 -83923.42037537227 0 |
2680 | +940 37393.88927090638 -216999.4336462617 0 |
2681 | +941 61797.7792352348 183089.1177764029 0 |
2682 | +942 -180829.4692574474 60827.81975127614 0 |
2683 | +943 55555.01570770706 135426.5129502128 0 |
2684 | +944 -161619.9011266178 111374.5872166648 0 |
2685 | +945 -226828.9163891651 34045.89051547281 0 |
2686 | +946 114232.6122793034 -112355.5266683627 0 |
2687 | +947 -206731.2313851401 102902.1457304642 0 |
2688 | +948 156995.3520446737 99773.9951911479 0 |
2689 | +949 -150262.9724625979 139802.9404009958 0 |
2690 | +950 -80995.79200903118 -185011.6500442049 0 |
2691 | +951 -175568.7090034983 93388.93365023365 0 |
2692 | +952 -67859.79073041101 -88381.51482105457 0 |
2693 | +953 -106288.2638519987 -38345.42078035738 0 |
2694 | +954 -233583.5802323742 -21690.81193847759 0 |
2695 | +955 -166301.8387878432 149748.5188942422 0 |
2696 | +956 47601.97105423211 -220286.5491067589 0 |
2697 | +957 -32539.73177992794 -214233.2980552163 0 |
2698 | +958 -200454.9364316829 62311.90361523345 0 |
2699 | +959 -212808.6582324232 84575.84456956785 0 |
2700 | +960 96087.17265310598 170850.6248554185 0 |
2701 | +961 125673.5819968502 183462.2438121165 0 |
2702 | +962 -699.9493810304015 210620.2127872111 0 |
2703 | +963 -177649.8043658631 -15231.20655069393 0 |
2704 | +964 86651.99597482097 170531.7504174932 0 |
2705 | +965 -120602.7399451962 167309.9003700842 0 |
2706 | +966 -137122.1555940771 158733.764516789 0 |
2707 | +967 -188744.0718380772 127100.4133441067 0 |
2708 | +968 -144898.551205328 -36872.74736083902 0 |
2709 | +969 73671.80865677915 193093.2606083532 0 |
2710 | +970 91815.67840638354 159326.8901068736 0 |
2711 | +971 -154122.5568782445 -140911.0155004826 0 |
2712 | +972 -168561.6560940563 -75439.2409615857 0 |
2713 | +973 212770.027202344 25167.81699052595 0 |
2714 | +974 51749.82815272923 -202313.578784662 0 |
2715 | +975 148940.6910098713 -117654.1537012068 0 |
2716 | +976 -150168.3974012455 -118637.6836097238 0 |
2717 | +977 132670.2464804706 -159698.168941608 0 |
2718 | +978 164151.5043117563 62248.33061462707 0 |
2719 | +979 143130.3481837892 87445.84382901079 0 |
2720 | +980 99766.80787175598 -97548.49907423633 0 |
2721 | +981 -107592.7211681949 -141407.3292390408 0 |
2722 | +982 171638.3392248149 -119948.4483926183 0 |
2723 | +983 129582.3722240699 136238.1336139596 0 |
2724 | +984 170966.6406505615 -68894.00012533575 0 |
2725 | +985 140584.7965690976 -152014.4111016477 0 |
2726 | +986 162350.1614343696 92923.44790357241 0 |
2727 | +987 118605.7767746918 117652.830190858 0 |
2728 | +988 59689.2097560234 101503.3060789754 0 |
2729 | +989 -90023.26345741151 189290.1121625662 0 |
2730 | +990 117930.1658096551 188978.4665283452 0 |
2731 | +991 -102302.4207055267 -150300.1731443738 0 |
2732 | +992 30295.29346797332 -66894.29790597362 0 |
2733 | +993 -183190.8328719858 133862.7252684605 0 |
2734 | +994 10679.98631691137 -32096.0102541486 0 |
2735 | +995 82975.16877778526 -159987.5987760497 0 |
2736 | +996 120693.7343778682 80779.3245454867 0 |
2737 | +997 119817.2419028985 98712.1430635616 0 |
2738 | +998 110121.2892044936 -101193.9966270608 0 |
2739 | +999 -150033.8460471171 -74867.42320473334 0 |
2740 | +1000 136686.1210255853 -181682.3606125263 0 |
2741 | +1001 78108.31832686813 -195464.168197455 0 |
2742 | +1002 144565.705926952 61831.12533922739 0 |
2743 | +1003 113689.5869707402 -179028.2018295452 0 |
2744 | +1004 112550.53599943 -125080.17705474 0 |
2745 | +1005 -173447.5272499691 114599.9517893322 0 |
2746 | +1006 170727.0754172416 53445.50509641814 0 |
2747 | +1007 -167933.414854448 -16663.13477434327 0 |
2748 | +1008 190998.4015233721 -80504.47400193616 0 |
2749 | +1009 -160455.0626978199 61218.30158998099 0 |
2750 | +1010 -30946.02553196351 -225751.1438188004 0 |
2751 | +1011 -131775.8269068194 -78411.82663516082 0 |
2752 | +1012 203361.5886831191 28849.53437790486 0 |
2753 | +1013 15294.12354049742 193855.321643102 0 |
2754 | +1014 -131511.4509073058 167817.3863830261 0 |
2755 | +1015 217735.9735850305 4788.378418594669 0 |
2756 | +1016 -203536.176337805 119711.6939183442 0 |
2757 | +1017 194495.9953755585 -139152.8123881239 0 |
2758 | +1018 -30115.41486339884 224805.5398643534 0 |
2759 | +1019 -187916.5581982807 -83088.48267484993 0 |
2760 | +1020 135535.4982961973 153585.1558300954 0 |
2761 | +1021 128927.3930147962 118143.4496413348 0 |
2762 | +1022 102496.249344059 -164765.9008974747 0 |
2763 | +1023 126471.9467902461 -88400.18427525002 0 |
2764 | +1024 130646.2464976349 -126414.6108525648 0 |
2765 | +1025 -154487.4676476641 150815.77612234 0 |
2766 | +1026 161119.7872089743 -143767.258551148 0 |
2767 | +1027 -144775.8636614906 -96106.32259481722 0 |
2768 | +1028 149078.9243856797 82054.25200365408 0 |
2769 | +1029 -178665.8250013832 106253.5729729182 0 |
2770 | +1030 165210.2331412902 -104668.5802633701 0 |
2771 | +1031 -20138.26340524489 -68476.56120311274 0 |
2772 | +1032 156204.9363231972 -176218.2715244552 0 |
2773 | +1033 -183892.1834574405 116569.6125841523 0 |
2774 | +1034 52711.6986107025 178484.7015703938 0 |
2775 | +1035 167039.3012098658 -86428.06935288642 0 |
2776 | +1036 153509.6420671172 61409.30603198488 0 |
2777 | +1037 153482.8005479437 -141088.4792656831 0 |
2778 | +1038 -239859.5073945876 -31090.17570716254 0 |
2779 | +1039 224712.6442218527 -10351.9499919721 0 |
2780 | +1040 -132088.110629729 -61339.32653911214 0 |
2781 | +1041 177986.4248018992 102374.960720128 0 |
2782 | +1042 94974.00496642916 188049.6488507907 0 |
2783 | +1043 -14621.29336484216 -225191.9021708218 0 |
2784 | +1044 152361.7875573759 -105363.8242127441 0 |
2785 | +1045 -140529.5055488478 188247.5057511106 0 |
2786 | +1046 173454.6478797049 -79438.36514349074 0 |
2787 | +1047 -182577.3365653377 -3861.493540423774 0 |
2788 | +1048 -203199.2505199822 -21857.1256518515 0 |
2789 | +1049 154979.2516059222 -125267.0504978915 0 |
2790 | +1050 -194407.8582130821 -18172.71757333642 0 |
2791 | +1051 554.0298613069182 -49525.70323258531 0 |
2792 | +1052 -129101.6828639558 -140599.0471027642 0 |
2793 | +1053 109907.0967719143 154331.8649964077 0 |
2794 | +1054 -190911.8455516673 137674.2636282386 0 |
2795 | +1055 -126826.3558617912 176695.7566921744 0 |
2796 | +1056 158148.1845057446 109393.2949792675 0 |
2797 | +1057 68584.07641353278 -189513.0091020612 0 |
2798 | +1058 89663.03748725275 -205841.892611967 0 |
2799 | +1059 -141442.8285999129 170385.3975603346 0 |
2800 | +1060 -112802.3810141398 -151669.8232693426 0 |
2801 | +1061 -210585.6984180531 -14821.65086046846 0 |
2802 | +1062 141595.4678447786 -70590.02457766452 0 |
2803 | +1063 124324.172763026 108753.5871756968 0 |
2804 | +1064 -160153.2061616695 -101863.4850805817 0 |
2805 | +1065 106097.7863216226 200413.1214379527 0 |
2806 | +1066 -89202.77938049023 -189046.4713474897 0 |
2807 | +1067 -96383.44625968153 -98902.86905159781 0 |
2808 | +1068 107270.482979015 -90228.74448611228 0 |
2809 | +1069 215377.3272642847 13934.54186122416 0 |
2810 | +1070 -196284.5303120592 36353.96935363283 0 |
2811 | +1071 171902.9852100674 92695.74178669519 0 |
2812 | +1072 210822.1334673972 34572.1515213149 0 |
2813 | +1073 -165852.077865118 -34443.6232468903 0 |
2814 | +1074 127445.1802633266 146302.2330205956 0 |
2815 | +1075 -193584.7555570371 3406.354525627602 0 |
2816 | +1076 -127774.9683704639 -149427.5955809566 0 |
2817 | +1077 -135137.714768386 -110921.6575019931 0 |
2818 | +1078 -199453.6145896558 109862.4281043079 0 |
2819 | +1079 174394.2643642693 -89469.39172134269 0 |
2820 | +1080 -90033.39397386956 -146765.5844795377 0 |
2821 | +1081 -70712.82324874295 -97898.17207208659 0 |
2822 | +1082 131863.8082348653 200116.4972658596 0 |
2823 | +1083 -7755.977468532117 207388.4996039847 0 |
2824 | +1084 -214541.4636075752 96405.99476458575 0 |
2825 | +1085 73374.29501061175 -210485.8416693544 0 |
2826 | +1086 15842.78679894171 183931.8087192708 0 |
2827 | +1087 -42279.74015156252 -68562.73894447992 0 |
2828 | +1088 138222.6633183622 135131.7862549849 0 |
2829 | +1089 -154618.5932077469 -57589.21462351987 0 |
2830 | +1090 30647.91264597158 -77220.72449302732 0 |
2831 | +1091 -5569.869993682471 -232935.8263336908 0 |
2832 | +1092 -170542.8329667603 -59020.58527941256 0 |
2833 | +1093 -223477.496538599 90699.17392919399 0 |
2834 | +1094 -201729.6031730366 -42246.96157669117 0 |
2835 | +1095 133473.7286972732 127003.2096670516 0 |
2836 | +1096 43878.92113130128 -230315.5492491833 0 |
2837 | +1097 131727.3315089837 -116098.0665617904 0 |
2838 | +1098 -63626.68492307772 -78111.74382580812 0 |
2839 | +1099 99832.34705149448 205942.190525402 0 |
2840 | +1100 -215676.9701594272 107312.8714888789 0 |
2841 | +1101 -162262.852750735 -54370.89097740102 0 |
2842 | +1102 140641.7152848693 103241.2244626482 0 |
2843 | +1103 61625.40783619926 203684.6754073763 0 |
2844 | +1104 -118477.8643550147 -57884.69719155168 0 |
2845 | +1105 142579.8660116491 -173442.3396182799 0 |
2846 | +1106 134798.6172435659 -142637.474377905 0 |
2847 | +1107 -133838.5146295243 -86150.01022002594 0 |
2848 | +1108 -184171.0652047938 -30477.42325922341 0 |
2849 | +1109 -85181.91119155497 -91386.62133299733 0 |
2850 | +1110 -175039.0575426201 -34319.47658075429 0 |
2851 | +1111 234824.610741697 9499.440200146008 0 |
2852 | +1112 143759.1622832384 111912.3434087175 0 |
2853 | +1113 -80287.04868568794 -72680.47812581126 0 |
2854 | +1114 -54195.43765673733 -201235.3959722118 0 |
2855 | +1115 -107648.5069622212 -122998.0878278137 0 |
2856 | +1116 -148639.0671597647 -157121.5892244488 0 |
2857 | +1117 -152009.9008232519 -47302.54294763658 0 |
2858 | +1118 100167.014784002 181117.0248553218 0 |
2859 | +1119 176088.4744479779 -139673.0529411345 0 |
2860 | +1120 -160032.3017438587 -70819.63740362361 0 |
2861 | +1121 -98080.46544702203 222231.6314409568 0 |
2862 | +1122 -142166.8082015441 -152720.6004326339 0 |
2863 | +1123 106293.6954119336 -182142.9247729547 0 |
2864 | +1124 -103079.7052257477 -116788.8446152232 0 |
2865 | +1125 -12483.4789686866 222595.9059084277 0 |
2866 | +1126 -141352.2296431068 -116570.9481279283 0 |
2867 | +1127 -149084.2993584938 -83313.6593588586 0 |
2868 | +1128 138384.5707622572 119108.0372389527 0 |
2869 | +1129 131642.9782336316 83372.60567220482 0 |
2870 | +1130 -16051.72875840973 204018.0640108733 0 |
2871 | +1131 47990.30409893549 194452.7721279474 0 |
2872 | +1132 158412.49830147 -134624.6705260045 0 |
2873 | +1133 -140617.4720225823 -61082.06790279878 0 |
2874 | +1134 -45761.35010755355 -76741.63706116129 0 |
2875 | +1135 -99378.4288504787 -131354.1634535614 0 |
2876 | +1136 -208705.6616121418 125679.6629914791 0 |
2877 | +1137 -24653.31046791856 -240318.6571066547 0 |
2878 | +1138 -140215.0477545671 -103270.8963853064 0 |
2879 | +1139 -196943.2363575278 13199.07815524223 0 |
2880 | +1140 -75486.36191740216 -91662.07263028729 0 |
2881 | +1141 85786.37496034931 -190972.3496047298 0 |
2882 | +1142 69210.90170231226 186316.4133746451 0 |
2883 | +1143 84743.11839837309 -180215.901151432 0 |
2884 | +1144 -177224.0170274679 -80521.94960483474 0 |
2885 | +1145 -150045.7990611414 -103014.2846276416 0 |
2886 | +1146 -223554.5884521906 -22530.0725612667 0 |
2887 | +1147 -144278.1657249286 -144204.365387975 0 |
2888 | +1148 110703.3236639441 -164465.9268286575 0 |
2889 | +1149 170374.4889851536 79100.90178718341 0 |
2890 | +1150 222261.8188930049 21225.67467778712 0 |
2891 | +1151 36100.98564918186 -238181.0330951175 0 |
2892 | +1152 115159.0328204227 178412.2225773416 0 |
2893 | +1153 -426.9761907328363 199473.6648144666 0 |
2894 | +1154 123121.7810673265 -196116.2976862089 0 |
2895 | +1155 224515.734204336 -422.6953619828907 0 |
2896 | +1156 -176466.9249836903 -24610.74584988717 0 |
2897 | +1157 -64590.07907809047 232212.8075501537 0 |
2898 | +1158 -136497.812028818 -53646.70380188709 0 |
2899 | +1159 199089.0864024843 44460.21158567534 0 |
2900 | +1160 180666.8632112666 -134079.5979216586 0 |
2901 | +1161 3495.811746706164 -239201.949005945 0 |
2902 | +1162 155156.8826005862 77346.8861288691 0 |
2903 | +1163 -101345.4619978723 -109207.1847354905 0 |
2904 | +1164 -85567.89061701631 -103724.1030751134 0 |
2905 | +1165 83213.53063668901 179708.2706721989 0 |
2906 | +1166 184405.6842053455 -92119.66094671446 0 |
2907 | +1167 -143509.8366195948 179433.7221619974 0 |
2908 | +1168 147767.0940457566 -180711.3846758117 0 |
2909 | +1169 149845.5462553452 105684.5137249212 0 |
2910 | +1170 68810.44232127767 176851.7552649553 0 |
2911 | +1171 146055.6403060803 -126502.068762607 0 |
2912 | +1172 -120528.0801449928 185120.1855620662 0 |
2913 | +1173 162873.4092486955 77842.17007945001 0 |
2914 | +1174 -62519.58259160376 -48320.24762955146 0 |
2915 | +1175 -169427.0862620349 -67268.69772011075 0 |
2916 | +1176 130340.5959691456 -188417.5415902451 0 |
2917 | +1177 -15041.59589665807 -235917.3550201746 0 |
2918 | +1178 125487.3934523751 -169217.7669742249 0 |
2919 | +1179 166815.1158711504 85368.78304935298 0 |
2920 | +1180 -178915.6272875426 -158040.9336166149 0 |
2921 | +1181 -71370.8258476112 -72724.31344160263 0 |
2922 | +1182 191925.5911321636 -145589.5704252663 0 |
2923 | +1183 -169869.4522038188 -168868.4952001741 0 |
2924 | +1184 -130104.9716667609 -70405.90472119157 0 |
2925 | +1185 -94978.90134044211 -116349.0498395622 0 |
2926 | +1186 -186806.0035761042 -14175.25484637099 0 |
2927 | +1187 64113.82030450577 -230648.387673464 0 |
2928 | +1188 -204865.834154993 -4803.668432041818 0 |
2929 | +1189 -37955.74192535761 229645.1884955422 0 |
2930 | +1190 146526.6118598036 134797.0765796253 0 |
2931 | +1191 -83089.04947800409 -227641.8489987822 0 |
2932 | +1192 60164.98351450686 -222270.6067813922 0 |
2933 | +1193 133285.2518937692 -107127.7931577238 0 |
2934 | +1194 142089.9313561085 150894.3492569666 0 |
2935 | +1195 108557.9913315363 208617.5462634048 0 |
2936 | +1196 -97137.94572537369 -186680.7346035597 0 |
2937 | +1197 63584.16811321799 193739.299086694 0 |
2938 | +1198 146726.0051716474 120008.5514922918 0 |
2939 | +1199 -154425.4451580342 -172419.9128169762 0 |
2940 | +1200 -206204.8021485187 -126977.3690214394 0 |
2941 | +1201 54434.6769713239 198504.9794813053 0 |
2942 | +1202 134524.435427724 -92634.56604728664 0 |
2943 | +1203 -124395.3468160285 -121308.4903414304 0 |
2944 | +1204 -156796.796196657 -87592.03480644093 0 |
2945 | +1205 111527.115233605 -187083.0129075698 0 |
2946 | +1206 209996.2281933362 45195.69293278926 0 |
2947 | +1207 -176011.6002674014 -108476.2158968495 0 |
2948 | +1208 6916.86507901986 212951.2848389879 0 |
2949 | +1209 -105101.6579496701 207599.4203572391 0 |
2950 | +1210 98557.74670399813 -184906.1769831569 0 |
2951 | +1211 -96800.43267178602 -50625.07928353336 0 |
2952 | +1212 -203412.1570761014 6368.933233172575 0 |
2953 | +1213 91379.07525115121 -185866.9682870865 0 |
2954 | +1214 180876.159731092 91664.59461976054 0 |
2955 | +1215 114200.8813959145 -138276.1327523754 0 |
2956 | +1216 170536.3794150814 -145784.0284136454 0 |
2957 | +1217 103305.7194112093 191002.0992932867 0 |
2958 | +1218 -175746.7308679421 141533.5184916198 0 |
2959 | +1219 -108265.2304062511 -68592.4543232227 0 |
2960 | +1220 -99875.75007076577 191246.3735781745 0 |
2961 | +1221 -227754.2568838017 -12241.367931605 0 |
2962 | +1222 171739.0666248066 110920.0183480651 0 |
2963 | +1223 -108058.2030846709 -85606.94508273435 0 |
2964 | +1224 95092.25523940791 211037.9659009616 0 |
2965 | +1225 -116679.4541892413 -108977.3006894716 0 |
2966 | +1226 -126752.4119304569 -94518.96099339391 0 |
2967 | +1227 -187030.5437353817 -119070.680497525 0 |
2968 | +1228 133698.9860667959 -199480.6389017433 0 |
2969 | +1229 22474.7604890049 197181.9988567137 0 |
2970 | +1230 -133435.9111994 -121141.8020116234 0 |
2971 | +1231 -22137.63051934701 219886.9285615359 0 |
2972 | +1232 122831.9198342969 -131549.9526209622 0 |
2973 | +1233 136138.2570444314 189148.5351703298 0 |
2974 | +1234 159254.2437433284 -93125.14223029224 0 |
2975 | +1235 70798.56628321603 203619.9779952534 0 |
2976 | +1236 -163790.1975962677 -125009.7337618422 0 |
2977 | +1237 -141177.3447642038 -160113.7454038534 0 |
2978 | +1238 149680.1786981561 172736.5036705451 0 |
2979 | +1239 121021.8743976442 199248.4748957994 0 |
2980 | +1240 173094.3620224289 -131087.7517449917 0 |
2981 | +1241 19271.19667917526 -236722.2924861054 0 |
2982 | +1242 81663.53281291762 188732.6854860887 0 |
2983 | +1243 -169597.691782887 -117706.7651098225 0 |
2984 | +1244 -238988.1013818613 28401.04392653084 0 |
2985 | +1245 118888.1381659979 -103436.5162169441 0 |
2986 | +1246 92774.74484587256 -213131.4183730377 0 |
2987 | +1247 152822.2494569451 90659.25336895786 0 |
2988 | +1248 -34663.34437417756 -241405.0368913339 0 |
2989 | +1249 -163704.7497328935 -133628.3346527073 0 |
2990 | +1250 -155977.8500368736 -182311.168576853 0 |
2991 | +1251 -124392.7249013813 -63553.24418338289 0 |
2992 | +1252 -135678.3984309177 -147122.4500804257 0 |
2993 | +1253 119864.996784931 -159733.8899778557 0 |
2994 | +1254 54279.96481408612 189175.1277894078 0 |
2995 | +1255 -191169.4863796443 -146287.3838812336 0 |
2996 | +1256 -171724.6847672648 132533.6224180053 0 |
2997 | +1257 -212257.3307918837 117622.7775661888 0 |
2998 | +1258 240457.1995238626 -32270.28449137539 0 |
2999 | +1259 150654.1464563691 127774.5051254995 0 |
3000 | +1260 130922.9420976223 -135242.0868298433 0 |
3001 | +1261 -56430.10239159135 -68799.98443913418 0 |
3002 | +1262 174419.0267414203 -99360.26796225931 0 |
3003 | +1263 149754.8864331899 151686.9426209612 0 |
3004 | +1264 84241.73155680462 -212396.2369911762 0 |
3005 | +1265 -185393.4275557786 -93763.04124516596 0 |
3006 | +1266 85759.34914002499 -198569.8342895216 0 |
3007 | +1267 159261.637372929 -80623.08417417888 0 |
3008 | +1268 -107729.2464653907 -161042.3775349597 0 |
3009 | +1269 -136191.8193772317 -132232.0486765117 0 |
3010 | +1270 -213108.104975593 -118462.6293033293 0 |
3011 | +1271 -228564.2995000933 13519.98036909556 0 |
3012 | +1272 116306.3152737379 -170305.4172471869 0 |
3013 | +1273 -91127.76064712345 -43627.72093807062 0 |
3014 | +1274 -99262.55759449945 -80999.91630362204 0 |
3015 | +1275 -206799.9951229166 23706.71775096551 0 |
3016 | +1276 -122638.5413302685 -42667.79813477333 0 |
3017 | +1277 140767.6094995596 -111712.8616646071 0 |
3018 | +1278 206375.5004556807 -123723.4206385355 0 |
3019 | +1279 108291.0907500674 216321.1603136429 0 |
3020 | +1280 -15488.51881596713 213527.4159674899 0 |
3021 | +1281 180659.366563527 -116951.6772791569 0 |
3022 | +1282 39347.50706842287 195642.5872798223 0 |
3023 | +1283 52653.45474619357 209296.5167424527 0 |
3024 | +1284 -149273.7919061383 -90126.34688892667 0 |
3025 | +1285 -193777.2608099132 -8607.080040062358 0 |
3026 | +1286 87543.75248721968 214352.8007284385 0 |
3027 | +1287 239551.8444197999 25138.29959082396 0 |
3028 | +1288 88011.08457606002 185844.9575665144 0 |
3029 | +1289 180175.0893096784 -146980.7858089986 0 |
3030 | +1290 158388.7811314368 70478.61010831279 0 |
3031 | +1291 157255.5910234618 119430.8668502962 0 |
3032 | +1292 30646.39534186335 201386.357558357 0 |
3033 | +1293 -155511.9918149978 182037.6141345626 0 |
3034 | +1294 129988.6805598959 167746.942901829 0 |
3035 | +1295 139542.325628099 -121851.1979066071 0 |
3036 | +1296 -15394.68768187914 -243508.3353259199 0 |
3037 | +1297 219180.3848893476 38004.97713003864 0 |
3038 | +1298 100160.3154455169 -174801.535285789 0 |
3039 | +1299 -228852.2155192454 -81934.98197400887 0 |
3040 | +1300 233894.0469693896 51669.74721332746 0 |
3041 | +1301 -93265.40162546693 -214006.1779068513 0 |
3042 | +1302 72267.80013420548 -224618.2899017581 0 |
3043 | +1303 80153.07621834691 198701.4494434667 0 |
3044 | +1304 -71889.52114189365 -200305.2404980132 0 |
3045 | +1305 -160687.6149515523 -168836.9416864129 0 |
3046 | +1306 184484.3246394409 -110647.1157959083 0 |
3047 | +1307 -155008.024045086 -162962.3858880006 0 |
3048 | +1308 -178859.5339470621 -63745.66184458975 0 |
3049 | +1309 204399.587671425 126547.9369537668 0 |
3050 | +1310 -190705.1948719985 -135382.3220298259 0 |
3051 | +1311 -191936.4466147527 147781.2475473136 0 |
3052 | +1312 174979.0564290929 164596.3871106242 0 |
3053 | +1313 154572.9231836475 134731.8756624879 0 |
3054 | +1314 194776.6997065747 108043.9581047598 0 |
3055 | +1315 157138.7447524739 -184191.4058206214 0 |
3056 | +1316 175462.8467630178 -109733.9516256348 0 |
3057 | +1317 -115435.3610132053 -82511.78161586776 0 |
3058 | +1318 -146624.9466123014 -178253.4847035329 0 |
3059 | +1319 143897.8358695298 142459.7638072417 0 |
3060 | +1320 -100463.6257170005 -212792.8395677296 0 |
3061 | +1321 -109277.7850643777 -102899.9792286594 0 |
3062 | +1322 -202283.710871603 -60118.43644966822 0 |
3063 | +1323 -198853.0346996154 -133888.4444162882 0 |
3064 | +1324 168979.8450288423 155392.6282229437 0 |
3065 | +1325 -82976.72004253168 -193127.7333227821 0 |
3066 | +1326 114008.9637283492 -194048.3805834881 0 |
3067 | +1327 -18835.44733320712 229760.2362579072 0 |
3068 | +1328 30263.15130523958 193772.6435309807 0 |
3069 | +1329 167985.5662478427 -160515.4134936545 0 |
3070 | +1330 225511.4752835021 10295.60329779322 0 |
3071 | +1331 143726.0466867872 161559.2915362007 0 |
3072 | +1332 -189617.2300464824 -44758.22772530988 0 |
3073 | +1333 -113637.2485059449 182974.7259017955 0 |
3074 | +1334 233585.3036811493 -6137.008746087672 0 |
3075 | +1335 -48212.81372274329 -219903.9941007147 0 |
3076 | +1336 -84578.72710912618 206239.595674519 0 |
3077 | +1337 -114089.7041873746 -74311.92615559514 0 |
3078 | +1338 173504.4986472501 147071.5038544042 0 |
3079 | +1339 58784.90399718819 217586.6611187255 0 |
3080 | +1340 -116463.1397449486 -66741.04486906152 0 |
3081 | +1341 97993.58433063012 219124.6704621469 0 |
3082 | +1342 -83746.79164299337 -217385.4598328453 0 |
3083 | +1343 -112226.6138197335 -193146.865857439 0 |
3084 | +1344 52474.41881260421 -235845.7988389732 0 |
3085 | +1345 231899.2405764436 18544.38806085605 0 |
3086 | +1346 107233.0954617259 -200770.8759097464 0 |
3087 | +1347 228507.4787268909 29867.59446047532 0 |
3088 | +1348 200204.3811689111 -106793.9585506426 0 |
3089 | +1349 125023.3556054152 -140991.1235348498 0 |
3090 | +1350 186175.8976690908 107205.8516907449 0 |
3091 | +1351 116982.2130241974 210069.3119981686 0 |
3092 | +1352 -179389.732703988 -44915.82122929456 0 |
3093 | +1353 -178716.4566183778 -118740.1302559618 0 |
3094 | +1354 -236572.3930556233 40910.83456233911 0 |
3095 | +1355 -122385.8588163103 -74480.112020214 0 |
3096 | +1356 -171788.7728346405 -158859.1490563561 0 |
3097 | +1357 -88934.85744536467 -62021.57972669636 0 |
3098 | +1358 148224.3845347024 71196.82169684541 0 |
3099 | +1359 -29012.0710821683 233414.354538226 0 |
3100 | +1360 -131003.1500744507 -102540.7490855812 0 |
3101 | +1361 203598.7054680136 73181.83186060295 0 |
3102 | +1362 15169.36139751513 204600.9990058482 0 |
3103 | +1363 -141044.9702948655 -80389.51484043461 0 |
3104 | +1364 -149324.7909502686 190953.6377175044 0 |
3105 | +1365 -602.2606421308117 220911.2498356341 0 |
3106 | +1366 -87044.29035427215 -207413.2954215223 0 |
3107 | +1367 190939.4365791226 87370.67362576516 0 |
3108 | +1368 -157336.3538226585 -152226.6560932115 0 |
3109 | +1369 -216946.5428900755 15856.7904727994 0 |
3110 | +1370 -213437.2739666846 -97884.6045791435 0 |
3111 | +1371 -225786.7100636066 -685.735830989731 0 |
3112 | +1372 83086.91024963684 -228189.1528251647 0 |
3113 | +1373 -187021.7405958103 -51474.27369883806 0 |
3114 | +1374 183886.4107800368 82675.9557676909 0 |
3115 | +1375 159062.9430749921 172525.7780426193 0 |
3116 | +1376 79785.73998161367 209051.0811992121 0 |
3117 | +1377 -115504.2901290805 -92222.50818155111 0 |
3118 | +1378 192402.8410918781 76580.92748633034 0 |
3119 | +1379 -209949.0257772341 -63935.89866334302 0 |
3120 | +1380 116806.301730353 -203105.6228519939 0 |
3121 | +1381 92963.09476114044 20510.01282746776 0 |
3122 | +1382 105222.4032939885 20608.82969189737 0 |
3123 | +1383 271.404952578537 -138959.6927374035 0 |
3124 | +1384 34851.42345601279 -104886.7497954925 0 |
3125 | +1385 72653.72789697074 -66212.37392662704 0 |
3126 | +1386 84686.66255592411 -8823.190111306825 0 |
3127 | +1387 86686.74947420349 51985.09462052269 0 |
3128 | +1388 97687.68269648527 54935.64269949668 0 |
3129 | +1389 81695.33340229269 40528.87219069753 0 |
3130 | +1390 76944.24233676349 -37128.2545961982 0 |
3131 | +1391 43324.99429047195 -102075.0023555029 0 |
3132 | +1392 84417.79885129642 27703.64698159886 0 |
3133 | +1393 54721.94048076472 -133762.6926950934 0 |
3134 | +1394 9587.622021567791 -133972.687064838 0 |
3135 | +1395 88070.77377130187 -39242.80256153645 0 |
3136 | +1396 -41469.97060395407 -153139.8120753601 0 |
3137 | +1397 -16424.65537617961 -174695.0913131185 0 |
3138 | +1398 46218.11110517011 -136691.9241127938 0 |
3139 | +1399 -22043.96725335947 -145478.5700754783 0 |
3140 | +1400 72826.20810690967 -99449.15844822326 0 |
3141 | +1401 98685.10520299088 -35778.31433926049 0 |
3142 | +1402 73832.12976356155 -7013.391163319987 0 |
3143 | +1403 105039.6619129817 -5666.48799759742 0 |
3144 | +1404 111187.743085347 31222.60190101586 0 |
3145 | +1405 94986.45718411467 -9860.722518423059 0 |
3146 | +1406 20032.81930083136 -162215.3904231489 0 |
3147 | +1407 519.6678448908025 -189050.4571269269 0 |
3148 | +1408 83015.03712698157 -62803.49381639454 0 |
3149 | +1409 116588.8517650062 -6974.024579347374 0 |
3150 | +1410 2544.770443039372 -166263.2762972051 0 |
3151 | +1411 -32640.92141770664 -149329.2982775923 0 |
3152 | +1412 -20677.12188443224 -123176.2149769048 0 |
3153 | +1413 108188.3559317831 -30625.31741871472 0 |
3154 | +1414 -10512.59854692115 -142061.9395637028 0 |
3155 | +1415 -59010.30179385791 -137226.620026289 0 |
3156 | +1416 -26488.70762393014 -180178.4100108793 0 |
3157 | +1417 120077.5073802947 -29242.23017149377 0 |
3158 | +1418 169239.5450295993 -28838.33827835645 0 |
3159 | +1419 112380.8137823437 43141.88503367525 0 |
3160 | +1420 9554.8104378105 -186124.0874012787 0 |
3161 | +1421 17870.42514396353 -129629.2488353042 0 |
3162 | +1422 103087.2894068344 -55174.19128600549 0 |
3163 | +1423 12876.44168301777 -166105.0032137194 0 |
3164 | +1424 93207.72195212641 -58815.01763703864 0 |
3165 | +1425 84264.08101296371 14839.61442541024 0 |
3166 | +1426 130350.7238505303 -28081.78406337881 0 |
3167 | +1427 61424.4274502697 -113237.766838273 0 |
3168 | +1428 138741.6752906716 -5485.019665703979 0 |
3169 | +1429 33123.07461393865 -115303.2987381274 0 |
3170 | +1430 128405.2791660912 -5704.514759450387 0 |
3171 | +1431 22721.16728698086 -154413.0134726955 0 |
3172 | +1432 159762.5738357945 -26932.84992695283 0 |
3173 | +1433 68705.56094534816 -16296.19697162387 0 |
3174 | +1434 161075.9712464223 -4941.608501546616 0 |
3175 | +1435 -30162.10880791233 -126981.92205265 0 |
3176 | +1436 60661.45498732103 -46902.21432454829 0 |
3177 | +1437 62669.62251941769 -69897.94250007941 0 |
3178 | +1438 -9652.4931883932 -163251.6223991378 0 |
3179 | +1439 88257.74928819473 -18591.63450446503 0 |
3180 | +1440 31975.03555922001 -147372.4178187276 0 |
3181 | +1441 4871.14100660073 -154442.5444661195 0 |
3182 | +1442 171779.2548335361 -333.9247373551673 0 |
3183 | +1443 113330.197358524 -52479.76481774569 0 |
3184 | +1444 77889.15203637637 -47179.42329388915 0 |
3185 | +1445 25260.5083800516 -123400.364803882 0 |
3186 | +1446 64934.02614365928 -37490.34155100465 0 |
3187 | +1447 115935.1339642438 15330.66496861288 0 |
3188 | +1448 -39629.26902409496 -130499.8931064749 0 |
3189 | +1449 -68530.29004246944 -141906.3603389757 0 |
3190 | +1450 140194.1364677047 -27168.79828136398 0 |
3191 | +1451 51267.85328775437 -109551.4431976171 0 |
3192 | +1452 39042.67481870289 -140853.7671262053 0 |
3193 | +1453 65337.4146344806 -92799.18015961252 0 |
3194 | +1454 148963.7427454234 -5141.933774098809 0 |
3195 | +1455 150053.4013276557 -26693.65695714735 0 |
3196 | +1456 -95467.93492377963 -9391.398931766091 0 |
3197 | +1457 157.5544388376601 76860.39921332859 0 |
3198 | +1458 -2440.270371841355 -116214.4543941643 0 |
3199 | +1459 -2231.900042788762 67582.25127539469 0 |
3200 | +1460 20474.2293424999 60579.42215085498 0 |
3201 | +1461 -20650.42642476603 -163577.5243701327 0 |
3202 | +1462 128164.0450901444 15758.69180545151 0 |
3203 | +1463 123659.9869859104 -50530.71104829712 0 |
3204 | +1464 81436.24650225478 -72239.80747418586 0 |
3205 | +1465 -22515.20580570175 177878.137382451 0 |
3206 | +1466 -109037.0449471927 7402.142066485824 0 |
3207 | +1467 -19945.24190759154 -102250.2060645014 0 |
3208 | +1468 -50312.93022712095 -156154.0358886749 0 |
3209 | +1469 177589.0994704337 20216.50806702833 0 |
3210 | +1470 19766.33451619647 -182608.0216123352 0 |
3211 | +1471 73009.13428642348 34138.6609619071 0 |
3212 | +1472 55336.16196843555 -122854.9933482784 0 |
3213 | +1473 -91647.89548877494 -1511.449191995906 0 |
3214 | +1474 142486.7517756403 -47626.80969815635 0 |
3215 | +1475 -11299.74541706639 -119648.1074367995 0 |
3216 | +1476 -35930.71721781854 -174961.7856766818 0 |
3217 | +1477 -12936.98002152865 94018.1846224297 0 |
3218 | +1478 100105.0052802522 -65255.84325046258 0 |
3219 | +1479 -18554.77543091154 -93902.39308228927 0 |
3220 | +1480 13405.91012985268 54561.27111306947 0 |
3221 | +1481 -16049.3101311816 84364.95715619462 0 |
3222 | +1482 -58966.7046666935 -126861.2070544573 0 |
3223 | +1483 37475.34401450346 -128347.1521645278 0 |
3224 | +1484 175553.659355296 -22325.15247376659 0 |
3225 | +1485 106069.4205357077 -43027.27568930755 0 |
3226 | +1486 102196.087402845 4642.148155609248 0 |
3227 | +1487 -79231.73022741334 -17190.05407776679 0 |
3228 | +1488 -103230.8496226792 16611.91330414317 0 |
3229 | +1489 122846.0005699412 5436.121514167688 0 |
3230 | +1490 -38358.38341513068 193916.304220802 0 |
3231 | +1491 113649.3893215739 -19304.19340002791 0 |
3232 | +1492 133188.520878102 -48861.82056592553 0 |
3233 | +1493 151056.358783601 -46554.74812081928 0 |
3234 | +1494 -42034.88088801677 -164030.7136116028 0 |
3235 | +1495 6921.137769345672 47916.47676745459 0 |
3236 | +1496 21404.63841289821 -204727.2056195305 0 |
3237 | +1497 -27505.66131443961 108557.1534989479 0 |
3238 | +1498 72360.13882250687 12220.09329672603 0 |
3239 | +1499 64284.97663797007 -58272.3817585077 0 |
3240 | +1500 40208.89900005616 53592.68834625775 0 |
3241 | +1501 91132.20913961867 73545.76703742878 0 |
3242 | +1502 154726.0418649116 -15868.76566712034 0 |
3243 | +1503 19739.12966187114 -142073.2226667976 0 |
3244 | +1504 -116999.2221735765 28749.89914848868 0 |
3245 | +1505 138227.3946978935 15019.39443485899 0 |
3246 | +1506 53194.39503383757 -53940.93976239293 0 |
3247 | +1507 80211.91232202553 2349.086160015293 0 |
3248 | +1508 147792.4709517811 14758.50530066508 0 |
3249 | +1509 59811.11754070211 47831.8518242674 0 |
3250 | +1510 71849.34847588163 -133640.9061921196 0 |
3251 | +1511 -19769.1208566151 76351.75444558692 0 |
3252 | +1512 11909.87250628011 -211371.4070965812 0 |
3253 | +1513 186343.1682994117 -36440.20549412692 0 |
3254 | +1514 -14033.53414924177 51525.45200644753 0 |
3255 | +1515 -20202.33549905131 -135253.6737583575 0 |
3256 | +1516 73066.37369363087 69621.43244747068 0 |
3257 | +1517 -24377.21338060319 68583.32980255115 0 |
3258 | +1518 -46298.23186420489 -174556.6172176029 0 |
3259 | +1519 64842.02579299526 28960.96493906607 0 |
3260 | +1520 -29395.88787849581 100382.6099107286 0 |
3261 | +1521 65700.77529372316 54567.29923123141 0 |
3262 | +1522 98307.01436084478 77590.17176797957 0 |
3263 | +1523 134386.1539945968 -16617.90510480519 0 |
3264 | +1524 98692.65089367311 114138.8825762193 0 |
3265 | +1525 -8469.814066954745 59010.71411479954 0 |
3266 | +1526 -87393.66179867396 6681.902019991794 0 |
3267 | +1527 78760.85135676466 -118566.6345306195 0 |
3268 | +1528 126742.1060671361 -39362.53366826972 0 |
3269 | +1529 -33192.48808231451 198918.591918538 0 |
3270 | +1530 -20600.24816118781 -112408.78304032 0 |
3271 | +1531 -38427.72815540549 -100782.937261992 0 |
3272 | +1532 -59647.88031378281 -157594.7759046911 0 |
3273 | +1533 -49285.10993040551 -133997.7806941854 0 |
3274 | +1534 27093.07630538948 42123.43913454739 0 |
3275 | +1535 -82702.22596599074 14387.3219130658 0 |
3276 | +1536 70369.76297156583 61901.01196482719 0 |
3277 | +1537 71159.78959798622 -27728.82068355418 0 |
3278 | +1538 -16495.6693728066 184701.5092545634 0 |
3279 | +1539 82769.7785291131 71157.16099618626 0 |
3280 | +1540 -97849.62418351935 24267.54216051753 0 |
3281 | +1541 -71037.74258250142 -1451.033078993985 0 |
3282 | +1542 45504.53776471742 -35562.97880227119 0 |
3283 | +1543 -39926.48175059559 -142134.0847575248 0 |
3284 | +1544 197784.0411258414 -22882.09445215291 0 |
3285 | +1545 219043.2858183646 -40000.56658745548 0 |
3286 | +1546 14514.45685861461 -105938.907484384 0 |
3287 | +1547 120393.7885611295 -60224.90608572987 0 |
3288 | +1548 -39268.10572779961 -120106.8135050746 0 |
3289 | +1549 -2657.110242768155 -199831.5748086488 0 |
3290 | +1550 -32334.55919256614 92627.76442861935 0 |
3291 | +1551 167949.035635409 17381.34861629535 0 |
3292 | +1552 -4872.459556089019 34523.75365844054 0 |
3293 | +1553 157232.9581741878 15339.71876329827 0 |
3294 | +1554 -36068.35189516393 84926.65943917622 0 |
3295 | +1555 2384.487761191992 57314.51994394013 0 |
3296 | +1556 98070.93387909821 98315.41443639524 0 |
3297 | +1557 143355.4121419201 4943.791203717045 0 |
3298 | +1558 -44546.90271864105 70135.81461163936 0 |
3299 | +1559 -34196.27196858256 53923.99263679414 0 |
3300 | +1560 -1799.435892668576 -128344.5361161857 0 |
3301 | +1561 -40177.73424637139 77466.11148006983 0 |
3302 | +1562 58744.2344268091 3162.660121308598 0 |
3303 | +1563 -62671.67295513971 12994.65544939374 0 |
3304 | +1564 46334.25063835357 36015.51760755788 0 |
3305 | +1565 -73077.18030344759 28783.50431159757 0 |
3306 | +1566 51844.67132596475 -155754.7846831844 0 |
3307 | +1567 -37697.26582387011 -91445.54443385004 0 |
3308 | +1568 14714.64761170968 30140.5228895212 0 |
3309 | +1569 -85305.29792159048 -9189.804481312081 0 |
3310 | +1570 5887.955053506649 -111981.426332995 0 |
3311 | +1571 164552.4283612309 7246.054543710484 0 |
3312 | +1572 -24569.96574646572 37598.47285192135 0 |
3313 | +1573 62821.83727513143 38353.84590835777 0 |
3314 | +1574 53324.45208005977 -3397.823854845217 0 |
3315 | +1575 41722.33035660717 -163201.6026811854 0 |
3316 | +1576 -11062.95893095902 -99760.28578586459 0 |
3317 | +1577 160393.4888628665 -45951.30401128143 0 |
3318 | +1578 220573.8399114606 -55950.69043088261 0 |
3319 | +1579 62977.18619371833 -5929.329972039547 0 |
3320 | +1580 -74981.94217258516 -9079.759818651119 0 |
3321 | +1581 -53860.98786139208 56097.82663556241 0 |
3322 | +1582 -44061.47766006412 40083.70669401513 0 |
3323 | +1583 90341.09938668199 62934.78167101267 0 |
3324 | +1584 56092.90591963122 -90206.21677835741 0 |
3325 | +1585 -66966.39646541684 5840.013098267352 0 |
3326 | +1586 -67658.41162991516 -121493.6584613992 0 |
3327 | +1587 -53560.33783519963 26624.73091891455 0 |
3328 | +1588 -63405.53709885775 42438.93827201943 0 |
3329 | +1589 -8875.544418729967 -191196.5361622752 0 |
3330 | +1590 47406.19304485052 -9546.128813407702 0 |
3331 | +1591 63559.78471391468 -132650.0185292563 0 |
3332 | +1592 -45179.33288783656 107609.363343833 0 |
3333 | +1593 33524.98810424456 24724.76175354903 0 |
3334 | +1594 -92569.268795956 31394.31715309269 0 |
3335 | +1595 91186.74448710319 93498.10856310918 0 |
3336 | +1596 121310.8878994549 37079.70553402227 0 |
3337 | +1597 -34388.88484740273 24319.03325485385 0 |
3338 | +1598 881.8948231683493 41124.66577747718 0 |
3339 | +1599 228997.3337756786 -55022.38640809843 0 |
3340 | +1600 -40765.15441994708 177780.462849858 0 |
3341 | +1601 46232.11613464532 59417.41324698112 0 |
3342 | +1602 -29227.28056009574 61154.9234873314 0 |
3343 | +1603 -15345.58448772944 21675.45059137114 0 |
3344 | +1604 -107681.7758164306 26489.07375965538 0 |
3345 | +1605 40389.30441196931 7795.415882779484 0 |
3346 | +1606 -10005.36268379445 75960.12591959174 0 |
3347 | +1607 -97531.94979698495 7271.579010096394 0 |
3348 | +1608 29287.89174486694 -3405.982515792218 0 |
3349 | +1609 134121.4350057003 24406.40117184145 0 |
3350 | +1610 -105988.6412466203 42349.78539862626 0 |
3351 | +1611 -19348.01896920444 44458.13530143326 0 |
3352 | +1612 3536.835915280555 18072.21534707565 0 |
3353 | +1613 -82532.12566499702 45067.35778782718 0 |
3354 | +1614 131311.5122408876 33571.47079157053 0 |
3355 | +1615 20290.61977346068 -192247.9663035365 0 |
3356 | +1616 -58901.15842426345 -148010.6111263359 0 |
3357 | +1617 20773.58461198177 36174.67305979278 0 |
3358 | +1618 -111371.7659917362 35958.83586984136 0 |
3359 | +1619 195165.8950072248 -39231.21967957616 0 |
3360 | +1620 -29494.31757846491 -106225.4269016688 0 |
3361 | +1621 89195.42569481269 127463.0434553201 0 |
3362 | +1622 -77918.10186396043 21696.01250816795 0 |
3363 | +1623 -59477.69396536666 78994.20508824049 0 |
3364 | +1624 51659.39153040067 65199.3226071505 0 |
3365 | +1625 -63820.94940510725 72038.87250454571 0 |
3366 | +1626 -87487.15815858233 38311.72853407152 0 |
3367 | +1627 -49136.13464686417 63071.59964527615 0 |
3368 | +1628 1643.717289980313 -178373.1558057196 0 |
3369 | +1629 22051.53212053141 13231.26167565392 0 |
3370 | +1630 -72921.5384188145 58493.07956148445 0 |
3371 | +1631 -51560.56117072408 -1769.787299243039 0 |
3372 | +1632 11805.52831676538 168575.4066843735 0 |
3373 | +1633 34825.60755387133 2104.696326422869 0 |
3374 | +1634 -39148.71583578581 46958.26963412898 0 |
3375 | +1635 -43445.83364724058 11345.88263551082 0 |
3376 | +1636 -51532.40167538612 93174.56369098795 0 |
3377 | +1637 19199.14099087453 69125.58724013403 0 |
3378 | +1638 -39604.18355172814 186193.7782653438 0 |
3379 | +1639 -55401.69580628449 86042.07718781754 0 |
3380 | +1640 -58656.29576541625 -15395.22622704318 0 |
3381 | +1641 205638.3499687098 -25118.693947465 0 |
3382 | +1642 -56948.82212221317 -117393.5019770874 0 |
3383 | +1643 -78807.16889132893 -125638.4821266781 0 |
3384 | +1644 90555.98227163451 112110.5196389002 0 |
3385 | +1645 -58616.34332288372 49254.33886800392 0 |
3386 | +1646 -12336.09860955865 161446.7866568468 0 |
3387 | +1647 11442.77395120631 2126.31374496519 0 |
3388 | +1648 -68233.91785081176 35633.87498033899 0 |
3389 | +1649 -77674.69393116886 51808.96460496847 0 |
3390 | +1650 -96051.33732933602 55137.90025881311 0 |
3391 | +1651 192152.161959967 -30053.87843817414 0 |
3392 | +1652 33704.0749739939 47903.08592548766 0 |
3393 | +1653 9006.439974767849 24050.16237177934 0 |
3394 | +1654 -24800.6796695566 9275.475637305099 0 |
3395 | +1655 -63974.39671291864 108302.1278836595 0 |
3396 | +1656 83653.69417129441 89491.17729536899 0 |
3397 | +1657 35190.56311796377 -20468.4825449053 0 |
3398 | +1658 -47514.02921429056 -113884.9481660988 0 |
3399 | +1659 -58185.07962944286 19858.25076470444 0 |
3400 | +1660 -48848.14744497248 33328.65703790643 0 |
3401 | +1661 23196.85971694584 -170632.4475044508 0 |
3402 | +1662 -68307.33290551695 65242.60168476819 0 |
3403 | +1663 54771.14902486763 -73882.9946088162 0 |
3404 | +1664 -17402.87286513288 -184559.9795931049 0 |
3405 | +1665 -77906.99538584588 81091.32867435356 0 |
3406 | +1666 -69799.94810136326 95462.13880628852 0 |
3407 | +1667 -32549.37020641211 178233.5937376882 0 |
3408 | +1668 -38624.15282202487 -110258.2061675465 0 |
3409 | +1669 -6560.667592561014 6374.461619433321 0 |
3410 | +1670 42685.33038346123 157512.7971550899 0 |
3411 | +1671 -29538.11434065408 30911.86357533164 0 |
3412 | +1672 -10198.11128103701 28017.56563207452 0 |
3413 | +1673 -82261.02586176875 74487.72149098954 0 |
3414 | +1674 76292.05997944622 52554.09888319499 0 |
3415 | +1675 25351.24912258618 -105615.9446653135 0 |
3416 | +1676 -86715.71841931906 68013.86792210214 0 |
3417 | +1677 -91341.95397356595 61548.31025258313 0 |
3418 | +1678 -58253.10236854607 122025.3072347866 0 |
3419 | +1679 83932.03926707103 107881.6220457877 0 |
3420 | +1680 67137.95661943167 -104800.7546749909 0 |
3421 | +1681 -100949.1764224761 48709.25991232925 0 |
3422 | +1682 -48158.02806675911 100360.4752343027 0 |
3423 | +1683 145890.6564541708 -37178.46052312916 0 |
3424 | +1684 -113548.7262151078 59372.07519239964 0 |
3425 | +1685 3748.891978175398 154266.6700013589 0 |
3426 | +1686 53072.98815821647 41718.96980068748 0 |
3427 | +1687 -19007.68044407703 60128.88668520896 0 |
3428 | +1688 -1408.974888429286 -94958.8252969091 0 |
3429 | +1689 170427.1320165003 26640.69035462932 0 |
3430 | +1690 39785.59475345491 30401.07654972247 0 |
3431 | +1691 27690.00429576388 18945.12283863452 0 |
3432 | +1692 -34470.78490034118 -4562.675551689097 0 |
3433 | +1693 -124334.1066431659 45942.23175152807 0 |
3434 | +1694 -64925.25515781803 101172.5736710205 0 |
3435 | +1695 -38999.30334543893 17808.00436370918 0 |
3436 | +1696 -18422.29674177143 111417.1695282991 0 |
3437 | +1697 58955.00373570951 -22325.63418646079 0 |
3438 | +1698 96512.04041246395 131532.8679611888 0 |
3439 | +1699 -40822.38979483681 122102.6654304779 0 |
3440 | +1700 -52491.0514175814 135692.9472804375 0 |
3441 | +1701 -122370.2920780651 74368.50434360361 0 |
3442 | +1702 -104429.2994469172 71475.13842306616 0 |
3443 | +1703 -33087.53532799518 -185509.2554046834 0 |
3444 | +1704 -73803.51151410867 87775.94309837588 0 |
3445 | +1705 -22636.95064097485 92540.53822098952 0 |
3446 | +1706 -232486.6138496761 70673.89400194508 0 |
3447 | +1707 -47606.57616551272 4793.892533682508 0 |
3448 | +1708 45678.03775812447 13605.53387831408 0 |
3449 | +1709 38932.30674946676 -84084.81134072963 0 |
3450 | +1710 -15871.94057189436 -194573.5598399759 0 |
3451 | +1711 43373.46735932802 44821.37564415985 0 |
3452 | +1712 77556.83696822749 85491.08829919489 0 |
3453 | +1713 -98782.15747200153 -19333.37190005623 0 |
3454 | +1714 -75793.08144529913 124370.7533594457 0 |
3455 | +1715 16666.35393879089 7609.597807112572 0 |
3456 | +1716 186526.557135183 -56856.39037988605 0 |
3457 | +1717 41389.97835915999 -15079.74825387796 0 |
3458 | +1718 164004.6904976779 -37552.00689068746 0 |
3459 | +1719 -9290.652319638772 42943.67975407661 0 |
3460 | +1720 -112826.9236709284 87403.62509655363 0 |
3461 | +1721 63637.29206526723 -150602.1334283214 0 |
3462 | +1722 -41474.3142970268 -16160.73081871416 0 |
3463 | +1723 152279.8394423041 23507.66637862366 0 |
3464 | +1724 63813.39467515636 9732.991093466799 0 |
3465 | +1725 50108.16167265425 -97479.19767708161 0 |
3466 | +1726 -87817.09925182925 22849.63122486528 0 |
3467 | +1727 -108964.6085877273 65383.18434009006 0 |
3468 | +1728 -99225.22402372978 78659.04852836907 0 |
3469 | +1729 17221.05506446509 -14379.83701364813 0 |
3470 | +1730 -55234.68783489359 -8568.514919744097 0 |
3471 | +1731 148693.6346650253 31713.2870210974 0 |
3472 | +1732 -76398.57404607217 -135256.7215181931 0 |
3473 | +1733 -130106.5934360397 96645.52065767675 0 |
3474 | +1734 -117735.2463425621 81055.30648062375 0 |
3475 | +1735 -62009.39497346467 -24037.92786684056 0 |
3476 | +1736 27892.13777188016 65346.36957157625 0 |
3477 | +1737 212731.6192725208 -22834.82427463859 0 |
3478 | +1738 177961.0660965548 -32769.06242165979 0 |
3479 | +1739 210345.8966171154 -33806.71262078235 0 |
3480 | +1740 -30113.34611384563 76874.23785886307 0 |
3481 | +1741 34233.26740282254 70302.9251927202 0 |
3482 | +1742 56897.91020449083 71527.76704218333 0 |
3483 | +1743 84793.96483384345 -111805.8806941207 0 |
3484 | +1744 -1614.447833402785 12136.77875220053 0 |
3485 | +1745 23717.76670381741 51201.97828018293 0 |
3486 | +1746 -147427.4024610098 97994.71714283581 0 |
3487 | +1747 -93364.01606898408 86056.64584816068 0 |
3488 | +1748 -20172.03424453317 15419.28823726607 0 |
3489 | +1749 -77028.35188644154 6270.820140795905 0 |
3490 | +1750 -111221.305740246 -3978.629703013889 0 |
3491 | +1751 10900.38754830158 38840.89751314842 0 |
3492 | +1752 -119002.6307969234 52577.57506688347 0 |
3493 | +1753 127656.667264356 -67319.30268993483 0 |
3494 | +1754 15532.11377272535 -117984.6317895168 0 |
3495 | +1755 -48272.75601376869 -29971.56231044056 0 |
3496 | +1756 139971.6765972099 31971.87588338999 0 |
3497 | +1757 23369.10607934833 -9127.648991872484 0 |
3498 | +1758 -35946.06230550455 -37463.12800308184 0 |
3499 | +1759 -384.5404803984068 178253.7921232349 0 |
3500 | +1760 52532.08290159242 -27759.3076907832 0 |
3501 | +1761 -177414.6606892848 164082.9637801136 0 |
3502 | +1762 -29296.21415176143 45761.57243231282 0 |
3503 | +1763 30349.88930647244 33328.37779776756 0 |
3504 | +1764 164647.5402106002 33916.06792421383 0 |
3505 | +1765 -107146.9101116686 94234.52963323482 0 |
3506 | +1766 -95038.09549200478 122397.0820855421 0 |
3507 | +1767 169505.0956966618 -45586.28117937043 0 |
3508 | +1768 139230.9371037254 -56536.04673975004 0 |
3509 | +1769 -39276.7536338987 62098.01773511554 0 |
3510 | +1770 70517.34765942821 -115815.4689841144 0 |
3511 | +1771 61931.78912108961 -81057.84025292231 0 |
3512 | +1772 185671.8393357032 -16665.66019835707 0 |
3513 | +1773 -29763.06927530351 2253.369842167365 0 |
3514 | +1774 197627.5323031626 -49852.53036726604 0 |
3515 | +1775 30294.99649038615 -162956.9453881495 0 |
3516 | +1776 81211.51021283567 -101556.749128686 0 |
3517 | +1777 -61332.568118509 115223.4846568865 0 |
3518 | +1778 -17892.0030810016 -84832.67153493314 0 |
3519 | +1779 5446.601046521036 -4233.44627202112 0 |
3520 | +1780 156285.2893954423 30641.54914022065 0 |
3521 | +1781 -184783.0300744233 155819.8268020851 0 |
3522 | +1782 -77872.75286769397 36908.85517773787 0 |
3523 | +1783 -42800.97060605048 114864.8308531135 0 |
3524 | +1784 181363.0026108514 -41266.92860988897 0 |
3525 | +1785 107416.2700429617 62596.72800711013 0 |
3526 | +1786 49754.73060144476 19754.5031244544 0 |
3527 | +1787 -121472.5854909895 101368.0134933181 0 |
3528 | +1788 -12443.707994121 -977.7195794034677 0 |
3529 | +1789 -99973.18812214487 102068.6395112431 0 |
3530 | +1790 -225863.4372136035 79714.92609808015 0 |
3531 | +1791 14338.9535085134 -76484.97102878093 0 |
3532 | +1792 -125674.7735074277 66743.86928506635 0 |
3533 | +1793 -48919.82001066592 48106.37744145064 0 |
3534 | +1794 48770.62957666011 27527.00694578339 0 |
3535 | +1795 -129061.3668268201 39225.24063408215 0 |
3536 | +1796 -25490.46061411206 -77781.75419818936 0 |
3537 | +1797 -67972.42070683812 20792.52620318902 0 |
3538 | +1798 -73367.48823087655 114448.510321271 0 |
3539 | +1799 29658.97189715917 -27247.53875105255 0 |
3540 | +1800 224297.3701309088 -19680.78905965857 0 |
3541 | +1801 67624.38130400932 85570.04551109979 0 |
3542 | +1802 50196.0151981536 -18575.1529274017 0 |
3543 | +1803 75613.34767138677 101593.3590667178 0 |
3544 | +1804 27345.80368675779 -87613.84860954307 0 |
3545 | +1805 26740.5953398758 -237876.1770148974 0 |
3546 | +1806 -46269.94638398253 -22042.15707681269 0 |
3547 | +1807 -39449.54204096543 -9527.561434408586 0 |
3548 | +1808 173561.0808663318 36279.14401183082 0 |
3549 | +1809 -39031.36254873234 -192964.469760005 0 |
3550 | +1810 -55974.68509499929 -175064.6496117402 0 |
3551 | +1811 -572.9020054965764 26189.52440332649 0 |
3552 | +1812 -49950.48135724359 78173.67878433371 0 |
3553 | +1813 -46372.21290389937 -96157.31160447437 0 |
3554 | +1814 77898.74628925048 121615.0906074066 0 |
3555 | +1815 -68182.34953725558 50488.14878837476 0 |
3556 | +1816 -55998.14125418232 128921.9586776311 0 |
3557 | +1817 -86943.41312108321 53367.47054168716 0 |
3558 | +1818 -7519.061177189011 171191.8236106286 0 |
3559 | +1819 10324.88248075484 76096.24872785604 0 |
3560 | +1820 -96820.42288923095 40141.6617369841 0 |
3561 | +1821 -58807.80894484057 64119.35874557839 0 |
3562 | +1822 90350.96940289892 119151.2232157395 0 |
3563 | +1823 208208.7389869716 -56824.04236735807 0 |
3564 | +1824 3656.588619916426 -207146.4043319642 0 |
3565 | +1825 31670.56071598457 167458.5515857935 0 |
3566 | +1826 55930.02280122769 -36959.57996049307 0 |
3567 | +1827 -32799.04323291693 149507.2240486486 0 |
3568 | +1828 91130.35315586149 83686.60717120103 0 |
3569 | +1829 -58517.45867239786 34493.32096461448 0 |
3570 | +1830 -152638.1333158783 79197.51188100867 0 |
3571 | +1831 226269.525869148 58474.35728285357 0 |
3572 | +1832 -27567.87177686593 168839.1278732889 0 |
3573 | +1833 55757.67630524328 56802.72432555785 0 |
3574 | +1834 -137620.9729360103 35842.19987568133 0 |
3575 | +1835 -39191.36192539736 32162.20147277976 0 |
3576 | +1836 177618.8039929846 -9637.798487225155 0 |
3577 | +1837 -42104.59354254092 92776.9406760281 0 |
3578 | +1838 64428.75956674179 18290.67029846567 0 |
3579 | +1839 -22296.68848265086 -199443.9179225575 0 |
3580 | +1840 5001.870399092108 163692.3761877113 0 |
3581 | +1841 20207.14190186621 -96536.74783850893 0 |
3582 | +1842 -19880.09524588079 29559.32273946552 0 |
3583 | +1843 90660.02820604236 102950.2222874708 0 |
3584 | +1844 36976.08282495176 62209.64096458311 0 |
3585 | +1845 56301.64730155041 23138.56519194567 0 |
3586 | +1846 97684.68206234845 -72983.73074995479 0 |
3587 | +1847 190244.4276419501 -6690.267963567068 0 |
3588 | +1848 43969.0774276783 -718.1152227677803 0 |
3589 | +1849 -139771.9719218091 102917.8034843261 0 |
3590 | +1850 -73089.39505745092 -25885.18465760808 0 |
3591 | +1851 -208924.3002141436 55058.78089001591 0 |
3592 | +1852 204764.5489572471 -95343.97592065274 0 |
3593 | +1853 36841.31428598811 16256.44612383604 0 |
3594 | +1854 -65858.70181790892 129827.3094452724 0 |
3595 | +1855 -25789.78552867432 125116.7077320535 0 |
3596 | +1856 229508.589411062 -70260.83004189616 0 |
3597 | +1857 -2577.716968699098 -105863.2470055437 0 |
3598 | +1858 -8843.257099253569 104189.3325552549 0 |
3599 | +1859 -143109.380384162 196797.7206560945 0 |
3600 | +1860 39946.60331556672 75575.92993265598 0 |
3601 | +1861 65933.45550306154 75864.31328648046 0 |
3602 | +1862 -57164.54564744453 5411.302127430794 0 |
3603 | +1863 -110353.4332906022 112581.5575714041 0 |
3604 | +1864 -65036.11795880373 -68422.20494481389 0 |
3605 | +1865 47659.01563546419 139062.0472714457 0 |
3606 | +1866 -68796.10667554676 79974.30846717357 0 |
3607 | +1867 187232.7985798427 31751.5370069893 0 |
3608 | +1868 164528.0672647931 112726.8478116634 0 |
3609 | +1869 -94544.80195419703 111969.7530864739 0 |
3610 | +1870 18406.44783219949 21589.38781252937 0 |
3611 | +1871 153703.9366754507 -61217.69813238266 0 |
3612 | +1872 227116.42284708 -46971.86568175425 0 |
3613 | +1873 63231.31496021895 131225.5380267025 0 |
3614 | +1874 45039.21609871855 -59804.84633405676 0 |
3615 | +1875 -41242.89115465841 211576.693956795 0 |
3616 | +1876 75164.24166029382 78038.39408480671 0 |
3617 | +1877 30614.33357826565 -196315.9026323124 0 |
3618 | +1878 107434.0343796406 -72167.29004276627 0 |
3619 | +1879 -169601.9866487704 77356.83012411527 0 |
3620 | +1880 -29558.55274950532 16692.54369172239 0 |
3621 | +1881 -115111.4178590768 44450.26749164946 0 |
3622 | +1882 -67222.68893703006 139657.0434096034 0 |
3623 | +1883 -48525.14359876252 18888.98956463113 0 |
3624 | +1884 34112.67646481686 148204.485395545 0 |
3625 | +1885 157586.0860167022 -53862.87621932181 0 |
3626 | +1886 -64887.82199414194 -8716.119054400395 0 |
3627 | +1887 91851.37217154344 -123530.1128983793 0 |
3628 | +1888 -48857.62112946784 -70675.87170928923 0 |
3629 | +1889 -50594.6977916766 -182539.4933548403 0 |
3630 | +1890 -77584.41126908851 66551.44306496388 0 |
3631 | +1891 -31177.74077488555 -28587.70996745029 0 |
3632 | +1892 218259.1230657706 -64155.2626034607 0 |
3633 | +1893 -56758.08357691507 -191938.023601676 0 |
3634 | +1894 -19757.99480414313 -7640.964010588448 0 |
3635 | +1895 -129949.0479942243 109467.8380383765 0 |
3636 | +1896 8967.019245535177 -21962.34714638789 0 |
3637 | +1897 -86480.49686159943 138559.2169120299 0 |
3638 | +1898 -22606.85988777769 -17616.71892285752 0 |
3639 | +1899 -56951.85261327311 169397.9188546792 0 |
3640 | +1900 3175.198306984809 91425.19754434812 0 |
3641 | +1901 61865.80118157375 151925.768542059 0 |
3642 | +1902 -60803.06935416029 93766.16408387077 0 |
3643 | +1903 -118866.043281958 9816.301750065099 0 |
3644 | +1904 91993.38221719275 -104743.33343782 0 |
3645 | +1905 20754.08672384483 157018.7725266223 0 |
3646 | +1906 39567.927628773 -45507.7833328841 0 |
3647 | +1907 -26797.97418016815 -37569.84311699583 0 |
3648 | +1908 217248.3687151464 -73941.65264053187 0 |
3649 | +1909 193453.2860286751 -104637.6703352896 0 |
3650 | +1910 201590.9074542214 -85633.06400051985 0 |
3651 | +1911 -55891.71894039051 -108850.9044235277 0 |
3652 | +1912 -140027.4068130075 92060.05181005457 0 |
3653 | +1913 79269.15924201888 -81147.42080057526 0 |
3654 | +1914 -222028.7589685156 56347.34539782214 0 |
3655 | +1915 -243204.1301182286 -4390.565683955125 0 |
3656 | +1916 23614.68343002324 -72626.14286799124 0 |
3657 | +1917 -78903.00649764489 151449.4833454784 0 |
3658 | +1918 -104920.0191738357 57148.98629385981 0 |
3659 | +1919 105942.8103351914 73143.06315510314 0 |
3660 | +1920 -61393.30863783511 159472.7817948982 0 |
3661 | +1921 31907.72289070078 -178746.6494924341 0 |
3662 | +1922 100004.5768452417 123951.3400976059 0 |
3663 | +1923 129877.4135353863 42316.20051967754 0 |
3664 | +1924 -36321.59271403587 107822.0664694596 0 |
3665 | +1925 -85565.09528003508 81501.27302083642 0 |
3666 | +1926 -14539.90168127848 176702.7041644729 0 |
3667 | +1927 61114.50443741458 -171274.4078076549 0 |
3668 | +1928 -17560.30298504262 153479.4857870582 0 |
3669 | +1929 65451.95014961508 68425.59222744782 0 |
3670 | +1930 75171.55448886825 -125507.9339236061 0 |
3671 | +1931 127993.7968675977 52342.91977445547 0 |
3672 | +1932 -10873.46478828755 13920.65900839966 0 |
3673 | +1933 46610.95210131075 82012.97286515241 0 |
3674 | +1934 209116.9831771138 -104349.4601983646 0 |
3675 | +1935 -103606.2056285026 -9881.195318951457 0 |
3676 | +1936 -3386.222828493001 -13483.94413649098 0 |
3677 | +1937 -235342.5966902176 -42037.32208920593 0 |
3678 | +1938 7547.185407011729 10007.110461016 0 |
3679 | +1939 -144641.5109740474 72663.76492852657 0 |
3680 | +1940 -84452.91781157907 -27386.09973873772 0 |
3681 | +1941 -95656.27510135817 69662.86247881564 0 |
3682 | +1942 -80657.50186663863 142223.8380850434 0 |
3683 | +1943 -131417.2268693791 61367.88897146271 0 |
3684 | +1944 77072.61889644961 140696.1577437078 0 |
3685 | +1945 136055.1099259281 -65047.11825211623 0 |
3686 | +1946 15636.17969908901 231169.6667149682 0 |
3687 | +1947 -72579.19475247916 171408.3344823129 0 |
3688 | +1948 190064.2856663399 -22045.59237648843 0 |
3689 | +1949 -221541.4752950791 -100578.9801703677 0 |
3690 | +1950 21411.36875436025 -30924.51886023169 0 |
3691 | +1951 -32216.62285944856 -67934.02387473641 0 |
3692 | +1952 13059.43873171935 -241291.5720519781 0 |
3693 | +1953 203017.3165701903 53426.87607687049 0 |
3694 | +1954 -63505.89638699994 -200769.5942920871 0 |
3695 | +1955 41206.71088078438 -151958.9243644543 0 |
3696 | +1956 141674.2682597242 -89226.18254835071 0 |
3697 | +1957 -30907.30734889725 -195306.7607239562 0 |
3698 | +1958 47072.95855330832 -77969.45747307684 0 |
3699 | +1959 -80744.78385323781 -200151.4497819924 0 |
3700 | +1960 -55091.97764560839 -100378.2793669213 0 |
3701 | +1961 236139.6667202629 -51969.49126287414 0 |
3702 | +1962 -54074.45327084107 107791.6521536774 0 |
3703 | +1963 46991.95694801148 -68696.49107583273 0 |
3704 | +1964 -46811.4594230639 151948.0704243798 0 |
3705 | +1965 145250.3044831567 39866.6392800632 0 |
3706 | +1966 -143784.1097733834 53075.94369732009 0 |
3707 | +1967 31282.17250713926 86999.46835272067 0 |
3708 | +1968 25729.37180931988 4922.111310892934 0 |
3709 | +1969 108448.2563719912 -146275.7945334664 0 |
3710 | +1970 -3376.407515363705 145524.7247980384 0 |
3711 | +1971 -7628.63519446556 116950.7951826607 0 |
3712 | +1972 -146827.1541131503 27673.01426995904 0 |
3713 | +1973 -120068.7290332055 124937.202253494 0 |
3714 | +1974 -47896.75965656975 -192260.7595544529 0 |
3715 | +1975 -79236.5142852366 97005.51596804643 0 |
3716 | +1976 49684.94305093368 -183432.2111953758 0 |
3717 | +1977 32135.30634067601 -12299.23200463432 0 |
3718 | +1978 -169268.5325471115 170568.1313856773 0 |
3719 | +1979 -158717.6079026856 169363.8225386145 0 |
3720 | +1980 -152467.5716977887 131549.9688080426 0 |
3721 | +1981 -66077.97223572672 -33972.55260119794 0 |
3722 | +1982 -126781.3976367343 31928.11392121542 0 |
3723 | +1983 -166257.3361699482 555.2087126740043 0 |
3724 | +1984 164330.8000038106 165004.1313290335 0 |
3725 | +1985 125696.870438593 207447.6312978557 0 |
3726 | +1986 -105490.9809090864 163016.7449586882 0 |
3727 | +1987 -232695.7664546694 62114.81464515418 0 |
3728 | +1988 76964.40654014761 -149781.4528171218 0 |
3729 | +1989 69557.12671738854 114842.513725298 0 |
3730 | +1990 -209717.3147011452 -43215.37081847149 0 |
3731 | +1991 -103317.5834536146 86539.25516449173 0 |
3732 | +1992 -125723.0329368747 -8337.391806701104 0 |
3733 | +1993 -225008.5215438006 -39694.37305255632 0 |
3734 | +1994 54280.1251726359 -143582.5970159677 0 |
3735 | +1995 -141983.2533574749 81267.59703619425 0 |
3736 | +1996 -74366.15298781847 -151345.7604851131 0 |
3737 | +1997 -100184.2920519131 170236.5501994492 0 |
3738 | +1998 177527.9956305588 -48989.27313542552 0 |
3739 | +1999 37662.01485426531 125383.6169933843 0 |
3740 | +2000 157830.6654125196 -158888.9832869484 0 |
3741 | +2001 -72581.78208346585 104260.2812315776 0 |
3742 | +2002 36069.67088583649 -95400.25438071031 0 |
3743 | +2003 19039.70499221047 222171.7939788818 0 |
3744 | +2004 -125891.4016966034 -53761.29638690556 0 |
3745 | +2005 -32906.46004722262 123543.7002729772 0 |
3746 | +2006 10112.38717485696 -55564.78760932538 0 |
3747 | +2007 81756.22701515064 -133986.6384792681 0 |
3748 | +2008 -9176.751221677931 -73115.79890219196 0 |
3749 | +2009 -169989.8970222199 46893.3566001638 0 |
3750 | +2010 27305.48438955484 139229.4394383945 0 |
3751 | +2011 -55962.46257667425 182262.448692779 0 |
3752 | +2012 17053.63986490234 -220221.3088640526 0 |
3753 | +2013 -7711.503394975436 -53373.21663839 0 |
3754 | +2014 -6499.642631541164 -83433.4488134831 0 |
3755 | +2015 76610.16386980047 -166829.9414401517 0 |
3756 | +2016 26914.04375476342 119040.5248861401 0 |
3757 | +2017 -76584.03583794585 -35743.86628810569 0 |
3758 | +2018 -51332.01629020446 -211044.786350996 0 |
3759 | +2019 -49340.17230913299 144728.567804335 0 |
3760 | +2020 3187.222681899937 -216409.8769395863 0 |
3761 | +2021 -185675.7157736212 -72023.78323071792 0 |
3762 | +2022 21796.43484257082 -52153.08379185829 0 |
3763 | +2023 -122871.6139135484 -17078.87546007927 0 |
3764 | +2024 36740.01079349648 -30643.73071356683 0 |
3765 | +2025 21324.58530493587 80418.02895031869 0 |
3766 | +2026 137603.1407449456 46705.63073488292 0 |
3767 | +2027 180794.5681963917 -64209.03731716987 0 |
3768 | +2028 5510.759427452976 -85599.59739594732 0 |
3769 | +2029 32126.2937598875 77817.19237656373 0 |
3770 | +2030 -153841.6282092323 40960.58557634068 0 |
3771 | +2031 -110201.2648925342 -132507.7282582457 0 |
3772 | +2032 -117577.0785556606 138108.8037320137 0 |
3773 | +2033 17143.14781978466 174946.2255603354 0 |
3774 | +2034 -21746.68042296891 241114.6239439255 0 |
3775 | +2035 -178353.1911977994 -99561.2518780181 0 |
3776 | +2036 -95113.67028141922 200478.3832756024 0 |
3777 | +2037 -140151.1071314336 -10202.87765735896 0 |
3778 | +2038 -95565.95425953131 147367.0705572875 0 |
3779 | +2039 -41914.3884607094 -47773.29191388316 0 |
3780 | +2040 -241871.9424955732 -23364.48462794878 0 |
3781 | +2041 34687.77298755197 -55795.07617163009 0 |
3782 | +2042 48069.4842525624 -87569.93732655725 0 |
3783 | +2043 230906.2210965602 -35460.68895099896 0 |
3784 | +2044 39169.25479982693 -65143.99419189596 0 |
3785 | +2045 19883.3851638125 111022.8008224573 0 |
3786 | +2046 -8720.435100096538 139852.7374197876 0 |
3787 | +2047 164238.7006271448 -177484.7980501241 0 |
3788 | +2048 -122895.2395115279 59887.81193028472 0 |
3789 | +2049 -46573.0574886385 -8889.534803986715 0 |
3790 | +2050 -144789.4381991221 -17070.64592600436 0 |
3791 | +2051 -113273.2778751254 73207.73899944623 0 |
3792 | +2052 55460.91770826383 13283.14626371814 0 |
3793 | +2053 -38615.85150786859 3648.143302262932 0 |
3794 | +2054 -90203.62012329408 97381.94829715636 0 |
3795 | +2055 -48884.60838934017 121898.6613818409 0 |
3796 | +2056 -100156.3631328527 -178479.9259678714 0 |
3797 | +2057 -26225.99225993522 117620.5137870436 0 |
3798 | +2058 142026.6388859774 -79342.33525748296 0 |
3799 | +2059 -150984.2733646618 114799.8721901418 0 |
3800 | +2060 -22060.38499153886 160524.8592815448 0 |
3801 | +2061 222295.0330618254 -86847.9454892709 0 |
3802 | +2062 -118679.0325357905 -136699.0359945537 0 |
3803 | +2063 -65828.89414557446 -175210.7563250884 0 |
3804 | +2064 6307.982437382972 184047.4628167603 0 |
3805 | +2065 -166099.3124960367 19841.42183633521 0 |
3806 | +2066 52229.7646272553 154769.4266196656 0 |
3807 | +2067 -120787.3001537485 90031.78923199809 0 |
3808 | +2068 2498.025690045924 170130.0920088037 0 |
3809 | +2069 33891.72082188696 159005.5630968087 0 |
3810 | +2070 -52547.28359134981 -37759.37825880024 0 |
3811 | +2071 -66361.66667871762 121181.5670617875 0 |
3812 | +2072 170763.9484256222 -170593.0059443048 0 |
3813 | +2073 -49625.28050633265 161392.3572787915 0 |
3814 | +2074 86596.90923641842 -119056.4826295226 0 |
3815 | +2075 -184698.6661657422 86233.21115177775 0 |
3816 | +2076 -27590.52438267805 -87368.08952645167 0 |
3817 | +2077 191024.8499833226 -116582.6068999756 0 |
3818 | +2078 -83834.90210637431 106937.6295641574 0 |
3819 | +2079 207837.8611480042 -77577.6759774783 0 |
3820 | +2080 83340.35685046751 150566.3226067346 0 |
3821 | +2081 196494.7398480631 -61090.0868518139 0 |
3822 | +2082 -169228.9386957524 86720.99338359438 0 |
3823 | +2083 167344.8694759873 -52208.59231638908 0 |
3824 | +2084 16618.79011600731 -87006.97180188632 0 |
3825 | +2085 -143691.1837502409 -2751.261240961735 0 |
3826 | +2086 -53863.05827311306 -92979.77176495214 0 |
3827 | +2087 -230203.8030923583 -61447.17655003233 0 |
3828 | +2088 90656.91559927657 -78578.64412868199 0 |
3829 | +2089 106470.3589736457 92035.06256965557 0 |
3830 | +2090 -17197.29976782083 -36245.03148383965 0 |
3831 | +2091 175257.9760559681 10924.17873912025 0 |
3832 | +2092 147337.3173888122 190262.1148168712 0 |
3833 | +2093 -143391.7503212769 121965.2433272588 0 |
3834 | +2094 10197.70824318536 107931.2486197435 0 |
3835 | +2095 -21431.27642917766 189.6549825511232 0 |
3836 | +2096 -139580.1191494368 4124.151941617495 0 |
3837 | +2097 104065.2727002692 82204.72682616797 0 |
3838 | +2098 14414.92902912364 -6391.166671133622 0 |
3839 | +2099 -162128.7284633818 35308.87972446447 0 |
3840 | +2100 -76818.3950843442 229851.2717335591 0 |
3841 | +2101 -62686.19849903885 -166460.7565091623 0 |
3842 | +2102 18537.20453517677 130481.3908747096 0 |
3843 | +2103 -53519.85705022513 -22965.98851456139 0 |
3844 | +2104 49136.05346514629 73733.014701202 0 |
3845 | +2105 -88201.35380415725 156355.8727595918 0 |
3846 | +2106 215587.1979768008 -14810.41490724776 0 |
3847 | +2107 -95079.25939615884 -195037.6745295409 0 |
3848 | +2108 -12698.20997663661 -203797.5257561131 0 |
3849 | +2109 -135621.9799915184 131679.5803779655 0 |
3850 | +2110 -216137.0340399044 -5961.811107395822 0 |
3851 | +2111 -48138.77127822048 227385.9616221559 0 |
3852 | +2112 -35224.88689500032 140189.0231743428 0 |
3853 | +2113 -60120.54415601819 135479.218693999 0 |
3854 | +2114 -51288.00315553637 205541.5200250749 0 |
3855 | +2115 21643.89510033284 92869.1426582001 0 |
3856 | +2116 -130444.5039307272 8505.273256550858 0 |
3857 | +2117 -95283.18396938368 -222242.6522342925 0 |
3858 | +2118 -40331.52932312609 -224628.6327245464 0 |
3859 | +2119 -162995.0011344857 52278.00203200293 0 |
3860 | +2120 196997.9698195094 67697.93240129555 0 |
3861 | +2121 -44042.79519614352 138106.0523737656 0 |
3862 | +2122 163814.5283702722 -60794.05152327756 0 |
3863 | +2123 -232003.0618177576 6058.992048434996 0 |
3864 | +2124 -179316.7056650702 40923.60716322279 0 |
3865 | +2125 -10557.51689052796 189427.5361716553 0 |
3866 | +2126 2447.348719474893 -28404.61823743986 0 |
3867 | +2127 -110996.0118052181 103612.1289545 0 |
3868 | +2128 -164021.2228553597 -7431.159514344325 0 |
3869 | +2129 -2474.29704860925 -67934.57867241201 0 |
3870 | +2130 219757.2562041012 -103569.9704081557 0 |
3871 | +2131 -68502.28952660957 -159059.8414761556 0 |
3872 | +2132 193910.5856120814 -70679.33524340701 0 |
3873 | +2133 104903.8805186862 105313.1691034142 0 |
3874 | +2134 -116130.0559466584 -21783.80111782157 0 |
3875 | +2135 -148312.4924696435 -9519.909738845734 0 |
3876 | +2136 -126353.7370051786 -26629.94557175285 0 |
3877 | +2137 175531.3000243348 63799.63032088737 0 |
3878 | +2138 146600.1600261551 -64711.32265489586 0 |
3879 | +2139 -223434.3507321399 68676.47361348143 0 |
3880 | +2140 179821.6980477749 115247.7056941143 0 |
3881 | +2141 192868.2493877191 -88652.66464308328 0 |
3882 | +2142 141520.9628851417 196767.4344313653 0 |
3883 | +2143 -68619.40520777465 220649.6372445242 0 |
3884 | +2144 -195010.2743067518 -90654.43589009886 0 |
3885 | +2145 68827.17614499076 -141407.3584039641 0 |
3886 | +2146 -130665.1551843222 139963.0521481563 0 |
3887 | +2147 -850.6269340827976 -59607.71081462228 0 |
3888 | +2148 -155594.776099196 21026.41340430732 0 |
3889 | +2149 149089.0118764359 -158127.604360061 0 |
3890 | +2150 -49336.00368288998 193233.4997511251 0 |
3891 | +2151 -212539.10745224 65502.78351287435 0 |
3892 | +2152 -3879.807529406755 -2923.835767952914 0 |
3893 | +2153 -28961.94937271848 -203987.8915996374 0 |
3894 | +2154 68382.13664844236 157105.0024465549 0 |
3895 | +2155 -112926.0815539008 -43041.77911400812 0 |
3896 | +2156 100858.9137352919 -148547.1804780217 0 |
3897 | +2157 -45299.10688132473 -202009.4077515897 0 |
3898 | +2158 26468.19014558367 100370.551497555 0 |
3899 | +2159 -186337.0569613513 35934.89739728453 0 |
3900 | +2160 -76432.76507382312 135403.6557468749 0 |
3901 | +2161 -210686.2217596685 -36497.38764101238 0 |
3902 | +2162 44333.30241413853 -209519.9514513548 0 |
3903 | +2163 234361.8606878718 -60738.83654995065 0 |
3904 | +2164 205998.2764534723 -68526.67581168821 0 |
3905 | +2165 -126623.8874216193 -130023.7154247902 0 |
3906 | +2166 -74660.27103742717 -231680.6285384047 0 |
3907 | +2167 230096.5784494312 69646.53393856851 0 |
3908 | +2168 -38691.5579591533 130706.4337622999 0 |
3909 | +2169 -199132.2617752972 -81370.68936582645 0 |
3910 | +2170 -47819.81363163149 173944.811329332 0 |
3911 | +2171 -170709.5148766735 -41482.92192888834 0 |
3912 | +2172 -40938.65146797075 201732.0600722502 0 |
3913 | +2173 -41221.87421508109 146606.9545436186 0 |
3914 | +2174 72117.72477069977 212919.0541346256 0 |
3915 | +2175 -55838.98286289652 151662.3375842157 0 |
3916 | +2176 -4623.218611532879 -44316.77426487462 0 |
3917 | +2177 -63818.85464626727 -103908.0608572938 0 |
3918 | +2178 -140045.2678342246 -26129.37750597431 0 |
3919 | +2179 214607.8036734711 -93906.32287950719 0 |
3920 | +2180 -66665.83124413343 150100.8578671913 0 |
3921 | +2181 75747.47037077176 111506.873755594 0 |
3922 | +2182 -149912.2655919342 -23596.39644718396 0 |
3923 | +2183 -169905.8247912234 28360.77525111874 0 |
3924 | +2184 98014.37161557405 28884.97618499065 0 |
3925 | +2185 93346.65998618469 37275.80384547811 0 |
3926 | +2186 91819.19042255158 45778.86233585583 0 |
3927 | +2187 -4462.196658117258 95039.24381708463 0 |
3928 | +2188 101336.8614104868 45341.99476504529 0 |
3929 | +2189 44512.71385027748 -239210.5219706687 0 |
3930 | +2190 238973.7230100152 -40678.32825832696 0 |
3931 | +2191 184684.8161257217 23812.47470719184 0 |
3932 | +2192 41394.18740789001 -110202.1378746271 0 |
3933 | +2193 -30899.98718977298 241106.8000285763 0 |
3934 | +2194 -74.90730310459988 127191.5305219089 0 |
3935 | +2195 181436.3765513251 37377.35161439066 0 |
3936 | +2196 104064.7042807629 133521.5860800879 0 |
3937 | +2197 47631.02979202922 -128170.1915214178 0 |
3938 | +2198 234689.5764019706 61438.64086595697 0 |
3939 | +2199 16005.37948605648 -37238.81345981485 0 |
3940 | +2200 96637.6702902762 140514.9300850171 0 |
3941 | +2201 -74492.55578287921 -116176.3850952959 0 |
3942 | +2202 67517.02807928112 96558.33494120369 0 |
3943 | +2203 241573.5014539124 1093.122731729924 0 |
3944 | +2204 -185252.481268735 5390.288334628171 0 |
3945 | +2205 -150079.4879750771 106430.4439034875 0 |
3946 | +2206 71567.86663946544 -76309.72607165523 0 |
3947 | +2207 7124.787042150262 -144691.7415521745 0 |
3948 | +2208 -155009.2453721543 31568.94079206904 0 |
3949 | +2209 -15315.36116606066 138146.5894738321 0 |
3950 | +2210 114382.1094568241 59637.92228395226 0 |
3951 | +2211 -114800.6809690364 -166064.5190669917 0 |
3952 | +2212 -210245.7721669003 2227.248951073308 0 |
3953 | +2213 -69095.24027991903 182072.3251078701 0 |
3954 | +2214 79291.8726021344 -14710.68349779913 0 |
3955 | +2215 71976.73736647326 131797.340047465 0 |
3956 | +2216 34260.47808871228 -170094.3745964178 0 |
3957 | +2217 56270.20634366176 125859.4544836767 0 |
3958 | +2218 -176246.9907836489 2944.377778395768 0 |
3959 | +2219 208719.0667874895 -89516.70821846325 0 |
3960 | +2220 51378.29851040633 89046.86813467563 0 |
3961 | +2221 -34793.38458793279 -157636.3392764702 0 |
3962 | +2222 26973.97705122789 160784.0725829815 0 |
3963 | +2223 -197739.6912812722 141701.1388045816 0 |
3964 | +2224 -44445.85569264477 236702.0026885676 0 |
3965 | +2225 117507.0453995822 52307.9896360219 0 |
3966 | +2226 -80663.79556488627 163199.7329961868 0 |
3967 | +2227 97190.56941406343 13010.99805225171 0 |
3968 | +2228 77856.82370475485 -91364.49025715336 0 |
3969 | +2229 3917.860446283563 83341.65481980421 0 |
3970 | +2230 34031.20652319527 105320.0832629488 0 |
3971 | +2231 54448.96864249706 144905.5925334468 0 |
3972 | +2232 8728.021958970652 125150.2695220707 0 |
3973 | +2233 200630.766317268 -132098.2502109628 0 |
3974 | +2234 40648.70501187668 -223739.0894024615 0 |
3975 | +2235 -110974.9702513857 120675.9380748196 0 |
3976 | +2236 184325.1000275709 2569.449546223835 0 |
3977 | +2237 -59958.31328539401 199988.6127315309 0 |
3978 | +2238 -21826.14912799099 -46116.94810410732 0 |
3979 | +2239 -12246.57110798376 -23405.11435890549 0 |
3980 | +2240 5934.111579350968 143397.1047098753 0 |
3981 | +2241 55601.47780596631 -177156.9292519606 0 |
3982 | +2242 -144872.6883224739 43591.55960546318 0 |
3983 | +2243 68876.02083544503 -169106.3781658842 0 |
3984 | +2244 15955.70882299489 140638.7921434175 0 |
3985 | +2245 4675.796833802601 243926.4703858893 0 |
3986 | +2246 103253.2899759873 37173.45234604103 0 |
3987 | +2247 -74897.19510874513 211687.5718637242 0 |
3988 | +2248 75837.99096994131 -56556.5511513172 0 |
3989 | +2249 85941.57758023436 -152457.2819862432 0 |
3990 | +2250 -92065.69864914306 -24131.14900463747 0 |
3991 | +2251 33149.00103707398 232256.8283779806 0 |
3992 | +2252 -131330.2655749355 -45862.73988949053 0 |
3993 | +2253 221239.8499553919 65614.37247444683 0 |
3994 | +2254 106460.651199796 11762.62204501706 0 |
3995 | +2255 149005.2615527771 -191207.7909923381 0 |
3996 | +2256 89841.87913739044 134738.4118097835 0 |
3997 | +2257 -26872.56365651196 -171065.3878624702 0 |
3998 | +2258 44352.94538801721 -51992.34360548994 0 |
3999 | +2259 -225519.4418821681 44360.54093026977 0 |
4000 | +2260 -132891.4295147347 -36946.41254391247 0 |
4001 | +2261 96170.16738877128 -1664.002542950546 0 |
4002 | +2262 4437.765177510664 71467.8646595247 0 |
4003 | +2263 -150080.1620031545 -30586.29559312925 0 |
4004 | +2264 -1736.277463405826 -148860.5230790931 0 |
4005 | +2265 82907.57844851824 -28425.58058748834 0 |
4006 | +2266 70841.69444740072 -44400.21766175278 0 |
4007 | +2267 117945.679435684 -70216.95125573104 0 |
4008 | +2268 89333.90674260512 -2527.356057631684 0 |
4009 | +2269 -5676.620605731991 -134990.6215979294 0 |
4010 | +2270 -166850.3980170246 93920.36528748987 0 |
4011 | +2271 28701.7722184717 129382.9313456475 0 |
4012 | +2272 183747.1808732992 54479.57532074266 0 |
4013 | +2273 91822.62895788261 148675.5152172518 0 |
4014 | +2274 242343.4321261078 -12770.73713885923 0 |
4015 | +2275 -102084.4276806754 125400.7945935777 0 |
4016 | +2276 168954.7622058926 172331.3010871296 0 |
4017 | +2277 12252.79692826769 -158548.4154913712 0 |
4018 | +2278 -164491.9770411513 177879.5733868952 0 |
4019 | +2279 -135717.7793012885 54732.46309848132 0 |
4020 | +2280 127611.428247038 71490.16738105596 0 |
4021 | +2281 4715.863977214106 228661.853805225 0 |
4022 | +2282 36387.4403998065 -38621.68566011432 0 |
4023 | +2283 -86461.4062700941 146169.2385553936 0 |
4024 | +2284 107641.4646511721 -117535.5176438316 0 |
4025 | +2285 -97767.72911339627 159596.4450248091 0 |
4026 | +2286 -115777.7296087026 149156.7353654636 0 |
4027 | +2287 200844.796270661 -3719.578687291818 0 |
4028 | +2288 19237.26571230371 -213207.3129308737 0 |
4029 | +2289 -96870.87863645147 133630.6686846121 0 |
4030 | +2290 -105951.5020434201 153600.3620578823 0 |
4031 | +2291 168194.4733404295 -112679.298612115 0 |
4032 | +2292 13766.15139304623 150560.7739805774 0 |
4033 | +2293 -80290.75757900237 184733.0510937869 0 |
4034 | +2294 59218.9989123372 114697.9579147473 0 |
4035 | +2295 7864.074574212083 133813.781161053 0 |
4036 | +2296 -78482.07335771162 219974.3732276324 0 |
4037 | +2297 -60655.83514941097 218063.5119813533 0 |
4038 | +2298 26366.6494952245 -59702.53841659582 0 |
4039 | +2299 169217.5614416332 -7888.83254096205 0 |
4040 | +2300 -37096.53872874823 -57506.07147573846 0 |
4041 | +2301 139944.6330837289 170966.6797163984 0 |
4042 | +2302 198071.7500245147 -123441.3577845566 0 |
4043 | +2303 -31744.43293482213 -47257.97395007819 0 |
4044 | +2304 194945.5716864977 59269.25939178304 0 |
4045 | +2305 93354.38300185645 -27969.29247545432 0 |
4046 | +2306 232949.2197639998 -26263.20095530879 0 |
4047 | +2307 -202099.4674002501 84023.78026437448 0 |
4048 | +2308 -210667.9607401578 8977.940865874949 0 |
4049 | +2309 -150242.5119666118 59364.77793997185 0 |
4050 | +2310 155234.7046166213 161861.8357388867 0 |
4051 | +2311 121813.991496873 45437.7400995705 0 |
4052 | +2312 -159267.1963414105 9971.447656588158 0 |
4053 | +2313 -9598.054836903686 -63156.50234705763 0 |
4054 | +2314 109288.7497915555 -12831.14877426593 0 |
4055 | +2315 -90976.09220096267 167718.7412409982 0 |
4056 | +2316 -170728.968498257 10840.27548259854 0 |
4057 | +2317 122027.1489991225 61173.5513267159 0 |
4058 | +2318 110792.2448963759 135361.2711082864 0 |
4059 | +2319 86510.21889193213 -86664.81441894871 0 |
4060 | +2320 -194875.7413301193 90001.21436061402 0 |
4061 | +2321 -204668.7755472259 93045.88875100848 0 |
4062 | +2322 -150501.9141905649 89169.83821702578 0 |
4063 | +2323 -118456.6093504193 112837.9841344781 0 |
4064 | +2324 33485.88545677533 96826.74402830201 0 |
4065 | +2325 -11986.31052385087 238546.7714093397 0 |
4066 | +2326 -197494.5609530826 70177.82270650454 0 |
4067 | +2327 -26180.50042354969 -155225.9646057289 0 |
4068 | +2328 161364.2027378834 158463.8304522502 0 |
4069 | +2329 -83079.18946267196 175250.4337163074 0 |
4070 | +2330 113698.7831225068 23258.30163055094 0 |
4071 | +2331 85642.32129382652 -51896.19195993526 0 |
4072 | +2332 194939.887844224 15874.39953282311 0 |
4073 | +2333 -87009.23597771581 182002.4699677469 0 |
4074 | +2334 100474.4357998803 -28339.29767335934 0 |
4075 | +2335 -40218.72743997066 156268.9492960719 0 |
4076 | +2336 -124595.1901188696 -34913.21797349972 0 |
4077 | +2337 166412.8216059933 148385.344496067 0 |
4078 | +2338 42576.39786743421 110126.5973661293 0 |
4079 | +2339 -2431.065084351289 -157226.9247011852 0 |
4080 | +2340 192977.855048904 -43.62163661143927 0 |
4081 | +2341 -31123.71832537746 159432.6623295683 0 |
4082 | +2342 -84674.38050773247 118585.82271389 0 |
4083 | +2343 -82483.55685878442 195408.0582764783 0 |
4084 | +2344 -235247.248154447 -52211.25220476594 0 |
4085 | +2345 -5986.961460595267 -172818.1072503475 0 |
4086 | +2346 142908.5988372895 -197317.2312097076 0 |
4087 | +2347 -192573.5833919504 -76669.40886809112 0 |
4088 | +2348 241751.5973559274 -23222.6475028656 0 |
4089 | +2349 -16203.74200943118 -153818.7130464252 0 |
4090 | +2350 -38524.27661521963 167984.5663849427 0 |
4091 | +2351 -226837.4698025585 -49340.60346728029 0 |
4092 | +2352 143811.9322552306 180904.6236358951 0 |
4093 | +2353 46746.80974507109 118492.8155574925 0 |
4094 | +2354 -85881.61633615172 128824.5332503991 0 |
4095 | +2355 229569.2180176151 79928.06744598308 0 |
4096 | +2356 -234083.2462881857 52261.4791744712 0 |
4097 | +2357 -76261.09551851812 178366.0361000693 0 |
4098 | +2358 133058.6368636041 177541.3281616434 0 |
4099 | +2359 233273.2612133243 -16404.38889912532 0 |
4100 | +2360 164438.5246506834 178905.2258266094 0 |
4101 | +2361 -181304.9018281513 -87092.62988740411 0 |
4102 | +2362 22598.17502346956 124496.4753884906 0 |
4103 | +2363 42374.64266480115 101581.8997374984 0 |
4104 | +2364 35783.73850166951 114460.9018537906 0 |
4105 | +2365 209130.4003882171 -44871.76150180121 0 |
4106 | +2366 -136690.7103876153 16496.17816248679 0 |
4107 | +2367 216814.5375904188 -48923.78531385033 0 |
4108 | +2368 -125082.2334541976 117185.9257972304 0 |
4109 | +2369 -141122.8276560457 10336.18654976114 0 |
4110 | +2370 202743.1900146147 -39914.59851426764 0 |
4111 | +2371 -137049.9431411289 24812.77166261262 0 |
4112 | +2372 -124724.8880562118 19934.04663025228 0 |
4113 | +2373 -115243.25006845 3194.296585482258 0 |
4114 | +2374 -148326.2170107144 7136.529793233116 0 |
4115 | +2375 -145490.6497506388 17313.01261309983 0 |
4116 | +2376 -152169.7098004899 13861.85086680711 0 |
4117 | +$EndNodes |
4118 | +$Elements |
4119 | +4750 |
4120 | +1 1 2 3 1 1 3 |
4121 | +2 1 2 3 1 3 4 |
4122 | +3 1 2 3 1 4 5 |
4123 | +4 1 2 3 1 5 6 |
4124 | +5 1 2 3 1 6 7 |
4125 | +6 1 2 3 1 7 8 |
4126 | +7 1 2 3 1 8 9 |
4127 | +8 1 2 3 1 9 10 |
4128 | +9 1 2 3 1 10 11 |
4129 | +10 1 2 3 1 11 12 |
4130 | +11 1 2 3 1 12 13 |
4131 | +12 1 2 3 1 13 14 |
4132 | +13 1 2 3 1 14 15 |
4133 | +14 1 2 3 1 15 16 |
4134 | +15 1 2 3 1 16 17 |
4135 | +16 1 2 3 1 17 18 |
4136 | +17 1 2 3 1 18 19 |
4137 | +18 1 2 3 1 19 20 |
4138 | +19 1 2 3 1 20 21 |
4139 | +20 1 2 3 1 21 22 |
4140 | +21 1 2 3 1 22 23 |
4141 | +22 1 2 3 1 23 24 |
4142 | +23 1 2 3 1 24 25 |
4143 | +24 1 2 3 1 25 26 |
4144 | +25 1 2 3 1 26 27 |
4145 | +26 1 2 3 1 27 28 |
4146 | +27 1 2 3 1 28 29 |
4147 | +28 1 2 3 1 29 30 |
4148 | +29 1 2 3 1 30 31 |
4149 | +30 1 2 3 1 31 32 |
4150 | +31 1 2 3 1 32 33 |
4151 | +32 1 2 3 1 33 34 |
4152 | +33 1 2 3 1 34 35 |
4153 | +34 1 2 3 1 35 36 |
4154 | +35 1 2 3 1 36 37 |
4155 | +36 1 2 3 1 37 38 |
4156 | +37 1 2 3 1 38 39 |
4157 | +38 1 2 3 1 39 40 |
4158 | +39 1 2 3 1 40 41 |
4159 | +40 1 2 3 1 41 42 |
4160 | +41 1 2 3 1 42 43 |
4161 | +42 1 2 3 1 43 44 |
4162 | +43 1 2 3 1 44 45 |
4163 | +44 1 2 3 1 45 46 |
4164 | +45 1 2 3 1 46 47 |
4165 | +46 1 2 3 1 47 48 |
4166 | +47 1 2 3 1 48 49 |
4167 | +48 1 2 3 1 49 50 |
4168 | +49 1 2 3 1 50 51 |
4169 | +50 1 2 3 1 51 52 |
4170 | +51 1 2 3 1 52 53 |
4171 | +52 1 2 3 1 53 54 |
4172 | +53 1 2 3 1 54 55 |
4173 | +54 1 2 3 1 55 56 |
4174 | +55 1 2 3 1 56 57 |
4175 | +56 1 2 3 1 57 58 |
4176 | +57 1 2 3 1 58 59 |
4177 | +58 1 2 3 1 59 60 |
4178 | +59 1 2 3 1 60 61 |
4179 | +60 1 2 3 1 61 62 |
4180 | +61 1 2 3 1 62 63 |
4181 | +62 1 2 3 1 63 64 |
4182 | +63 1 2 3 1 64 65 |
4183 | +64 1 2 3 1 65 66 |
4184 | +65 1 2 3 1 66 67 |
4185 | +66 1 2 3 1 67 68 |
4186 | +67 1 2 3 1 68 69 |
4187 | +68 1 2 3 1 69 70 |
4188 | +69 1 2 3 1 70 71 |
4189 | +70 1 2 3 1 71 72 |
4190 | +71 1 2 3 1 72 73 |
4191 | +72 1 2 3 1 73 74 |
4192 | +73 1 2 3 1 74 75 |
4193 | +74 1 2 3 1 75 76 |
4194 | +75 1 2 3 1 76 77 |
4195 | +76 1 2 3 1 77 78 |
4196 | +77 1 2 3 1 78 79 |
4197 | +78 1 2 3 1 79 2 |
4198 | +79 1 2 3 2 2 80 |
4199 | +80 1 2 3 2 80 81 |
4200 | +81 1 2 3 2 81 82 |
4201 | +82 1 2 3 2 82 83 |
4202 | +83 1 2 3 2 83 84 |
4203 | +84 1 2 3 2 84 85 |
4204 | +85 1 2 3 2 85 86 |
4205 | +86 1 2 3 2 86 87 |
4206 | +87 1 2 3 2 87 88 |
4207 | +88 1 2 3 2 88 89 |
4208 | +89 1 2 3 2 89 90 |
4209 | +90 1 2 3 2 90 91 |
4210 | +91 1 2 3 2 91 92 |
4211 | +92 1 2 3 2 92 93 |
4212 | +93 1 2 3 2 93 94 |
4213 | +94 1 2 3 2 94 95 |
4214 | +95 1 2 3 2 95 96 |
4215 | +96 1 2 3 2 96 97 |
4216 | +97 1 2 3 2 97 98 |
4217 | +98 1 2 3 2 98 99 |
4218 | +99 1 2 3 2 99 100 |
4219 | +100 1 2 3 2 100 101 |
4220 | +101 1 2 3 2 101 102 |
4221 | +102 1 2 3 2 102 103 |
4222 | +103 1 2 3 2 103 104 |
4223 | +104 1 2 3 2 104 105 |
4224 | +105 1 2 3 2 105 106 |
4225 | +106 1 2 3 2 106 107 |
4226 | +107 1 2 3 2 107 108 |
4227 | +108 1 2 3 2 108 109 |
4228 | +109 1 2 3 2 109 110 |
4229 | +110 1 2 3 2 110 111 |
4230 | +111 1 2 3 2 111 112 |
4231 | +112 1 2 3 2 112 113 |
4232 | +113 1 2 3 2 113 114 |
4233 | +114 1 2 3 2 114 115 |
4234 | +115 1 2 3 2 115 116 |
4235 | +116 1 2 3 2 116 117 |
4236 | +117 1 2 3 2 117 118 |
4237 | +118 1 2 3 2 118 119 |
4238 | +119 1 2 3 2 119 120 |
4239 | +120 1 2 3 2 120 121 |
4240 | +121 1 2 3 2 121 122 |
4241 | +122 1 2 3 2 122 123 |
4242 | +123 1 2 3 2 123 124 |
4243 | +124 1 2 3 2 124 125 |
4244 | +125 1 2 3 2 125 126 |
4245 | +126 1 2 3 2 126 127 |
4246 | +127 1 2 3 2 127 128 |
4247 | +128 1 2 3 2 128 129 |
4248 | +129 1 2 3 2 129 130 |
4249 | +130 1 2 3 2 130 131 |
4250 | +131 1 2 3 2 131 132 |
4251 | +132 1 2 3 2 132 133 |
4252 | +133 1 2 3 2 133 134 |
4253 | +134 1 2 3 2 134 135 |
4254 | +135 1 2 3 2 135 136 |
4255 | +136 1 2 3 2 136 137 |
4256 | +137 1 2 3 2 137 138 |
4257 | +138 1 2 3 2 138 139 |
4258 | +139 1 2 3 2 139 140 |
4259 | +140 1 2 3 2 140 141 |
4260 | +141 1 2 3 2 141 142 |
4261 | +142 1 2 3 2 142 143 |
4262 | +143 1 2 3 2 143 144 |
4263 | +144 1 2 3 2 144 145 |
4264 | +145 1 2 3 2 145 146 |
4265 | +146 1 2 3 2 146 147 |
4266 | +147 1 2 3 2 147 148 |
4267 | +148 1 2 3 2 148 149 |
4268 | +149 1 2 3 2 149 150 |
4269 | +150 1 2 3 2 150 151 |
4270 | +151 1 2 3 2 151 152 |
4271 | +152 1 2 3 2 152 153 |
4272 | +153 1 2 3 2 153 154 |
4273 | +154 1 2 3 2 154 155 |
4274 | +155 1 2 3 2 155 156 |
4275 | +156 1 2 3 2 156 1 |
4276 | +157 2 2 6 5 6 246 7 |
4277 | +158 2 2 6 5 86 265 87 |
4278 | +159 2 2 6 5 248 104 103 |
4279 | +160 2 2 6 5 266 130 129 |
4280 | +161 2 2 6 5 130 266 259 |
4281 | +162 2 2 6 5 128 266 129 |
4282 | +163 2 2 6 5 266 128 244 |
4283 | +164 2 2 6 5 260 102 101 |
4284 | +165 2 2 6 5 23 245 24 |
4285 | +166 2 2 6 5 258 20 19 |
4286 | +167 2 2 6 5 168 6 5 |
4287 | +168 2 2 6 5 246 6 168 |
4288 | +169 2 2 6 5 410 247 257 |
4289 | +170 2 2 6 5 257 423 410 |
4290 | +171 2 2 6 5 438 268 431 |
4291 | +172 2 2 6 5 451 32 31 |
4292 | +173 2 2 6 5 261 457 253 |
4293 | +174 2 2 6 5 459 160 262 |
4294 | +175 2 2 6 5 466 220 419 |
4295 | +176 2 2 6 5 160 472 439 |
4296 | +177 2 2 6 5 262 483 459 |
4297 | +178 2 2 6 5 144 485 145 |
4298 | +179 2 2 6 5 486 233 393 |
4299 | +180 2 2 6 5 488 253 457 |
4300 | +181 2 2 6 5 268 490 431 |
4301 | +182 2 2 6 5 490 268 333 |
4302 | +183 2 2 6 5 167 494 461 |
4303 | +184 2 2 6 5 500 35 34 |
4304 | +185 2 2 6 5 500 256 470 |
4305 | +186 2 2 6 5 503 248 103 |
4306 | +187 2 2 6 5 13 505 14 |
4307 | +188 2 2 6 5 230 505 467 |
4308 | +189 2 2 6 5 511 230 467 |
4309 | +190 2 2 6 5 164 515 442 |
4310 | +191 2 2 6 5 518 265 479 |
4311 | +192 2 2 6 5 260 520 503 |
4312 | +193 2 2 6 5 222 522 166 |
4313 | +194 2 2 6 5 522 222 498 |
4314 | +195 2 2 6 5 523 212 432 |
4315 | +196 2 2 6 5 524 166 520 |
4316 | +197 2 2 6 5 525 248 503 |
4317 | +198 2 2 6 5 17 530 18 |
4318 | +199 2 2 6 5 530 17 516 |
4319 | +200 2 2 6 5 253 531 261 |
4320 | +201 2 2 6 5 79 533 2 |
4321 | +202 2 2 6 5 534 226 509 |
4322 | +203 2 2 6 5 228 535 395 |
4323 | +204 2 2 6 5 233 540 393 |
4324 | +205 2 2 6 5 224 540 524 |
4325 | +206 2 2 6 5 541 166 522 |
4326 | +207 2 2 6 5 166 541 525 |
4327 | +208 2 2 6 5 546 252 407 |
4328 | +209 2 2 6 5 548 55 54 |
4329 | +210 2 2 6 5 548 257 247 |
4330 | +211 2 2 6 5 242 549 509 |
4331 | +212 2 2 6 5 228 549 516 |
4332 | +213 2 2 6 5 172 551 467 |
4333 | +214 2 2 6 5 553 220 466 |
4334 | +215 2 2 6 5 555 239 428 |
4335 | +216 2 2 6 5 556 253 488 |
4336 | +217 2 2 6 5 138 561 139 |
4337 | +218 2 2 6 5 247 562 548 |
4338 | +219 2 2 6 5 562 55 548 |
4339 | +220 2 2 6 5 39 563 40 |
4340 | +221 2 2 6 5 19 566 258 |
4341 | +222 2 2 6 5 566 242 258 |
4342 | +223 2 2 6 5 567 13 12 |
4343 | +224 2 2 6 5 567 172 467 |
4344 | +225 2 2 6 5 570 240 547 |
4345 | +226 2 2 6 5 53 573 54 |
4346 | +227 2 2 6 5 574 263 554 |
4347 | +228 2 2 6 5 263 574 508 |
4348 | +229 2 2 6 5 576 140 139 |
4349 | +230 2 2 6 5 169 578 267 |
4350 | +231 2 2 6 5 579 114 113 |
4351 | +232 2 2 6 5 583 131 130 |
4352 | +233 2 2 6 5 259 583 130 |
4353 | +234 2 2 6 5 11 584 12 |
4354 | +235 2 2 6 5 166 586 222 |
4355 | +236 2 2 6 5 586 233 222 |
4356 | +237 2 2 6 5 586 166 524 |
4357 | +238 2 2 6 5 35 587 36 |
4358 | +239 2 2 6 5 261 587 470 |
4359 | +240 2 2 6 5 573 548 54 |
4360 | +241 2 2 6 5 257 548 573 |
4361 | +242 2 2 6 5 561 576 139 |
4362 | +243 2 2 6 5 561 254 576 |
4363 | +244 2 2 6 5 397 511 231 |
4364 | +245 2 2 6 5 572 333 268 |
4365 | +246 2 2 6 5 546 432 212 |
4366 | +247 2 2 6 5 409 426 427 |
4367 | +248 2 2 6 5 523 446 212 |
4368 | +249 2 2 6 5 414 446 523 |
4369 | +250 2 2 6 5 443 512 169 |
4370 | +251 2 2 6 5 502 433 203 |
4371 | +252 2 2 6 5 419 454 466 |
4372 | +253 2 2 6 5 480 471 226 |
4373 | +254 2 2 6 5 534 480 226 |
4374 | +255 2 2 6 5 440 431 490 |
4375 | +256 2 2 6 5 523 477 215 |
4376 | +257 2 2 6 5 432 477 523 |
4377 | +258 2 2 6 5 471 515 226 |
4378 | +259 2 2 6 5 470 457 261 |
4379 | +260 2 2 6 5 553 487 223 |
4380 | +261 2 2 6 5 466 487 553 |
4381 | +262 2 2 6 5 567 505 13 |
4382 | +263 2 2 6 5 467 505 567 |
4383 | +264 2 2 6 5 511 551 231 |
4384 | +265 2 2 6 5 511 467 551 |
4385 | +266 2 2 6 5 500 587 35 |
4386 | +267 2 2 6 5 500 470 587 |
4387 | +268 2 2 6 5 518 492 252 |
4388 | +269 2 2 6 5 479 492 518 |
4389 | +270 2 2 6 5 515 509 226 |
4390 | +271 2 2 6 5 556 528 240 |
4391 | +272 2 2 6 5 488 528 556 |
4392 | +273 2 2 6 5 564 504 250 |
4393 | +274 2 2 6 5 494 504 564 |
4394 | +275 2 2 6 5 498 499 522 |
4395 | +276 2 2 6 5 525 520 166 |
4396 | +277 2 2 6 5 503 520 525 |
4397 | +278 2 2 6 5 543 508 574 |
4398 | +279 2 2 6 5 534 549 228 |
4399 | +280 2 2 6 5 534 509 549 |
4400 | +281 2 2 6 5 530 549 242 |
4401 | +282 2 2 6 5 530 516 549 |
4402 | +283 2 2 6 5 586 540 233 |
4403 | +284 2 2 6 5 524 540 586 |
4404 | +285 2 2 6 5 570 556 240 |
4405 | +286 2 2 6 5 547 559 570 |
4406 | +287 2 2 6 5 574 554 580 |
4407 | +288 2 2 6 5 103 102 503 |
4408 | +289 2 2 6 5 102 260 503 |
4409 | +290 2 2 6 5 88 557 89 |
4410 | +291 2 2 6 5 252 557 518 |
4411 | +292 2 2 6 5 3 495 4 |
4412 | +293 2 2 6 5 588 81 80 |
4413 | +294 2 2 6 5 542 79 78 |
4414 | +295 2 2 6 5 542 533 79 |
4415 | +296 2 2 6 5 544 118 117 |
4416 | +297 2 2 6 5 111 585 112 |
4417 | +298 2 2 6 5 585 111 554 |
4418 | +299 2 2 6 5 263 585 554 |
4419 | +300 2 2 6 5 473 66 65 |
4420 | +301 2 2 6 5 582 51 50 |
4421 | +302 2 2 6 5 582 235 491 |
4422 | +303 2 2 6 5 545 126 125 |
4423 | +304 2 2 6 5 568 39 38 |
4424 | +305 2 2 6 5 39 568 563 |
4425 | +306 2 2 6 5 562 56 55 |
4426 | +307 2 2 6 5 510 562 247 |
4427 | +308 2 2 6 5 569 53 52 |
4428 | +309 2 2 6 5 573 53 569 |
4429 | +310 2 2 6 5 578 107 106 |
4430 | +311 2 2 6 5 131 526 132 |
4431 | +312 2 2 6 5 131 583 526 |
4432 | +313 2 2 6 5 571 34 33 |
4433 | +314 2 2 6 5 34 571 500 |
4434 | +315 2 2 6 5 571 256 500 |
4435 | +316 2 2 6 5 32 571 33 |
4436 | +317 2 2 6 5 571 32 451 |
4437 | +318 2 2 6 5 571 474 256 |
4438 | +319 2 2 6 5 451 474 571 |
4439 | +320 2 2 6 5 565 42 41 |
4440 | +321 2 2 6 5 18 566 19 |
4441 | +322 2 2 6 5 566 18 530 |
4442 | +323 2 2 6 5 242 566 530 |
4443 | +324 2 2 6 5 507 95 94 |
4444 | +325 2 2 6 5 558 97 96 |
4445 | +326 2 2 6 5 553 558 220 |
4446 | +327 2 2 6 5 99 482 100 |
4447 | +328 2 2 6 5 535 560 230 |
4448 | +329 2 2 6 5 14 560 15 |
4449 | +330 2 2 6 5 560 14 505 |
4450 | +331 2 2 6 5 230 560 505 |
4451 | +332 2 2 6 5 16 516 17 |
4452 | +333 2 2 6 5 535 228 516 |
4453 | +334 2 2 6 5 497 98 97 |
4454 | +335 2 2 6 5 532 212 446 |
4455 | +336 2 2 6 5 90 532 91 |
4456 | +337 2 2 6 5 69 550 70 |
4457 | +338 2 2 6 5 575 169 267 |
4458 | +339 2 2 6 5 168 539 246 |
4459 | +340 2 2 6 5 486 222 233 |
4460 | +341 2 2 6 5 231 551 481 |
4461 | +342 2 2 6 5 250 551 172 |
4462 | +343 2 2 6 5 504 551 250 |
4463 | +344 2 2 6 5 504 481 551 |
4464 | +345 2 2 6 5 584 250 172 |
4465 | +346 2 2 6 5 564 250 584 |
4466 | +347 2 2 6 5 519 259 266 |
4467 | +348 2 2 6 5 575 248 525 |
4468 | +349 2 2 6 5 248 575 267 |
4469 | +350 2 2 6 5 525 541 575 |
4470 | +351 2 2 6 5 253 556 581 |
4471 | +352 2 2 6 5 581 556 570 |
4472 | +353 2 2 6 5 508 232 263 |
4473 | +354 2 2 6 5 585 113 112 |
4474 | +355 2 2 6 5 585 579 113 |
4475 | +356 2 2 6 5 263 232 585 |
4476 | +357 2 2 6 5 585 232 579 |
4477 | +358 2 2 6 5 105 104 248 |
4478 | +359 2 2 6 5 267 105 248 |
4479 | +360 2 2 6 5 12 172 567 |
4480 | +361 2 2 6 5 12 584 172 |
4481 | +362 2 2 6 5 267 106 105 |
4482 | +363 2 2 6 5 578 106 267 |
4483 | +364 2 2 6 5 332 808 745 |
4484 | +365 2 2 6 5 399 816 781 |
4485 | +366 2 2 6 5 818 182 465 |
4486 | +367 2 2 6 5 182 818 735 |
4487 | +368 2 2 6 5 304 822 804 |
4488 | +369 2 2 6 5 354 834 640 |
4489 | +370 2 2 6 5 341 843 792 |
4490 | +371 2 2 6 5 214 857 826 |
4491 | +372 2 2 6 5 343 860 806 |
4492 | +373 2 2 6 5 863 316 860 |
4493 | +374 2 2 6 5 332 864 767 |
4494 | +375 2 2 6 5 869 376 758 |
4495 | +376 2 2 6 5 359 871 659 |
4496 | +377 2 2 6 5 340 880 784 |
4497 | +378 2 2 6 5 333 882 490 |
4498 | +379 2 2 6 5 351 884 791 |
4499 | +380 2 2 6 5 886 284 826 |
4500 | +381 2 2 6 5 888 359 659 |
4501 | +382 2 2 6 5 890 297 862 |
4502 | +383 2 2 6 5 890 434 881 |
4503 | +384 2 2 6 5 214 891 857 |
4504 | +385 2 2 6 5 896 321 740 |
4505 | +386 2 2 6 5 896 323 879 |
4506 | +387 2 2 6 5 898 184 746 |
4507 | +388 2 2 6 5 899 179 871 |
4508 | +389 2 2 6 5 900 217 885 |
4509 | +390 2 2 6 5 225 907 902 |
4510 | +391 2 2 6 5 309 908 713 |
4511 | +392 2 2 6 5 909 335 865 |
4512 | +393 2 2 6 5 910 346 440 |
4513 | +394 2 2 6 5 198 911 875 |
4514 | +395 2 2 6 5 370 913 664 |
4515 | +396 2 2 6 5 918 236 894 |
4516 | +397 2 2 6 5 919 213 845 |
4517 | +398 2 2 6 5 357 920 916 |
4518 | +399 2 2 6 5 196 924 876 |
4519 | +400 2 2 6 5 926 306 857 |
4520 | +401 2 2 6 5 296 927 838 |
4521 | +402 2 2 6 5 928 340 784 |
4522 | +403 2 2 6 5 929 391 416 |
4523 | +404 2 2 6 5 931 229 914 |
4524 | +405 2 2 6 5 931 343 930 |
4525 | +406 2 2 6 5 328 932 925 |
4526 | +407 2 2 6 5 933 405 787 |
4527 | +408 2 2 6 5 934 376 869 |
4528 | +409 2 2 6 5 394 936 768 |
4529 | +410 2 2 6 5 307 936 935 |
4530 | +411 2 2 6 5 937 309 881 |
4531 | +412 2 2 6 5 213 939 845 |
4532 | +413 2 2 6 5 940 354 640 |
4533 | +414 2 2 6 5 177 942 765 |
4534 | +415 2 2 6 5 326 942 869 |
4535 | +416 2 2 6 5 295 944 872 |
4536 | +417 2 2 6 5 949 323 895 |
4537 | +418 2 2 6 5 323 949 879 |
4538 | +419 2 2 6 5 950 214 826 |
4539 | +420 2 2 6 5 344 952 898 |
4540 | +421 2 2 6 5 953 404 459 |
4541 | +422 2 2 6 5 953 205 728 |
4542 | +423 2 2 6 5 955 475 877 |
4543 | +424 2 2 6 5 957 296 838 |
4544 | +425 2 2 6 5 297 960 862 |
4545 | +426 2 2 6 5 964 307 935 |
4546 | +427 2 2 6 5 964 417 960 |
4547 | +428 2 2 6 5 965 351 791 |
4548 | +429 2 2 6 5 396 966 879 |
4549 | +430 2 2 6 5 473 967 887 |
4550 | +431 2 2 6 5 297 970 960 |
4551 | +432 2 2 6 5 971 217 900 |
4552 | +433 2 2 6 5 972 373 939 |
4553 | +434 2 2 6 5 343 974 860 |
4554 | +435 2 2 6 5 217 976 885 |
4555 | +436 2 2 6 5 976 217 916 |
4556 | +437 2 2 6 5 337 977 853 |
4557 | +438 2 2 6 5 400 979 902 |
4558 | +439 2 2 6 5 317 980 618 |
4559 | +440 2 2 6 5 173 982 856 |
4560 | +441 2 2 6 5 983 349 908 |
4561 | +442 2 2 6 5 194 985 929 |
4562 | +443 2 2 6 5 165 986 948 |
4563 | +444 2 2 6 5 349 987 796 |
4564 | +445 2 2 6 5 990 208 921 |
4565 | +446 2 2 6 5 990 389 961 |
4566 | +447 2 2 6 5 993 219 967 |
4567 | +448 2 2 6 5 225 996 819 |
4568 | +449 2 2 6 5 997 225 819 |
4569 | +450 2 2 6 5 225 997 907 |
4570 | +451 2 2 6 5 998 304 980 |
4571 | +452 2 2 6 5 304 998 946 |
4572 | +453 2 2 6 5 211 999 841 |
4573 | +454 2 2 6 5 337 1000 918 |
4574 | +455 2 2 6 5 1001 413 930 |
4575 | +456 2 2 6 5 1002 328 925 |
4576 | +457 2 2 6 5 328 1002 923 |
4577 | +458 2 2 6 5 236 1003 894 |
4578 | +459 2 2 6 5 1004 339 822 |
4579 | +460 2 2 6 5 1005 219 872 |
4580 | +461 2 2 6 5 1006 381 978 |
4581 | +462 2 2 6 5 188 1007 963 |
4582 | +463 2 2 6 5 375 1009 756 |
4583 | +464 2 2 6 5 1010 221 493 |
4584 | +465 2 2 6 5 221 1010 838 |
4585 | +466 2 2 6 5 1012 335 760 |
4586 | +467 2 2 6 5 335 1012 973 |
4587 | +468 2 2 6 5 171 1013 820 |
4588 | +469 2 2 6 5 1014 321 966 |
4589 | +470 2 2 6 5 321 1014 965 |
4590 | +471 2 2 6 5 1015 322 865 |
4591 | +472 2 2 6 5 1016 473 887 |
4592 | +473 2 2 6 5 311 1018 888 |
4593 | +474 2 2 6 5 210 1020 937 |
4594 | +475 2 2 6 5 349 1021 987 |
4595 | +476 2 2 6 5 1022 201 469 |
4596 | +477 2 2 6 5 201 1022 933 |
4597 | +478 2 2 6 5 193 1023 893 |
4598 | +479 2 2 6 5 1025 396 879 |
4599 | +480 2 2 6 5 396 1025 877 |
4600 | +481 2 2 6 5 194 1026 447 |
4601 | +482 2 2 6 5 162 1027 496 |
4602 | +483 2 2 6 5 1028 455 979 |
4603 | +484 2 2 6 5 379 1029 809 |
4604 | +485 2 2 6 5 318 1029 1005 |
4605 | +486 2 2 6 5 390 1032 766 |
4606 | +487 2 2 6 5 1033 379 887 |
4607 | +488 2 2 6 5 1033 219 1005 |
4608 | +489 2 2 6 5 394 1034 941 |
4609 | +490 2 2 6 5 1034 394 875 |
4610 | +491 2 2 6 5 381 1036 978 |
4611 | +492 2 2 6 5 1036 381 923 |
4612 | +493 2 2 6 5 1037 194 929 |
4613 | +494 2 2 6 5 416 1037 929 |
4614 | +495 2 2 6 5 194 1037 1026 |
4615 | +496 2 2 6 5 369 1038 954 |
4616 | +497 2 2 6 5 502 1042 433 |
4617 | +498 2 2 6 5 1043 221 838 |
4618 | +499 2 2 6 5 173 1044 1030 |
4619 | +500 2 2 6 5 1045 510 238 |
4620 | +501 2 2 6 5 312 1046 827 |
4621 | +502 2 2 6 5 342 1046 1035 |
4622 | +503 2 2 6 5 1047 188 963 |
4623 | +504 2 2 6 5 1048 196 897 |
4624 | +505 2 2 6 5 196 1048 924 |
4625 | +506 2 2 6 5 1049 173 856 |
4626 | +507 2 2 6 5 173 1049 975 |
4627 | +508 2 2 6 5 1050 392 924 |
4628 | +509 2 2 6 5 1051 192 759 |
4629 | +510 2 2 6 5 297 1053 681 |
4630 | +511 2 2 6 5 309 1053 881 |
4631 | +512 2 2 6 5 473 1054 967 |
4632 | +513 2 2 6 5 1055 238 510 |
4633 | +514 2 2 6 5 1055 351 965 |
4634 | +515 2 2 6 5 1056 165 948 |
4635 | +516 2 2 6 5 1057 343 806 |
4636 | +517 2 2 6 5 343 1057 930 |
4637 | +518 2 2 6 5 519 1058 170 |
4638 | +519 2 2 6 5 396 1059 966 |
4639 | +520 2 2 6 5 1059 396 851 |
4640 | +521 2 2 6 5 163 1060 486 |
4641 | +522 2 2 6 5 377 1061 897 |
4642 | +523 2 2 6 5 1063 403 907 |
4643 | +524 2 2 6 5 1063 361 987 |
4644 | +525 2 2 6 5 350 1064 845 |
4645 | +526 2 2 6 5 357 1064 920 |
4646 | +527 2 2 6 5 1065 412 921 |
4647 | +528 2 2 6 5 1066 214 950 |
4648 | +529 2 2 6 5 193 1068 790 |
4649 | +530 2 2 6 5 317 1068 980 |
4650 | +531 2 2 6 5 1069 335 973 |
4651 | +532 2 2 6 5 335 1069 865 |
4652 | +533 2 2 6 5 1070 182 735 |
4653 | +534 2 2 6 5 165 1071 986 |
4654 | +535 2 2 6 5 1071 165 1041 |
4655 | +536 2 2 6 5 1072 441 973 |
4656 | +537 2 2 6 5 204 1073 847 |
4657 | +538 2 2 6 5 309 1074 908 |
4658 | +539 2 2 6 5 1074 309 937 |
4659 | +540 2 2 6 5 1076 163 486 |
4660 | +541 2 2 6 5 393 1076 486 |
4661 | +542 2 2 6 5 163 1076 1052 |
4662 | +543 2 2 6 5 379 1078 887 |
4663 | +544 2 2 6 5 1078 379 889 |
4664 | +545 2 2 6 5 1079 362 1035 |
4665 | +546 2 2 6 5 1080 327 714 |
4666 | +547 2 2 6 5 1080 306 926 |
4667 | +548 2 2 6 5 360 1081 716 |
4668 | +549 2 2 6 5 344 1081 952 |
4669 | +550 2 2 6 5 1083 363 962 |
4670 | +551 2 2 6 5 229 1085 513 |
4671 | +552 2 2 6 5 413 1085 930 |
4672 | +553 2 2 6 5 380 1088 983 |
4673 | +554 2 2 6 5 1089 382 841 |
4674 | +555 2 2 6 5 353 1089 841 |
4675 | +556 2 2 6 5 1091 348 913 |
4676 | +557 2 2 6 5 348 1091 1043 |
4677 | +558 2 2 6 5 1092 200 521 |
4678 | +559 2 2 6 5 349 1095 1021 |
4679 | +560 2 2 6 5 1095 349 983 |
4680 | +561 2 2 6 5 1098 184 898 |
4681 | +562 2 2 6 5 502 1099 1065 |
4682 | +563 2 2 6 5 1099 502 203 |
4683 | +564 2 2 6 5 1100 69 68 |
4684 | +565 2 2 6 5 204 1101 521 |
4685 | +566 2 2 6 5 353 1101 1089 |
4686 | +567 2 2 6 5 1102 400 902 |
4687 | +568 2 2 6 5 262 1104 483 |
4688 | +569 2 2 6 5 337 1105 1000 |
4689 | +570 2 2 6 5 1106 391 929 |
4690 | +571 2 2 6 5 496 1107 162 |
4691 | +572 2 2 6 5 401 1107 1011 |
4692 | +573 2 2 6 5 1108 384 876 |
4693 | +574 2 2 6 5 1109 161 437 |
4694 | +575 2 2 6 5 1110 384 1108 |
4695 | +576 2 2 6 5 403 1112 1102 |
4696 | +577 2 2 6 5 1113 437 161 |
4697 | +578 2 2 6 5 1113 438 431 |
4698 | +579 2 2 6 5 1115 249 435 |
4699 | +580 2 2 6 5 1117 382 1089 |
4700 | +581 2 2 6 5 1118 208 862 |
4701 | +582 2 2 6 5 1118 417 1042 |
4702 | +583 2 2 6 5 1120 353 841 |
4703 | +584 2 2 6 5 1120 373 972 |
4704 | +585 2 2 6 5 491 1121 582 |
4705 | +586 2 2 6 5 1121 491 569 |
4706 | +587 2 2 6 5 1121 51 582 |
4707 | +588 2 2 6 5 378 1122 1116 |
4708 | +589 2 2 6 5 1123 374 1003 |
4709 | +590 2 2 6 5 435 1124 1115 |
4710 | +591 2 2 6 5 1124 336 1115 |
4711 | +592 2 2 6 5 1126 385 1077 |
4712 | +593 2 2 6 5 1127 373 999 |
4713 | +594 2 2 6 5 403 1128 1112 |
4714 | +595 2 2 6 5 1128 403 1021 |
4715 | +596 2 2 6 5 1129 225 902 |
4716 | +597 2 2 6 5 359 1130 871 |
4717 | +598 2 2 6 5 372 1130 1083 |
4718 | +599 2 2 6 5 364 1132 856 |
4719 | +600 2 2 6 5 1132 364 1026 |
4720 | +601 2 2 6 5 1133 211 841 |
4721 | +602 2 2 6 5 382 1133 841 |
4722 | +603 2 2 6 5 211 1133 1040 |
4723 | +604 2 2 6 5 184 1134 746 |
4724 | +605 2 2 6 5 408 1134 1087 |
4725 | +606 2 2 6 5 1134 408 746 |
4726 | +607 2 2 6 5 327 1135 714 |
4727 | +608 2 2 6 5 1135 327 981 |
4728 | +609 2 2 6 5 1136 67 66 |
4729 | +610 2 2 6 5 1136 473 1016 |
4730 | +611 2 2 6 5 473 1136 66 |
4731 | +612 2 2 6 5 162 1138 1027 |
4732 | +613 2 2 6 5 385 1138 1077 |
4733 | +614 2 2 6 5 340 1139 880 |
4734 | +615 2 2 6 5 1139 430 880 |
4735 | +616 2 2 6 5 1139 340 1075 |
4736 | +617 2 2 6 5 437 1140 1109 |
4737 | +618 2 2 6 5 1140 437 952 |
4738 | +619 2 2 6 5 1140 360 1109 |
4739 | +620 2 2 6 5 399 1141 1001 |
4740 | +621 2 2 6 5 206 1142 969 |
4741 | +622 2 2 6 5 1143 399 781 |
4742 | +623 2 2 6 5 399 1143 1141 |
4743 | +624 2 2 6 5 213 1144 939 |
4744 | +625 2 2 6 5 1145 385 920 |
4745 | +626 2 2 6 5 1145 350 1027 |
4746 | +627 2 2 6 5 369 1146 874 |
4747 | +628 2 2 6 5 1146 369 954 |
4748 | +629 2 2 6 5 365 1147 900 |
4749 | +630 2 2 6 5 378 1147 1122 |
4750 | +631 2 2 6 5 469 1148 1022 |
4751 | +632 2 2 6 5 1148 374 1022 |
4752 | +633 2 2 6 5 1149 429 237 |
4753 | +634 2 2 6 5 463 1149 237 |
4754 | +635 2 2 6 5 441 1150 973 |
4755 | +636 2 2 6 5 208 1152 862 |
4756 | +637 2 2 6 5 434 1152 961 |
4757 | +638 2 2 6 5 372 1153 801 |
4758 | +639 2 2 6 5 171 1153 962 |
4759 | +640 2 2 6 5 1155 322 1015 |
4760 | +641 2 2 6 5 1156 392 963 |
4761 | +642 2 2 6 5 392 1156 1108 |
4762 | +643 2 2 6 5 47 1157 48 |
4763 | +644 2 2 6 5 1157 47 830 |
4764 | +645 2 2 6 5 1159 356 797 |
4765 | +646 2 2 6 5 1160 398 264 |
4766 | +647 2 2 6 5 1160 456 1119 |
4767 | +648 2 2 6 5 456 1160 264 |
4768 | +649 2 2 6 5 118 1161 119 |
4769 | +650 2 2 6 5 406 1162 1028 |
4770 | +651 2 2 6 5 345 1163 1067 |
4771 | +652 2 2 6 5 435 1163 1124 |
4772 | +653 2 2 6 5 1164 360 716 |
4773 | +654 2 2 6 5 206 1165 935 |
4774 | +655 2 2 6 5 312 1166 1079 |
4775 | +656 2 2 6 5 1167 537 1045 |
4776 | +657 2 2 6 5 537 1167 851 |
4777 | +658 2 2 6 5 238 1167 1045 |
4778 | +659 2 2 6 5 1168 448 1000 |
4779 | +660 2 2 6 5 400 1169 948 |
4780 | +661 2 2 6 5 1169 400 1102 |
4781 | +662 2 2 6 5 1170 206 935 |
4782 | +663 2 2 6 5 1170 394 941 |
4783 | +664 2 2 6 5 1171 416 391 |
4784 | +665 2 2 6 5 1172 351 1055 |
4785 | +666 2 2 6 5 510 1172 1055 |
4786 | +667 2 2 6 5 463 1173 1149 |
4787 | +668 2 2 6 5 406 1173 1162 |
4788 | +669 2 2 6 5 159 1174 882 |
4789 | +670 2 2 6 5 1174 490 882 |
4790 | +671 2 2 6 5 476 1175 972 |
4791 | +672 2 2 6 5 353 1175 1092 |
4792 | +673 2 2 6 5 1176 236 918 |
4793 | +674 2 2 6 5 236 1176 1154 |
4794 | +675 2 2 6 5 1177 221 1043 |
4795 | +676 2 2 6 5 221 1177 1137 |
4796 | +677 2 2 6 5 337 1178 977 |
4797 | +678 2 2 6 5 1179 406 986 |
4798 | +679 2 2 6 5 1179 429 1149 |
4799 | +680 2 2 6 5 1180 497 97 |
4800 | +681 2 2 6 5 1180 558 553 |
4801 | +682 2 2 6 5 558 1180 97 |
4802 | +683 2 2 6 5 1181 437 1113 |
4803 | +684 2 2 6 5 431 1181 1113 |
4804 | +685 2 2 6 5 1183 99 98 |
4805 | +686 2 2 6 5 497 1183 98 |
4806 | +687 2 2 6 5 211 1184 1011 |
4807 | +688 2 2 6 5 1184 211 1040 |
4808 | +689 2 2 6 5 336 1185 727 |
4809 | +690 2 2 6 5 1185 336 1124 |
4810 | +691 2 2 6 5 392 1186 963 |
4811 | +692 2 2 6 5 1186 392 1050 |
4812 | +693 2 2 6 5 1190 216 1088 |
4813 | +694 2 2 6 5 229 1192 914 |
4814 | +695 2 2 6 5 449 1192 1187 |
4815 | +696 2 2 6 5 386 1193 893 |
4816 | +697 2 2 6 5 517 1193 1097 |
4817 | +698 2 2 6 5 1193 517 893 |
4818 | +699 2 2 6 5 1194 380 1020 |
4819 | +700 2 2 6 5 1195 412 1065 |
4820 | +701 2 2 6 5 1198 420 1112 |
4821 | +702 2 2 6 5 1200 93 92 |
4822 | +703 2 2 6 5 175 1201 1131 |
4823 | +704 2 2 6 5 1202 386 893 |
4824 | +705 2 2 6 5 249 1203 460 |
4825 | +706 2 2 6 5 1204 350 845 |
4826 | +707 2 2 6 5 1204 373 1127 |
4827 | +708 2 2 6 5 236 1205 1003 |
4828 | +709 2 2 6 5 1206 356 1159 |
4829 | +710 2 2 6 5 1208 436 559 |
4830 | +711 2 2 6 5 1208 171 962 |
4831 | +712 2 2 6 5 569 1209 573 |
4832 | +713 2 2 6 5 1209 257 573 |
4833 | +714 2 2 6 5 464 1210 1123 |
4834 | +715 2 2 6 5 1210 464 170 |
4835 | +716 2 2 6 5 1211 160 459 |
4836 | +717 2 2 6 5 404 1211 459 |
4837 | +718 2 2 6 5 160 1211 572 |
4838 | +719 2 2 6 5 1213 170 1141 |
4839 | +720 2 2 6 5 1213 405 1210 |
4840 | +721 2 2 6 5 170 1213 1210 |
4841 | +722 2 2 6 5 397 1214 1041 |
4842 | +723 2 2 6 5 1215 339 1004 |
4843 | +724 2 2 6 5 1216 254 447 |
4844 | +725 2 2 6 5 1216 364 1119 |
4845 | +726 2 2 6 5 208 1217 921 |
4846 | +727 2 2 6 5 502 1217 1042 |
4847 | +728 2 2 6 5 425 1218 993 |
4848 | +729 2 2 6 5 1219 262 160 |
4849 | +730 2 2 6 5 439 1219 160 |
4850 | +731 2 2 6 5 1224 484 1099 |
4851 | +732 2 2 6 5 203 1224 1099 |
4852 | +733 2 2 6 5 1225 435 249 |
4853 | +734 2 2 6 5 1225 460 468 |
4854 | +735 2 2 6 5 460 1225 249 |
4855 | +736 2 2 6 5 401 1226 1107 |
4856 | +737 2 2 6 5 1226 162 1107 |
4857 | +738 2 2 6 5 1227 414 523 |
4858 | +739 2 2 6 5 414 1227 419 |
4859 | +740 2 2 6 5 215 1227 523 |
4860 | +741 2 2 6 5 1228 526 1154 |
4861 | +742 2 2 6 5 1229 341 1013 |
4862 | +743 2 2 6 5 1230 460 1203 |
4863 | +744 2 2 6 5 460 1230 1077 |
4864 | +745 2 2 6 5 1231 359 888 |
4865 | +746 2 2 6 5 202 1232 1004 |
4866 | +747 2 2 6 5 1232 202 1024 |
4867 | +748 2 2 6 5 1234 362 1030 |
4868 | +749 2 2 6 5 450 1235 1103 |
4869 | +750 2 2 6 5 217 1236 916 |
4870 | +751 2 2 6 5 224 1237 540 |
4871 | +752 2 2 6 5 1237 393 540 |
4872 | +753 2 2 6 5 1237 224 1116 |
4873 | +754 2 2 6 5 412 1239 921 |
4874 | +755 2 2 6 5 1240 364 856 |
4875 | +756 2 2 6 5 364 1240 1119 |
4876 | +757 2 2 6 5 1242 206 969 |
4877 | +758 2 2 6 5 206 1242 1165 |
4878 | +759 2 2 6 5 1243 357 916 |
4879 | +760 2 2 6 5 357 1243 1207 |
4880 | +761 2 2 6 5 1245 193 893 |
4881 | +762 2 2 6 5 1245 517 946 |
4882 | +763 2 2 6 5 517 1245 893 |
4883 | +764 2 2 6 5 244 1246 266 |
4884 | +765 2 2 6 5 519 1246 1058 |
4885 | +766 2 2 6 5 1246 519 266 |
4886 | +767 2 2 6 5 1247 400 948 |
4887 | +768 2 2 6 5 400 1247 979 |
4888 | +769 2 2 6 5 1248 115 114 |
4889 | +770 2 2 6 5 1249 217 971 |
4890 | +771 2 2 6 5 487 1249 971 |
4891 | +772 2 2 6 5 101 1250 260 |
4892 | +773 2 2 6 5 1252 365 1052 |
4893 | +774 2 2 6 5 1252 393 1122 |
4894 | +775 2 2 6 5 197 1253 469 |
4895 | +776 2 2 6 5 1254 368 1131 |
4896 | +777 2 2 6 5 507 1255 95 |
4897 | +778 2 2 6 5 558 1255 220 |
4898 | +779 2 2 6 5 219 1256 872 |
4899 | +780 2 2 6 5 1256 219 993 |
4900 | +781 2 2 6 5 67 1257 68 |
4901 | +782 2 2 6 5 445 1257 1016 |
4902 | +783 2 2 6 5 1259 216 1190 |
4903 | +784 2 2 6 5 216 1259 1198 |
4904 | +785 2 2 6 5 391 1260 1024 |
4905 | +786 2 2 6 5 1260 391 1106 |
4906 | +787 2 2 6 5 1262 362 1079 |
4907 | +788 2 2 6 5 442 1263 164 |
4908 | +789 2 2 6 5 413 1264 1085 |
4909 | +790 2 2 6 5 1264 513 1085 |
4910 | +791 2 2 6 5 413 1266 1058 |
4911 | +792 2 2 6 5 1266 413 1001 |
4912 | +793 2 2 6 5 1266 170 1058 |
4913 | +794 2 2 6 5 1267 190 837 |
4914 | +795 2 2 6 5 1267 342 1035 |
4915 | +796 2 2 6 5 1268 486 1060 |
4916 | +797 2 2 6 5 91 1270 92 |
4917 | +798 2 2 6 5 446 1270 532 |
4918 | +799 2 2 6 5 1270 91 532 |
4919 | +800 2 2 6 5 1271 542 243 |
4920 | +801 2 2 6 5 1272 374 1148 |
4921 | +802 2 2 6 5 1273 333 572 |
4922 | +803 2 2 6 5 333 1273 844 |
4923 | +804 2 2 6 5 529 1274 161 |
4924 | +805 2 2 6 5 182 1275 465 |
4925 | +806 2 2 6 5 430 1275 880 |
4926 | +807 2 2 6 5 1275 182 880 |
4927 | +808 2 2 6 5 29 1279 30 |
4928 | +809 2 2 6 5 484 1279 1195 |
4929 | +810 2 2 6 5 363 1280 1125 |
4930 | +811 2 2 6 5 1280 363 1083 |
4931 | +812 2 2 6 5 1281 398 982 |
4932 | +813 2 2 6 5 175 1282 528 |
4933 | +814 2 2 6 5 1282 175 1131 |
4934 | +815 2 2 6 5 1283 450 1103 |
4935 | +816 2 2 6 5 350 1284 1027 |
4936 | +817 2 2 6 5 496 1284 1127 |
4937 | +818 2 2 6 5 1284 496 1027 |
4938 | +819 2 2 6 5 452 1285 1050 |
4939 | +820 2 2 6 5 451 1286 474 |
4940 | +821 2 2 6 5 203 1286 1224 |
4941 | +822 2 2 6 5 5 1287 168 |
4942 | +823 2 2 6 5 417 1288 1042 |
4943 | +824 2 2 6 5 1288 433 1042 |
4944 | +825 2 2 6 5 1288 417 1165 |
4945 | +826 2 2 6 5 254 1289 576 |
4946 | +827 2 2 6 5 456 1289 1119 |
4947 | +828 2 2 6 5 1290 463 978 |
4948 | +829 2 2 6 5 1291 420 1198 |
4949 | +830 2 2 6 5 547 1292 1229 |
4950 | +831 2 2 6 5 1292 547 240 |
4951 | +832 2 2 6 5 1293 59 58 |
4952 | +833 2 2 6 5 434 1294 881 |
4953 | +834 2 2 6 5 1295 391 1024 |
4954 | +835 2 2 6 5 391 1295 1171 |
4955 | +836 2 2 6 5 116 1296 117 |
4956 | +837 2 2 6 5 1296 544 117 |
4957 | +838 2 2 6 5 1296 116 1137 |
4958 | +839 2 2 6 5 1297 234 539 |
4959 | +840 2 2 6 5 1297 441 1072 |
4960 | +841 2 2 6 5 1298 405 933 |
4961 | +842 2 2 6 5 1298 374 1123 |
4962 | +843 2 2 6 5 88 1299 557 |
4963 | +844 2 2 6 5 1299 518 557 |
4964 | +845 2 2 6 5 234 1300 539 |
4965 | +846 2 2 6 5 1302 229 513 |
4966 | +847 2 2 6 5 1302 545 1187 |
4967 | +848 2 2 6 5 433 1303 203 |
4968 | +849 2 2 6 5 1304 352 867 |
4969 | +850 2 2 6 5 482 1305 1199 |
4970 | +851 2 2 6 5 224 1307 1116 |
4971 | +852 2 2 6 5 1307 224 1199 |
4972 | +853 2 2 6 5 1308 200 1092 |
4973 | +854 2 2 6 5 1309 516 16 |
4974 | +855 2 2 6 5 1309 560 535 |
4975 | +856 2 2 6 5 516 1309 535 |
4976 | +857 2 2 6 5 1310 419 220 |
4977 | +858 2 2 6 5 419 1310 414 |
4978 | +859 2 2 6 5 1313 442 515 |
4979 | +860 2 2 6 5 471 1313 515 |
4980 | +861 2 2 6 5 442 1313 1190 |
4981 | +862 2 2 6 5 230 1314 535 |
4982 | +863 2 2 6 5 1314 395 535 |
4983 | +864 2 2 6 5 1318 224 524 |
4984 | +865 2 2 6 5 224 1318 1199 |
4985 | +866 2 2 6 5 380 1319 1088 |
4986 | +867 2 2 6 5 1319 380 1194 |
4987 | +868 2 2 6 5 512 1320 169 |
4988 | +869 2 2 6 5 1320 578 169 |
4989 | +870 2 2 6 5 1321 255 1067 |
4990 | +871 2 2 6 5 507 1323 1310 |
4991 | +872 2 2 6 5 1323 414 1310 |
4992 | +873 2 2 6 5 352 1325 950 |
4993 | +874 2 2 6 5 1326 464 1205 |
4994 | +875 2 2 6 5 341 1328 843 |
4995 | +876 2 2 6 5 1328 341 1229 |
4996 | +877 2 2 6 5 453 1330 1111 |
4997 | +878 2 2 6 5 384 1332 876 |
4998 | +879 2 2 6 5 351 1333 884 |
4999 | +880 2 2 6 5 1333 410 884 |
5000 | +881 2 2 6 5 508 1335 232 |