From 3875ac2b8df9145a66e9f6fcf34e77eb3bc2d072 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 27 Jul 2021 22:01:05 +0200 Subject: added first part of paper and code --- buch/papers/multiplikation/Makefile | 0 buch/papers/multiplikation/Makefile.inc | 7 +- buch/papers/multiplikation/code/Figure_1.png | Bin 0 -> 144173 bytes buch/papers/multiplikation/code/MM | Bin 0 -> 26848 bytes buch/papers/multiplikation/code/MM.c | 465 + buch/papers/multiplikation/code/MM.py | 311 + .../code/__pycache__/MM.cpython-38.pyc | Bin 0 -> 4160 bytes buch/papers/multiplikation/code/c_matrix.h | 101 + buch/papers/multiplikation/code/c_meas_1024.pdf | Bin 0 -> 16748 bytes buch/papers/multiplikation/code/c_meas_128.pdf | Bin 0 -> 16454 bytes buch/papers/multiplikation/code/c_meas_16.pdf | Bin 0 -> 16376 bytes buch/papers/multiplikation/code/c_meas_2048.pdf | Bin 0 -> 16281 bytes buch/papers/multiplikation/code/c_meas_256.pdf | Bin 0 -> 15286 bytes buch/papers/multiplikation/code/c_meas_32.pdf | Bin 0 -> 15163 bytes buch/papers/multiplikation/code/c_meas_4096.pdf | Bin 0 -> 15865 bytes buch/papers/multiplikation/code/c_meas_512.pdf | Bin 0 -> 15472 bytes buch/papers/multiplikation/code/c_meas_64.pdf | Bin 0 -> 16358 bytes buch/papers/multiplikation/code/c_meas_8.pdf | Bin 0 -> 16766 bytes buch/papers/multiplikation/code/helper_class.py | 105 + buch/papers/multiplikation/code/meas/MM.txt | 12 + buch/papers/multiplikation/code/meas/MM_dc.txt | 12 + buch/papers/multiplikation/code/meas/blas.txt | 12 + buch/papers/multiplikation/code/meas/strassen.txt | 12 + .../multiplikation/code/meas/test/4096/MM.txt | 12 + .../code/meas/test/4096/strassen.txt | 12 + buch/papers/multiplikation/code/meas/test/MM.txt | 14900 +++++++++++++++++++ buch/papers/multiplikation/code/meas/test/blas.txt | 14900 +++++++++++++++++++ .../multiplikation/code/meas/test/winograd.txt | 14900 +++++++++++++++++++ buch/papers/multiplikation/code/meas/winograd.txt | 11 + buch/papers/multiplikation/code/meas_1024.pdf | Bin 0 -> 17660 bytes buch/papers/multiplikation/code/meas_1024.txt | 6 + buch/papers/multiplikation/code/meas_128.pdf | Bin 0 -> 17961 bytes buch/papers/multiplikation/code/meas_128.txt | 6 + buch/papers/multiplikation/code/meas_16.pdf | Bin 0 -> 17766 bytes buch/papers/multiplikation/code/meas_16.txt | 6 + buch/papers/multiplikation/code/meas_256.pdf | Bin 0 -> 18067 bytes buch/papers/multiplikation/code/meas_256.txt | 6 + buch/papers/multiplikation/code/meas_32.pdf | Bin 0 -> 17078 bytes buch/papers/multiplikation/code/meas_32.txt | 6 + buch/papers/multiplikation/code/meas_512.pdf | Bin 0 -> 18028 bytes buch/papers/multiplikation/code/meas_512.txt | 6 + buch/papers/multiplikation/code/meas_64.pdf | Bin 0 -> 17678 bytes buch/papers/multiplikation/code/meas_64.txt | 6 + buch/papers/multiplikation/code/meas_8.pdf | Bin 0 -> 18400 bytes buch/papers/multiplikation/code/meas_8.txt | 6 + buch/papers/multiplikation/code/test.tex | 92 + buch/papers/multiplikation/einlteung.tex | 52 + buch/papers/multiplikation/images/bigo.pdf | Bin 0 -> 24288 bytes buch/papers/multiplikation/images/bigo.tex | 107 + .../multiplikation/images/mm_visualisation.pdf | Bin 0 -> 21665 bytes .../multiplikation/images/mm_visualisation.tex | 45 + buch/papers/multiplikation/images/strassen.pdf | Bin 0 -> 15850 bytes buch/papers/multiplikation/images/strassen.tex | 140 + buch/papers/multiplikation/loesungsmethoden.tex | 309 + buch/papers/multiplikation/main.tex | 34 +- buch/papers/multiplikation/packages.tex | 0 buch/papers/multiplikation/papers/Strassen_GPU.pdf | Bin 0 -> 254508 bytes .../papers/Strassen_original_1969.pdf | Bin 0 -> 151265 bytes .../papers/multiplikation/papers/assay_fast_MM.pdf | Bin 0 -> 484352 bytes .../multiplikation/papers/strassen_video.txt | 1 + .../multiplikation/papers/winograd_original.pdf | Bin 0 -> 533604 bytes buch/papers/multiplikation/presentation/common.tex | 79 + .../multiplikation/presentation/presentation.nav | 59 + .../multiplikation/presentation/presentation.pdf | Bin 0 -> 717544 bytes .../multiplikation/presentation/presentation.snm | 0 .../multiplikation/presentation/presentation.tex | 12 + .../multiplikation/presentation/slides/algo.tex | 111 + .../multiplikation/presentation/slides/bigO.tex | 251 + .../multiplikation/presentation/slides/blas.tex | 18 + .../presentation/slides/conclusuion.tex | 0 .../multiplikation/presentation/slides/logo.pdf | Bin 0 -> 8987 bytes .../multiplikation/presentation/slides/meas.tex | 42 + .../multiplikation/presentation/slides/nn.tex | 97 + .../multiplikation/presentation/slides/parcomp.tex | 66 + .../multiplikation/presentation/slides/slides.tex | 15 + .../presentation/slides/strassen.tex | 429 + .../multiplikation/presentation/tikz/algo.pdf | Bin 0 -> 33396 bytes .../multiplikation/presentation/tikz/algo.tex | 52 + buch/papers/multiplikation/problemstellung.tex | 104 + buch/papers/multiplikation/references.bib | 30 + buch/papers/multiplikation/teil0.tex | 22 - buch/papers/multiplikation/teil1.tex | 55 - buch/papers/multiplikation/teil2.tex | 40 - buch/papers/multiplikation/teil3.tex | 40 - .../multiplikation/tikz_formulas/algo.fdb_latexmk | 254 + buch/papers/multiplikation/tikz_formulas/algo.fls | 438 + buch/papers/multiplikation/tikz_formulas/algo.pdf | Bin 0 -> 33785 bytes buch/papers/multiplikation/tikz_formulas/algo.tex | 131 + .../tikz_formulas/algo_graph.fdb_latexmk | 245 + .../multiplikation/tikz_formulas/algo_graph.fls | 485 + .../multiplikation/tikz_formulas/algo_graph.pdf | Bin 0 -> 15850 bytes .../multiplikation/tikz_formulas/algo_graph.tex | 140 + 92 files changed, 49628 insertions(+), 187 deletions(-) mode change 100644 => 100755 buch/papers/multiplikation/Makefile mode change 100644 => 100755 buch/papers/multiplikation/Makefile.inc create mode 100755 buch/papers/multiplikation/code/Figure_1.png create mode 100755 buch/papers/multiplikation/code/MM create mode 100755 buch/papers/multiplikation/code/MM.c create mode 100644 buch/papers/multiplikation/code/MM.py create mode 100644 buch/papers/multiplikation/code/__pycache__/MM.cpython-38.pyc create mode 100644 buch/papers/multiplikation/code/c_matrix.h create mode 100644 buch/papers/multiplikation/code/c_meas_1024.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_128.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_16.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_2048.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_256.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_32.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_4096.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_512.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_64.pdf create mode 100644 buch/papers/multiplikation/code/c_meas_8.pdf create mode 100755 buch/papers/multiplikation/code/helper_class.py create mode 100644 buch/papers/multiplikation/code/meas/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/MM_dc.txt create mode 100644 buch/papers/multiplikation/code/meas/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/test/4096/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/test/4096/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/test/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/test/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/test/winograd.txt create mode 100644 buch/papers/multiplikation/code/meas/winograd.txt create mode 100644 buch/papers/multiplikation/code/meas_1024.pdf create mode 100644 buch/papers/multiplikation/code/meas_1024.txt create mode 100644 buch/papers/multiplikation/code/meas_128.pdf create mode 100644 buch/papers/multiplikation/code/meas_128.txt create mode 100644 buch/papers/multiplikation/code/meas_16.pdf create mode 100644 buch/papers/multiplikation/code/meas_16.txt create mode 100644 buch/papers/multiplikation/code/meas_256.pdf create mode 100644 buch/papers/multiplikation/code/meas_256.txt create mode 100644 buch/papers/multiplikation/code/meas_32.pdf create mode 100644 buch/papers/multiplikation/code/meas_32.txt create mode 100644 buch/papers/multiplikation/code/meas_512.pdf create mode 100644 buch/papers/multiplikation/code/meas_512.txt create mode 100644 buch/papers/multiplikation/code/meas_64.pdf create mode 100644 buch/papers/multiplikation/code/meas_64.txt create mode 100644 buch/papers/multiplikation/code/meas_8.pdf create mode 100644 buch/papers/multiplikation/code/meas_8.txt create mode 100644 buch/papers/multiplikation/code/test.tex create mode 100755 buch/papers/multiplikation/einlteung.tex create mode 100644 buch/papers/multiplikation/images/bigo.pdf create mode 100644 buch/papers/multiplikation/images/bigo.tex create mode 100644 buch/papers/multiplikation/images/mm_visualisation.pdf create mode 100644 buch/papers/multiplikation/images/mm_visualisation.tex create mode 100644 buch/papers/multiplikation/images/strassen.pdf create mode 100644 buch/papers/multiplikation/images/strassen.tex create mode 100755 buch/papers/multiplikation/loesungsmethoden.tex mode change 100644 => 100755 buch/papers/multiplikation/main.tex mode change 100644 => 100755 buch/papers/multiplikation/packages.tex create mode 100755 buch/papers/multiplikation/papers/Strassen_GPU.pdf create mode 100755 buch/papers/multiplikation/papers/Strassen_original_1969.pdf create mode 100755 buch/papers/multiplikation/papers/assay_fast_MM.pdf create mode 100755 buch/papers/multiplikation/papers/strassen_video.txt create mode 100755 buch/papers/multiplikation/papers/winograd_original.pdf create mode 100644 buch/papers/multiplikation/presentation/common.tex create mode 100644 buch/papers/multiplikation/presentation/presentation.nav create mode 100644 buch/papers/multiplikation/presentation/presentation.pdf create mode 100644 buch/papers/multiplikation/presentation/presentation.snm create mode 100644 buch/papers/multiplikation/presentation/presentation.tex create mode 100644 buch/papers/multiplikation/presentation/slides/algo.tex create mode 100644 buch/papers/multiplikation/presentation/slides/bigO.tex create mode 100644 buch/papers/multiplikation/presentation/slides/blas.tex create mode 100644 buch/papers/multiplikation/presentation/slides/conclusuion.tex create mode 100644 buch/papers/multiplikation/presentation/slides/logo.pdf create mode 100644 buch/papers/multiplikation/presentation/slides/meas.tex create mode 100644 buch/papers/multiplikation/presentation/slides/nn.tex create mode 100644 buch/papers/multiplikation/presentation/slides/parcomp.tex create mode 100644 buch/papers/multiplikation/presentation/slides/slides.tex create mode 100644 buch/papers/multiplikation/presentation/slides/strassen.tex create mode 100644 buch/papers/multiplikation/presentation/tikz/algo.pdf create mode 100644 buch/papers/multiplikation/presentation/tikz/algo.tex create mode 100755 buch/papers/multiplikation/problemstellung.tex mode change 100644 => 100755 buch/papers/multiplikation/references.bib delete mode 100644 buch/papers/multiplikation/teil0.tex delete mode 100644 buch/papers/multiplikation/teil1.tex delete mode 100644 buch/papers/multiplikation/teil2.tex delete mode 100644 buch/papers/multiplikation/teil3.tex create mode 100644 buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk create mode 100644 buch/papers/multiplikation/tikz_formulas/algo.fls create mode 100644 buch/papers/multiplikation/tikz_formulas/algo.pdf create mode 100755 buch/papers/multiplikation/tikz_formulas/algo.tex create mode 100644 buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk create mode 100644 buch/papers/multiplikation/tikz_formulas/algo_graph.fls create mode 100755 buch/papers/multiplikation/tikz_formulas/algo_graph.pdf create mode 100755 buch/papers/multiplikation/tikz_formulas/algo_graph.tex (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/Makefile b/buch/papers/multiplikation/Makefile old mode 100644 new mode 100755 diff --git a/buch/papers/multiplikation/Makefile.inc b/buch/papers/multiplikation/Makefile.inc old mode 100644 new mode 100755 index b78d67e..074020f --- a/buch/papers/multiplikation/Makefile.inc +++ b/buch/papers/multiplikation/Makefile.inc @@ -7,8 +7,7 @@ dependencies-multiplikation = \ papers/multiplikation/packages.tex \ papers/multiplikation/main.tex \ papers/multiplikation/references.bib \ - papers/multiplikation/teil0.tex \ - papers/multiplikation/teil1.tex \ - papers/multiplikation/teil2.tex \ - papers/multiplikation/teil3.tex + papers/multiplikation/einlteung.tex \ + papers/multiplikation/loesungsmethoden.tex \ + papers/multiplikation/problemstellung.tex diff --git a/buch/papers/multiplikation/code/Figure_1.png b/buch/papers/multiplikation/code/Figure_1.png new file mode 100755 index 0000000..9def15a Binary files /dev/null and b/buch/papers/multiplikation/code/Figure_1.png differ diff --git a/buch/papers/multiplikation/code/MM b/buch/papers/multiplikation/code/MM new file mode 100755 index 0000000..f07985f Binary files /dev/null and b/buch/papers/multiplikation/code/MM differ diff --git a/buch/papers/multiplikation/code/MM.c b/buch/papers/multiplikation/code/MM.c new file mode 100755 index 0000000..04c4dab --- /dev/null +++ b/buch/papers/multiplikation/code/MM.c @@ -0,0 +1,465 @@ +#include +#include +#include +#include +#include +#include "c_matrix.h" +#include +#include + +void MM(int *A, int *B, int *C, int n); +void openMP_MM(int *A, int *B, int *C, int n); +void winograd(int *A, int *B, int *C, int n); +int winograd_inner(int *a, int *b, int n); +void run_algo(void (*algo)(), char alog_name[], int print); +void run_algo_cblas(int print); +void MM_dc(int *A, int *B, int *C, int n); +void strassen(int *A, int *B, int *C, int n); +void printMatrix(int *C, int n); +void printMatrix_double(double *C, int n); +void split(int *in, int *out, int n, int col, int row); +void join(int *in, int *out, int n, int col, int row); +void add(int *A, int *B, int *C, int n); +void sub(int *A, int *B, int *C, int n); +void multiply(int *A, int *B, int *C, int n); + +int main() { + // omp_set_dynamic(0); + // omp_set_num_threads(4); +// run_algo(openMP_MM, "openMP_MM",0); + run_algo(MM_dc, "MM_dc",0); + run_algo(strassen, "strassen",0); + + run_algo(MM, "MM", 0); + // run_algo(winograd, "winograd", 0); + run_algo_cblas(0); + + return 0; +} + +void MM(int *A, int *B, int *C, int n) { + for (int i = 0; i < n; ++i) { + for (int j = 0; j < n; ++j) { + int sum = 0; + for (int k = 0; k < n; ++k) { + sum += (*((A + i * n) + k)) * (*((B + k * n) + j)); + } + *((C + i * n) + j) = sum; + } + } +} + +int winograd_inner(int *a, int *b, int n){ + int ab = 0; + if(n%2==0) + { + int xi = 0; + int etha = 0; + for(int i = 0; i +const int A0[][2] = + { + {-15,68}, + {49,86} + }; +const int B0[][2] = + { + {33,73}, + {38,-76} + }; +const double dB0[][2] = + { + {33,73}, + {38,-76} + }; +const double dA0[][2] = + { + {-15,68}, + {49,86} + }; +const int A1[][4] = + { + {75,-38,-32,-65}, + {37,74,-31,29}, + {15,-62,-20,-20}, + {-31,-35,-89,47} + }; +const int B1[][4] = + { + {71,90,78,-98}, + {4,63,12,-47}, + {11,-44,75,-69}, + {95,-15,64,23} + }; +const double dB1[][4] = + { + {71,90,78,-98}, + {4,63,12,-47}, + {11,-44,75,-69}, + {95,-15,64,23} + }; +const double dA1[][4] = + { + {75,-38,-32,-65}, + {37,74,-31,29}, + {15,-62,-20,-20}, + {-31,-35,-89,47} + }; +const int A2[][8] = + { + {80,42,3,-16,6,55,87,16}, + {-99,-14,21,-1,-94,-56,91,10}, + {-47,-55,-59,62,12,-53,87,-65}, + {-60,94,-67,23,-62,33,-63,-72}, + {12,-75,16,21,22,-37,1,16}, + {-100,-99,82,-66,2,64,-13,44}, + {59,-100,-90,8,36,-24,18,88}, + {73,-58,75,-100,-19,-29,85,-19} + }; +const int B2[][8] = + { + {-61,88,69,49,-53,47,73,45}, + {16,14,-88,-11,-67,-73,-20,43}, + {-60,-63,26,32,-29,18,-44,-69}, + {1,21,21,38,7,-100,-61,-76}, + {-90,95,-99,88,49,-80,27,-36}, + {24,-12,-47,-7,29,15,52,37}, + {-98,-76,29,76,-41,-75,97,79}, + {62,-90,-35,-14,-30,-42,-95,52} + }; +const double dB2[][8] = + { + {-61,88,69,49,-53,47,73,45}, + {16,14,-88,-11,-67,-73,-20,43}, + {-60,-63,26,32,-29,18,-44,-69}, + {1,21,21,38,7,-100,-61,-76}, + {-90,95,-99,88,49,-80,27,-36}, + {24,-12,-47,-7,29,15,52,37}, + {-98,-76,29,76,-41,-75,97,79}, + {62,-90,-35,-14,-30,-42,-95,52} + }; +const double dA2[][8] = + { + {80,42,3,-16,6,55,87,16}, + {-99,-14,21,-1,-94,-56,91,10}, + {-47,-55,-59,62,12,-53,87,-65}, + {-60,94,-67,23,-62,33,-63,-72}, + {12,-75,16,21,22,-37,1,16}, + {-100,-99,82,-66,2,64,-13,44}, + {59,-100,-90,8,36,-24,18,88}, + {73,-58,75,-100,-19,-29,85,-19} + }; +const int *Ap[3] = {(int*) A0,(int*) A1,(int*) A2}; +const int *Bp[3] = {(int*) B0,(int*) B1,(int*) B2}; +const double *dAp[3] = {(double*) dA0,(double*) dA1,(double*) dA2}; +const double *dBp[3] = {(double*) dB0,(double*) dB1,(double*) dB2}; +int n[3] = {2,4,8}; +int n_arrays = 3; diff --git a/buch/papers/multiplikation/code/c_meas_1024.pdf b/buch/papers/multiplikation/code/c_meas_1024.pdf new file mode 100644 index 0000000..95b68b5 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_128.pdf b/buch/papers/multiplikation/code/c_meas_128.pdf new file mode 100644 index 0000000..56b9200 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_128.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_16.pdf b/buch/papers/multiplikation/code/c_meas_16.pdf new file mode 100644 index 0000000..2edc82d Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_16.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_2048.pdf b/buch/papers/multiplikation/code/c_meas_2048.pdf new file mode 100644 index 0000000..caba698 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_2048.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_256.pdf b/buch/papers/multiplikation/code/c_meas_256.pdf new file mode 100644 index 0000000..383ae86 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_256.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_32.pdf b/buch/papers/multiplikation/code/c_meas_32.pdf new file mode 100644 index 0000000..180fd22 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_32.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf new file mode 100644 index 0000000..547d794 Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_512.pdf b/buch/papers/multiplikation/code/c_meas_512.pdf new file mode 100644 index 0000000..5e8894e Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_512.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_64.pdf b/buch/papers/multiplikation/code/c_meas_64.pdf new file mode 100644 index 0000000..8ff905c Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_64.pdf differ diff --git a/buch/papers/multiplikation/code/c_meas_8.pdf b/buch/papers/multiplikation/code/c_meas_8.pdf new file mode 100644 index 0000000..9682aca Binary files /dev/null and b/buch/papers/multiplikation/code/c_meas_8.pdf differ diff --git a/buch/papers/multiplikation/code/helper_class.py b/buch/papers/multiplikation/code/helper_class.py new file mode 100755 index 0000000..485fa76 --- /dev/null +++ b/buch/papers/multiplikation/code/helper_class.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 12 09:02:48 2021 + +@author: nunigan +""" + +from datetime import datetime +import numpy as np + +class Helper(): + def __init__(self): + pass + + def write_c_matrix(self, n_array): + + with open('c_matrix.h', 'w') as file: + file.writelines('/* Seminar Matrizen, autogenerated File, Michael Schmid, {} */ \n \n'.format(datetime.now().strftime("%d/%m/%Y, %H:%M:%S"))) + + file.writelines('#include \n') + + + + for k, n in enumerate(n_array): + A = np.random.randint(-100,100,(n,n)) + B = np.random.randint(-100,100,(n,n)) + file.writelines('const int A{}[][{}] = \n'.format(k, n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(A[i,j])) + else: + file.writelines('{},'.format(A[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const int B{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(B[i,j])) + else: + file.writelines('{},'.format(B[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const double dB{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(B[i,j])) + else: + file.writelines('{},'.format(B[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const double dA{}[][{}] = \n'.format(k,n)) + file.writelines(' {\n') + for i in range(n): + file.writelines(' {') + for j in range(n): + if j == n-1: + file.writelines('{}'.format(A[i,j])) + else: + file.writelines('{},'.format(A[i,j])) + if i == n-1: + file.writelines('}\n') + else: + file.writelines('},\n') + + file.writelines(' };\n') + + file.writelines('const int *Ap[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(int*) A'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const int *Bp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(int*) B'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const double *dAp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(double*) dA'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('const double *dBp[{}] = {{{}}}; \n'.format(len(n_array),",".join(['(double*) dB'+str(element) for element in np.arange(len(n_array))]))) + file.writelines('int n[{}] = {{{}}}; \n'.format(len(n_array),",".join([str(element) for element in n_array]))) + file.writelines('int n_arrays = {};\n'.format(len(n_array))) + +# test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +if __name__ == '__main__': + + helper = Helper() + # n = np.arange(2,10) + n = np.logspace(1,3,3,base=2,dtype=(np.int)) + C = helper.write_c_matrix(n) diff --git a/buch/papers/multiplikation/code/meas/MM.txt b/buch/papers/multiplikation/code/meas/MM.txt new file mode 100644 index 0000000..1a0cd5d --- /dev/null +++ b/buch/papers/multiplikation/code/meas/MM.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000000,4 +0.000002,8 +0.000011,16 +0.000080,32 +0.000653,64 +0.005397,128 +0.045147,256 +0.487710,512 +3.964180,1024 +128.863544,2048 +996.370209,4096 diff --git a/buch/papers/multiplikation/code/meas/MM_dc.txt b/buch/papers/multiplikation/code/meas/MM_dc.txt new file mode 100644 index 0000000..0d5580a --- /dev/null +++ b/buch/papers/multiplikation/code/meas/MM_dc.txt @@ -0,0 +1,12 @@ +0.000006,2 +0.000007,4 +0.000035,8 +0.000228,16 +0.001310,32 +0.007204,64 +0.034338,128 +0.267511,256 +2.131212,512 +17.177403,1024 +146.112874,2048 +1156.777565,4096 diff --git a/buch/papers/multiplikation/code/meas/blas.txt b/buch/papers/multiplikation/code/meas/blas.txt new file mode 100644 index 0000000..6b7cd0b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/blas.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000000,4 +0.000001,8 +0.000003,16 +0.000021,32 +0.000164,64 +0.001240,128 +0.009657,256 +0.072523,512 +0.735149,1024 +6.895747,2048 +56.812183,4096 diff --git a/buch/papers/multiplikation/code/meas/strassen.txt b/buch/papers/multiplikation/code/meas/strassen.txt new file mode 100644 index 0000000..89cf41a --- /dev/null +++ b/buch/papers/multiplikation/code/meas/strassen.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000003,4 +0.000010,8 +0.000086,16 +0.000476,32 +0.003366,64 +0.025547,128 +0.184593,256 +1.248713,512 +9.007700,1024 +61.079879,2048 +424.493037,4096 diff --git a/buch/papers/multiplikation/code/meas/test/4096/MM.txt b/buch/papers/multiplikation/code/meas/test/4096/MM.txt new file mode 100644 index 0000000..25e40e1 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/4096/MM.txt @@ -0,0 +1,12 @@ +0.000000,2 +0.000000,4 +0.000002,8 +0.000011,16 +0.000100,32 +0.000712,64 +0.005498,128 +0.046711,256 +0.489233,512 +4.006544,1024 +124.427496,2048 +993.405615,4096 diff --git a/buch/papers/multiplikation/code/meas/test/4096/strassen.txt b/buch/papers/multiplikation/code/meas/test/4096/strassen.txt new file mode 100644 index 0000000..eb2a496 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/4096/strassen.txt @@ -0,0 +1,12 @@ +0.000007,2 +0.000007,4 +0.000029,8 +0.000199,16 +0.001414,32 +0.007583,64 +0.028096,128 +0.171662,256 +1.198323,512 +8.421896,1024 +58.803644,2048 +415.115401,4096 diff --git a/buch/papers/multiplikation/code/meas/test/MM.txt b/buch/papers/multiplikation/code/meas/test/MM.txt new file mode 100644 index 0000000..e0754ab --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/MM.txt @@ -0,0 +1,14900 @@ +0.000004,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 +0.000001,8 +0.000002,8 +0.000002,8 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000006,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000013,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000008,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000016,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000007,14 +0.000011,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000025,16 +0.000011,16 +0.000020,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000010,16 +0.000016,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000015,18 +0.000014,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000015,18 +0.000014,18 +0.000021,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000030,20 +0.000029,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000030,20 +0.000030,20 +0.000029,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000048,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000020,20 +0.000027,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000033,22 +0.000040,22 +0.000045,22 +0.000046,22 +0.000041,22 +0.000040,22 +0.000040,22 +0.000040,22 +0.000042,22 +0.000040,22 +0.000043,22 +0.000030,22 +0.000036,22 +0.000026,22 +0.000037,22 +0.000049,22 +0.000036,22 +0.000046,22 +0.000047,22 +0.000049,22 +0.000037,22 +0.000035,22 +0.000037,22 +0.000050,22 +0.000055,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000036,22 +0.000036,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000026,22 +0.000036,22 +0.000046,22 +0.000062,22 +0.000047,22 +0.000036,22 +0.000047,22 +0.000041,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000050,24 +0.000053,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000055,24 +0.000058,26 +0.000055,26 +0.000077,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000052,26 +0.000043,26 +0.000043,26 +0.000066,26 +0.000061,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000054,28 +0.000054,28 +0.000053,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000065,28 +0.000066,28 +0.000058,28 +0.000097,28 +0.000084,28 +0.000073,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000073,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000073,28 +0.000054,28 +0.000064,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000073,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000082,28 +0.000063,28 +0.000083,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000069,30 +0.000066,30 +0.000066,30 +0.000074,30 +0.000103,30 +0.000108,30 +0.000107,30 +0.000112,30 +0.000111,30 +0.000087,30 +0.000105,30 +0.000076,30 +0.000066,30 +0.000107,30 +0.000119,30 +0.000105,30 +0.000117,30 +0.000077,30 +0.000077,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000079,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000069,30 +0.000077,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000096,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000085,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000089,30 +0.000066,30 +0.000066,30 +0.000066,30 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000079,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000102,32 +0.000091,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000090,32 +0.000119,32 +0.000129,32 +0.000134,32 +0.000095,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000102,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000100,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000114,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000098,34 +0.000096,34 +0.000106,34 +0.000124,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000134,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000131,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000119,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000154,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000116,36 +0.000153,36 +0.000133,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000123,36 +0.000142,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000150,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000113,36 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000145,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000161,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000180,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000141,38 +0.000143,38 +0.000168,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000168,40 +0.000164,40 +0.000165,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000166,40 +0.000164,40 +0.000268,40 +0.000164,40 +0.000164,40 +0.000165,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000188,40 +0.000183,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000174,40 +0.000293,40 +0.000184,40 +0.000164,40 +0.000164,40 +0.000170,40 +0.000234,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000195,40 +0.000174,40 +0.000164,40 +0.000214,40 +0.000234,40 +0.000203,40 +0.000164,40 +0.000183,40 +0.000183,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000186,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000164,40 +0.000190,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000200,42 +0.000198,42 +0.000215,42 +0.000258,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000231,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000201,42 +0.000252,42 +0.000189,42 +0.000189,42 +0.000347,42 +0.000296,42 +0.000208,42 +0.000194,42 +0.000195,42 +0.000213,42 +0.000215,42 +0.000323,42 +0.000235,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000199,42 +0.000220,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000199,42 +0.000240,42 +0.000189,42 +0.000222,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000209,42 +0.000199,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000194,42 +0.000202,42 +0.000223,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000189,42 +0.000222,44 +0.000216,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000288,44 +0.000228,44 +0.000216,44 +0.000217,44 +0.000254,44 +0.000216,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000216,44 +0.000268,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000256,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000254,44 +0.000255,44 +0.000217,44 +0.000216,44 +0.000216,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000240,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000245,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000216,44 +0.000217,44 +0.000217,44 +0.000217,44 +0.000250,46 +0.000246,46 +0.000246,46 +0.000249,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000257,46 +0.000275,46 +0.000303,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000285,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000250,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000252,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000253,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000253,46 +0.000257,46 +0.000277,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000285,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000246,46 +0.000250,46 +0.000286,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000286,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000279,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000284,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000284,48 +0.000280,48 +0.000280,48 +0.000290,48 +0.000311,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000318,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000281,48 +0.000279,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000283,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000281,48 +0.000321,48 +0.000280,48 +0.000332,48 +0.000316,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000279,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000280,48 +0.000334,48 +0.000343,48 +0.000319,50 +0.000338,50 +0.000315,50 +0.000431,50 +0.000315,50 +0.000335,50 +0.000315,50 +0.000446,50 +0.000315,50 +0.000315,50 +0.000351,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000359,50 +0.000315,50 +0.000343,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000355,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000352,50 +0.000315,50 +0.000315,50 +0.000325,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000326,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000354,50 +0.000339,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000343,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000334,50 +0.000376,50 +0.000317,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000315,50 +0.000319,50 +0.000315,50 +0.000359,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000362,52 +0.000353,52 +0.000354,52 +0.000356,52 +0.000392,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000354,52 +0.000358,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000355,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000357,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000354,52 +0.000362,52 +0.000356,52 +0.000354,52 +0.000353,52 +0.000392,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000358,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000354,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000355,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000358,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000353,52 +0.000355,52 +0.000409,54 +0.000395,54 +0.000395,54 +0.000405,54 +0.000423,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000400,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000396,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000396,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000394,54 +0.000395,54 +0.000395,54 +0.000398,54 +0.000395,54 +0.000403,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000434,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000397,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000399,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000395,54 +0.000421,54 +0.000395,54 +0.000395,54 +0.000473,54 +0.000404,54 +0.000419,54 +0.000415,54 +0.000419,54 +0.000408,54 +0.000443,54 +0.000419,54 +0.000395,54 +0.000419,54 +0.000434,54 +0.000409,54 +0.000467,54 +0.000462,54 +0.000429,54 +0.000395,54 +0.000440,54 +0.000415,54 +0.000395,54 +0.000497,54 +0.000415,54 +0.000395,54 +0.000436,54 +0.000395,54 +0.000395,54 +0.000431,54 +0.000395,54 +0.000444,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000469,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000463,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000448,56 +0.000439,56 +0.000439,56 +0.000523,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000472,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000535,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000461,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000450,56 +0.000439,56 +0.000468,56 +0.000478,56 +0.000439,56 +0.000439,56 +0.000440,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000441,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000461,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000457,56 +0.000451,56 +0.000451,56 +0.000448,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000439,56 +0.000470,56 +0.000439,56 +0.000439,56 +0.000537,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000512,58 +0.000500,58 +0.000497,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000529,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000491,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000511,58 +0.000496,58 +0.000487,58 +0.000487,58 +0.000526,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000492,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000491,58 +0.000487,58 +0.000495,58 +0.000487,58 +0.000487,58 +0.000526,58 +0.000487,58 +0.000487,58 +0.000489,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000521,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000487,58 +0.000545,58 +0.000521,58 +0.000511,58 +0.000557,58 +0.000544,58 +0.000531,58 +0.000500,58 +0.000498,58 +0.000539,58 +0.000521,58 +0.000517,58 +0.000549,58 +0.000508,58 +0.000576,60 +0.000609,60 +0.000601,60 +0.000538,60 +0.000538,60 +0.000582,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000543,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000540,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000546,60 +0.000538,60 +0.000579,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000569,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000570,60 +0.000567,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000546,60 +0.000538,60 +0.000541,60 +0.000577,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000543,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000540,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000548,60 +0.000609,60 +0.000538,60 +0.000570,60 +0.000538,60 +0.000558,60 +0.000558,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000538,60 +0.000542,60 +0.000538,60 +0.000597,62 +0.000593,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000594,62 +0.000593,62 +0.000592,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000633,62 +0.000595,62 +0.000601,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000598,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000594,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000601,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000595,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000597,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000606,62 +0.000668,62 +0.000617,62 +0.000617,62 +0.000637,62 +0.000607,62 +0.000634,62 +0.000625,62 +0.000608,62 +0.000667,62 +0.000634,62 +0.000653,62 +0.000683,62 +0.000625,62 +0.000593,62 +0.000593,62 +0.000635,62 +0.000593,62 +0.000593,62 +0.000633,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000593,62 +0.000613,62 +0.000677,62 +0.000746,62 +0.000613,62 +0.000749,62 +0.000623,62 +0.000612,62 +0.000593,62 +0.000632,62 +0.000593,62 +0.000612,62 +0.000658,64 +0.000681,64 +0.000651,64 +0.000697,64 +0.000650,64 +0.000650,64 +0.000671,64 +0.000650,64 +0.000650,64 +0.000680,64 +0.000650,64 +0.000650,64 +0.000651,64 +0.000650,64 +0.000651,64 +0.000673,64 +0.000732,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000659,64 +0.000653,64 +0.000690,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000651,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000670,64 +0.000670,64 +0.000650,64 +0.000709,64 +0.000663,64 +0.000689,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000658,64 +0.000650,64 +0.000689,64 +0.000650,64 +0.000650,64 +0.000655,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000652,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000650,64 +0.000654,64 +0.000650,64 +0.000650,64 +0.000651,64 +0.000651,64 +0.000650,64 +0.000725,66 +0.000713,66 +0.000722,66 +0.000713,66 +0.000752,66 +0.000713,66 +0.000718,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000759,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000717,66 +0.000713,66 +0.000812,66 +0.000736,66 +0.000740,66 +0.000776,66 +0.000755,66 +0.000738,66 +0.000766,66 +0.000775,66 +0.000797,66 +0.000776,66 +0.000829,66 +0.000722,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000859,66 +0.000825,66 +0.000713,66 +0.000713,66 +0.000733,66 +0.000757,66 +0.000713,66 +0.000733,66 +0.000765,66 +0.000772,66 +0.000894,66 +0.000713,66 +0.000713,66 +0.000752,66 +0.000731,66 +0.000754,66 +0.000723,66 +0.000713,66 +0.000734,66 +0.000713,66 +0.000713,66 +0.000749,66 +0.000793,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000840,66 +0.000768,66 +0.000752,66 +0.000756,66 +0.000713,66 +0.000724,66 +0.000781,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000736,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000744,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000713,66 +0.000712,66 +0.000745,66 +0.000713,66 +0.000752,66 +0.000713,66 +0.000713,66 +0.000719,66 +0.000713,66 +0.000789,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000785,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000787,68 +0.000817,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000782,68 +0.000778,68 +0.000787,68 +0.000778,68 +0.000817,68 +0.000781,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000778,68 +0.000845,68 +0.000822,68 +0.000813,68 +0.000832,68 +0.000826,68 +0.000902,68 +0.000890,68 +0.000835,68 +0.000799,68 +0.000868,68 +0.000778,68 +0.000778,68 +0.000816,68 +0.000778,68 +0.000779,68 +0.000778,68 +0.000778,68 +0.000813,68 +0.000798,68 +0.000778,68 +0.000778,68 +0.000798,68 +0.000820,68 +0.000778,68 +0.000779,68 +0.000778,68 +0.000787,68 +0.000841,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000783,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000780,68 +0.000846,68 +0.000778,68 +0.000778,68 +0.000778,68 +0.000786,68 +0.000779,68 +0.000778,68 +0.000779,68 +0.000790,68 +0.000864,70 +0.000887,70 +0.000848,70 +0.000895,70 +0.000856,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000849,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000863,70 +0.000848,70 +0.000887,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000854,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000857,70 +0.000848,70 +0.000887,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000896,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000850,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000848,70 +0.000852,70 +0.000848,70 +0.000857,70 +0.000887,70 +0.000848,70 +0.000851,70 +0.001152,70 +0.000848,70 +0.000848,70 +0.000880,70 +0.001018,70 +0.000848,70 +0.001016,70 +0.000885,70 +0.000848,70 +0.000935,70 +0.000894,70 +0.000883,70 +0.000921,70 +0.000926,70 +0.000922,70 +0.001052,70 +0.000956,70 +0.000883,70 +0.001083,70 +0.000970,70 +0.001244,70 +0.000980,70 +0.000928,70 +0.000927,70 +0.000914,70 +0.000951,70 +0.000948,70 +0.000969,70 +0.000974,70 +0.000970,70 +0.001081,70 +0.001080,70 +0.000962,70 +0.000948,70 +0.000948,70 +0.000946,70 +0.000934,70 +0.000946,70 +0.001066,72 +0.001042,72 +0.001018,72 +0.001084,72 +0.001068,72 +0.001038,72 +0.001056,72 +0.001073,72 +0.001119,72 +0.001100,72 +0.001092,72 +0.001032,72 +0.001029,72 +0.001016,72 +0.001057,72 +0.001057,72 +0.001057,72 +0.001068,72 +0.001039,72 +0.001038,72 +0.001066,72 +0.001032,72 +0.001037,72 +0.001037,72 +0.001135,72 +0.001046,72 +0.001085,72 +0.001089,72 +0.001054,72 +0.001079,72 +0.001024,72 +0.001033,72 +0.001036,72 +0.001050,72 +0.000921,72 +0.001033,72 +0.001062,72 +0.000960,72 +0.000921,72 +0.001050,72 +0.001081,72 +0.001111,72 +0.001031,72 +0.001009,72 +0.001014,72 +0.000946,72 +0.001031,72 +0.000950,72 +0.001043,72 +0.000921,72 +0.000921,72 +0.001055,72 +0.000958,72 +0.001054,72 +0.001056,72 +0.000921,72 +0.000980,72 +0.001135,72 +0.001088,72 +0.001116,72 +0.000955,72 +0.000921,72 +0.001174,72 +0.000941,72 +0.000967,72 +0.001058,72 +0.000921,72 +0.000921,72 +0.000947,72 +0.001054,72 +0.000941,72 +0.001007,72 +0.001018,72 +0.001027,72 +0.000987,72 +0.001003,72 +0.001095,72 +0.000942,72 +0.001094,72 +0.000921,72 +0.000971,72 +0.000921,72 +0.000921,72 +0.000942,72 +0.000965,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000966,72 +0.000941,72 +0.000921,72 +0.000941,72 +0.000996,72 +0.000921,72 +0.000921,72 +0.000921,72 +0.000967,72 +0.000921,72 +0.000921,72 +0.001012,74 +0.001031,74 +0.000999,74 +0.001078,74 +0.000998,74 +0.001047,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001067,74 +0.001024,74 +0.000998,74 +0.000999,74 +0.001002,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001007,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001001,74 +0.000998,74 +0.000999,74 +0.001053,74 +0.001033,74 +0.001023,74 +0.000999,74 +0.000998,74 +0.001003,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000999,74 +0.000998,74 +0.000998,74 +0.001005,74 +0.000999,74 +0.000998,74 +0.000998,74 +0.001000,74 +0.001022,74 +0.001024,74 +0.000999,74 +0.001007,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000998,74 +0.000998,74 +0.000999,74 +0.001000,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001002,74 +0.001021,74 +0.000998,74 +0.001023,74 +0.001002,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001005,74 +0.000999,74 +0.000999,74 +0.000998,74 +0.001000,74 +0.000998,74 +0.000999,74 +0.001075,74 +0.001077,74 +0.001043,74 +0.001087,74 +0.001126,74 +0.001090,74 +0.001029,74 +0.001098,74 +0.001032,74 +0.000999,74 +0.000998,74 +0.001048,74 +0.001004,74 +0.000999,74 +0.000999,74 +0.000999,74 +0.001006,74 +0.000999,74 +0.000999,74 +0.001023,74 +0.001028,74 +0.000999,74 +0.000998,74 +0.000999,74 +0.001007,74 +0.000998,74 +0.000998,74 +0.000998,74 +0.001095,76 +0.001081,76 +0.001153,76 +0.001081,76 +0.001095,76 +0.001081,76 +0.001081,76 +0.001111,76 +0.001116,76 +0.001082,76 +0.001080,76 +0.001091,76 +0.001080,76 +0.001081,76 +0.001081,76 +0.001083,76 +0.001081,76 +0.001081,76 +0.001082,76 +0.001277,76 +0.001102,76 +0.001101,76 +0.001132,76 +0.001106,76 +0.001081,76 +0.001105,76 +0.001081,76 +0.001081,76 +0.001081,76 +0.001104,76 +0.001081,76 +0.001080,76 +0.001081,76 +0.001109,76 +0.001081,76 +0.001081,76 +0.001109,76 +0.001103,76 +0.001105,76 +0.001081,76 +0.001089,76 +0.001081,76 +0.001081,76 +0.001080,76 +0.001082,76 +0.001081,76 +0.001081,76 +0.001102,76 +0.001081,76 +0.001081,76 +0.001081,76 +0.001085,76 +0.001080,76 +0.001103,76 +0.001104,76 +0.001107,76 +0.001081,76 +0.001081,76 +0.001089,76 +0.001174,76 +0.001081,76 +0.001081,76 +0.001330,76 +0.001080,76 +0.001081,76 +0.001148,76 +0.001121,76 +0.001161,76 +0.001117,76 +0.001203,76 +0.001255,76 +0.001144,76 +0.001592,76 +0.002119,76 +0.002177,76 +0.001425,76 +0.001322,76 +0.001309,76 +0.001290,76 +0.001266,76 +0.001303,76 +0.001343,76 +0.001229,76 +0.001141,76 +0.001222,76 +0.001349,76 +0.001260,76 +0.001221,76 +0.001172,76 +0.001276,76 +0.001166,76 +0.001110,76 +0.001237,76 +0.001164,76 +0.001207,76 +0.001205,76 +0.001145,76 +0.001226,76 +0.001109,76 +0.001230,76 +0.001250,78 +0.001198,78 +0.001318,78 +0.001202,78 +0.001205,78 +0.001384,78 +0.001220,78 +0.001353,78 +0.001168,78 +0.001194,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001215,78 +0.001167,78 +0.001167,78 +0.001201,78 +0.001167,78 +0.001167,78 +0.001239,78 +0.001190,78 +0.001191,78 +0.001168,78 +0.001204,78 +0.001167,78 +0.001167,78 +0.001198,78 +0.001167,78 +0.001177,78 +0.001198,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001221,78 +0.001190,78 +0.001194,78 +0.001362,78 +0.001167,78 +0.001167,78 +0.001210,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001204,78 +0.001167,78 +0.001167,78 +0.001283,78 +0.001278,78 +0.001323,78 +0.001268,78 +0.001204,78 +0.001262,78 +0.001289,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001202,78 +0.001309,78 +0.001167,78 +0.001206,78 +0.001167,78 +0.001167,78 +0.001423,78 +0.001194,78 +0.001167,78 +0.001167,78 +0.001211,78 +0.001168,78 +0.001168,78 +0.001192,78 +0.001251,78 +0.001167,78 +0.001332,78 +0.001199,78 +0.001190,78 +0.001189,78 +0.001204,78 +0.001191,78 +0.001167,78 +0.001212,78 +0.001167,78 +0.001167,78 +0.001207,78 +0.001167,78 +0.001167,78 +0.001167,78 +0.001201,78 +0.001167,78 +0.001167,78 +0.001239,78 +0.001167,78 +0.001192,78 +0.001184,78 +0.001186,78 +0.001168,78 +0.001167,78 +0.001173,78 +0.001168,78 +0.001167,78 +0.001169,78 +0.001268,80 +0.001257,80 +0.001261,80 +0.001279,80 +0.001282,80 +0.001257,80 +0.001261,80 +0.001257,80 +0.001257,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001287,80 +0.001268,80 +0.001257,80 +0.001297,80 +0.001284,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001256,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001353,80 +0.001333,80 +0.001366,80 +0.001305,80 +0.001357,80 +0.001332,80 +0.001365,80 +0.001257,80 +0.001291,80 +0.001257,80 +0.001257,80 +0.001282,80 +0.001257,80 +0.001278,80 +0.001294,80 +0.001280,80 +0.001257,80 +0.001286,80 +0.001257,80 +0.001257,80 +0.001280,80 +0.001257,80 +0.001330,80 +0.001257,80 +0.001302,80 +0.001257,80 +0.001257,80 +0.001283,80 +0.001281,80 +0.001257,80 +0.001261,80 +0.001257,80 +0.001257,80 +0.001297,80 +0.001306,80 +0.001257,80 +0.001300,80 +0.001267,80 +0.001257,80 +0.001323,80 +0.001278,80 +0.001280,80 +0.001281,80 +0.001257,80 +0.001257,80 +0.001274,80 +0.001266,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001260,80 +0.001278,80 +0.001353,80 +0.001274,80 +0.001259,80 +0.001257,80 +0.001263,80 +0.001257,80 +0.001257,80 +0.001259,80 +0.001257,80 +0.001257,80 +0.001261,80 +0.001434,80 +0.001276,80 +0.001527,80 +0.001383,80 +0.001498,80 +0.001345,80 +0.001604,82 +0.001498,82 +0.001578,82 +0.001498,82 +0.001565,82 +0.001591,82 +0.001523,82 +0.001503,82 +0.001502,82 +0.001531,82 +0.001463,82 +0.001638,82 +0.001432,82 +0.001530,82 +0.001492,82 +0.001578,82 +0.001501,82 +0.001977,82 +0.001577,82 +0.001540,82 +0.001526,82 +0.001540,82 +0.001564,82 +0.001492,82 +0.001627,82 +0.001528,82 +0.001529,82 +0.001539,82 +0.001479,82 +0.001453,82 +0.001450,82 +0.001442,82 +0.001445,82 +0.001457,82 +0.001457,82 +0.001469,82 +0.001572,82 +0.001430,82 +0.001776,82 +0.001605,82 +0.001509,82 +0.001503,82 +0.001509,82 +0.001536,82 +0.001509,82 +0.001493,82 +0.001517,82 +0.001511,82 +0.001508,82 +0.001513,82 +0.001536,82 +0.001484,82 +0.001468,82 +0.001473,82 +0.001476,82 +0.001487,82 +0.001474,82 +0.001489,82 +0.001553,82 +0.001523,82 +0.001489,82 +0.001544,82 +0.001542,82 +0.001464,82 +0.001463,82 +0.001469,82 +0.001482,82 +0.001511,82 +0.001423,82 +0.001497,82 +0.001488,82 +0.001635,82 +0.001456,82 +0.001527,82 +0.001452,82 +0.001566,82 +0.001485,82 +0.001559,82 +0.001428,82 +0.001697,82 +0.001431,82 +0.001431,82 +0.001410,82 +0.001421,82 +0.001736,82 +0.001462,82 +0.001439,82 +0.001382,82 +0.001366,82 +0.001766,82 +0.001578,82 +0.001466,82 +0.001366,82 +0.001556,82 +0.001485,82 +0.001559,82 +0.001420,82 +0.001509,82 +0.001448,82 +0.001433,82 +0.001505,84 +0.001708,84 +0.001583,84 +0.001532,84 +0.001867,84 +0.001624,84 +0.001513,84 +0.001615,84 +0.001491,84 +0.001673,84 +0.001537,84 +0.001602,84 +0.001517,84 +0.001776,84 +0.001573,84 +0.001652,84 +0.001731,84 +0.001606,84 +0.001568,84 +0.001583,84 +0.001534,84 +0.001584,84 +0.001581,84 +0.001996,84 +0.001828,84 +0.001970,84 +0.001907,84 +0.001872,84 +0.001870,84 +0.001966,84 +0.001880,84 +0.001653,84 +0.001818,84 +0.001933,84 +0.001632,84 +0.001582,84 +0.001560,84 +0.001675,84 +0.001603,84 +0.001697,84 +0.001657,84 +0.001648,84 +0.001725,84 +0.001654,84 +0.001623,84 +0.001516,84 +0.001491,84 +0.001517,84 +0.001491,84 +0.001679,84 +0.001637,84 +0.001610,84 +0.001630,84 +0.001572,84 +0.001564,84 +0.001569,84 +0.001545,84 +0.001588,84 +0.001658,84 +0.001571,84 +0.001573,84 +0.001709,84 +0.001576,84 +0.001554,84 +0.001481,84 +0.001796,84 +0.001491,84 +0.001621,84 +0.001545,84 +0.001453,84 +0.001494,84 +0.001452,84 +0.001563,84 +0.001522,84 +0.001584,84 +0.001637,84 +0.001725,84 +0.001619,84 +0.001604,84 +0.001670,84 +0.001588,84 +0.001708,84 +0.001615,84 +0.001452,84 +0.001606,84 +0.001490,84 +0.001604,84 +0.001579,84 +0.001527,84 +0.001452,84 +0.001499,84 +0.001452,84 +0.001465,84 +0.001486,84 +0.001555,84 +0.001452,84 +0.001526,84 +0.001675,84 +0.001599,84 +0.001499,84 +0.001638,86 +0.001737,86 +0.001600,86 +0.001737,86 +0.001559,86 +0.001559,86 +0.001749,86 +0.001691,86 +0.001658,86 +0.001558,86 +0.001590,86 +0.001558,86 +0.001559,86 +0.001587,86 +0.001558,86 +0.001680,86 +0.001558,86 +0.001579,86 +0.001627,86 +0.001597,86 +0.001789,86 +0.001558,86 +0.001558,86 +0.001584,86 +0.001559,86 +0.001583,86 +0.001558,86 +0.001703,86 +0.001776,86 +0.001597,86 +0.001583,86 +0.001558,86 +0.001559,86 +0.001690,86 +0.001600,86 +0.001592,86 +0.001559,86 +0.001559,86 +0.001683,86 +0.001761,86 +0.001623,86 +0.001558,86 +0.001558,86 +0.001584,86 +0.001558,86 +0.001581,86 +0.001796,86 +0.001659,86 +0.001857,86 +0.001810,86 +0.001826,86 +0.001671,86 +0.001702,86 +0.001696,86 +0.001702,86 +0.001628,86 +0.001734,86 +0.001704,86 +0.001711,86 +0.001851,86 +0.001669,86 +0.001721,86 +0.001756,86 +0.001707,86 +0.001834,86 +0.001838,86 +0.001635,86 +0.001871,86 +0.001859,86 +0.001666,86 +0.001666,86 +0.001657,86 +0.001668,86 +0.001654,86 +0.001675,86 +0.001891,86 +0.001799,86 +0.001804,86 +0.001750,86 +0.001787,86 +0.001738,86 +0.001770,86 +0.001625,86 +0.001771,86 +0.001757,86 +0.001690,86 +0.001711,86 +0.001751,86 +0.001820,86 +0.001612,86 +0.001733,86 +0.001706,86 +0.001678,86 +0.001699,86 +0.001700,86 +0.001734,86 +0.001750,86 +0.001779,86 +0.001700,86 +0.001779,86 +0.001813,88 +0.001813,88 +0.001888,88 +0.001836,88 +0.001887,88 +0.001911,88 +0.001892,88 +0.001787,88 +0.001867,88 +0.001848,88 +0.001905,88 +0.001843,88 +0.001897,88 +0.002130,88 +0.004302,88 +0.001848,88 +0.001766,88 +0.001722,88 +0.001804,88 +0.001802,88 +0.001815,88 +0.001818,88 +0.001847,88 +0.001865,88 +0.001767,88 +0.001776,88 +0.001751,88 +0.001773,88 +0.001744,88 +0.001782,88 +0.001919,88 +0.002034,88 +0.001918,88 +0.001979,88 +0.001885,88 +0.001895,88 +0.001865,88 +0.001859,88 +0.001773,88 +0.001917,88 +0.001851,88 +0.001844,88 +0.001803,88 +0.001832,88 +0.001774,88 +0.001863,88 +0.001940,88 +0.001916,88 +0.001999,88 +0.001922,88 +0.001866,88 +0.001984,88 +0.001864,88 +0.001809,88 +0.001784,88 +0.001841,88 +0.001970,88 +0.001865,88 +0.001875,88 +0.001867,88 +0.001998,88 +0.001879,88 +0.001818,88 +0.001863,88 +0.001943,88 +0.002102,88 +0.001872,88 +0.001922,88 +0.001922,88 +0.001738,88 +0.001803,88 +0.001777,88 +0.001788,88 +0.002044,88 +0.002014,88 +0.001786,88 +0.001942,88 +0.001800,88 +0.001764,88 +0.001819,88 +0.001800,88 +0.001826,88 +0.001763,88 +0.001832,88 +0.001832,88 +0.001867,88 +0.001826,88 +0.001783,88 +0.001833,88 +0.001755,88 +0.001767,88 +0.001849,88 +0.001800,88 +0.001838,88 +0.002000,88 +0.001914,88 +0.001889,88 +0.001822,88 +0.001900,88 +0.001868,88 +0.002045,90 +0.002083,90 +0.001996,90 +0.002012,90 +0.001956,90 +0.001960,90 +0.001994,90 +0.001975,90 +0.002229,90 +0.001996,90 +0.001926,90 +0.002033,90 +0.001940,90 +0.001917,90 +0.001934,90 +0.001913,90 +0.001920,90 +0.001983,90 +0.001978,90 +0.002018,90 +0.001928,90 +0.001949,90 +0.001948,90 +0.001969,90 +0.002095,90 +0.001965,90 +0.002043,90 +0.001930,90 +0.001987,90 +0.001946,90 +0.001935,90 +0.001928,90 +0.001970,90 +0.001996,90 +0.001952,90 +0.002076,90 +0.002171,90 +0.002512,90 +0.002524,90 +0.002317,90 +0.002413,90 +0.002428,90 +0.002173,90 +0.002052,90 +0.002012,90 +0.001995,90 +0.001990,90 +0.002001,90 +0.001979,90 +0.001961,90 +0.002068,90 +0.001985,90 +0.001988,90 +0.002031,90 +0.002024,90 +0.002012,90 +0.001985,90 +0.001977,90 +0.002043,90 +0.002001,90 +0.002052,90 +0.002040,90 +0.002011,90 +0.002026,90 +0.001964,90 +0.002007,90 +0.001987,90 +0.001951,90 +0.001966,90 +0.002065,90 +0.001977,90 +0.001908,90 +0.001914,90 +0.002070,90 +0.002188,90 +0.002242,90 +0.002210,90 +0.002093,90 +0.002013,90 +0.001985,90 +0.001969,90 +0.001980,90 +0.001984,90 +0.001978,90 +0.001962,90 +0.001997,90 +0.001951,90 +0.001964,90 +0.001948,90 +0.001950,90 +0.001944,90 +0.002016,90 +0.001914,90 +0.001957,90 +0.001954,90 +0.001952,90 +0.001933,90 +0.001929,90 +0.001929,90 +0.001955,90 +0.002176,92 +0.002076,92 +0.002074,92 +0.002073,92 +0.002086,92 +0.002072,92 +0.002070,92 +0.002071,92 +0.002150,92 +0.002102,92 +0.002085,92 +0.002072,92 +0.002090,92 +0.002103,92 +0.002081,92 +0.002080,92 +0.002178,92 +0.002117,92 +0.002096,92 +0.002074,92 +0.002081,92 +0.002049,92 +0.001983,92 +0.001978,92 +0.001988,92 +0.002048,92 +0.002083,92 +0.001966,92 +0.001939,92 +0.001905,92 +0.001938,92 +0.001905,92 +0.001998,92 +0.001988,92 +0.001990,92 +0.001956,92 +0.001944,92 +0.001905,92 +0.001940,92 +0.001905,92 +0.001931,92 +0.002051,92 +0.001932,92 +0.001916,92 +0.001945,92 +0.001934,92 +0.001905,92 +0.001934,92 +0.001905,92 +0.001959,92 +0.001905,92 +0.001956,92 +0.002195,92 +0.002039,92 +0.002183,92 +0.001987,92 +0.002163,92 +0.002143,92 +0.002184,92 +0.002212,92 +0.002241,92 +0.002146,92 +0.002183,92 +0.002171,92 +0.002169,92 +0.002408,92 +0.002204,92 +0.002163,92 +0.002097,92 +0.002111,92 +0.002057,92 +0.002114,92 +0.002097,92 +0.002273,92 +0.002191,92 +0.002150,92 +0.002058,92 +0.002047,92 +0.002057,92 +0.002034,92 +0.001942,92 +0.002168,92 +0.002163,92 +0.003191,92 +0.002162,92 +0.002106,92 +0.002028,92 +0.002057,92 +0.002162,92 +0.002098,92 +0.002227,92 +0.002239,92 +0.002172,92 +0.002044,92 +0.002031,92 +0.002021,92 +0.002299,92 +0.002519,92 +0.002628,92 +0.002104,92 +0.002270,94 +0.002232,94 +0.002239,94 +0.002805,94 +0.002718,94 +0.002506,94 +0.002880,94 +0.002652,94 +0.002438,94 +0.002516,94 +0.002958,94 +0.002180,94 +0.002139,94 +0.002145,94 +0.002162,94 +0.002192,94 +0.002308,94 +0.002193,94 +0.003367,94 +0.002772,94 +0.002902,94 +0.002238,94 +0.002120,94 +0.002267,94 +0.002291,94 +0.002955,94 +0.002548,94 +0.002764,94 +0.002785,94 +0.002638,94 +0.002414,94 +0.002271,94 +0.002242,94 +0.002232,94 +0.002199,94 +0.002193,94 +0.002248,94 +0.002287,94 +0.002269,94 +0.002258,94 +0.002242,94 +0.002174,94 +0.002188,94 +0.002180,94 +0.002209,94 +0.002219,94 +0.002284,94 +0.002228,94 +0.002259,94 +0.002227,94 +0.002286,94 +0.002191,94 +0.002205,94 +0.002281,94 +0.002241,94 +0.002187,94 +0.002224,94 +0.002170,94 +0.002151,94 +0.002234,94 +0.002278,94 +0.002294,94 +0.002267,94 +0.002179,94 +0.002405,94 +0.002226,94 +0.002247,94 +0.002268,94 +0.002221,94 +0.002960,94 +0.003003,94 +0.002788,94 +0.002929,94 +0.002821,94 +0.003428,94 +0.002702,94 +0.002226,94 +0.002220,94 +0.002311,94 +0.002193,94 +0.002503,94 +0.002530,94 +0.002313,94 +0.002327,94 +0.002228,94 +0.002315,94 +0.002801,94 +0.003093,94 +0.002355,94 +0.002123,94 +0.002102,94 +0.002036,94 +0.002268,94 +0.002291,94 +0.002212,94 +0.002548,94 +0.002096,94 +0.002070,94 +0.002223,94 +0.003631,94 +0.003131,96 +0.002345,96 +0.002444,96 +0.002200,96 +0.002164,96 +0.002201,96 +0.002165,96 +0.002459,96 +0.002256,96 +0.002386,96 +0.002270,96 +0.002165,96 +0.002200,96 +0.002165,96 +0.002303,96 +0.002474,96 +0.002570,96 +0.002492,96 +0.002222,96 +0.002253,96 +0.002445,96 +0.002405,96 +0.002374,96 +0.002388,96 +0.002320,96 +0.002348,96 +0.002412,96 +0.002335,96 +0.002826,96 +0.002458,96 +0.002369,96 +0.002287,96 +0.002271,96 +0.002221,96 +0.002232,96 +0.002600,96 +0.002674,96 +0.002477,96 +0.002204,96 +0.002200,96 +0.002249,96 +0.002207,96 +0.002188,96 +0.003085,96 +0.002353,96 +0.002224,96 +0.002199,96 +0.002165,96 +0.002200,96 +0.002524,96 +0.002687,96 +0.002478,96 +0.002204,96 +0.002224,96 +0.002204,96 +0.002476,96 +0.002659,96 +0.002713,96 +0.002460,96 +0.002290,96 +0.002394,96 +0.002247,96 +0.002490,96 +0.002873,96 +0.002604,96 +0.002406,96 +0.002254,96 +0.002250,96 +0.002389,96 +0.002253,96 +0.002941,96 +0.002625,96 +0.002418,96 +0.002181,96 +0.002247,96 +0.002221,96 +0.002249,96 +0.002854,96 +0.002349,96 +0.002397,96 +0.002164,96 +0.002199,96 +0.002287,96 +0.002282,96 +0.002452,96 +0.002915,96 +0.002363,96 +0.002283,96 +0.002221,96 +0.002247,96 +0.002222,96 +0.002580,96 +0.002344,96 +0.002385,96 +0.002205,96 +0.002164,96 +0.002200,96 +0.002164,96 +0.002477,96 +0.002228,96 +0.002862,98 +0.002740,98 +0.002681,98 +0.002558,98 +0.003056,98 +0.003342,98 +0.002864,98 +0.003272,98 +0.003514,98 +0.002586,98 +0.002846,98 +0.003309,98 +0.002700,98 +0.002704,98 +0.002443,98 +0.002605,98 +0.003502,98 +0.003117,98 +0.002557,98 +0.002528,98 +0.002538,98 +0.002366,98 +0.002391,98 +0.003854,98 +0.003106,98 +0.002539,98 +0.002463,98 +0.002305,98 +0.003020,98 +0.002789,98 +0.002425,98 +0.002469,98 +0.002396,98 +0.002366,98 +0.002765,98 +0.002778,98 +0.002635,98 +0.002610,98 +0.002480,98 +0.002392,98 +0.002396,98 +0.002714,98 +0.002756,98 +0.002841,98 +0.004154,98 +0.002943,98 +0.002630,98 +0.002467,98 +0.003615,98 +0.003165,98 +0.002790,98 +0.002379,98 +0.003336,98 +0.002897,98 +0.003019,98 +0.002448,98 +0.002841,98 +0.002532,98 +0.002560,98 +0.002856,98 +0.003478,98 +0.003149,98 +0.002553,98 +0.002413,98 +0.002631,98 +0.003139,98 +0.002597,98 +0.002427,98 +0.002502,98 +0.002393,98 +0.002618,98 +0.002441,98 +0.002753,98 +0.003863,98 +0.003689,98 +0.002348,98 +0.002846,98 +0.002731,98 +0.002495,98 +0.002508,98 +0.002396,98 +0.002401,98 +0.002703,98 +0.002545,98 +0.002685,98 +0.002514,98 +0.002346,98 +0.002623,98 +0.002410,98 +0.002921,98 +0.003268,98 +0.002623,98 +0.002346,98 +0.002697,98 +0.002615,98 +0.002521,98 +0.003498,98 +0.003344,98 +0.003301,98 +0.002581,98 +0.002742,100 +0.002698,100 +0.003454,100 +0.002797,100 +0.002585,100 +0.002507,100 +0.002585,100 +0.002588,100 +0.003374,100 +0.002645,100 +0.002527,100 +0.002447,100 +0.002799,100 +0.002665,100 +0.003417,100 +0.002694,100 +0.002484,100 +0.002548,100 +0.002658,100 +0.002574,100 +0.003506,100 +0.002723,100 +0.002596,100 +0.002688,100 +0.002624,100 +0.002649,100 +0.003460,100 +0.002747,100 +0.002662,100 +0.002631,100 +0.002617,100 +0.002584,100 +0.002649,100 +0.002590,100 +0.002796,100 +0.002484,100 +0.002778,100 +0.002643,100 +0.002649,100 +0.002754,100 +0.002555,100 +0.002564,100 +0.002531,100 +0.004300,100 +0.002859,100 +0.002562,100 +0.002571,100 +0.002561,100 +0.002549,100 +0.002654,100 +0.002806,100 +0.002635,100 +0.002647,100 +0.002842,100 +0.002732,100 +0.002691,100 +0.004549,100 +0.003644,100 +0.003237,100 +0.003062,100 +0.003510,100 +0.002940,100 +0.002762,100 +0.002677,100 +0.002640,100 +0.002693,100 +0.002635,100 +0.002778,100 +0.004505,100 +0.002998,100 +0.003058,100 +0.002824,100 +0.002817,100 +0.002728,100 +0.002627,100 +0.002649,100 +0.002588,100 +0.003822,100 +0.003904,100 +0.003254,100 +0.003074,100 +0.003190,100 +0.003889,100 +0.003142,100 +0.002844,100 +0.002776,100 +0.002816,100 +0.003645,100 +0.003645,100 +0.002665,100 +0.002592,100 +0.002575,100 +0.002658,100 +0.003486,100 +0.002725,100 +0.002622,100 +0.002620,100 +0.002645,100 +0.002613,100 +0.002580,100 +0.002724,102 +0.003303,102 +0.003048,102 +0.002780,102 +0.002951,102 +0.004601,102 +0.003367,102 +0.003190,102 +0.003475,102 +0.003924,102 +0.003630,102 +0.002814,102 +0.002834,102 +0.002798,102 +0.002829,102 +0.003342,102 +0.003120,102 +0.002870,102 +0.002729,102 +0.002820,102 +0.003945,102 +0.003139,102 +0.003297,102 +0.002713,102 +0.002807,102 +0.002903,102 +0.003155,102 +0.003056,102 +0.002928,102 +0.002823,102 +0.002892,102 +0.003179,102 +0.002805,102 +0.002963,102 +0.003007,102 +0.002791,102 +0.002833,102 +0.003276,102 +0.003000,102 +0.002734,102 +0.002885,102 +0.002941,102 +0.003071,102 +0.003235,102 +0.003131,102 +0.002980,102 +0.003010,102 +0.002969,102 +0.002932,102 +0.003002,102 +0.002888,102 +0.002757,102 +0.002811,102 +0.002874,102 +0.002963,102 +0.002898,102 +0.002741,102 +0.002809,102 +0.002712,102 +0.003060,102 +0.003273,102 +0.003245,102 +0.003031,102 +0.002997,102 +0.003172,102 +0.002861,102 +0.002823,102 +0.002939,102 +0.002998,102 +0.002820,102 +0.002794,102 +0.003012,102 +0.002913,102 +0.002679,102 +0.002762,102 +0.002738,102 +0.002825,102 +0.002687,102 +0.002860,102 +0.002803,102 +0.002834,102 +0.002665,102 +0.002883,102 +0.002636,102 +0.002978,102 +0.002732,102 +0.002656,102 +0.002633,102 +0.002697,102 +0.002831,102 +0.002744,102 +0.002656,102 +0.002900,102 +0.002691,102 +0.002800,102 +0.002862,102 +0.003009,102 +0.002916,102 +0.002882,102 +0.002770,102 +0.003104,104 +0.004950,104 +0.005103,104 +0.004573,104 +0.004026,104 +0.003457,104 +0.003062,104 +0.003048,104 +0.002974,104 +0.003241,104 +0.003673,104 +0.002939,104 +0.002939,104 +0.002946,104 +0.003087,104 +0.003103,104 +0.003060,104 +0.003008,104 +0.003019,104 +0.003130,104 +0.003015,104 +0.003053,104 +0.002991,104 +0.003000,104 +0.003002,104 +0.002993,104 +0.003105,104 +0.003042,104 +0.003033,104 +0.003031,104 +0.003215,104 +0.002948,104 +0.002988,104 +0.003126,104 +0.003376,104 +0.003281,104 +0.003323,104 +0.003151,104 +0.003025,104 +0.002992,104 +0.002998,104 +0.003124,104 +0.003087,104 +0.003148,104 +0.003070,104 +0.003095,104 +0.003224,104 +0.003072,104 +0.002990,104 +0.003106,104 +0.003007,104 +0.003000,104 +0.003089,104 +0.002909,104 +0.002937,104 +0.003134,104 +0.003013,104 +0.003071,104 +0.003501,104 +0.003272,104 +0.002931,104 +0.002971,104 +0.003224,104 +0.003673,104 +0.004977,104 +0.005140,104 +0.004520,104 +0.003520,104 +0.003634,104 +0.003674,104 +0.003072,104 +0.004450,104 +0.005067,104 +0.003972,104 +0.003040,104 +0.004208,104 +0.003163,104 +0.003146,104 +0.003114,104 +0.003184,104 +0.004320,104 +0.004138,104 +0.003283,104 +0.003101,104 +0.003353,104 +0.003452,104 +0.003375,104 +0.003198,104 +0.002984,104 +0.002996,104 +0.003103,104 +0.003065,104 +0.002990,104 +0.003533,104 +0.002977,104 +0.003177,104 +0.003234,104 +0.003008,104 +0.002749,104 +0.002798,104 +0.003047,106 +0.003276,106 +0.003251,106 +0.002976,106 +0.002943,106 +0.002945,106 +0.003244,106 +0.003172,106 +0.003055,106 +0.002941,106 +0.002908,106 +0.003125,106 +0.003282,106 +0.003298,106 +0.002979,106 +0.002907,106 +0.002947,106 +0.003287,106 +0.003200,106 +0.003031,106 +0.002942,106 +0.002940,106 +0.003263,106 +0.003190,106 +0.003135,106 +0.003207,106 +0.003102,106 +0.003048,106 +0.003238,106 +0.004084,106 +0.003262,106 +0.002951,106 +0.003074,106 +0.003253,106 +0.003276,106 +0.002987,106 +0.002948,106 +0.002943,106 +0.003273,106 +0.003223,106 +0.003069,106 +0.002946,106 +0.002907,106 +0.003239,106 +0.003170,106 +0.003175,106 +0.002966,106 +0.002907,106 +0.002944,106 +0.003637,106 +0.003381,106 +0.003021,106 +0.002907,106 +0.002945,106 +0.003403,106 +0.003164,106 +0.003231,106 +0.003006,106 +0.003251,106 +0.003278,106 +0.003057,106 +0.003331,106 +0.003197,106 +0.003204,106 +0.003135,106 +0.003388,106 +0.003199,106 +0.003293,106 +0.003074,106 +0.003239,106 +0.003718,106 +0.003302,106 +0.003199,106 +0.003224,106 +0.003473,106 +0.004491,106 +0.003305,106 +0.002990,106 +0.003136,106 +0.003739,106 +0.003203,106 +0.003375,106 +0.003028,106 +0.003151,106 +0.003945,106 +0.003031,106 +0.003347,106 +0.003095,106 +0.003152,106 +0.003090,106 +0.003259,106 +0.003189,106 +0.002980,106 +0.002939,106 +0.002946,106 +0.003175,106 +0.003065,106 +0.003058,106 +0.002943,106 +0.002907,106 +0.003187,108 +0.003114,108 +0.003144,108 +0.003167,108 +0.003105,108 +0.003137,108 +0.003077,108 +0.003091,108 +0.003151,108 +0.003082,108 +0.003082,108 +0.003137,108 +0.003076,108 +0.003128,108 +0.003080,108 +0.003082,108 +0.003117,108 +0.003076,108 +0.003171,108 +0.003267,108 +0.003295,108 +0.003273,108 +0.003076,108 +0.003203,108 +0.003136,108 +0.003176,108 +0.003111,108 +0.003154,108 +0.003122,108 +0.003130,108 +0.003084,108 +0.003076,108 +0.003118,108 +0.003448,108 +0.003253,108 +0.003176,108 +0.003076,108 +0.003272,108 +0.003213,108 +0.003440,108 +0.003461,108 +0.003272,108 +0.003390,108 +0.003595,108 +0.003716,108 +0.003763,108 +0.003569,108 +0.003491,108 +0.004074,108 +0.004008,108 +0.003675,108 +0.003863,108 +0.004063,108 +0.004119,108 +0.003293,108 +0.003363,108 +0.003859,108 +0.004069,108 +0.003520,108 +0.003406,108 +0.003918,108 +0.003379,108 +0.003471,108 +0.003419,108 +0.003413,108 +0.003456,108 +0.003645,108 +0.003479,108 +0.003432,108 +0.003446,108 +0.003743,108 +0.003456,108 +0.003485,108 +0.003335,108 +0.003717,108 +0.003818,108 +0.004702,108 +0.003204,108 +0.003619,108 +0.004511,108 +0.003444,108 +0.003417,108 +0.003457,108 +0.003391,108 +0.004317,108 +0.003866,108 +0.003940,108 +0.004001,108 +0.004094,108 +0.003464,108 +0.003306,108 +0.003358,108 +0.004539,108 +0.003901,108 +0.003670,108 +0.003260,108 +0.003190,108 +0.003597,108 +0.003501,108 +0.003408,108 +0.003429,110 +0.003429,110 +0.003797,110 +0.004116,110 +0.004120,110 +0.003768,110 +0.004135,110 +0.003665,110 +0.003478,110 +0.003370,110 +0.003650,110 +0.003790,110 +0.003530,110 +0.003283,110 +0.003287,110 +0.003979,110 +0.003637,110 +0.003364,110 +0.003284,110 +0.003276,110 +0.003956,110 +0.003654,110 +0.003303,110 +0.003277,110 +0.003401,110 +0.003906,110 +0.003552,110 +0.003310,110 +0.003291,110 +0.003906,110 +0.003494,110 +0.004124,110 +0.004018,110 +0.003607,110 +0.004405,110 +0.003534,110 +0.003367,110 +0.003302,110 +0.004091,110 +0.003674,110 +0.003433,110 +0.003281,110 +0.003282,110 +0.004209,110 +0.004076,110 +0.003343,110 +0.003248,110 +0.003524,110 +0.004683,110 +0.003419,110 +0.003310,110 +0.003274,110 +0.003638,110 +0.004112,110 +0.003305,110 +0.003293,110 +0.003420,110 +0.004203,110 +0.003878,110 +0.003977,110 +0.003768,110 +0.004266,110 +0.003622,110 +0.003306,110 +0.003291,110 +0.003711,110 +0.004202,110 +0.003488,110 +0.003287,110 +0.003288,110 +0.004122,110 +0.003463,110 +0.003373,110 +0.003309,110 +0.003280,110 +0.003765,110 +0.003592,110 +0.003307,110 +0.003268,110 +0.003380,110 +0.003534,110 +0.003634,110 +0.003308,110 +0.003291,110 +0.003403,110 +0.003537,110 +0.003463,110 +0.004221,110 +0.003886,110 +0.003534,110 +0.003454,110 +0.003349,110 +0.003297,110 +0.003337,110 +0.003307,110 +0.003330,110 +0.003333,110 +0.003292,110 +0.003253,110 +0.003314,110 +0.003456,112 +0.003488,112 +0.003424,112 +0.003424,112 +0.003485,112 +0.003424,112 +0.003509,112 +0.003465,112 +0.003487,112 +0.003426,112 +0.003655,112 +0.003506,112 +0.003448,112 +0.003691,112 +0.003444,112 +0.003525,112 +0.004253,112 +0.004014,112 +0.003595,112 +0.003568,112 +0.003467,112 +0.003682,112 +0.003663,112 +0.003452,112 +0.003849,112 +0.003829,112 +0.003802,112 +0.004047,112 +0.003946,112 +0.003842,112 +0.003872,112 +0.003809,112 +0.003732,112 +0.003750,112 +0.003766,112 +0.003737,112 +0.003740,112 +0.003876,112 +0.003732,112 +0.003700,112 +0.004181,112 +0.004431,112 +0.004791,112 +0.004435,112 +0.004282,112 +0.004833,112 +0.003635,112 +0.003641,112 +0.004416,112 +0.004212,112 +0.003849,112 +0.003800,112 +0.004405,112 +0.004508,112 +0.003790,112 +0.003760,112 +0.004236,112 +0.004309,112 +0.004036,112 +0.004067,112 +0.004138,112 +0.004338,112 +0.003998,112 +0.003950,112 +0.004470,112 +0.004087,112 +0.003750,112 +0.003674,112 +0.004195,112 +0.003909,112 +0.003730,112 +0.003789,112 +0.003871,112 +0.004001,112 +0.003885,112 +0.003800,112 +0.003805,112 +0.003705,112 +0.003966,112 +0.003826,112 +0.003758,112 +0.004308,112 +0.004099,112 +0.003878,112 +0.003669,112 +0.004048,112 +0.003747,112 +0.004013,112 +0.003836,112 +0.004167,112 +0.004281,112 +0.003775,112 +0.003679,112 +0.003618,112 +0.004103,112 +0.004505,112 +0.003802,112 +0.003920,112 +0.004098,112 +0.003758,112 +0.004096,114 +0.004092,114 +0.004524,114 +0.003986,114 +0.004240,114 +0.004373,114 +0.004719,114 +0.004651,114 +0.004453,114 +0.004648,114 +0.004415,114 +0.004713,114 +0.004440,114 +0.004585,114 +0.004241,114 +0.003937,114 +0.003874,114 +0.004223,114 +0.004237,114 +0.004248,114 +0.003954,114 +0.004599,114 +0.003933,114 +0.004173,114 +0.003968,114 +0.004382,114 +0.004115,114 +0.004127,114 +0.004023,114 +0.004088,114 +0.004349,114 +0.004448,114 +0.004103,114 +0.004327,114 +0.004140,114 +0.004051,114 +0.004106,114 +0.004270,114 +0.004178,114 +0.004092,114 +0.004039,114 +0.003899,114 +0.004260,114 +0.004283,114 +0.004056,114 +0.004069,114 +0.004379,114 +0.004036,114 +0.004061,114 +0.004247,114 +0.003940,114 +0.004357,114 +0.004266,114 +0.004872,114 +0.004120,114 +0.004111,114 +0.004133,114 +0.004764,114 +0.004693,114 +0.004351,114 +0.004444,114 +0.004386,114 +0.004131,114 +0.004052,114 +0.003993,114 +0.004490,114 +0.004194,114 +0.004035,114 +0.004154,114 +0.004109,114 +0.004098,114 +0.004010,114 +0.004149,114 +0.004626,114 +0.004505,114 +0.003911,114 +0.004349,114 +0.004280,114 +0.004227,114 +0.003865,114 +0.004203,114 +0.004726,114 +0.004246,114 +0.004057,114 +0.004151,114 +0.004506,114 +0.004091,114 +0.004129,114 +0.003975,114 +0.004005,114 +0.004205,114 +0.004115,114 +0.004046,114 +0.004115,114 +0.004059,114 +0.003898,114 +0.003900,114 +0.004033,114 +0.003874,114 +0.003878,114 +0.004165,116 +0.004023,116 +0.003963,116 +0.003937,116 +0.003927,116 +0.003950,116 +0.004177,116 +0.003951,116 +0.003834,116 +0.003977,116 +0.003862,116 +0.003893,116 +0.003824,116 +0.003883,116 +0.004006,116 +0.004065,116 +0.003836,116 +0.003913,116 +0.003836,116 +0.003851,116 +0.003851,116 +0.003833,116 +0.003878,116 +0.003807,116 +0.003856,116 +0.003801,116 +0.003897,116 +0.003805,116 +0.003903,116 +0.003825,116 +0.003925,116 +0.003808,116 +0.003824,116 +0.003827,116 +0.003812,116 +0.003879,116 +0.003935,116 +0.003904,116 +0.003808,116 +0.003932,116 +0.003906,116 +0.004212,116 +0.003857,116 +0.004047,116 +0.003861,116 +0.003930,116 +0.003859,116 +0.003830,116 +0.003823,116 +0.003885,116 +0.003844,116 +0.003812,116 +0.003804,116 +0.003832,116 +0.003877,116 +0.003803,116 +0.003807,116 +0.003801,116 +0.003831,116 +0.003943,116 +0.003805,116 +0.003826,116 +0.003802,116 +0.003859,116 +0.003803,116 +0.003913,116 +0.003920,116 +0.004088,116 +0.003964,116 +0.003828,116 +0.003826,116 +0.003879,116 +0.003828,116 +0.003809,116 +0.003812,116 +0.003832,116 +0.003845,116 +0.003829,116 +0.003806,116 +0.003802,116 +0.003875,116 +0.003803,116 +0.003804,116 +0.003800,116 +0.003830,116 +0.003849,116 +0.003802,116 +0.003805,116 +0.003802,116 +0.003875,116 +0.003802,116 +0.003932,116 +0.003888,116 +0.004108,116 +0.003871,116 +0.003825,116 +0.003979,116 +0.003924,116 +0.003832,116 +0.003967,116 +0.004099,118 +0.004075,118 +0.004074,118 +0.004004,118 +0.004010,118 +0.004033,118 +0.004051,118 +0.004004,118 +0.004004,118 +0.004007,118 +0.004094,118 +0.004050,118 +0.004003,118 +0.004006,118 +0.004077,118 +0.004006,118 +0.004087,118 +0.004210,118 +0.004358,118 +0.004105,118 +0.004024,118 +0.004011,118 +0.004085,118 +0.004140,118 +0.004008,118 +0.004016,118 +0.004140,118 +0.004010,118 +0.004005,118 +0.004004,118 +0.004075,118 +0.004006,118 +0.004006,118 +0.004004,118 +0.004124,118 +0.004004,118 +0.004149,118 +0.004055,118 +0.004022,118 +0.004042,118 +0.004037,118 +0.004253,118 +0.004472,118 +0.004140,118 +0.004036,118 +0.004067,118 +0.004177,118 +0.004095,118 +0.004128,118 +0.004145,118 +0.004078,118 +0.004070,118 +0.004007,118 +0.004009,118 +0.004034,118 +0.004069,118 +0.004007,118 +0.004009,118 +0.004007,118 +0.004071,118 +0.004006,118 +0.004003,118 +0.004006,118 +0.004093,118 +0.004039,118 +0.004071,118 +0.004192,118 +0.004376,118 +0.004032,118 +0.004024,118 +0.004029,118 +0.004094,118 +0.004011,118 +0.004007,118 +0.004009,118 +0.004075,118 +0.004004,118 +0.004006,118 +0.004004,118 +0.004078,118 +0.004024,118 +0.004006,118 +0.004003,118 +0.004033,118 +0.004112,118 +0.004038,118 +0.004023,118 +0.004035,118 +0.004048,118 +0.004004,118 +0.004159,118 +0.004318,118 +0.004226,118 +0.004037,118 +0.004078,118 +0.004100,118 +0.004078,118 +0.004041,118 +0.004005,118 +0.004013,118 +0.004287,120 +0.004207,120 +0.004205,120 +0.004205,120 +0.004275,120 +0.004208,120 +0.004204,120 +0.004206,120 +0.004272,120 +0.004207,120 +0.004204,120 +0.004236,120 +0.004244,120 +0.004211,120 +0.004343,120 +0.004570,120 +0.004448,120 +0.004240,120 +0.004242,120 +0.004260,120 +0.004269,120 +0.004209,120 +0.004207,120 +0.004272,120 +0.004207,120 +0.004203,120 +0.004206,120 +0.004277,120 +0.004204,120 +0.004205,120 +0.004203,120 +0.004275,120 +0.004203,120 +0.004205,120 +0.004223,120 +0.004274,120 +0.004203,120 +0.004205,120 +0.004403,120 +0.004593,120 +0.004256,120 +0.004269,120 +0.004335,120 +0.004336,120 +0.004315,120 +0.004269,120 +0.004230,120 +0.004365,120 +0.004229,120 +0.004224,120 +0.004224,120 +0.004274,120 +0.004204,120 +0.004206,120 +0.004233,120 +0.004246,120 +0.004391,120 +0.004207,120 +0.004236,120 +0.004243,120 +0.004206,120 +0.004343,120 +0.004532,120 +0.004434,120 +0.004247,120 +0.004307,120 +0.004299,120 +0.004225,120 +0.004233,120 +0.004225,120 +0.004294,120 +0.004319,120 +0.004244,120 +0.004232,120 +0.004317,120 +0.004256,120 +0.004245,120 +0.004250,120 +0.004315,120 +0.004206,120 +0.004204,120 +0.004205,120 +0.004273,120 +0.004206,120 +0.004238,120 +0.004449,120 +0.004641,120 +0.004204,120 +0.004205,120 +0.004224,120 +0.004247,120 +0.004204,120 +0.004205,120 +0.004233,120 +0.004265,120 +0.004204,120 +0.004205,120 +0.004231,120 +0.004290,120 +0.004203,120 +0.004448,122 +0.004493,122 +0.004564,122 +0.004424,122 +0.004419,122 +0.004477,122 +0.004420,122 +0.004419,122 +0.004614,122 +0.004852,122 +0.004420,122 +0.004643,122 +0.004469,122 +0.004523,122 +0.004598,122 +0.004456,122 +0.004554,122 +0.004446,122 +0.004423,122 +0.004419,122 +0.004492,122 +0.004420,122 +0.004420,122 +0.004452,122 +0.004460,122 +0.004424,122 +0.004421,122 +0.004471,122 +0.004488,122 +0.004445,122 +0.004588,122 +0.004816,122 +0.004674,122 +0.004440,122 +0.004448,122 +0.004523,122 +0.004466,122 +0.004424,122 +0.004470,122 +0.004481,122 +0.004423,122 +0.004464,122 +0.004488,122 +0.004422,122 +0.004427,122 +0.004422,122 +0.004530,122 +0.004423,122 +0.004420,122 +0.004422,122 +0.004537,122 +0.004419,122 +0.004470,122 +0.004943,122 +0.004728,122 +0.004450,122 +0.004420,122 +0.004705,122 +0.004813,122 +0.004763,122 +0.004560,122 +0.004446,122 +0.004525,122 +0.004445,122 +0.004512,122 +0.004572,122 +0.004654,122 +0.004420,122 +0.004476,122 +0.004561,122 +0.004623,122 +0.004454,122 +0.004489,122 +0.004460,122 +0.004494,122 +0.004738,122 +0.004682,122 +0.004465,122 +0.004475,122 +0.004489,122 +0.004479,122 +0.004420,122 +0.004420,122 +0.004477,122 +0.004420,122 +0.004442,122 +0.004431,122 +0.004486,122 +0.004441,122 +0.004464,122 +0.004468,122 +0.004420,122 +0.004422,122 +0.004419,122 +0.004512,122 +0.004420,122 +0.004425,122 +0.004646,122 +0.004711,122 +0.004576,122 +0.004711,124 +0.004750,124 +0.004739,124 +0.004677,124 +0.004678,124 +0.004712,124 +0.004638,124 +0.004635,124 +0.004690,124 +0.004638,124 +0.004636,124 +0.004637,124 +0.004684,124 +0.004695,124 +0.004646,124 +0.004648,124 +0.004681,124 +0.004635,124 +0.004683,124 +0.004996,124 +0.004826,124 +0.004724,124 +0.004688,124 +0.004707,124 +0.004640,124 +0.004642,124 +0.004685,124 +0.004681,124 +0.004666,124 +0.004638,124 +0.004685,124 +0.004640,124 +0.004692,124 +0.004689,124 +0.004635,124 +0.004641,124 +0.004636,124 +0.004689,124 +0.004661,124 +0.004636,124 +0.004882,124 +0.004919,124 +0.004701,124 +0.004638,124 +0.004705,124 +0.004638,124 +0.004636,124 +0.004647,124 +0.004680,124 +0.004636,124 +0.005736,124 +0.004788,124 +0.004636,124 +0.004643,124 +0.004678,124 +0.004667,124 +0.004638,124 +0.004635,124 +0.004687,124 +0.004641,124 +0.004636,124 +0.004925,124 +0.005010,124 +0.004684,124 +0.004679,124 +0.004749,124 +0.004758,124 +0.004657,124 +0.004758,124 +0.004704,124 +0.004636,124 +0.004638,124 +0.004706,124 +0.004639,124 +0.004636,124 +0.004667,124 +0.004699,124 +0.004636,124 +0.004670,124 +0.004706,124 +0.004659,124 +0.004635,124 +0.004787,124 +0.005047,124 +0.004857,124 +0.004656,124 +0.004749,124 +0.004659,124 +0.004636,124 +0.004662,124 +0.004766,124 +0.004687,124 +0.004664,124 +0.004730,124 +0.004661,124 +0.004636,124 +0.004642,124 +0.004704,124 +0.004640,124 +0.004638,124 +0.004915,126 +0.004906,126 +0.004864,126 +0.004917,126 +0.005215,126 +0.005071,126 +0.004884,126 +0.005222,126 +0.004990,126 +0.005259,126 +0.005390,126 +0.005463,126 +0.005577,126 +0.005841,126 +0.005507,126 +0.005470,126 +0.005750,126 +0.007375,126 +0.006174,126 +0.006265,126 +0.005507,126 +0.005868,126 +0.009030,126 +0.007537,126 +0.007350,126 +0.005591,126 +0.005574,126 +0.007123,126 +0.005460,126 +0.005456,126 +0.007157,126 +0.005286,126 +0.005380,126 +0.006827,126 +0.005305,126 +0.005246,126 +0.006802,126 +0.005030,126 +0.008349,126 +0.008952,126 +0.004990,126 +0.004984,126 +0.004962,126 +0.004979,126 +0.005130,126 +0.004950,126 +0.005002,126 +0.004897,126 +0.004938,126 +0.004991,126 +0.004948,126 +0.005013,126 +0.004889,126 +0.004946,126 +0.004927,126 +0.004868,126 +0.006621,126 +0.008387,126 +0.004923,126 +0.004954,126 +0.004954,126 +0.004868,126 +0.005026,126 +0.004867,126 +0.004864,126 +0.004906,126 +0.004905,126 +0.004864,126 +0.004866,126 +0.004947,126 +0.004884,126 +0.004866,126 +0.004942,126 +0.004866,126 +0.004867,126 +0.005186,126 +0.008795,126 +0.005915,126 +0.004976,126 +0.004869,126 +0.004885,126 +0.004933,126 +0.004925,126 +0.004887,126 +0.004868,126 +0.004964,126 +0.004888,126 +0.004887,126 +0.004947,126 +0.004867,126 +0.004949,126 +0.004907,126 +0.004930,126 +0.004866,126 +0.004866,126 +0.007738,126 +0.007211,126 +0.004975,126 +0.004872,126 +0.004864,126 +0.005386,128 +0.005457,128 +0.005374,128 +0.005376,128 +0.005440,128 +0.005372,128 +0.005418,128 +0.005458,128 +0.005413,128 +0.005375,128 +0.005435,128 +0.005372,128 +0.005376,128 +0.007662,128 +0.008165,128 +0.005499,128 +0.005405,128 +0.005429,128 +0.005458,128 +0.005401,128 +0.005376,128 +0.005431,128 +0.005375,128 +0.005376,128 +0.005431,128 +0.005375,128 +0.005376,128 +0.005392,128 +0.005415,128 +0.005377,128 +0.005393,128 +0.008756,128 +0.007322,128 +0.005482,128 +0.005442,128 +0.005407,128 +0.005487,128 +0.005377,128 +0.005396,128 +0.005436,128 +0.005373,128 +0.005375,128 +0.005435,128 +0.005373,128 +0.005418,128 +0.005435,128 +0.005373,128 +0.005376,128 +0.006360,128 +0.009397,128 +0.005654,128 +0.005469,128 +0.005642,128 +0.005554,128 +0.005407,128 +0.005405,128 +0.005435,128 +0.005401,128 +0.005411,128 +0.005434,128 +0.005408,128 +0.005464,128 +0.005396,128 +0.005417,128 +0.005377,128 +0.005395,128 +0.008415,128 +0.007413,128 +0.005487,128 +0.005378,128 +0.005376,128 +0.005459,128 +0.005373,128 +0.005375,128 +0.005466,128 +0.005374,128 +0.005660,128 +0.006978,128 +0.005549,128 +0.005383,128 +0.005587,128 +0.006194,128 +0.005526,128 +0.008246,128 +0.008427,128 +0.005702,128 +0.005406,128 +0.005692,128 +0.005657,128 +0.005604,128 +0.005617,128 +0.005458,128 +0.005567,128 +0.005881,128 +0.005510,128 +0.005733,128 +0.005493,128 +0.005481,128 +0.005583,128 +0.005448,128 +0.007634,130 +0.008371,130 +0.005475,130 +0.005438,130 +0.005381,130 +0.005505,130 +0.005396,130 +0.005344,130 +0.005421,130 +0.005375,130 +0.005337,130 +0.005420,130 +0.005397,130 +0.005339,130 +0.005418,130 +0.005390,130 +0.005344,130 +0.005521,130 +0.007434,130 +0.008883,130 +0.005438,130 +0.005415,130 +0.005448,130 +0.005405,130 +0.005400,130 +0.005437,130 +0.005424,130 +0.005340,130 +0.005439,130 +0.005372,130 +0.005340,130 +0.005378,130 +0.005383,130 +0.005380,130 +0.005378,130 +0.006334,130 +0.009437,130 +0.005541,130 +0.005377,130 +0.005616,130 +0.005437,130 +0.005339,130 +0.005600,130 +0.005439,130 +0.005337,130 +0.005339,130 +0.005459,130 +0.005337,130 +0.005339,130 +0.005439,130 +0.005337,130 +0.005341,130 +0.005442,130 +0.007503,130 +0.008373,130 +0.005348,130 +0.005343,130 +0.005455,130 +0.005339,130 +0.005364,130 +0.005397,130 +0.005379,130 +0.005341,130 +0.005378,130 +0.005380,130 +0.005342,130 +0.005357,130 +0.005421,130 +0.005341,130 +0.005337,130 +0.005517,130 +0.008094,130 +0.007734,130 +0.005471,130 +0.006000,130 +0.006253,130 +0.005450,130 +0.005444,130 +0.005474,130 +0.005337,130 +0.005420,130 +0.005439,130 +0.005398,130 +0.005341,130 +0.005421,130 +0.005338,130 +0.005342,130 +0.005425,130 +0.006189,130 +0.009636,130 +0.005515,130 +0.005400,130 +0.005429,130 +0.005374,130 +0.005482,130 +0.005847,130 +0.005396,130 +0.005360,130 +0.005418,130 +0.005342,130 +0.005615,132 +0.005666,132 +0.005921,132 +0.005611,132 +0.005735,132 +0.005710,132 +0.010125,132 +0.006354,132 +0.005653,132 +0.005672,132 +0.005607,132 +0.005646,132 +0.005715,132 +0.006172,132 +0.006019,132 +0.005687,132 +0.005589,132 +0.005627,132 +0.005667,132 +0.005585,132 +0.005590,132 +0.005691,132 +0.007254,132 +0.009219,132 +0.005691,132 +0.005624,132 +0.005865,132 +0.005591,132 +0.005606,132 +0.005692,132 +0.005588,132 +0.005589,132 +0.005665,132 +0.005587,132 +0.005611,132 +0.005685,132 +0.005606,132 +0.005592,132 +0.005745,132 +0.007300,132 +0.009084,132 +0.005619,132 +0.005597,132 +0.005708,132 +0.005624,132 +0.005675,132 +0.005747,132 +0.005725,132 +0.005683,132 +0.005650,132 +0.005598,132 +0.005613,132 +0.005687,132 +0.005588,132 +0.005605,132 +0.005759,132 +0.007564,132 +0.008772,132 +0.005623,132 +0.005671,132 +0.005660,132 +0.005645,132 +0.005625,132 +0.005628,132 +0.005589,132 +0.005606,132 +0.005635,132 +0.005744,132 +0.005645,132 +0.005590,132 +0.005586,132 +0.005669,132 +0.005738,132 +0.007667,132 +0.008944,132 +0.005686,132 +0.005690,132 +0.006929,132 +0.010806,132 +0.010826,132 +0.010964,132 +0.010989,132 +0.010404,132 +0.008319,132 +0.005731,132 +0.008331,132 +0.008752,132 +0.005674,132 +0.005879,132 +0.005639,132 +0.005672,132 +0.005971,132 +0.005622,132 +0.005645,132 +0.005624,132 +0.005586,132 +0.005622,132 +0.005624,132 +0.005585,132 +0.005644,132 +0.005968,134 +0.006600,134 +0.010243,134 +0.005955,134 +0.006033,134 +0.005905,134 +0.005864,134 +0.005923,134 +0.005841,134 +0.005846,134 +0.005925,134 +0.005844,134 +0.005881,134 +0.005923,134 +0.005842,134 +0.005863,134 +0.005983,134 +0.006247,134 +0.010562,134 +0.006022,134 +0.005924,134 +0.005888,134 +0.005843,134 +0.005924,134 +0.005841,134 +0.005843,134 +0.005926,134 +0.005840,134 +0.005844,134 +0.005922,134 +0.005846,134 +0.005840,134 +0.005944,134 +0.005923,134 +0.009654,134 +0.007257,134 +0.005909,134 +0.005901,134 +0.005865,134 +0.005921,134 +0.005845,134 +0.005841,134 +0.005926,134 +0.005883,134 +0.005865,134 +0.005927,134 +0.005846,134 +0.005843,134 +0.005923,134 +0.005908,134 +0.008324,134 +0.008524,134 +0.005931,134 +0.005912,134 +0.005887,134 +0.006011,134 +0.005851,134 +0.005841,134 +0.005926,134 +0.005842,134 +0.005844,134 +0.005920,134 +0.005845,134 +0.005842,134 +0.005939,134 +0.005904,134 +0.007211,134 +0.009723,134 +0.005917,134 +0.005949,134 +0.005866,134 +0.005883,134 +0.005884,134 +0.005840,134 +0.005925,134 +0.005842,134 +0.005845,134 +0.005928,134 +0.005843,134 +0.005844,134 +0.005949,134 +0.005903,134 +0.005978,134 +0.010587,134 +0.006265,134 +0.005974,134 +0.005847,134 +0.005888,134 +0.005879,134 +0.005845,134 +0.005881,134 +0.005883,134 +0.005842,134 +0.005926,134 +0.005844,134 +0.005844,134 +0.005926,134 +0.005949,134 +0.005843,134 +0.009580,134 +0.007544,136 +0.006259,136 +0.006137,136 +0.006177,136 +0.006148,136 +0.006099,136 +0.006257,136 +0.006103,136 +0.006102,136 +0.006180,136 +0.006124,136 +0.006101,136 +0.006234,136 +0.006189,136 +0.007276,136 +0.010162,136 +0.006208,136 +0.006129,136 +0.006098,136 +0.006184,136 +0.006101,136 +0.006133,136 +0.006182,136 +0.006138,136 +0.006145,136 +0.006140,136 +0.006122,136 +0.006238,136 +0.006165,136 +0.006100,136 +0.009424,136 +0.007949,136 +0.006220,136 +0.006165,136 +0.006179,136 +0.006205,136 +0.006099,136 +0.006204,136 +0.006101,136 +0.006102,136 +0.006177,136 +0.006145,136 +0.006163,136 +0.006159,136 +0.006162,136 +0.006208,136 +0.010491,136 +0.007331,136 +0.006136,136 +0.006138,136 +0.006207,136 +0.006110,136 +0.006183,136 +0.006164,136 +0.006098,136 +0.006185,136 +0.006101,136 +0.006102,136 +0.006207,136 +0.006182,136 +0.006102,136 +0.009914,136 +0.007608,136 +0.006170,136 +0.006119,136 +0.006205,136 +0.006101,136 +0.006102,136 +0.006182,136 +0.006102,136 +0.006121,136 +0.006210,136 +0.006097,136 +0.006181,136 +0.006171,136 +0.006104,136 +0.007201,136 +0.010121,136 +0.006260,136 +0.006129,136 +0.006142,136 +0.006253,136 +0.006098,136 +0.006221,136 +0.006100,136 +0.006102,136 +0.006218,136 +0.006102,136 +0.006113,136 +0.006188,136 +0.006159,136 +0.006146,136 +0.009205,136 +0.008398,136 +0.006163,136 +0.006129,136 +0.006238,136 +0.006110,136 +0.006101,136 +0.006184,136 +0.006475,138 +0.006483,138 +0.006375,138 +0.006380,138 +0.006462,138 +0.006437,138 +0.006422,138 +0.008880,138 +0.009047,138 +0.006436,138 +0.006377,138 +0.006463,138 +0.006380,138 +0.006415,138 +0.006424,138 +0.006379,138 +0.006465,138 +0.006380,138 +0.006375,138 +0.006458,138 +0.006482,138 +0.006478,138 +0.009612,138 +0.008407,138 +0.006416,138 +0.006408,138 +0.006474,138 +0.006380,138 +0.006463,138 +0.006381,138 +0.006463,138 +0.006476,138 +0.006379,138 +0.006420,138 +0.006414,138 +0.006450,138 +0.006463,138 +0.010245,138 +0.007760,138 +0.006435,138 +0.006458,138 +0.006458,138 +0.006388,138 +0.006456,138 +0.006402,138 +0.006378,138 +0.006481,138 +0.006399,138 +0.006458,138 +0.006480,138 +0.006398,138 +0.006459,138 +0.010950,138 +0.006932,138 +0.006438,138 +0.006532,138 +0.006417,138 +0.006415,138 +0.006459,138 +0.006376,138 +0.006423,138 +0.006416,138 +0.006381,138 +0.006499,138 +0.006475,138 +0.006380,138 +0.006794,138 +0.011207,138 +0.006485,138 +0.006396,138 +0.006503,138 +0.006445,138 +0.006410,138 +0.006490,138 +0.006439,138 +0.006463,138 +0.006386,138 +0.006378,138 +0.006462,138 +0.006463,138 +0.006458,138 +0.007488,138 +0.010416,138 +0.006409,138 +0.006401,138 +0.006456,138 +0.006436,138 +0.006480,138 +0.006379,138 +0.006380,138 +0.006474,138 +0.006375,138 +0.006423,138 +0.006417,138 +0.006450,138 +0.006461,138 +0.007113,138 +0.011225,138 +0.006471,138 +0.006478,138 +0.006769,140 +0.006656,140 +0.006753,140 +0.006655,140 +0.006738,140 +0.006691,140 +0.006655,140 +0.006737,140 +0.006713,140 +0.006737,140 +0.006694,140 +0.011793,140 +0.006709,140 +0.006807,140 +0.006790,140 +0.006687,140 +0.006729,140 +0.006655,140 +0.006696,140 +0.006692,140 +0.006655,140 +0.006736,140 +0.006710,140 +0.006765,140 +0.006694,140 +0.010488,140 +0.008057,140 +0.006740,140 +0.006800,140 +0.006695,140 +0.006780,140 +0.006676,140 +0.006678,140 +0.006751,140 +0.006655,140 +0.006747,140 +0.006761,140 +0.006656,140 +0.006732,140 +0.009127,140 +0.009353,140 +0.006724,140 +0.006806,140 +0.006677,140 +0.006760,140 +0.006654,140 +0.006715,140 +0.006734,140 +0.006651,140 +0.006733,140 +0.006684,140 +0.006766,140 +0.006730,140 +0.007838,140 +0.010583,140 +0.006669,140 +0.006790,140 +0.006676,140 +0.006704,140 +0.006691,140 +0.006655,140 +0.006734,140 +0.006676,140 +0.006805,140 +0.006760,140 +0.006711,140 +0.006734,140 +0.006655,140 +0.011768,140 +0.006691,140 +0.006817,140 +0.006717,140 +0.006691,140 +0.006778,140 +0.006655,140 +0.006731,140 +0.006655,140 +0.006719,140 +0.006782,140 +0.006765,140 +0.006796,140 +0.006700,140 +0.010922,140 +0.007698,140 +0.006781,140 +0.006674,140 +0.006694,140 +0.006740,140 +0.006651,140 +0.006738,140 +0.006656,140 +0.006655,140 +0.006736,140 +0.006822,140 +0.006776,140 +0.006673,140 +0.009524,140 +0.008979,140 +0.006754,140 +0.006715,140 +0.007035,142 +0.007048,142 +0.006946,142 +0.007020,142 +0.007048,142 +0.007000,142 +0.007080,142 +0.007065,142 +0.007026,142 +0.006946,142 +0.011171,142 +0.007917,142 +0.007063,142 +0.007218,142 +0.007036,142 +0.006964,142 +0.007092,142 +0.007063,142 +0.008122,142 +0.007109,142 +0.007142,142 +0.007097,142 +0.006951,142 +0.008729,142 +0.010398,142 +0.007144,142 +0.007088,142 +0.006942,142 +0.007028,142 +0.006949,142 +0.007069,142 +0.007492,142 +0.007120,142 +0.007258,142 +0.007069,142 +0.007050,142 +0.006944,142 +0.010432,142 +0.009191,142 +0.007110,142 +0.007057,142 +0.007094,142 +0.006976,142 +0.007043,142 +0.006947,142 +0.006946,142 +0.007023,142 +0.007052,142 +0.007024,142 +0.006946,142 +0.008870,142 +0.010285,142 +0.007081,142 +0.006970,142 +0.007068,142 +0.007010,142 +0.007010,142 +0.007087,142 +0.006966,142 +0.007024,142 +0.006985,142 +0.007014,142 +0.007026,142 +0.006945,142 +0.010603,142 +0.008532,142 +0.007087,142 +0.006987,142 +0.007045,142 +0.006968,142 +0.007052,142 +0.007006,142 +0.006958,142 +0.007029,142 +0.007006,142 +0.007024,142 +0.006943,142 +0.006946,142 +0.012083,142 +0.007096,142 +0.006994,142 +0.006994,142 +0.007034,142 +0.007008,142 +0.007026,142 +0.006946,142 +0.006985,142 +0.006985,142 +0.007024,142 +0.007025,142 +0.006942,142 +0.008762,142 +0.010367,142 +0.007151,142 +0.006977,142 +0.007046,142 +0.006955,142 +0.006988,142 +0.006987,142 +0.006944,142 +0.007327,144 +0.007334,144 +0.007310,144 +0.007232,144 +0.007268,144 +0.012184,144 +0.007532,144 +0.007281,144 +0.007333,144 +0.007233,144 +0.007237,144 +0.007310,144 +0.007274,144 +0.007310,144 +0.007298,144 +0.007331,144 +0.007454,144 +0.007391,144 +0.011581,144 +0.007960,144 +0.007244,144 +0.007270,144 +0.007314,144 +0.007273,144 +0.007328,144 +0.007248,144 +0.007312,144 +0.007335,144 +0.007310,144 +0.007232,144 +0.007269,144 +0.010878,144 +0.008735,144 +0.007287,144 +0.007312,144 +0.007293,144 +0.007232,144 +0.007358,144 +0.007243,144 +0.007335,144 +0.007291,144 +0.007310,144 +0.007231,144 +0.007227,144 +0.010332,144 +0.009383,144 +0.007242,144 +0.007305,144 +0.007304,144 +0.007293,144 +0.007309,144 +0.007232,144 +0.007310,144 +0.007312,144 +0.007339,144 +0.007228,144 +0.007231,144 +0.009600,144 +0.010036,144 +0.007243,144 +0.007316,144 +0.007283,144 +0.007262,144 +0.007314,144 +0.007254,144 +0.007333,144 +0.007283,144 +0.007355,144 +0.007228,144 +0.007274,144 +0.007931,144 +0.012148,144 +0.007279,144 +0.007336,144 +0.007293,144 +0.007232,144 +0.007309,144 +0.007231,144 +0.007310,144 +0.007292,144 +0.007352,144 +0.007228,144 +0.007375,144 +0.009157,144 +0.010462,144 +0.007231,144 +0.007276,144 +0.007271,144 +0.007230,144 +0.007311,144 +0.007231,144 +0.007312,144 +0.007291,144 +0.007270,144 +0.007267,144 +0.007231,144 +0.008402,144 +0.011334,144 +0.007284,144 +0.007240,144 +0.007692,146 +0.007635,146 +0.007671,146 +0.007604,146 +0.007675,146 +0.007674,146 +0.007691,146 +0.007592,146 +0.008196,146 +0.011100,146 +0.009205,146 +0.007645,146 +0.007745,146 +0.007741,146 +0.007693,146 +0.007592,146 +0.007713,146 +0.007721,146 +0.007635,146 +0.007631,146 +0.007589,146 +0.008456,146 +0.011895,146 +0.007599,146 +0.007672,146 +0.007591,146 +0.007850,146 +0.007654,146 +0.007612,146 +0.007675,146 +0.007654,146 +0.007694,146 +0.007590,146 +0.007653,146 +0.011486,146 +0.008898,146 +0.007667,146 +0.007743,146 +0.007588,146 +0.007674,146 +0.007592,146 +0.007675,146 +0.007653,146 +0.007671,146 +0.007592,146 +0.007812,146 +0.008585,146 +0.011660,146 +0.007667,146 +0.007763,146 +0.007664,146 +0.007691,146 +0.007589,146 +0.007630,146 +0.007656,146 +0.007675,146 +0.007671,146 +0.007592,146 +0.007714,146 +0.011731,146 +0.008435,146 +0.007684,146 +0.007714,146 +0.007672,146 +0.007723,146 +0.007733,146 +0.007689,146 +0.007660,146 +0.007674,146 +0.007592,146 +0.007674,146 +0.008910,146 +0.011245,146 +0.007650,146 +0.007695,146 +0.007592,146 +0.007752,146 +0.007666,146 +0.007710,146 +0.007593,146 +0.007711,146 +0.007716,146 +0.007592,146 +0.007674,146 +0.012258,146 +0.007952,146 +0.007695,146 +0.007613,146 +0.007652,146 +0.007758,146 +0.007596,146 +0.007690,146 +0.007652,146 +0.007679,146 +0.007635,146 +0.007674,146 +0.008160,146 +0.012631,146 +0.008593,146 +0.007761,146 +0.007959,148 +0.007968,148 +0.007851,148 +0.007933,148 +0.007973,148 +0.007929,148 +0.008064,148 +0.007951,148 +0.009425,148 +0.011397,148 +0.007870,148 +0.007970,148 +0.007905,148 +0.007930,148 +0.007850,148 +0.007932,148 +0.007918,148 +0.007932,148 +0.007850,148 +0.007933,148 +0.008677,148 +0.012120,148 +0.007928,148 +0.007977,148 +0.007935,148 +0.007924,148 +0.007869,148 +0.007936,148 +0.007914,148 +0.007929,148 +0.007850,148 +0.007940,148 +0.008258,148 +0.012461,148 +0.007890,148 +0.007965,148 +0.007929,148 +0.007910,148 +0.007851,148 +0.007914,148 +0.007934,148 +0.007977,148 +0.007850,148 +0.007929,148 +0.007850,148 +0.012867,148 +0.007892,148 +0.007950,148 +0.007874,148 +0.007932,148 +0.007872,148 +0.007944,148 +0.007951,148 +0.007930,148 +0.007850,148 +0.007911,148 +0.007851,148 +0.012936,148 +0.007927,148 +0.007969,148 +0.007873,148 +0.007961,148 +0.007850,148 +0.007933,148 +0.007970,148 +0.007910,148 +0.007927,148 +0.007972,148 +0.007849,148 +0.012914,148 +0.007896,148 +0.007971,148 +0.007897,148 +0.007961,148 +0.007914,148 +0.007989,148 +0.007942,148 +0.007972,148 +0.007896,148 +0.007957,148 +0.007873,148 +0.012887,148 +0.007898,148 +0.007967,148 +0.007851,148 +0.007972,148 +0.007890,148 +0.007907,148 +0.007930,148 +0.007909,148 +0.007850,148 +0.007909,148 +0.007851,148 +0.012450,148 +0.008353,148 +0.007964,148 +0.007935,148 +0.007967,148 +0.007860,148 +0.008012,148 +0.008326,150 +0.008283,150 +0.008174,150 +0.008234,150 +0.008176,150 +0.013231,150 +0.008333,150 +0.008238,150 +0.008228,150 +0.008234,150 +0.008227,150 +0.008236,150 +0.008307,150 +0.008221,150 +0.008196,150 +0.008215,150 +0.009105,150 +0.013067,150 +0.009257,150 +0.008500,150 +0.008297,150 +0.008421,150 +0.008322,150 +0.008274,150 +0.008333,150 +0.008374,150 +0.008256,150 +0.008175,150 +0.013310,150 +0.008296,150 +0.008247,150 +0.008317,150 +0.008242,150 +0.008293,150 +0.008203,150 +0.008344,150 +0.008177,150 +0.008256,150 +0.008198,150 +0.010603,150 +0.010949,150 +0.008287,150 +0.008198,150 +0.008256,150 +0.008192,150 +0.008240,150 +0.008258,150 +0.008269,150 +0.008235,150 +0.008241,150 +0.008175,150 +0.013210,150 +0.008325,150 +0.008201,150 +0.008306,150 +0.008176,150 +0.008239,150 +0.008211,150 +0.008391,150 +0.008218,150 +0.008248,150 +0.008181,150 +0.009482,150 +0.011948,150 +0.008287,150 +0.008195,150 +0.008310,150 +0.008197,150 +0.008256,150 +0.008283,150 +0.008265,150 +0.008176,150 +0.008239,150 +0.008176,150 +0.012253,150 +0.009329,150 +0.008246,150 +0.008255,150 +0.008195,150 +0.008235,150 +0.008176,150 +0.008328,150 +0.008177,150 +0.008353,150 +0.008176,150 +0.008301,150 +0.013030,150 +0.008253,150 +0.008203,150 +0.008289,150 +0.008261,150 +0.008237,150 +0.008196,150 +0.008282,150 +0.008176,150 +0.008215,150 +0.008199,150 +0.011124,150 +0.010348,150 +0.008221,150 +0.008590,152 +0.008528,152 +0.008581,152 +0.008496,152 +0.008618,152 +0.008500,152 +0.008539,152 +0.008495,152 +0.009897,152 +0.012220,152 +0.008549,152 +0.008580,152 +0.008496,152 +0.008536,152 +0.008536,152 +0.008594,152 +0.008504,152 +0.008537,152 +0.008508,152 +0.008783,152 +0.013258,152 +0.008581,152 +0.008518,152 +0.008561,152 +0.008531,152 +0.008556,152 +0.008678,152 +0.008503,152 +0.008537,152 +0.008538,152 +0.008536,152 +0.013405,152 +0.009086,152 +0.008519,152 +0.008583,152 +0.008531,152 +0.008603,152 +0.008575,152 +0.008543,152 +0.008708,152 +0.008499,152 +0.008728,152 +0.013398,152 +0.008614,152 +0.008541,152 +0.008572,152 +0.008527,152 +0.008578,152 +0.008571,152 +0.008540,152 +0.008496,152 +0.008633,152 +0.008537,152 +0.012668,152 +0.009393,152 +0.008538,152 +0.008580,152 +0.008513,152 +0.008534,152 +0.008556,152 +0.008553,152 +0.008498,152 +0.008536,152 +0.008495,152 +0.011647,152 +0.010350,152 +0.008567,152 +0.008598,152 +0.008497,152 +0.008541,152 +0.008564,152 +0.008630,152 +0.008497,152 +0.008536,152 +0.008499,152 +0.010562,152 +0.011428,152 +0.008526,152 +0.008558,152 +0.008550,152 +0.008571,152 +0.008993,152 +0.009109,152 +0.008602,152 +0.008796,152 +0.008519,152 +0.010517,152 +0.011600,152 +0.008552,152 +0.008619,152 +0.008497,152 +0.008579,152 +0.008496,152 +0.008652,152 +0.008569,152 +0.008620,152 +0.008498,152 +0.009709,152 +0.012485,152 +0.008564,152 +0.009016,154 +0.008902,154 +0.008946,154 +0.008847,154 +0.008991,154 +0.008844,154 +0.008929,154 +0.008883,154 +0.011722,154 +0.011108,154 +0.008916,154 +0.008952,154 +0.008897,154 +0.008927,154 +0.008921,154 +0.008936,154 +0.008879,154 +0.008908,154 +0.008925,154 +0.013578,154 +0.009007,154 +0.008936,154 +0.008911,154 +0.008889,154 +0.008881,154 +0.009014,154 +0.008844,154 +0.008920,154 +0.008842,154 +0.008925,154 +0.013867,154 +0.008872,154 +0.008942,154 +0.008897,154 +0.008921,154 +0.008842,154 +0.008996,154 +0.009369,154 +0.009038,154 +0.008919,154 +0.009989,154 +0.013399,154 +0.008900,154 +0.008974,154 +0.008902,154 +0.008949,154 +0.008947,154 +0.008939,154 +0.009119,154 +0.008847,154 +0.008954,154 +0.013207,154 +0.009464,154 +0.008922,154 +0.008902,154 +0.008945,154 +0.008842,154 +0.009057,154 +0.008846,154 +0.008920,154 +0.008889,154 +0.008921,154 +0.013838,154 +0.008916,154 +0.008943,154 +0.008860,154 +0.008921,154 +0.008842,154 +0.009052,154 +0.008841,154 +0.008921,154 +0.008842,154 +0.010556,154 +0.012137,154 +0.008893,154 +0.009020,154 +0.008856,154 +0.008920,154 +0.008948,154 +0.009503,154 +0.008969,154 +0.008888,154 +0.008961,154 +0.012439,154 +0.010243,154 +0.008968,154 +0.008888,154 +0.008947,154 +0.008843,154 +0.008980,154 +0.008842,154 +0.008925,154 +0.008843,154 +0.008920,154 +0.013791,154 +0.008942,154 +0.008941,154 +0.008903,154 +0.008926,154 +0.008848,154 +0.009499,156 +0.009334,156 +0.009283,156 +0.009266,156 +0.011629,156 +0.011676,156 +0.009271,156 +0.009246,156 +0.009345,156 +0.009240,156 +0.009374,156 +0.009283,156 +0.009286,156 +0.009184,156 +0.009266,156 +0.014065,156 +0.009249,156 +0.009320,156 +0.009289,156 +0.009245,156 +0.009339,156 +0.009187,156 +0.009283,156 +0.009188,156 +0.009263,156 +0.013484,156 +0.009916,156 +0.009344,156 +0.009206,156 +0.009293,156 +0.009184,156 +0.009405,156 +0.009270,156 +0.009185,156 +0.009287,156 +0.011293,156 +0.012023,156 +0.009330,156 +0.009187,156 +0.009264,156 +0.009192,156 +0.009396,156 +0.009184,156 +0.009284,156 +0.009228,156 +0.009224,156 +0.014616,156 +0.009291,156 +0.009270,156 +0.009321,156 +0.009187,156 +0.009374,156 +0.009282,156 +0.009344,156 +0.009185,156 +0.009271,156 +0.013772,156 +0.009505,156 +0.009288,156 +0.009205,156 +0.009265,156 +0.009332,156 +0.009187,156 +0.009263,156 +0.009286,156 +0.009381,156 +0.010971,156 +0.012399,156 +0.009319,156 +0.009214,156 +0.009270,156 +0.009185,156 +0.009331,156 +0.009207,156 +0.009204,156 +0.009225,156 +0.009189,156 +0.014033,156 +0.009291,156 +0.009208,156 +0.009224,156 +0.009228,156 +0.009336,156 +0.009186,156 +0.009225,156 +0.009186,156 +0.009245,156 +0.012972,156 +0.010474,156 +0.009281,156 +0.009432,156 +0.009240,156 +0.009350,156 +0.009186,156 +0.009249,156 +0.009185,156 +0.009224,156 +0.010326,156 +0.013002,156 +0.009279,156 +0.009701,158 +0.009625,158 +0.009621,158 +0.009726,158 +0.009628,158 +0.009543,158 +0.009582,158 +0.010835,158 +0.013186,158 +0.009713,158 +0.009620,158 +0.009625,158 +0.009666,158 +0.009545,158 +0.009610,158 +0.009585,158 +0.009679,158 +0.010873,158 +0.013045,158 +0.009651,158 +0.009623,158 +0.009568,158 +0.009643,158 +0.009545,158 +0.009583,158 +0.009542,158 +0.009586,158 +0.010793,158 +0.013279,158 +0.009682,158 +0.009608,158 +0.009561,158 +0.009687,158 +0.009548,158 +0.009582,158 +0.009545,158 +0.009612,158 +0.010642,158 +0.013318,158 +0.009618,158 +0.009640,158 +0.009560,158 +0.009687,158 +0.009544,158 +0.009582,158 +0.009546,158 +0.009582,158 +0.009657,158 +0.014768,158 +0.009654,158 +0.009671,158 +0.009584,158 +0.009713,158 +0.009808,158 +0.009650,158 +0.009599,158 +0.009547,158 +0.009723,158 +0.009852,158 +0.009656,158 +0.009584,158 +0.009627,158 +0.009685,158 +0.009587,158 +0.009604,158 +0.009544,158 +0.009607,158 +0.009562,158 +0.009986,158 +0.009774,158 +0.009682,158 +0.011187,158 +0.009877,158 +0.009714,158 +0.009629,158 +0.009544,158 +0.009622,158 +0.009546,158 +0.009776,158 +0.009973,158 +0.009588,158 +0.010187,158 +0.009548,158 +0.009694,158 +0.009594,158 +0.009582,158 +0.009623,158 +0.009543,158 +0.009730,158 +0.009879,158 +0.009693,158 +0.009872,158 +0.009792,158 +0.009710,158 +0.009545,158 +0.009621,158 +0.009547,158 +0.009622,158 +0.009627,158 +0.010054,158 +0.010054,160 +0.009929,160 +0.010009,160 +0.009988,160 +0.010043,160 +0.010026,160 +0.009913,160 +0.009992,160 +0.009988,160 +0.010275,160 +0.010065,160 +0.009904,160 +0.010016,160 +0.009985,160 +0.009989,160 +0.009988,160 +0.009997,160 +0.010034,160 +0.010070,160 +0.010303,160 +0.010059,160 +0.009946,160 +0.010008,160 +0.009986,160 +0.009979,160 +0.009984,160 +0.009905,160 +0.009988,160 +0.009993,160 +0.010278,160 +0.010234,160 +0.009945,160 +0.010079,160 +0.009987,160 +0.009990,160 +0.012101,160 +0.010456,160 +0.009979,160 +0.010182,160 +0.010254,160 +0.010008,160 +0.009989,160 +0.009967,160 +0.010090,160 +0.009973,160 +0.010025,160 +0.009985,160 +0.009903,160 +0.010008,160 +0.010262,160 +0.010137,160 +0.010036,160 +0.009937,160 +0.010067,160 +0.010004,160 +0.010024,160 +0.009989,160 +0.009907,160 +0.009991,160 +0.010275,160 +0.010042,160 +0.009989,160 +0.009911,160 +0.010050,160 +0.009907,160 +0.010129,160 +0.010013,160 +0.009909,160 +0.009995,160 +0.010495,160 +0.010028,160 +0.010029,160 +0.009951,160 +0.010063,160 +0.010007,160 +0.009944,160 +0.009986,160 +0.009904,160 +0.010006,160 +0.010279,160 +0.010067,160 +0.010054,160 +0.009934,160 +0.010086,160 +0.009944,160 +0.009944,160 +0.009987,160 +0.009904,160 +0.009985,160 +0.010425,160 +0.009962,160 +0.009988,160 +0.009906,160 +0.010069,160 +0.009944,160 +0.009949,160 +0.009985,160 +0.009904,160 +0.010007,160 +0.010422,160 +0.010407,162 +0.010363,162 +0.010280,162 +0.010447,162 +0.010445,162 +0.010283,162 +0.010360,162 +0.010319,162 +0.010479,162 +0.010749,162 +0.010282,162 +0.010404,162 +0.010358,162 +0.010366,162 +0.010361,162 +0.010360,162 +0.010364,162 +0.010358,162 +0.010496,162 +0.010656,162 +0.010365,162 +0.010284,162 +0.010423,162 +0.010320,162 +0.010323,162 +0.010378,162 +0.010281,162 +0.010360,162 +0.010843,162 +0.010325,162 +0.010400,162 +0.010281,162 +0.010441,162 +0.010361,162 +0.010284,162 +0.010378,162 +0.010372,162 +0.010364,162 +0.010847,162 +0.010389,162 +0.010406,162 +0.010388,162 +0.010346,162 +0.010407,162 +0.010365,162 +0.010317,162 +0.010364,162 +0.010498,162 +0.010612,162 +0.010410,162 +0.010280,162 +0.010466,162 +0.010487,162 +0.010487,162 +0.010363,162 +0.010280,162 +0.010450,162 +0.010746,162 +0.010334,162 +0.010491,162 +0.010358,162 +0.010363,162 +0.010387,162 +0.010300,162 +0.010363,162 +0.010362,162 +0.010541,162 +0.010729,162 +0.010459,162 +0.010328,162 +0.010466,162 +0.010283,162 +0.010364,162 +0.010362,162 +0.010282,162 +0.010362,162 +0.010745,162 +0.010464,162 +0.010403,162 +0.010316,162 +0.010428,162 +0.010365,162 +0.010284,162 +0.010382,162 +0.010364,162 +0.010383,162 +0.010771,162 +0.010351,162 +0.010378,162 +0.010404,162 +0.010364,162 +0.011207,162 +0.010435,162 +0.010319,162 +0.010426,162 +0.010802,162 +0.010531,162 +0.010431,162 +0.010284,162 +0.010522,162 +0.010784,164 +0.010711,164 +0.010748,164 +0.010809,164 +0.010786,164 +0.011112,164 +0.010752,164 +0.010789,164 +0.010813,164 +0.010773,164 +0.010780,164 +0.011292,164 +0.011594,164 +0.011430,164 +0.011138,164 +0.010801,164 +0.010771,164 +0.010786,164 +0.010763,164 +0.010774,164 +0.010746,164 +0.010671,164 +0.010771,164 +0.011398,164 +0.010791,164 +0.010771,164 +0.010810,164 +0.010777,164 +0.010796,164 +0.010822,164 +0.011003,164 +0.010760,164 +0.010943,164 +0.011030,164 +0.010857,164 +0.010801,164 +0.010826,164 +0.010754,164 +0.010670,164 +0.010748,164 +0.010750,164 +0.010836,164 +0.011151,164 +0.010840,164 +0.010732,164 +0.010915,164 +0.010751,164 +0.010709,164 +0.010746,164 +0.010754,164 +0.010714,164 +0.011173,164 +0.010763,164 +0.010850,164 +0.010793,164 +0.010779,164 +0.010792,164 +0.010793,164 +0.010669,164 +0.010780,164 +0.011376,164 +0.010779,164 +0.010790,164 +0.010751,164 +0.010751,164 +0.010753,164 +0.010751,164 +0.010669,164 +0.010745,164 +0.010846,164 +0.012370,164 +0.010926,164 +0.011042,164 +0.010808,164 +0.010782,164 +0.010733,164 +0.010707,164 +0.010750,164 +0.010891,164 +0.011047,164 +0.011147,164 +0.010669,164 +0.010834,164 +0.010770,164 +0.010670,164 +0.010747,164 +0.010746,164 +0.010755,164 +0.011173,164 +0.011209,164 +0.010669,164 +0.011009,164 +0.010817,164 +0.010712,164 +0.010766,164 +0.010734,164 +0.010828,164 +0.011192,164 +0.010784,164 +0.010732,164 +0.011191,166 +0.011185,166 +0.011145,166 +0.011888,166 +0.012399,166 +0.012089,166 +0.011909,166 +0.011759,166 +0.011249,166 +0.011758,166 +0.011934,166 +0.011491,166 +0.011819,166 +0.011546,166 +0.011587,166 +0.011658,166 +0.012568,166 +0.011181,166 +0.011217,166 +0.011118,166 +0.011121,166 +0.011059,166 +0.011164,166 +0.011387,166 +0.011276,166 +0.011226,166 +0.011204,166 +0.011228,166 +0.011131,166 +0.011142,166 +0.011100,166 +0.011137,166 +0.011355,166 +0.011357,166 +0.011142,166 +0.011250,166 +0.011281,166 +0.011159,166 +0.011142,166 +0.011099,166 +0.011100,166 +0.011505,166 +0.011219,166 +0.011137,166 +0.011220,166 +0.011239,166 +0.011102,166 +0.011155,166 +0.011142,166 +0.011062,166 +0.011673,166 +0.011270,166 +0.011083,166 +0.011158,166 +0.011245,166 +0.011062,166 +0.011140,166 +0.011156,166 +0.011061,166 +0.011578,166 +0.011292,166 +0.011134,166 +0.011167,166 +0.011235,166 +0.011059,166 +0.011144,166 +0.011139,166 +0.011159,166 +0.011497,166 +0.011209,166 +0.011156,166 +0.011138,166 +0.011201,166 +0.011061,166 +0.011138,166 +0.011169,166 +0.011059,166 +0.011572,166 +0.011204,166 +0.011161,166 +0.011254,166 +0.011203,166 +0.011098,166 +0.011138,166 +0.011144,166 +0.011083,166 +0.011473,166 +0.011272,166 +0.011144,166 +0.011296,166 +0.011161,166 +0.011103,166 +0.011360,166 +0.011138,166 +0.011134,166 +0.011465,166 +0.011145,166 +0.011102,166 +0.011164,166 +0.011182,166 +0.011523,168 +0.011490,168 +0.011535,168 +0.011532,168 +0.011907,168 +0.011672,168 +0.011655,168 +0.011612,168 +0.011542,168 +0.011551,168 +0.011531,168 +0.011524,168 +0.011651,168 +0.011834,168 +0.011450,168 +0.011632,168 +0.011648,168 +0.011473,168 +0.011532,168 +0.011528,168 +0.011452,168 +0.011698,168 +0.011850,168 +0.011598,168 +0.011687,168 +0.011610,168 +0.011528,168 +0.011452,168 +0.011555,168 +0.011512,168 +0.011784,168 +0.011572,168 +0.011512,168 +0.011580,168 +0.011532,168 +0.011554,168 +0.011490,168 +0.011495,168 +0.011668,168 +0.011871,168 +0.011485,168 +0.011530,168 +0.011591,168 +0.011449,168 +0.011529,168 +0.011532,168 +0.011516,168 +0.011658,168 +0.011794,168 +0.011571,168 +0.011533,168 +0.011528,168 +0.011533,168 +0.011450,168 +0.011528,168 +0.011552,168 +0.011742,168 +0.011668,168 +0.011667,168 +0.011600,168 +0.011559,168 +0.011602,168 +0.011623,168 +0.011590,168 +0.011655,168 +0.012261,168 +0.011516,168 +0.011774,168 +0.011784,168 +0.011491,168 +0.011541,168 +0.011557,168 +0.011546,168 +0.011727,168 +0.011933,168 +0.011591,168 +0.011511,168 +0.011567,168 +0.011619,168 +0.011493,168 +0.011491,168 +0.011567,168 +0.012135,168 +0.011495,168 +0.011536,168 +0.011575,168 +0.011452,168 +0.011510,168 +0.011513,168 +0.011452,168 +0.011755,168 +0.012195,168 +0.011600,168 +0.011611,168 +0.011585,168 +0.011533,168 +0.011453,168 +0.011526,168 +0.011563,168 +0.011778,168 +0.012368,170 +0.011991,170 +0.012023,170 +0.011874,170 +0.011995,170 +0.011975,170 +0.011873,170 +0.012019,170 +0.012605,170 +0.011974,170 +0.012064,170 +0.012011,170 +0.011956,170 +0.011913,170 +0.011915,170 +0.011957,170 +0.012581,170 +0.011992,170 +0.011972,170 +0.012224,170 +0.011968,170 +0.011880,170 +0.011963,170 +0.011961,170 +0.012367,170 +0.012179,170 +0.012012,170 +0.012050,170 +0.011872,170 +0.011946,170 +0.011983,170 +0.011910,170 +0.012138,170 +0.012355,170 +0.012069,170 +0.011953,170 +0.011972,170 +0.011951,170 +0.011969,170 +0.011873,170 +0.011954,170 +0.012545,170 +0.011952,170 +0.012034,170 +0.011974,170 +0.011952,170 +0.011891,170 +0.011952,170 +0.011949,170 +0.012361,170 +0.012149,170 +0.012212,170 +0.012514,170 +0.012752,170 +0.012681,170 +0.012633,170 +0.012701,170 +0.012961,170 +0.012976,170 +0.013305,170 +0.013122,170 +0.013128,170 +0.013197,170 +0.013457,170 +0.012856,170 +0.014079,170 +0.012390,170 +0.012251,170 +0.012068,170 +0.011998,170 +0.012010,170 +0.011881,170 +0.012047,170 +0.013430,170 +0.012022,170 +0.012064,170 +0.012012,170 +0.011969,170 +0.011879,170 +0.011970,170 +0.012012,170 +0.013293,170 +0.012159,170 +0.012003,170 +0.012090,170 +0.011921,170 +0.011919,170 +0.011975,170 +0.011976,170 +0.013089,170 +0.013243,170 +0.012087,170 +0.012064,170 +0.012142,170 +0.011978,170 +0.012004,170 +0.011963,170 +0.011878,170 +0.013426,170 +0.011999,170 +0.012542,172 +0.012343,172 +0.012399,172 +0.012399,172 +0.012399,172 +0.012335,172 +0.013855,172 +0.012485,172 +0.012488,172 +0.012322,172 +0.012376,172 +0.012417,172 +0.012376,172 +0.012359,172 +0.013822,172 +0.012456,172 +0.012528,172 +0.012299,172 +0.012400,172 +0.012376,172 +0.012380,172 +0.012348,172 +0.013919,172 +0.012396,172 +0.012518,172 +0.012300,172 +0.012436,172 +0.012373,172 +0.012377,172 +0.012768,172 +0.013555,172 +0.012493,172 +0.012480,172 +0.012365,172 +0.012372,172 +0.012416,172 +0.012470,172 +0.012911,172 +0.013230,172 +0.012400,172 +0.012480,172 +0.012401,172 +0.012358,172 +0.012374,172 +0.012399,172 +0.012936,172 +0.013161,172 +0.012432,172 +0.012491,172 +0.012339,172 +0.012351,172 +0.012387,172 +0.012380,172 +0.012970,172 +0.013251,172 +0.012388,172 +0.012437,172 +0.012403,172 +0.012297,172 +0.012398,172 +0.012422,172 +0.012949,172 +0.013123,172 +0.012379,172 +0.012475,172 +0.012376,172 +0.012297,172 +0.012430,172 +0.012380,172 +0.013706,172 +0.013553,172 +0.012487,172 +0.012477,172 +0.012439,172 +0.012298,172 +0.012377,172 +0.012376,172 +0.013300,172 +0.012890,172 +0.012415,172 +0.012543,172 +0.012378,172 +0.012305,172 +0.012375,172 +0.012374,172 +0.013355,172 +0.012861,172 +0.012377,172 +0.012459,172 +0.012386,172 +0.012342,172 +0.012377,172 +0.012387,172 +0.013479,172 +0.012737,172 +0.012374,172 +0.012439,172 +0.012419,172 +0.012339,172 +0.012335,172 +0.012924,174 +0.014114,174 +0.013398,174 +0.012870,174 +0.012829,174 +0.012810,174 +0.012898,174 +0.012773,174 +0.012770,174 +0.014461,174 +0.012943,174 +0.012952,174 +0.012893,174 +0.012770,174 +0.012819,174 +0.012815,174 +0.013198,174 +0.013806,174 +0.012834,174 +0.012930,174 +0.012905,174 +0.013421,174 +0.012810,174 +0.012833,174 +0.014129,174 +0.013014,174 +0.012818,174 +0.012832,174 +0.012812,174 +0.012827,174 +0.012774,174 +0.012827,174 +0.014350,174 +0.012876,174 +0.012939,174 +0.012771,174 +0.012778,174 +0.012826,174 +0.012832,174 +0.012847,174 +0.014217,174 +0.012893,174 +0.012886,174 +0.012816,174 +0.012773,174 +0.012781,174 +0.012813,174 +0.014284,174 +0.013887,174 +0.013176,174 +0.012836,174 +0.012812,174 +0.012850,174 +0.012854,174 +0.012751,174 +0.014305,174 +0.012886,174 +0.012893,174 +0.012796,174 +0.012766,174 +0.012814,174 +0.012808,174 +0.012820,174 +0.014250,174 +0.012876,174 +0.012902,174 +0.012811,174 +0.012777,174 +0.012769,174 +0.012870,174 +0.013717,174 +0.013426,174 +0.012750,174 +0.012822,174 +0.012850,174 +0.012808,174 +0.012984,174 +0.012814,174 +0.013902,174 +0.012985,174 +0.012943,174 +0.012767,174 +0.012812,174 +0.012810,174 +0.012809,174 +0.012775,174 +0.014276,174 +0.012971,174 +0.012871,174 +0.012878,174 +0.012763,174 +0.012850,174 +0.012817,174 +0.012812,174 +0.014245,174 +0.012864,174 +0.013058,174 +0.012952,174 +0.012890,174 +0.012775,174 +0.013229,176 +0.014257,176 +0.013616,176 +0.013359,176 +0.013247,176 +0.013200,176 +0.013245,176 +0.013236,176 +0.013294,176 +0.014650,176 +0.013181,176 +0.013312,176 +0.013240,176 +0.013241,176 +0.013264,176 +0.013196,176 +0.014077,176 +0.013740,176 +0.013320,176 +0.013239,176 +0.013155,176 +0.013252,176 +0.013269,176 +0.013234,176 +0.015676,176 +0.013342,176 +0.013354,176 +0.013246,176 +0.013241,176 +0.013235,176 +0.013202,176 +0.014308,176 +0.013464,176 +0.013379,176 +0.013273,176 +0.013302,176 +0.013184,176 +0.013255,176 +0.013260,176 +0.014662,176 +0.013348,176 +0.013158,176 +0.013240,176 +0.013244,176 +0.013241,176 +0.013302,176 +0.014299,176 +0.013475,176 +0.013319,176 +0.013235,176 +0.013244,176 +0.013223,176 +0.013300,176 +0.013448,176 +0.014596,176 +0.013353,176 +0.013236,176 +0.013191,176 +0.013241,176 +0.013890,176 +0.013450,176 +0.014640,176 +0.013330,176 +0.013404,176 +0.013243,176 +0.013239,176 +0.013238,176 +0.013216,176 +0.013558,176 +0.014477,176 +0.013404,176 +0.013368,176 +0.013281,176 +0.013190,176 +0.013259,176 +0.013234,176 +0.014619,176 +0.013257,176 +0.013273,176 +0.013255,176 +0.013242,176 +0.013230,176 +0.013262,176 +0.013705,176 +0.014162,176 +0.013396,176 +0.013258,176 +0.013253,176 +0.013167,176 +0.013313,176 +0.013258,176 +0.014743,176 +0.013368,176 +0.013229,176 +0.013240,176 +0.013265,176 +0.013312,176 +0.013221,176 +0.014368,176 +0.014610,176 +0.014034,178 +0.013804,178 +0.013749,178 +0.013730,178 +0.013697,178 +0.013688,178 +0.015298,178 +0.013925,178 +0.013806,178 +0.013768,178 +0.013693,178 +0.013685,178 +0.013730,178 +0.015227,178 +0.013905,178 +0.013775,178 +0.013737,178 +0.013648,178 +0.013803,178 +0.013741,178 +0.015209,178 +0.013851,178 +0.013757,178 +0.013646,178 +0.013730,178 +0.013816,178 +0.013727,178 +0.014983,178 +0.013994,178 +0.013671,178 +0.013728,178 +0.013737,178 +0.013749,178 +0.013727,178 +0.014320,178 +0.014624,178 +0.013803,178 +0.013733,178 +0.013728,178 +0.013793,178 +0.013732,178 +0.013658,178 +0.015135,178 +0.013893,178 +0.013753,178 +0.013730,178 +0.013949,178 +0.014305,178 +0.013707,178 +0.015145,178 +0.013894,178 +0.013792,178 +0.013752,178 +0.013750,178 +0.013733,178 +0.013735,178 +0.015082,178 +0.013848,178 +0.013724,178 +0.013745,178 +0.013650,178 +0.013775,178 +0.013733,178 +0.014791,178 +0.014185,178 +0.013790,178 +0.013675,178 +0.013743,178 +0.013723,178 +0.013748,178 +0.013917,178 +0.016409,178 +0.013868,178 +0.013665,178 +0.013760,178 +0.013723,178 +0.013813,178 +0.013727,178 +0.015177,178 +0.013749,178 +0.013743,178 +0.013724,178 +0.013724,178 +0.013728,178 +0.013685,178 +0.015080,178 +0.013865,178 +0.013746,178 +0.013721,178 +0.013739,178 +0.013731,178 +0.013676,178 +0.015119,178 +0.013960,178 +0.013744,178 +0.013728,178 +0.013740,178 +0.013644,178 +0.013724,178 +0.014658,178 +0.014728,180 +0.014195,180 +0.014154,180 +0.014114,180 +0.014113,180 +0.014158,180 +0.015102,180 +0.014781,180 +0.014233,180 +0.014154,180 +0.014149,180 +0.014076,180 +0.014217,180 +0.014995,180 +0.014969,180 +0.014297,180 +0.014176,180 +0.014168,180 +0.014086,180 +0.014151,180 +0.014921,180 +0.014900,180 +0.014164,180 +0.014154,180 +0.014149,180 +0.014153,180 +0.014112,180 +0.014883,180 +0.014967,180 +0.014175,180 +0.014164,180 +0.014196,180 +0.014109,180 +0.014114,180 +0.014899,180 +0.015049,180 +0.014223,180 +0.014156,180 +0.014178,180 +0.014150,180 +0.014075,180 +0.015177,180 +0.015930,180 +0.014194,180 +0.014163,180 +0.014190,180 +0.014157,180 +0.014110,180 +0.014913,180 +0.014957,180 +0.014214,180 +0.014177,180 +0.014151,180 +0.014155,180 +0.014152,180 +0.014882,180 +0.014835,180 +0.014170,180 +0.014159,180 +0.014152,180 +0.014232,180 +0.014157,180 +0.015053,180 +0.014741,180 +0.014195,180 +0.014153,180 +0.014174,180 +0.014151,180 +0.014157,180 +0.015240,180 +0.014557,180 +0.014173,180 +0.014154,180 +0.014157,180 +0.014151,180 +0.014394,180 +0.015120,180 +0.014651,180 +0.014242,180 +0.014196,180 +0.014211,180 +0.014216,180 +0.014153,180 +0.015174,180 +0.014765,180 +0.014133,180 +0.014154,180 +0.014189,180 +0.014172,180 +0.014150,180 +0.015249,180 +0.014679,180 +0.014261,180 +0.014184,180 +0.014153,180 +0.014189,180 +0.014164,180 +0.015344,180 +0.014498,180 +0.014108,180 +0.014750,182 +0.014647,182 +0.014627,182 +0.014627,182 +0.016130,182 +0.014691,182 +0.014653,182 +0.014672,182 +0.014551,182 +0.014638,182 +0.014671,182 +0.017304,182 +0.014720,182 +0.014631,182 +0.014627,182 +0.014625,182 +0.014627,182 +0.015040,182 +0.015694,182 +0.014651,182 +0.014626,182 +0.014629,182 +0.014627,182 +0.014628,182 +0.015926,182 +0.014910,182 +0.014648,182 +0.014550,182 +0.014717,182 +0.014645,182 +0.014633,182 +0.016201,182 +0.014751,182 +0.014878,182 +0.014713,182 +0.014713,182 +0.014655,182 +0.014610,182 +0.016184,182 +0.014636,182 +0.014632,182 +0.014627,182 +0.014632,182 +0.014793,182 +0.015369,182 +0.015352,182 +0.014551,182 +0.014627,182 +0.014633,182 +0.014628,182 +0.014625,182 +0.016009,182 +0.014969,182 +0.014744,182 +0.014692,182 +0.014556,182 +0.014629,182 +0.014630,182 +0.016128,182 +0.015961,182 +0.014838,182 +0.014701,182 +0.014754,182 +0.014700,182 +0.014594,182 +0.016209,182 +0.014634,182 +0.014625,182 +0.014630,182 +0.014634,182 +0.014626,182 +0.015189,182 +0.015702,182 +0.014674,182 +0.014607,182 +0.014588,182 +0.014629,182 +0.014722,182 +0.016583,182 +0.015458,182 +0.014648,182 +0.014629,182 +0.014654,182 +0.014622,182 +0.014551,182 +0.016172,182 +0.014692,182 +0.014670,182 +0.014647,182 +0.014626,182 +0.014631,182 +0.014628,182 +0.016231,182 +0.014702,182 +0.014695,182 +0.014647,182 +0.014689,182 +0.014630,182 +0.015389,182 +0.015426,182 +0.015261,184 +0.015180,184 +0.015138,184 +0.015059,184 +0.015058,184 +0.016465,184 +0.015138,184 +0.015098,184 +0.015097,184 +0.015119,184 +0.015141,184 +0.015094,184 +0.016480,184 +0.015096,184 +0.015165,184 +0.015160,184 +0.015066,184 +0.015055,184 +0.016511,184 +0.015245,184 +0.015117,184 +0.015112,184 +0.015097,184 +0.015093,184 +0.015099,184 +0.016688,184 +0.015242,184 +0.015145,184 +0.015171,184 +0.015055,184 +0.015094,184 +0.015913,184 +0.016243,184 +0.016548,184 +0.016859,184 +0.016615,184 +0.016799,184 +0.017313,184 +0.016958,184 +0.016048,184 +0.016098,184 +0.015850,184 +0.015472,184 +0.015232,184 +0.015827,184 +0.015177,184 +0.015074,184 +0.016331,184 +0.017115,184 +0.016935,184 +0.016747,184 +0.016620,184 +0.016549,184 +0.016444,184 +0.016073,184 +0.016638,184 +0.016661,184 +0.017202,184 +0.016771,184 +0.016886,184 +0.016380,184 +0.016665,184 +0.016209,184 +0.016098,184 +0.015419,184 +0.015109,184 +0.015642,184 +0.017083,184 +0.016561,184 +0.015799,184 +0.015359,184 +0.015220,184 +0.015253,184 +0.016316,184 +0.017189,184 +0.016395,184 +0.016625,184 +0.016639,184 +0.016613,184 +0.016478,184 +0.016285,184 +0.016545,184 +0.016739,184 +0.017193,184 +0.018658,184 +0.016758,184 +0.016925,184 +0.016327,184 +0.015753,184 +0.016161,184 +0.017930,184 +0.016808,184 +0.016986,184 +0.016812,184 +0.018616,184 +0.017193,184 +0.017303,184 +0.019176,184 +0.018340,184 +0.019973,184 +0.020155,186 +0.020461,186 +0.018463,186 +0.019075,186 +0.024476,186 +0.022738,186 +0.020556,186 +0.019866,186 +0.017708,186 +0.018356,186 +0.017593,186 +0.018223,186 +0.019948,186 +0.020820,186 +0.022140,186 +0.017918,186 +0.019225,186 +0.019098,186 +0.019009,186 +0.022953,186 +0.017083,186 +0.018396,186 +0.017968,186 +0.017585,186 +0.016829,186 +0.016879,186 +0.016319,186 +0.016866,186 +0.018337,186 +0.018310,186 +0.023732,186 +0.018696,186 +0.019207,186 +0.019455,186 +0.018706,186 +0.017146,186 +0.016986,186 +0.017028,186 +0.019344,186 +0.019544,186 +0.017739,186 +0.017609,186 +0.017587,186 +0.017680,186 +0.017810,186 +0.017584,186 +0.017399,186 +0.018720,186 +0.017195,186 +0.017573,186 +0.017484,186 +0.018048,186 +0.021768,186 +0.016621,186 +0.017351,186 +0.016885,186 +0.016948,186 +0.017927,186 +0.017122,186 +0.017224,186 +0.017469,186 +0.017162,186 +0.017409,186 +0.017101,186 +0.017373,186 +0.016490,186 +0.017339,186 +0.017151,186 +0.017822,186 +0.017549,186 +0.017109,186 +0.016668,186 +0.016529,186 +0.016398,186 +0.017232,186 +0.019138,186 +0.017349,186 +0.016798,186 +0.016739,186 +0.017289,186 +0.016649,186 +0.017188,186 +0.016960,186 +0.016722,186 +0.017282,186 +0.016667,186 +0.016988,186 +0.016480,186 +0.016038,186 +0.015908,186 +0.015761,186 +0.015867,186 +0.019385,186 +0.017620,186 +0.018975,186 +0.017683,186 +0.016649,186 +0.017682,186 +0.017443,186 +0.017369,186 +0.017585,188 +0.017031,188 +0.016650,188 +0.016580,188 +0.016551,188 +0.016911,188 +0.017369,188 +0.017895,188 +0.020415,188 +0.021828,188 +0.020295,188 +0.020074,188 +0.020325,188 +0.018933,188 +0.016831,188 +0.016935,188 +0.016587,188 +0.016250,188 +0.016128,188 +0.016203,188 +0.016281,188 +0.016457,188 +0.016501,188 +0.016292,188 +0.016134,188 +0.017463,188 +0.016336,188 +0.016530,188 +0.016388,188 +0.016234,188 +0.016892,188 +0.021228,188 +0.018101,188 +0.018236,188 +0.019020,188 +0.022148,188 +0.028301,188 +0.030740,188 +0.028133,188 +0.030402,188 +0.030221,188 +0.021442,188 +0.026085,188 +0.021689,188 +0.021782,188 +0.019309,188 +0.018858,188 +0.016389,188 +0.016632,188 +0.019297,188 +0.017420,188 +0.018507,188 +0.016734,188 +0.017010,188 +0.017164,188 +0.017296,188 +0.019475,188 +0.018051,188 +0.016476,188 +0.018042,188 +0.016878,188 +0.016812,188 +0.018170,188 +0.017259,188 +0.016538,188 +0.016762,188 +0.017282,188 +0.017397,188 +0.022841,188 +0.018055,188 +0.016597,188 +0.016511,188 +0.016567,188 +0.016492,188 +0.018150,188 +0.017119,188 +0.016564,188 +0.017333,188 +0.016671,188 +0.016647,188 +0.016544,188 +0.016785,188 +0.016593,188 +0.017043,188 +0.016483,188 +0.016506,188 +0.020677,188 +0.016481,188 +0.016269,188 +0.016441,188 +0.016390,188 +0.016472,188 +0.020768,188 +0.016408,188 +0.016359,188 +0.016669,188 +0.016571,188 +0.017968,188 +0.019100,188 +0.016422,188 +0.019606,190 +0.018196,190 +0.017098,190 +0.017581,190 +0.017235,190 +0.016891,190 +0.017145,190 +0.017270,190 +0.017056,190 +0.021680,190 +0.020330,190 +0.019509,190 +0.017363,190 +0.017317,190 +0.017935,190 +0.017530,190 +0.017335,190 +0.018212,190 +0.017494,190 +0.017188,190 +0.017696,190 +0.016806,190 +0.016855,190 +0.017064,190 +0.017031,190 +0.017257,190 +0.017479,190 +0.016840,190 +0.016886,190 +0.017175,190 +0.016892,190 +0.016751,190 +0.017574,190 +0.016842,190 +0.016957,190 +0.017035,190 +0.016909,190 +0.017014,190 +0.017247,190 +0.016834,190 +0.016835,190 +0.017247,190 +0.017006,190 +0.017128,190 +0.018882,190 +0.018347,190 +0.017874,190 +0.017716,190 +0.016836,190 +0.017167,190 +0.016848,190 +0.016718,190 +0.016687,190 +0.016791,190 +0.016808,190 +0.017179,190 +0.016809,190 +0.016723,190 +0.016876,190 +0.017000,190 +0.016726,190 +0.017112,190 +0.016764,190 +0.016678,190 +0.016707,190 +0.016774,190 +0.016693,190 +0.017114,190 +0.016812,190 +0.016817,190 +0.016675,190 +0.016843,190 +0.016779,190 +0.017179,190 +0.016748,190 +0.016754,190 +0.017375,190 +0.017169,190 +0.018405,190 +0.018924,190 +0.018512,190 +0.018088,190 +0.017260,190 +0.017003,190 +0.016994,190 +0.018513,190 +0.017271,190 +0.017029,190 +0.017007,190 +0.016876,190 +0.016957,190 +0.019317,190 +0.019256,190 +0.018045,190 +0.017711,190 +0.017179,190 +0.021522,190 +0.019157,190 +0.022006,190 +0.022502,190 +0.024940,192 +0.020805,192 +0.018494,192 +0.018604,192 +0.018872,192 +0.020463,192 +0.019122,192 +0.018341,192 +0.018278,192 +0.018342,192 +0.021521,192 +0.021664,192 +0.023983,192 +0.022446,192 +0.020787,192 +0.020216,192 +0.021117,192 +0.021752,192 +0.020148,192 +0.020033,192 +0.019823,192 +0.019258,192 +0.018466,192 +0.018968,192 +0.019993,192 +0.024043,192 +0.020247,192 +0.020460,192 +0.022285,192 +0.032353,192 +0.020860,192 +0.019693,192 +0.019178,192 +0.019545,192 +0.019595,192 +0.022936,192 +0.019735,192 +0.020366,192 +0.020715,192 +0.020817,192 +0.019938,192 +0.019200,192 +0.019328,192 +0.019081,192 +0.019019,192 +0.024591,192 +0.020063,192 +0.023090,192 +0.020689,192 +0.025426,192 +0.024649,192 +0.022197,192 +0.023562,192 +0.025272,192 +0.021982,192 +0.019063,192 +0.020815,192 +0.018930,192 +0.019309,192 +0.021683,192 +0.018894,192 +0.018693,192 +0.018402,192 +0.018643,192 +0.018803,192 +0.018865,192 +0.018530,192 +0.018566,192 +0.018457,192 +0.019478,192 +0.019840,192 +0.019749,192 +0.021034,192 +0.020868,192 +0.023697,192 +0.019251,192 +0.019106,192 +0.021241,192 +0.019936,192 +0.020166,192 +0.019412,192 +0.019460,192 +0.019504,192 +0.019592,192 +0.019792,192 +0.019798,192 +0.019799,192 +0.019798,192 +0.021687,192 +0.020310,192 +0.020672,192 +0.020906,192 +0.020747,192 +0.020806,192 +0.020942,192 +0.022014,192 +0.020865,192 +0.020481,192 +0.021178,192 +0.020042,192 +0.019345,194 +0.020383,194 +0.034984,194 +0.031715,194 +0.019095,194 +0.019188,194 +0.019084,194 +0.019325,194 +0.018859,194 +0.019776,194 +0.018427,194 +0.018625,194 +0.018061,194 +0.018269,194 +0.018030,194 +0.018468,194 +0.017982,194 +0.018246,194 +0.018547,194 +0.019330,194 +0.019578,194 +0.019471,194 +0.020268,194 +0.019597,194 +0.019489,194 +0.019100,194 +0.019014,194 +0.019099,194 +0.018724,194 +0.018987,194 +0.018608,194 +0.018548,194 +0.018599,194 +0.018297,194 +0.018905,194 +0.018515,194 +0.018691,194 +0.018296,194 +0.018482,194 +0.018275,194 +0.018193,194 +0.017980,194 +0.018071,194 +0.018040,194 +0.017936,194 +0.019145,194 +0.019417,194 +0.019837,194 +0.020615,194 +0.020887,194 +0.019485,194 +0.018711,194 +0.018365,194 +0.019080,194 +0.018409,194 +0.018458,194 +0.018273,194 +0.017884,194 +0.017895,194 +0.018663,194 +0.019215,194 +0.019486,194 +0.019641,194 +0.019856,194 +0.019866,194 +0.019767,194 +0.020457,194 +0.019443,194 +0.019975,194 +0.019074,194 +0.018775,194 +0.019472,194 +0.020400,194 +0.020998,194 +0.020603,194 +0.020092,194 +0.019683,194 +0.020105,194 +0.018864,194 +0.018451,194 +0.017971,194 +0.018226,194 +0.017998,194 +0.017893,194 +0.018022,194 +0.017815,194 +0.017903,194 +0.018246,194 +0.019260,194 +0.019605,194 +0.019167,194 +0.019089,194 +0.019311,194 +0.019635,194 +0.019365,194 +0.019919,194 +0.020112,194 +0.019885,194 +0.019468,194 +0.019149,194 +0.020764,196 +0.021087,196 +0.020729,196 +0.023838,196 +0.024036,196 +0.019970,196 +0.019897,196 +0.020047,196 +0.019956,196 +0.019867,196 +0.019909,196 +0.021403,196 +0.021023,196 +0.021649,196 +0.020910,196 +0.020714,196 +0.021551,196 +0.021570,196 +0.021105,196 +0.019902,196 +0.019433,196 +0.021446,196 +0.021803,196 +0.020211,196 +0.019600,196 +0.018518,196 +0.019530,196 +0.020621,196 +0.021180,196 +0.020092,196 +0.019216,196 +0.019500,196 +0.021280,196 +0.021502,196 +0.020392,196 +0.020218,196 +0.019788,196 +0.019832,196 +0.019178,196 +0.019315,196 +0.018625,196 +0.018539,196 +0.019664,196 +0.019096,196 +0.019631,196 +0.019488,196 +0.019109,196 +0.019395,196 +0.019174,196 +0.019152,196 +0.018386,196 +0.018477,196 +0.018987,196 +0.018399,196 +0.019330,196 +0.019047,196 +0.018537,196 +0.018668,196 +0.018769,196 +0.018420,196 +0.018592,196 +0.018385,196 +0.018368,196 +0.018968,196 +0.018484,196 +0.018433,196 +0.018916,196 +0.018328,196 +0.018830,196 +0.018451,196 +0.018356,196 +0.018438,196 +0.018313,196 +0.018338,196 +0.018935,196 +0.018504,196 +0.018554,196 +0.018682,196 +0.018337,196 +0.018847,196 +0.019009,196 +0.018384,196 +0.019396,196 +0.018847,196 +0.018546,196 +0.018771,196 +0.018494,196 +0.018434,196 +0.018456,196 +0.018361,196 +0.019148,196 +0.021199,196 +0.019170,196 +0.018582,196 +0.018312,196 +0.018855,196 +0.023224,196 +0.019320,196 +0.023507,196 +0.021675,196 +0.020363,198 +0.021072,198 +0.020478,198 +0.019864,198 +0.022227,198 +0.020976,198 +0.019821,198 +0.019979,198 +0.019839,198 +0.021022,198 +0.020894,198 +0.019946,198 +0.020093,198 +0.024282,198 +0.022166,198 +0.020987,198 +0.021312,198 +0.020292,198 +0.019523,198 +0.019733,198 +0.019085,198 +0.019108,198 +0.018861,198 +0.020641,198 +0.022971,198 +0.023156,198 +0.022558,198 +0.023455,198 +0.021469,198 +0.020916,198 +0.021697,198 +0.021540,198 +0.021498,198 +0.022028,198 +0.023256,198 +0.021457,198 +0.021465,198 +0.020630,198 +0.021839,198 +0.020525,198 +0.020847,198 +0.020563,198 +0.020045,198 +0.020640,198 +0.020792,198 +0.020395,198 +0.019915,198 +0.019510,198 +0.019546,198 +0.018955,198 +0.019296,198 +0.018956,198 +0.018959,198 +0.019419,198 +0.021557,198 +0.024834,198 +0.020640,198 +0.019464,198 +0.019883,198 +0.020924,198 +0.020797,198 +0.019979,198 +0.020777,198 +0.020949,198 +0.020096,198 +0.020566,198 +0.020725,198 +0.020589,198 +0.020503,198 +0.021146,198 +0.020854,198 +0.020709,198 +0.020673,198 +0.021265,198 +0.020957,198 +0.020087,198 +0.020293,198 +0.020254,198 +0.020485,198 +0.020327,198 +0.019938,198 +0.019418,198 +0.020064,198 +0.019959,198 +0.020235,198 +0.019863,198 +0.019784,198 +0.019847,198 +0.019759,198 +0.019440,198 +0.019175,198 +0.019037,198 +0.019055,198 +0.019500,198 +0.018947,198 +0.018935,198 +0.018942,198 +0.019043,198 +0.019386,198 +0.018894,198 +0.019847,200 +0.019664,200 +0.019531,200 +0.019984,200 +0.019496,200 +0.019535,200 +0.019523,200 +0.019396,200 +0.019900,200 +0.019467,200 +0.019590,200 +0.019588,200 +0.019606,200 +0.019987,200 +0.020046,200 +0.019704,200 +0.019461,200 +0.020299,200 +0.020112,200 +0.019736,200 +0.019486,200 +0.019468,200 +0.019677,200 +0.019764,200 +0.020011,200 +0.019543,200 +0.019450,200 +0.019493,200 +0.019740,200 +0.019989,200 +0.019563,200 +0.019551,200 +0.019500,200 +0.019565,200 +0.020163,200 +0.019851,200 +0.019784,200 +0.019433,200 +0.019716,200 +0.020197,200 +0.019575,200 +0.019520,200 +0.019471,200 +0.019425,200 +0.020289,200 +0.019476,200 +0.019521,200 +0.019553,200 +0.019613,200 +0.020180,200 +0.019593,200 +0.019575,200 +0.019641,200 +0.019589,200 +0.020003,200 +0.019793,200 +0.019558,200 +0.019446,200 +0.019542,200 +0.019870,200 +0.019855,200 +0.020083,200 +0.019634,200 +0.019726,200 +0.020650,200 +0.019880,200 +0.019689,200 +0.020130,200 +0.019559,200 +0.019814,200 +0.019751,200 +0.019683,200 +0.019536,200 +0.019511,200 +0.019739,200 +0.019761,200 +0.019844,200 +0.019614,200 +0.019510,200 +0.019615,200 +0.019933,200 +0.019595,200 +0.019627,200 +0.019514,200 +0.019771,200 +0.019989,200 +0.019759,200 +0.019605,200 +0.019446,200 +0.019555,200 +0.020018,200 +0.019672,200 +0.019454,200 +0.019554,200 +0.019475,200 +0.019982,200 +0.019757,200 +0.019448,200 +0.019456,200 +0.019556,200 +0.020752,202 +0.020315,202 +0.020130,202 +0.020352,202 +0.020185,202 +0.020527,202 +0.020467,202 +0.020032,202 +0.020118,202 +0.020047,202 +0.020468,202 +0.020382,202 +0.020043,202 +0.020195,202 +0.020701,202 +0.022772,202 +0.020800,202 +0.020752,202 +0.020241,202 +0.020193,202 +0.020553,202 +0.021345,202 +0.021025,202 +0.021084,202 +0.021334,202 +0.021501,202 +0.021238,202 +0.020361,202 +0.020826,202 +0.020559,202 +0.021365,202 +0.021705,202 +0.021215,202 +0.020839,202 +0.021010,202 +0.024230,202 +0.020649,202 +0.020775,202 +0.020427,202 +0.021548,202 +0.020331,202 +0.020407,202 +0.020270,202 +0.020106,202 +0.020695,202 +0.022353,202 +0.020113,202 +0.020133,202 +0.020351,202 +0.020511,202 +0.020268,202 +0.020175,202 +0.020279,202 +0.020470,202 +0.020585,202 +0.020178,202 +0.020050,202 +0.021290,202 +0.020567,202 +0.020655,202 +0.020220,202 +0.020202,202 +0.020527,202 +0.022670,202 +0.021468,202 +0.020876,202 +0.022385,202 +0.032710,202 +0.039798,202 +0.023425,202 +0.021605,202 +0.023522,202 +0.021182,202 +0.020169,202 +0.020112,202 +0.020041,202 +0.021666,202 +0.020232,202 +0.020173,202 +0.021271,202 +0.022316,202 +0.022846,202 +0.021547,202 +0.023117,202 +0.022271,202 +0.023128,202 +0.024963,202 +0.022957,202 +0.025744,202 +0.023609,202 +0.021734,202 +0.021805,202 +0.021457,202 +0.021720,202 +0.024516,202 +0.022754,202 +0.023032,202 +0.021576,202 +0.022953,202 +0.020970,202 +0.021015,204 +0.020775,204 +0.020687,204 +0.025122,204 +0.020993,204 +0.020820,204 +0.020792,204 +0.020859,204 +0.030238,204 +0.025164,204 +0.026316,204 +0.023593,204 +0.025047,204 +0.023127,204 +0.022618,204 +0.022424,204 +0.022037,204 +0.022084,204 +0.021993,204 +0.022581,204 +0.021904,204 +0.021925,204 +0.022160,204 +0.022226,204 +0.022588,204 +0.028373,204 +0.022144,204 +0.023337,204 +0.023259,204 +0.022549,204 +0.023086,204 +0.023397,204 +0.022853,204 +0.028375,204 +0.023074,204 +0.022656,204 +0.022478,204 +0.022516,204 +0.025986,204 +0.020992,204 +0.020852,204 +0.020867,204 +0.025466,204 +0.021012,204 +0.020711,204 +0.020913,204 +0.021363,204 +0.027080,204 +0.022212,204 +0.021433,204 +0.020768,204 +0.025439,204 +0.021289,204 +0.023418,204 +0.026657,204 +0.022670,204 +0.023941,204 +0.023481,204 +0.025152,204 +0.022343,204 +0.023359,204 +0.023745,204 +0.023200,204 +0.022828,204 +0.023002,204 +0.022384,204 +0.022177,204 +0.022080,204 +0.021990,204 +0.022732,204 +0.022659,204 +0.023318,204 +0.022884,204 +0.022393,204 +0.023143,204 +0.023760,204 +0.024075,204 +0.022287,204 +0.022691,204 +0.021653,204 +0.021537,204 +0.020961,204 +0.022480,204 +0.020901,204 +0.022064,204 +0.024598,204 +0.028897,204 +0.024398,204 +0.022677,204 +0.022657,204 +0.022089,204 +0.021633,204 +0.022691,204 +0.024345,204 +0.022917,204 +0.024167,204 +0.022165,204 +0.022049,204 +0.022787,204 +0.024235,204 +0.023591,206 +0.021978,206 +0.021865,206 +0.021844,206 +0.022636,206 +0.022349,206 +0.021367,206 +0.021330,206 +0.022050,206 +0.021592,206 +0.021232,206 +0.021594,206 +0.022438,206 +0.022745,206 +0.022449,206 +0.021736,206 +0.021858,206 +0.022040,206 +0.021889,206 +0.021391,206 +0.021359,206 +0.021393,206 +0.021920,206 +0.021935,206 +0.022188,206 +0.021793,206 +0.021650,206 +0.022413,206 +0.021509,206 +0.021635,206 +0.022036,206 +0.023080,206 +0.021413,206 +0.021489,206 +0.021287,206 +0.021372,206 +0.022243,206 +0.022011,206 +0.021568,206 +0.022526,206 +0.022047,206 +0.021898,206 +0.021383,206 +0.021404,206 +0.021395,206 +0.021860,206 +0.021563,206 +0.021460,206 +0.021246,206 +0.021360,206 +0.022058,206 +0.021339,206 +0.022831,206 +0.021602,206 +0.021552,206 +0.021860,206 +0.021494,206 +0.021493,206 +0.021341,206 +0.022150,206 +0.023089,206 +0.023404,206 +0.023811,206 +0.023137,206 +0.023687,206 +0.023525,206 +0.022122,206 +0.021608,206 +0.022198,206 +0.021359,206 +0.022185,206 +0.021756,206 +0.021619,206 +0.021804,206 +0.021404,206 +0.021511,206 +0.021431,206 +0.022140,206 +0.021525,206 +0.021277,206 +0.021323,206 +0.021513,206 +0.022128,206 +0.021489,206 +0.023350,206 +0.021501,206 +0.022080,206 +0.021529,206 +0.021403,206 +0.021514,206 +0.021426,206 +0.022244,206 +0.021401,206 +0.021319,206 +0.022172,206 +0.022706,206 +0.022246,206 +0.021965,206 +0.021504,206 +0.022424,206 +0.023821,208 +0.023756,208 +0.022642,208 +0.025208,208 +0.023727,208 +0.022863,208 +0.022806,208 +0.022508,208 +0.022684,208 +0.022997,208 +0.023056,208 +0.023113,208 +0.022604,208 +0.023785,208 +0.029033,208 +0.024733,208 +0.024317,208 +0.024554,208 +0.024225,208 +0.025887,208 +0.024642,208 +0.025190,208 +0.024142,208 +0.024546,208 +0.022975,208 +0.023746,208 +0.023763,208 +0.026540,208 +0.024444,208 +0.023780,208 +0.023109,208 +0.022683,208 +0.022263,208 +0.021896,208 +0.022531,208 +0.025044,208 +0.023229,208 +0.022732,208 +0.023278,208 +0.022880,208 +0.024107,208 +0.024268,208 +0.024868,208 +0.025449,208 +0.024925,208 +0.024397,208 +0.025436,208 +0.025071,208 +0.025322,208 +0.024356,208 +0.026775,208 +0.024093,208 +0.026201,208 +0.025142,208 +0.027131,208 +0.024924,208 +0.025702,208 +0.027040,208 +0.024313,208 +0.024575,208 +0.024335,208 +0.024293,208 +0.023861,208 +0.023234,208 +0.022936,208 +0.022000,208 +0.022155,208 +0.023588,208 +0.024183,208 +0.022588,208 +0.021907,208 +0.022326,208 +0.022018,208 +0.021848,208 +0.021839,208 +0.022088,208 +0.022409,208 +0.021985,208 +0.021948,208 +0.021927,208 +0.022259,208 +0.021915,208 +0.022055,208 +0.021779,208 +0.021774,208 +0.022601,208 +0.022210,208 +0.021924,208 +0.022733,208 +0.023556,208 +0.025291,208 +0.024384,208 +0.024610,208 +0.028181,208 +0.024314,208 +0.024542,208 +0.024557,208 +0.023488,208 +0.023457,208 +0.023533,208 +0.024409,210 +0.024628,210 +0.023856,210 +0.023852,210 +0.023106,210 +0.023128,210 +0.023243,210 +0.023334,210 +0.022987,210 +0.022623,210 +0.022790,210 +0.022955,210 +0.022740,210 +0.022705,210 +0.022813,210 +0.022882,210 +0.023087,210 +0.022539,210 +0.022487,210 +0.023094,210 +0.022589,210 +0.022518,210 +0.022693,210 +0.022863,210 +0.022825,210 +0.022861,210 +0.022547,210 +0.022669,210 +0.022950,210 +0.022901,210 +0.023057,210 +0.022649,210 +0.023103,210 +0.022778,210 +0.022605,210 +0.023652,210 +0.024703,210 +0.025658,210 +0.024492,210 +0.023719,210 +0.024246,210 +0.024166,210 +0.024462,210 +0.023157,210 +0.023018,210 +0.024428,210 +0.026391,210 +0.024282,210 +0.023907,210 +0.025583,210 +0.023684,210 +0.023131,210 +0.022876,210 +0.024564,210 +0.022791,210 +0.022825,210 +0.022587,210 +0.024037,210 +0.023186,210 +0.022641,210 +0.022504,210 +0.022791,210 +0.024149,210 +0.022694,210 +0.022492,210 +0.022470,210 +0.024329,210 +0.023516,210 +0.022771,210 +0.022512,210 +0.023819,210 +0.023292,210 +0.022586,210 +0.022538,210 +0.022760,210 +0.023383,210 +0.023399,210 +0.022960,210 +0.022517,210 +0.023320,210 +0.022742,210 +0.022517,210 +0.022731,210 +0.022745,210 +0.023166,210 +0.023166,210 +0.022732,210 +0.023988,210 +0.024082,210 +0.024657,210 +0.024366,210 +0.027884,210 +0.024597,210 +0.025377,210 +0.023830,210 +0.023895,210 +0.024427,210 +0.023678,210 +0.025564,210 +0.024984,210 +0.028780,212 +0.029890,212 +0.027592,212 +0.026942,212 +0.030883,212 +0.027178,212 +0.028512,212 +0.039651,212 +0.028242,212 +0.028991,212 +0.026668,212 +0.027360,212 +0.026401,212 +0.029501,212 +0.026908,212 +0.027813,212 +0.027291,212 +0.026234,212 +0.027539,212 +0.028791,212 +0.027450,212 +0.025350,212 +0.023689,212 +0.023496,212 +0.023258,212 +0.023522,212 +0.024155,212 +0.024813,212 +0.026071,212 +0.027582,212 +0.025773,212 +0.024817,212 +0.023433,212 +0.023553,212 +0.023926,212 +0.024485,212 +0.024293,212 +0.024646,212 +0.029259,212 +0.025543,212 +0.024065,212 +0.024499,212 +0.030856,212 +0.027562,212 +0.024638,212 +0.023682,212 +0.023831,212 +0.023276,212 +0.023219,212 +0.023363,212 +0.023826,212 +0.023578,212 +0.023316,212 +0.023402,212 +0.023999,212 +0.023216,212 +0.023572,212 +0.023125,212 +0.023700,212 +0.025048,212 +0.024970,212 +0.024854,212 +0.024401,212 +0.025642,212 +0.025771,212 +0.025708,212 +0.024839,212 +0.025416,212 +0.023692,212 +0.023449,212 +0.024185,212 +0.024160,212 +0.023241,212 +0.025328,212 +0.023427,212 +0.024180,212 +0.023727,212 +0.023739,212 +0.023470,212 +0.023785,212 +0.023785,212 +0.026845,212 +0.026689,212 +0.032715,212 +0.027248,212 +0.026124,212 +0.025759,212 +0.025625,212 +0.024113,212 +0.023480,212 +0.023333,212 +0.023605,212 +0.023243,212 +0.023336,212 +0.023319,212 +0.023747,212 +0.023551,212 +0.023361,212 +0.024556,212 +0.024892,212 +0.026700,214 +0.025213,214 +0.026438,214 +0.025136,214 +0.026425,214 +0.025937,214 +0.025493,214 +0.024801,214 +0.024645,214 +0.025036,214 +0.024143,214 +0.024138,214 +0.024073,214 +0.023911,214 +0.024143,214 +0.024270,214 +0.024084,214 +0.024074,214 +0.023962,214 +0.024107,214 +0.024537,214 +0.024517,214 +0.024748,214 +0.024388,214 +0.024160,214 +0.024152,214 +0.023880,214 +0.024127,214 +0.024769,214 +0.024106,214 +0.023967,214 +0.024425,214 +0.025422,214 +0.024347,214 +0.024800,214 +0.023930,214 +0.024677,214 +0.023916,214 +0.024202,214 +0.023872,214 +0.024607,214 +0.023927,214 +0.023970,214 +0.024261,214 +0.025395,214 +0.024604,214 +0.024098,214 +0.024544,214 +0.024544,214 +0.024166,214 +0.023802,214 +0.023982,214 +0.024028,214 +0.024306,214 +0.024041,214 +0.024064,214 +0.024016,214 +0.024493,214 +0.024140,214 +0.023797,214 +0.023974,214 +0.024329,214 +0.023998,214 +0.023922,214 +0.023908,214 +0.024607,214 +0.023883,214 +0.024193,214 +0.024173,214 +0.024611,214 +0.023901,214 +0.023930,214 +0.023932,214 +0.024221,214 +0.024181,214 +0.023771,214 +0.024193,214 +0.023987,214 +0.024391,214 +0.023819,214 +0.023993,214 +0.023855,214 +0.024511,214 +0.023991,214 +0.023807,214 +0.024126,214 +0.024321,214 +0.024102,214 +0.023873,214 +0.023921,214 +0.024535,214 +0.024155,214 +0.023932,214 +0.024392,214 +0.024515,214 +0.023947,214 +0.024139,214 +0.023944,214 +0.027535,214 +0.025248,214 +0.025484,216 +0.025123,216 +0.030448,216 +0.025789,216 +0.024894,216 +0.025904,216 +0.026197,216 +0.024432,216 +0.024402,216 +0.024708,216 +0.026282,216 +0.024615,216 +0.024535,216 +0.024753,216 +0.026081,216 +0.024561,216 +0.024475,216 +0.024744,216 +0.025945,216 +0.024761,216 +0.024542,216 +0.024724,216 +0.025159,216 +0.024840,216 +0.024601,216 +0.024741,216 +0.025042,216 +0.024965,216 +0.024499,216 +0.024812,216 +0.024926,216 +0.024801,216 +0.024435,216 +0.024676,216 +0.024981,216 +0.025004,216 +0.024671,216 +0.024859,216 +0.025062,216 +0.024994,216 +0.024513,216 +0.024685,216 +0.024627,216 +0.025029,216 +0.024553,216 +0.024694,216 +0.024752,216 +0.024954,216 +0.024574,216 +0.024582,216 +0.024523,216 +0.025109,216 +0.024530,216 +0.024503,216 +0.024665,216 +0.024862,216 +0.024782,216 +0.024510,216 +0.024871,216 +0.024840,216 +0.024585,216 +0.024626,216 +0.024589,216 +0.025097,216 +0.024512,216 +0.024515,216 +0.024539,216 +0.025020,216 +0.024724,216 +0.025950,216 +0.025361,216 +0.024966,216 +0.024595,216 +0.024620,216 +0.024548,216 +0.024962,216 +0.024853,216 +0.024712,216 +0.025908,216 +0.024977,216 +0.024504,216 +0.024641,216 +0.024624,216 +0.024878,216 +0.024699,216 +0.024645,216 +0.024614,216 +0.024994,216 +0.024638,216 +0.024640,216 +0.024676,216 +0.024891,216 +0.024802,216 +0.024641,216 +0.024596,216 +0.025361,216 +0.024752,216 +0.024759,216 +0.024553,216 +0.025133,216 +0.026054,218 +0.025362,218 +0.025420,218 +0.025677,218 +0.025630,218 +0.025347,218 +0.025488,218 +0.025886,218 +0.025560,218 +0.025564,218 +0.025548,218 +0.025869,218 +0.025400,218 +0.025229,218 +0.025425,218 +0.025760,218 +0.025523,218 +0.025417,218 +0.025613,218 +0.025950,218 +0.025742,218 +0.026214,218 +0.025615,218 +0.025978,218 +0.025597,218 +0.025436,218 +0.025336,218 +0.025929,218 +0.025384,218 +0.025450,218 +0.025279,218 +0.025758,218 +0.026162,218 +0.026038,218 +0.025452,218 +0.025823,218 +0.025876,218 +0.025534,218 +0.025492,218 +0.025908,218 +0.025268,218 +0.025463,218 +0.025701,218 +0.025900,218 +0.025401,218 +0.025399,218 +0.025506,218 +0.026239,218 +0.025726,218 +0.025523,218 +0.025512,218 +0.025693,218 +0.025337,218 +0.025391,218 +0.025715,218 +0.025980,218 +0.025722,218 +0.025406,218 +0.025888,218 +0.025402,218 +0.025444,218 +0.025225,218 +0.025808,218 +0.025480,218 +0.025621,218 +0.025296,218 +0.025849,218 +0.025335,218 +0.025513,218 +0.025507,218 +0.025734,218 +0.025532,218 +0.025320,218 +0.025351,218 +0.026005,218 +0.025512,218 +0.025464,218 +0.025527,218 +0.025952,218 +0.025491,218 +0.025561,218 +0.025331,218 +0.026120,218 +0.025413,218 +0.025770,218 +0.025433,218 +0.026001,218 +0.025613,218 +0.030177,218 +0.025411,218 +0.025951,218 +0.025443,218 +0.025476,218 +0.025370,218 +0.025936,218 +0.025675,218 +0.025550,218 +0.025630,218 +0.025618,218 +0.025579,218 +0.026034,220 +0.026495,220 +0.026471,220 +0.026135,220 +0.026024,220 +0.026502,220 +0.026192,220 +0.026208,220 +0.025793,220 +0.026485,220 +0.026102,220 +0.026000,220 +0.025925,220 +0.026730,220 +0.026285,220 +0.026114,220 +0.026022,220 +0.026625,220 +0.026283,220 +0.025947,220 +0.026193,220 +0.026647,220 +0.026127,220 +0.026263,220 +0.026584,220 +0.026220,220 +0.026227,220 +0.025974,220 +0.026622,220 +0.026000,220 +0.026058,220 +0.025875,220 +0.026576,220 +0.026332,220 +0.026333,220 +0.026040,220 +0.026581,220 +0.026081,220 +0.025933,220 +0.025890,220 +0.026702,220 +0.026128,220 +0.026023,220 +0.026261,220 +0.026445,220 +0.026108,220 +0.025919,220 +0.026601,220 +0.026105,220 +0.026200,220 +0.025909,220 +0.026559,220 +0.026029,220 +0.026357,220 +0.025926,220 +0.026565,220 +0.026243,220 +0.026013,220 +0.026061,220 +0.026618,220 +0.026076,220 +0.026005,220 +0.026074,220 +0.026654,220 +0.027963,220 +0.026178,220 +0.026506,220 +0.026037,220 +0.026183,220 +0.025942,220 +0.026730,220 +0.026153,220 +0.026348,220 +0.025951,220 +0.026421,220 +0.026054,220 +0.026047,220 +0.025945,220 +0.026649,220 +0.026028,220 +0.026105,220 +0.025931,220 +0.026659,220 +0.026037,220 +0.025900,220 +0.026170,220 +0.026410,220 +0.027071,220 +0.029181,220 +0.029791,220 +0.032931,220 +0.029965,220 +0.028955,220 +0.028804,220 +0.028369,220 +0.033877,220 +0.035271,220 +0.029037,220 +0.030304,220 +0.028764,220 +0.032144,222 +0.030095,222 +0.029826,222 +0.030025,222 +0.030439,222 +0.029537,222 +0.030335,222 +0.030394,222 +0.031119,222 +0.030428,222 +0.029719,222 +0.030357,222 +0.030121,222 +0.030463,222 +0.030936,222 +0.029935,222 +0.030507,222 +0.030769,222 +0.030753,222 +0.031559,222 +0.030556,222 +0.028491,222 +0.038898,222 +0.031032,222 +0.032999,222 +0.030822,222 +0.031671,222 +0.027785,222 +0.028481,222 +0.029536,222 +0.028762,222 +0.029051,222 +0.028534,222 +0.028510,222 +0.028585,222 +0.028222,222 +0.027511,222 +0.026921,222 +0.027167,222 +0.028879,222 +0.029678,222 +0.029246,222 +0.028604,222 +0.027927,222 +0.027112,222 +0.026937,222 +0.027582,222 +0.027922,222 +0.028084,222 +0.027279,222 +0.032112,222 +0.028924,222 +0.028764,222 +0.028468,222 +0.028902,222 +0.029415,222 +0.028632,222 +0.028597,222 +0.028101,222 +0.027938,222 +0.027737,222 +0.027592,222 +0.027508,222 +0.026710,222 +0.027587,222 +0.027275,222 +0.026938,222 +0.026820,222 +0.027447,222 +0.026860,222 +0.027257,222 +0.027210,222 +0.027288,222 +0.026897,222 +0.026723,222 +0.027392,222 +0.027271,222 +0.026700,222 +0.027218,222 +0.027228,222 +0.026802,222 +0.026738,222 +0.026919,222 +0.027479,222 +0.026767,222 +0.027356,222 +0.028218,222 +0.027190,222 +0.026627,222 +0.026783,222 +0.029107,222 +0.027437,222 +0.027101,222 +0.027245,222 +0.027957,222 +0.027147,222 +0.026625,222 +0.027619,222 +0.026972,222 +0.026861,222 +0.030481,224 +0.031907,224 +0.030276,224 +0.030199,224 +0.030781,224 +0.030660,224 +0.029803,224 +0.029641,224 +0.030029,224 +0.030143,224 +0.030204,224 +0.029160,224 +0.028092,224 +0.027552,224 +0.028139,224 +0.027974,224 +0.027323,224 +0.027517,224 +0.028085,224 +0.030571,224 +0.030403,224 +0.029997,224 +0.028308,224 +0.027460,224 +0.028766,224 +0.029718,224 +0.028819,224 +0.029245,224 +0.031629,224 +0.032029,224 +0.030914,224 +0.030517,224 +0.030474,224 +0.030768,224 +0.031882,224 +0.031387,224 +0.030420,224 +0.031337,224 +0.030044,224 +0.034327,224 +0.030854,224 +0.030328,224 +0.033406,224 +0.031817,224 +0.030631,224 +0.032101,224 +0.033730,224 +0.029826,224 +0.031530,224 +0.031753,224 +0.033048,224 +0.032152,224 +0.030505,224 +0.029881,224 +0.031639,224 +0.029774,224 +0.028924,224 +0.028632,224 +0.027792,224 +0.029400,224 +0.030336,224 +0.030603,224 +0.028470,224 +0.028010,224 +0.027968,224 +0.027848,224 +0.034007,224 +0.034008,224 +0.032426,224 +0.031746,224 +0.038141,224 +0.032608,224 +0.031625,224 +0.034657,224 +0.038820,224 +0.033090,224 +0.033139,224 +0.031559,224 +0.032271,224 +0.030568,224 +0.032382,224 +0.030899,224 +0.030876,224 +0.031431,224 +0.032091,224 +0.030831,224 +0.033164,224 +0.031260,224 +0.032525,224 +0.030558,224 +0.031484,224 +0.032766,224 +0.040871,224 +0.034256,224 +0.029736,224 +0.030002,224 +0.030190,224 +0.031873,224 +0.035653,224 +0.030355,224 +0.038359,226 +0.032737,226 +0.032086,226 +0.031910,226 +0.033470,226 +0.035968,226 +0.035538,226 +0.031602,226 +0.031934,226 +0.033544,226 +0.031603,226 +0.032140,226 +0.030537,226 +0.029187,226 +0.033465,226 +0.032267,226 +0.028616,226 +0.029906,226 +0.030404,226 +0.031123,226 +0.030498,226 +0.029185,226 +0.029922,226 +0.029873,226 +0.029993,226 +0.029503,226 +0.029013,226 +0.029772,226 +0.029598,226 +0.029569,226 +0.029438,226 +0.029786,226 +0.029251,226 +0.029219,226 +0.029285,226 +0.028921,226 +0.029585,226 +0.029455,226 +0.030155,226 +0.037745,226 +0.048594,226 +0.035934,226 +0.029589,226 +0.030131,226 +0.031797,226 +0.032539,226 +0.037528,226 +0.030358,226 +0.030639,226 +0.033117,226 +0.030044,226 +0.032242,226 +0.055458,226 +0.031261,226 +0.030087,226 +0.030046,226 +0.030232,226 +0.029933,226 +0.033404,226 +0.031345,226 +0.029815,226 +0.034788,226 +0.030248,226 +0.031458,226 +0.030393,226 +0.029576,226 +0.034623,226 +0.031584,226 +0.030099,226 +0.032214,226 +0.038271,226 +0.053570,226 +0.032201,226 +0.037901,226 +0.032488,226 +0.040133,226 +0.047461,226 +0.054163,226 +0.034901,226 +0.029900,226 +0.029762,226 +0.033021,226 +0.033003,226 +0.038823,226 +0.037308,226 +0.032131,226 +0.034172,226 +0.033802,226 +0.030919,226 +0.031852,226 +0.033025,226 +0.031556,226 +0.032073,226 +0.033406,226 +0.033584,226 +0.032928,226 +0.038199,226 +0.033780,226 +0.038584,226 +0.055719,226 +0.058413,228 +0.035285,228 +0.035209,228 +0.037280,228 +0.033502,228 +0.032071,228 +0.035548,228 +0.034351,228 +0.036300,228 +0.033368,228 +0.032850,228 +0.034856,228 +0.031111,228 +0.031256,228 +0.032246,228 +0.032399,228 +0.030678,228 +0.032127,228 +0.034021,228 +0.033264,228 +0.035448,228 +0.033460,228 +0.032239,228 +0.034237,228 +0.033503,228 +0.035946,228 +0.038068,228 +0.037110,228 +0.032372,228 +0.034622,228 +0.043915,228 +0.038023,228 +0.032146,228 +0.033678,228 +0.035175,228 +0.039960,228 +0.038647,228 +0.032987,228 +0.034119,228 +0.031473,228 +0.034447,228 +0.037187,228 +0.034195,228 +0.053888,228 +0.057387,228 +0.041434,228 +0.035605,228 +0.037209,228 +0.038886,228 +0.038520,228 +0.037813,228 +0.038613,228 +0.037488,228 +0.035828,228 +0.055271,228 +0.044974,228 +0.036878,228 +0.033910,228 +0.040586,228 +0.034270,228 +0.035660,228 +0.037039,228 +0.035461,228 +0.033405,228 +0.034598,228 +0.033075,228 +0.031569,228 +0.029700,228 +0.028999,228 +0.028899,228 +0.030214,228 +0.029377,228 +0.029040,228 +0.028972,228 +0.030507,228 +0.030097,228 +0.029211,228 +0.031429,228 +0.031037,228 +0.030696,228 +0.032641,228 +0.030338,228 +0.030568,228 +0.035138,228 +0.033369,228 +0.033579,228 +0.032370,228 +0.033078,228 +0.033028,228 +0.036455,228 +0.031926,228 +0.037841,228 +0.043416,228 +0.034424,228 +0.035560,228 +0.035623,228 +0.033878,228 +0.034861,228 +0.040343,228 +0.031714,228 +0.031521,230 +0.032262,230 +0.031759,230 +0.031238,230 +0.040024,230 +0.030795,230 +0.030423,230 +0.037331,230 +0.034220,230 +0.038911,230 +0.033386,230 +0.030560,230 +0.032715,230 +0.032480,230 +0.032481,230 +0.032610,230 +0.031889,230 +0.029772,230 +0.031411,230 +0.036283,230 +0.035074,230 +0.031736,230 +0.032945,230 +0.033298,230 +0.035190,230 +0.035525,230 +0.033094,230 +0.030818,230 +0.030266,230 +0.030043,230 +0.033915,230 +0.033520,230 +0.043449,230 +0.031992,230 +0.032614,230 +0.030324,230 +0.029697,230 +0.031615,230 +0.029970,230 +0.029960,230 +0.030578,230 +0.030815,230 +0.029851,230 +0.029909,230 +0.031756,230 +0.030288,230 +0.029887,230 +0.031984,230 +0.030395,230 +0.030012,230 +0.031443,230 +0.030140,230 +0.029813,230 +0.029760,230 +0.030528,230 +0.031063,230 +0.030089,230 +0.030302,230 +0.031332,230 +0.030670,230 +0.030580,230 +0.030771,230 +0.029953,230 +0.029818,230 +0.030290,230 +0.029702,230 +0.029878,230 +0.030488,230 +0.029758,230 +0.029761,230 +0.030089,230 +0.029880,230 +0.029779,230 +0.029914,230 +0.030102,230 +0.030568,230 +0.029937,230 +0.040401,230 +0.031918,230 +0.033614,230 +0.033388,230 +0.031643,230 +0.033828,230 +0.033263,230 +0.032154,230 +0.037540,230 +0.031902,230 +0.031859,230 +0.031949,230 +0.032026,230 +0.033004,230 +0.033935,230 +0.032172,230 +0.030865,230 +0.034507,230 +0.031688,230 +0.030815,230 +0.031229,230 +0.032014,230 +0.031126,230 +0.032550,232 +0.031897,232 +0.031908,232 +0.035073,232 +0.038418,232 +0.041864,232 +0.035232,232 +0.033638,232 +0.037859,232 +0.036304,232 +0.041679,232 +0.037868,232 +0.035952,232 +0.034724,232 +0.035198,232 +0.037757,232 +0.048921,232 +0.045694,232 +0.034858,232 +0.034677,232 +0.037713,232 +0.035391,232 +0.034319,232 +0.035481,232 +0.031987,232 +0.032051,232 +0.036022,232 +0.032238,232 +0.032866,232 +0.036448,232 +0.037238,232 +0.036668,232 +0.034088,232 +0.036922,232 +0.035981,232 +0.035254,232 +0.040008,232 +0.036387,232 +0.036067,232 +0.035025,232 +0.040029,232 +0.035266,232 +0.035036,232 +0.033987,232 +0.033387,232 +0.033578,232 +0.035668,232 +0.033234,232 +0.032961,232 +0.044879,232 +0.034288,232 +0.036545,232 +0.037218,232 +0.060757,232 +0.052725,232 +0.059088,232 +0.046550,232 +0.035530,232 +0.037320,232 +0.035810,232 +0.037426,232 +0.038875,232 +0.039483,232 +0.036936,232 +0.039523,232 +0.035185,232 +0.036760,232 +0.039975,232 +0.033352,232 +0.034196,232 +0.038098,232 +0.035772,232 +0.034154,232 +0.046065,232 +0.036488,232 +0.036674,232 +0.032738,232 +0.040295,232 +0.034094,232 +0.032441,232 +0.034736,232 +0.039548,232 +0.043287,232 +0.035976,232 +0.034000,232 +0.039252,232 +0.036005,232 +0.035834,232 +0.038083,232 +0.042782,232 +0.034514,232 +0.036371,232 +0.037417,232 +0.036355,232 +0.035273,232 +0.034276,232 +0.034102,232 +0.034029,232 +0.032980,232 +0.033573,232 +0.038926,234 +0.040618,234 +0.040820,234 +0.037968,234 +0.038272,234 +0.042271,234 +0.049123,234 +0.034518,234 +0.038881,234 +0.036649,234 +0.034415,234 +0.036345,234 +0.042409,234 +0.046327,234 +0.040199,234 +0.035942,234 +0.033875,234 +0.034114,234 +0.032950,234 +0.034286,234 +0.033797,234 +0.033200,234 +0.034005,234 +0.034584,234 +0.033112,234 +0.035728,234 +0.034922,234 +0.034962,234 +0.033979,234 +0.037586,234 +0.032872,234 +0.032678,234 +0.032931,234 +0.031773,234 +0.031569,234 +0.032165,234 +0.031644,234 +0.031421,234 +0.031764,234 +0.032788,234 +0.031787,234 +0.032033,234 +0.032698,234 +0.034101,234 +0.032329,234 +0.031548,234 +0.031429,234 +0.031976,234 +0.031711,234 +0.031761,234 +0.031984,234 +0.032145,234 +0.032423,234 +0.031948,234 +0.032846,234 +0.032110,234 +0.031985,234 +0.032124,234 +0.032101,234 +0.032569,234 +0.031868,234 +0.031619,234 +0.031396,234 +0.031854,234 +0.031510,234 +0.031874,234 +0.032488,234 +0.031960,234 +0.032351,234 +0.032967,234 +0.031426,234 +0.031421,234 +0.032175,234 +0.032020,234 +0.031694,234 +0.031361,234 +0.032057,234 +0.031503,234 +0.031530,234 +0.031835,234 +0.031568,234 +0.032580,234 +0.033096,234 +0.031693,234 +0.031557,234 +0.031821,234 +0.031663,234 +0.031552,234 +0.031997,234 +0.031551,234 +0.032328,234 +0.038241,234 +0.033073,234 +0.034025,234 +0.041936,234 +0.034898,234 +0.034670,234 +0.033454,234 +0.032831,234 +0.032554,234 +0.034014,236 +0.042267,236 +0.033598,236 +0.037150,236 +0.037716,236 +0.042123,236 +0.035850,236 +0.033674,236 +0.034933,236 +0.046021,236 +0.036961,236 +0.034046,236 +0.034640,236 +0.038851,236 +0.038601,236 +0.037612,236 +0.038283,236 +0.050662,236 +0.042437,236 +0.035757,236 +0.042565,236 +0.042066,236 +0.036041,236 +0.045430,236 +0.046189,236 +0.035335,236 +0.035933,236 +0.037539,236 +0.035753,236 +0.038120,236 +0.038759,236 +0.035861,236 +0.037570,236 +0.037263,236 +0.037237,236 +0.034930,236 +0.036549,236 +0.038395,236 +0.035150,236 +0.034880,236 +0.056546,236 +0.065572,236 +0.064669,236 +0.043473,236 +0.038197,236 +0.036195,236 +0.037004,236 +0.037704,236 +0.039867,236 +0.034735,236 +0.035096,236 +0.036566,236 +0.036038,236 +0.035488,236 +0.036002,236 +0.034937,236 +0.037259,236 +0.037143,236 +0.038535,236 +0.037414,236 +0.037420,236 +0.035069,236 +0.044932,236 +0.042434,236 +0.038816,236 +0.037132,236 +0.039159,236 +0.043116,236 +0.053508,236 +0.036529,236 +0.042496,236 +0.041511,236 +0.042414,236 +0.036079,236 +0.035603,236 +0.038234,236 +0.036367,236 +0.035904,236 +0.043415,236 +0.038683,236 +0.049272,236 +0.037985,236 +0.040943,236 +0.036566,236 +0.036520,236 +0.036361,236 +0.040316,236 +0.038872,236 +0.046996,236 +0.038305,236 +0.037079,236 +0.037051,236 +0.036403,236 +0.052353,236 +0.065731,236 +0.038483,236 +0.039731,236 +0.040667,236 +0.039422,236 +0.036323,236 +0.039984,238 +0.039154,238 +0.038000,238 +0.040795,238 +0.040740,238 +0.037750,238 +0.039052,238 +0.037504,238 +0.039023,238 +0.039670,238 +0.039332,238 +0.038281,238 +0.037550,238 +0.039648,238 +0.042368,238 +0.040971,238 +0.046427,238 +0.041052,238 +0.038373,238 +0.040200,238 +0.043690,238 +0.037832,238 +0.038493,238 +0.038403,238 +0.037142,238 +0.034706,238 +0.033901,238 +0.040440,238 +0.035300,238 +0.041074,238 +0.037595,238 +0.035440,238 +0.037362,238 +0.035476,238 +0.035796,238 +0.037895,238 +0.038695,238 +0.037677,238 +0.041286,238 +0.037201,238 +0.033769,238 +0.036268,238 +0.035800,238 +0.036867,238 +0.035524,238 +0.036707,238 +0.033865,238 +0.034250,238 +0.033525,238 +0.034638,238 +0.034202,238 +0.034417,238 +0.036239,238 +0.035166,238 +0.033821,238 +0.033657,238 +0.033593,238 +0.034345,238 +0.033903,238 +0.033662,238 +0.034174,238 +0.034770,238 +0.033359,238 +0.033261,238 +0.033956,238 +0.033516,238 +0.034037,238 +0.033512,238 +0.035305,238 +0.043315,238 +0.036623,238 +0.036925,238 +0.035807,238 +0.035129,238 +0.035297,238 +0.035685,238 +0.034809,238 +0.062845,238 +0.063883,238 +0.037364,238 +0.034707,238 +0.036881,238 +0.036212,238 +0.034828,238 +0.039247,238 +0.037213,238 +0.035516,238 +0.039169,238 +0.034531,238 +0.034429,238 +0.058864,238 +0.034223,238 +0.036844,238 +0.034868,238 +0.039806,238 +0.039903,238 +0.036842,238 +0.045442,238 +0.061311,238 +0.068015,238 +0.061888,240 +0.037788,240 +0.038708,240 +0.040065,240 +0.037985,240 +0.038610,240 +0.038260,240 +0.035348,240 +0.043080,240 +0.065015,240 +0.065295,240 +0.047075,240 +0.039273,240 +0.039100,240 +0.041221,240 +0.036884,240 +0.037328,240 +0.038838,240 +0.035996,240 +0.035691,240 +0.038985,240 +0.040828,240 +0.063071,240 +0.040215,240 +0.040135,240 +0.044682,240 +0.058434,240 +0.035911,240 +0.035433,240 +0.036398,240 +0.038814,240 +0.039300,240 +0.040816,240 +0.039196,240 +0.039069,240 +0.036121,240 +0.037252,240 +0.040057,240 +0.037747,240 +0.049648,240 +0.044225,240 +0.037219,240 +0.043359,240 +0.039678,240 +0.044457,240 +0.043541,240 +0.037499,240 +0.036685,240 +0.035518,240 +0.036836,240 +0.036822,240 +0.038609,240 +0.042677,240 +0.042368,240 +0.041357,240 +0.036577,240 +0.037395,240 +0.044514,240 +0.041369,240 +0.040472,240 +0.043148,240 +0.035156,240 +0.036309,240 +0.037413,240 +0.041998,240 +0.039106,240 +0.037416,240 +0.049919,240 +0.058601,240 +0.063010,240 +0.039447,240 +0.041990,240 +0.036290,240 +0.035762,240 +0.036162,240 +0.036034,240 +0.038136,240 +0.035628,240 +0.037692,240 +0.037752,240 +0.041216,240 +0.043586,240 +0.036112,240 +0.038512,240 +0.037177,240 +0.035050,240 +0.034959,240 +0.035005,240 +0.034586,240 +0.040625,240 +0.036259,240 +0.035390,240 +0.047543,240 +0.046283,240 +0.035670,240 +0.037121,240 +0.036174,240 +0.036019,240 +0.035681,240 +0.035161,240 +0.037298,242 +0.036379,242 +0.037063,242 +0.039403,242 +0.035977,242 +0.035764,242 +0.038621,242 +0.040435,242 +0.040444,242 +0.046900,242 +0.044130,242 +0.043335,242 +0.041598,242 +0.043373,242 +0.051978,242 +0.047757,242 +0.043976,242 +0.044748,242 +0.044415,242 +0.045642,242 +0.043595,242 +0.040760,242 +0.037238,242 +0.037202,242 +0.039095,242 +0.037753,242 +0.044098,242 +0.043148,242 +0.037186,242 +0.037201,242 +0.037794,242 +0.037017,242 +0.046732,242 +0.042538,242 +0.040082,242 +0.037564,242 +0.036788,242 +0.039120,242 +0.037258,242 +0.039025,242 +0.038419,242 +0.037153,242 +0.039335,242 +0.036763,242 +0.037089,242 +0.038095,242 +0.036415,242 +0.035928,242 +0.037595,242 +0.035858,242 +0.035469,242 +0.035986,242 +0.035906,242 +0.036469,242 +0.036442,242 +0.036042,242 +0.036749,242 +0.036919,242 +0.036366,242 +0.042866,242 +0.036113,242 +0.037040,242 +0.039419,242 +0.037763,242 +0.036457,242 +0.035895,242 +0.036282,242 +0.037048,242 +0.035670,242 +0.036967,242 +0.036571,242 +0.035999,242 +0.038157,242 +0.036348,242 +0.036195,242 +0.037875,242 +0.038158,242 +0.037128,242 +0.037198,242 +0.036315,242 +0.039334,242 +0.040416,242 +0.040462,242 +0.040766,242 +0.036621,242 +0.041799,242 +0.041783,242 +0.041681,242 +0.039947,242 +0.045828,242 +0.051787,242 +0.055497,242 +0.062481,242 +0.054816,242 +0.051234,242 +0.053183,242 +0.049677,242 +0.043943,242 +0.049858,242 +0.048604,242 +0.042604,244 +0.037067,244 +0.037008,244 +0.038071,244 +0.037895,244 +0.037857,244 +0.039293,244 +0.038633,244 +0.038398,244 +0.037568,244 +0.043805,244 +0.037950,244 +0.037571,244 +0.038194,244 +0.040907,244 +0.049489,244 +0.045770,244 +0.041992,244 +0.049068,244 +0.042707,244 +0.038987,244 +0.040554,244 +0.045714,244 +0.046163,244 +0.045404,244 +0.039588,244 +0.038019,244 +0.039299,244 +0.044092,244 +0.039754,244 +0.037165,244 +0.037098,244 +0.039174,244 +0.043341,244 +0.038992,244 +0.037748,244 +0.047128,244 +0.046255,244 +0.042033,244 +0.043816,244 +0.040439,244 +0.046624,244 +0.047540,244 +0.054191,244 +0.051626,244 +0.045808,244 +0.042352,244 +0.045372,244 +0.038918,244 +0.038240,244 +0.038005,244 +0.037630,244 +0.042605,244 +0.039113,244 +0.038081,244 +0.040873,244 +0.039740,244 +0.039959,244 +0.043360,244 +0.041199,244 +0.039120,244 +0.037091,244 +0.042271,244 +0.042701,244 +0.045315,244 +0.049741,244 +0.039499,244 +0.039563,244 +0.057227,244 +0.044174,244 +0.044178,244 +0.040710,244 +0.040150,244 +0.041164,244 +0.039595,244 +0.038822,244 +0.037958,244 +0.045212,244 +0.041920,244 +0.041130,244 +0.042547,244 +0.046054,244 +0.041133,244 +0.037234,244 +0.038638,244 +0.042100,244 +0.040171,244 +0.041663,244 +0.040491,244 +0.043518,244 +0.044038,244 +0.038680,244 +0.042164,244 +0.061726,244 +0.074289,244 +0.042699,244 +0.042803,244 +0.049122,244 +0.070119,244 +0.049622,244 +0.038539,246 +0.038196,246 +0.039307,246 +0.037428,246 +0.038324,246 +0.052023,246 +0.039487,246 +0.037586,246 +0.039020,246 +0.039549,246 +0.037492,246 +0.040484,246 +0.039250,246 +0.046656,246 +0.038669,246 +0.039248,246 +0.040040,246 +0.037132,246 +0.038674,246 +0.038312,246 +0.037191,246 +0.039565,246 +0.060067,246 +0.053942,246 +0.044020,246 +0.055706,246 +0.040239,246 +0.041632,246 +0.046325,246 +0.046631,246 +0.050694,246 +0.042951,246 +0.042646,246 +0.042530,246 +0.048909,246 +0.040221,246 +0.044465,246 +0.048841,246 +0.049324,246 +0.043825,246 +0.042679,246 +0.042340,246 +0.042111,246 +0.045769,246 +0.054803,246 +0.048428,246 +0.043964,246 +0.052360,246 +0.041956,246 +0.042329,246 +0.043834,246 +0.047139,246 +0.060399,246 +0.052413,246 +0.042464,246 +0.042927,246 +0.049934,246 +0.041210,246 +0.043826,246 +0.045054,246 +0.048279,246 +0.041517,246 +0.039144,246 +0.053363,246 +0.039289,246 +0.040568,246 +0.039130,246 +0.041380,246 +0.039996,246 +0.038805,246 +0.039796,246 +0.037353,246 +0.048057,246 +0.042571,246 +0.041057,246 +0.042104,246 +0.043330,246 +0.049639,246 +0.041997,246 +0.040691,246 +0.042721,246 +0.048252,246 +0.039384,246 +0.038983,246 +0.040735,246 +0.039003,246 +0.038468,246 +0.043975,246 +0.039244,246 +0.039227,246 +0.038976,246 +0.038386,246 +0.042636,246 +0.038402,246 +0.038908,246 +0.038447,246 +0.038969,246 +0.043644,246 +0.038643,246 +0.039654,246 +0.040417,248 +0.039043,248 +0.044185,248 +0.040981,248 +0.041167,248 +0.039010,248 +0.046503,248 +0.039729,248 +0.038554,248 +0.044928,248 +0.038168,248 +0.041322,248 +0.041021,248 +0.037554,248 +0.045301,248 +0.039310,248 +0.044383,248 +0.038072,248 +0.037636,248 +0.045089,248 +0.037994,248 +0.045009,248 +0.037771,248 +0.037889,248 +0.044825,248 +0.038956,248 +0.046335,248 +0.038490,248 +0.039092,248 +0.044719,248 +0.038244,248 +0.038259,248 +0.040093,248 +0.059074,248 +0.069364,248 +0.072384,248 +0.070536,248 +0.070802,248 +0.043605,248 +0.043621,248 +0.048433,248 +0.050848,248 +0.045514,248 +0.043148,248 +0.051421,248 +0.042470,248 +0.041860,248 +0.044064,248 +0.042480,248 +0.039761,248 +0.042519,248 +0.046595,248 +0.043080,248 +0.041553,248 +0.040925,248 +0.039039,248 +0.041334,248 +0.041843,248 +0.043456,248 +0.052848,248 +0.054206,248 +0.043880,248 +0.039692,248 +0.049379,248 +0.044408,248 +0.044133,248 +0.042658,248 +0.040781,248 +0.039622,248 +0.040741,248 +0.040740,248 +0.040613,248 +0.042183,248 +0.047676,248 +0.045665,248 +0.040499,248 +0.039285,248 +0.040557,248 +0.040458,248 +0.039474,248 +0.041121,248 +0.041969,248 +0.048307,248 +0.043854,248 +0.046862,248 +0.039862,248 +0.044932,248 +0.040158,248 +0.044907,248 +0.039039,248 +0.038666,248 +0.040718,248 +0.039401,248 +0.041912,248 +0.039699,248 +0.038408,248 +0.039801,248 +0.037801,248 +0.038018,248 +0.041077,248 +0.041118,250 +0.041625,250 +0.042281,250 +0.041250,250 +0.047224,250 +0.052398,250 +0.042484,250 +0.041450,250 +0.044243,250 +0.043093,250 +0.043305,250 +0.044385,250 +0.040806,250 +0.042173,250 +0.043244,250 +0.043859,250 +0.041508,250 +0.040480,250 +0.041561,250 +0.052677,250 +0.049975,250 +0.043095,250 +0.042289,250 +0.040271,250 +0.042032,250 +0.041356,250 +0.040589,250 +0.042898,250 +0.040365,250 +0.042170,250 +0.041341,250 +0.047620,250 +0.040095,250 +0.042915,250 +0.042191,250 +0.040765,250 +0.041442,250 +0.040396,250 +0.038723,250 +0.039274,250 +0.038511,250 +0.039335,250 +0.039447,250 +0.038701,250 +0.041427,250 +0.039387,250 +0.041807,250 +0.039079,250 +0.038644,250 +0.039729,250 +0.038817,250 +0.039518,250 +0.039032,250 +0.038899,250 +0.041545,250 +0.040623,250 +0.038601,250 +0.039554,250 +0.038782,250 +0.038914,250 +0.038213,250 +0.038458,250 +0.038830,250 +0.038276,250 +0.038921,250 +0.038286,250 +0.038049,250 +0.039573,250 +0.038401,250 +0.038713,250 +0.038589,250 +0.038117,250 +0.038831,250 +0.038402,250 +0.038166,250 +0.038875,250 +0.038836,250 +0.039089,250 +0.038327,250 +0.038419,250 +0.039411,250 +0.042661,250 +0.041217,250 +0.039954,250 +0.040938,250 +0.040428,250 +0.040414,250 +0.046576,250 +0.040224,250 +0.041112,250 +0.045884,250 +0.039604,250 +0.040516,250 +0.039564,250 +0.040219,250 +0.040064,250 +0.039664,250 +0.047404,250 +0.040092,250 +0.047241,250 +0.041014,252 +0.041330,252 +0.044109,252 +0.041699,252 +0.041691,252 +0.043507,252 +0.049178,252 +0.039971,252 +0.039065,252 +0.047117,252 +0.039674,252 +0.048511,252 +0.040083,252 +0.040037,252 +0.039856,252 +0.040304,252 +0.043659,252 +0.040051,252 +0.039996,252 +0.039877,252 +0.041357,252 +0.041120,252 +0.040048,252 +0.040099,252 +0.039636,252 +0.039485,252 +0.040500,252 +0.039753,252 +0.040429,252 +0.039844,252 +0.039803,252 +0.040322,252 +0.041272,252 +0.040620,252 +0.039722,252 +0.039304,252 +0.040193,252 +0.039097,252 +0.039661,252 +0.039098,252 +0.038839,252 +0.040025,252 +0.039618,252 +0.040018,252 +0.039926,252 +0.039517,252 +0.040126,252 +0.040258,252 +0.040113,252 +0.040086,252 +0.039453,252 +0.041034,252 +0.039821,252 +0.040005,252 +0.039831,252 +0.039674,252 +0.040629,252 +0.041473,252 +0.039830,252 +0.040176,252 +0.039588,252 +0.040798,252 +0.039369,252 +0.039816,252 +0.040228,252 +0.039705,252 +0.040574,252 +0.039849,252 +0.043661,252 +0.039510,252 +0.039278,252 +0.040141,252 +0.039366,252 +0.039836,252 +0.039810,252 +0.039245,252 +0.040290,252 +0.039499,252 +0.039695,252 +0.040437,252 +0.040627,252 +0.040927,252 +0.041921,252 +0.040642,252 +0.039550,252 +0.039489,252 +0.040235,252 +0.039898,252 +0.039762,252 +0.040119,252 +0.040233,252 +0.040398,252 +0.039181,252 +0.043033,252 +0.044545,252 +0.044985,252 +0.047034,252 +0.044280,252 +0.054477,252 +0.050319,252 +0.057066,254 +0.045915,254 +0.053807,254 +0.045821,254 +0.046224,254 +0.053504,254 +0.046008,254 +0.042736,254 +0.042936,254 +0.042031,254 +0.049899,254 +0.045839,254 +0.043794,254 +0.045294,254 +0.042477,254 +0.042991,254 +0.042728,254 +0.050819,254 +0.042482,254 +0.048271,254 +0.040985,254 +0.040710,254 +0.047932,254 +0.040411,254 +0.048790,254 +0.040995,254 +0.048399,254 +0.041008,254 +0.046948,254 +0.043205,254 +0.041398,254 +0.049819,254 +0.064929,254 +0.056505,254 +0.043840,254 +0.045254,254 +0.046367,254 +0.048988,254 +0.048867,254 +0.047641,254 +0.046717,254 +0.041652,254 +0.040698,254 +0.041314,254 +0.041291,254 +0.041492,254 +0.041668,254 +0.041032,254 +0.043226,254 +0.040972,254 +0.041882,254 +0.042040,254 +0.041288,254 +0.043481,254 +0.041075,254 +0.042863,254 +0.042624,254 +0.041805,254 +0.045990,254 +0.042427,254 +0.047742,254 +0.042355,254 +0.045689,254 +0.046819,254 +0.047558,254 +0.045499,254 +0.044920,254 +0.042057,254 +0.041470,254 +0.042317,254 +0.041304,254 +0.042961,254 +0.041028,254 +0.042244,254 +0.041813,254 +0.043338,254 +0.043398,254 +0.041723,254 +0.042069,254 +0.042506,254 +0.040893,254 +0.041919,254 +0.041103,254 +0.041800,254 +0.041996,254 +0.041740,254 +0.042997,254 +0.040920,254 +0.041795,254 +0.041676,254 +0.041098,254 +0.041497,254 +0.041171,254 +0.042121,254 +0.041001,254 +0.041654,254 +0.045172,254 +0.040708,254 +0.041422,254 +0.040343,254 +0.046370,256 +0.045655,256 +0.048878,256 +0.045398,256 +0.045694,256 +0.046966,256 +0.045426,256 +0.045866,256 +0.045093,256 +0.046127,256 +0.045129,256 +0.046048,256 +0.045077,256 +0.048681,256 +0.045522,256 +0.052923,256 +0.048435,256 +0.046260,256 +0.045517,256 +0.046115,256 +0.046228,256 +0.045122,256 +0.046320,256 +0.046687,256 +0.046604,256 +0.045214,256 +0.046405,256 +0.045484,256 +0.046130,256 +0.045156,256 +0.046180,256 +0.045839,256 +0.045490,256 +0.046040,256 +0.045252,256 +0.046244,256 +0.045412,256 +0.046311,256 +0.045113,256 +0.049488,256 +0.045643,256 +0.046900,256 +0.046661,256 +0.045409,256 +0.046062,256 +0.045338,256 +0.045944,256 +0.045376,256 +0.046158,256 +0.045406,256 +0.046151,256 +0.045319,256 +0.045680,256 +0.045820,256 +0.045328,256 +0.045860,256 +0.045192,256 +0.046020,256 +0.045257,256 +0.046302,256 +0.045438,256 +0.058704,256 +0.047125,256 +0.050324,256 +0.045177,256 +0.046064,256 +0.045252,256 +0.045498,256 +0.045675,256 +0.045127,256 +0.046056,256 +0.045348,256 +0.046808,256 +0.045555,256 +0.045877,256 +0.045550,256 +0.046480,256 +0.045690,256 +0.045546,256 +0.045840,256 +0.045534,256 +0.052565,256 +0.045433,256 +0.046270,256 +0.045094,256 +0.045598,256 +0.045110,256 +0.045658,256 +0.045319,256 +0.045527,256 +0.045396,256 +0.045103,256 +0.045891,256 +0.045382,256 +0.046379,256 +0.045006,256 +0.045845,256 +0.045230,256 +0.045804,256 +0.045221,256 +0.043128,258 +0.043097,258 +0.042982,258 +0.043606,258 +0.042851,258 +0.044028,258 +0.042502,258 +0.043378,258 +0.043095,258 +0.042678,258 +0.043282,258 +0.042649,258 +0.043546,258 +0.042667,258 +0.042888,258 +0.043258,258 +0.042892,258 +0.043451,258 +0.042961,258 +0.043597,258 +0.042769,258 +0.043045,258 +0.043404,258 +0.042599,258 +0.044687,258 +0.042961,258 +0.046317,258 +0.042790,258 +0.043971,258 +0.043444,258 +0.042786,258 +0.044754,258 +0.042692,258 +0.044956,258 +0.042697,258 +0.045201,258 +0.043495,258 +0.043298,258 +0.047522,258 +0.047937,258 +0.047038,258 +0.042625,258 +0.045165,258 +0.042676,258 +0.045141,258 +0.043566,258 +0.046159,258 +0.049445,258 +0.051943,258 +0.048570,258 +0.050922,258 +0.077064,258 +0.054108,258 +0.075734,258 +0.049988,258 +0.055326,258 +0.054183,258 +0.052520,258 +0.050749,258 +0.049838,258 +0.050774,258 +0.048713,258 +0.046663,258 +0.051461,258 +0.050249,258 +0.050005,258 +0.056744,258 +0.050853,258 +0.048940,258 +0.049486,258 +0.049413,258 +0.048170,258 +0.043561,258 +0.043528,258 +0.046977,258 +0.047641,258 +0.045539,258 +0.046903,258 +0.049043,258 +0.051012,258 +0.050541,258 +0.051858,258 +0.050450,258 +0.043314,258 +0.045638,258 +0.051711,258 +0.048072,258 +0.049489,258 +0.049104,258 +0.046936,258 +0.045119,258 +0.044753,258 +0.044203,258 +0.044305,258 +0.046464,258 +0.047061,258 +0.045169,258 +0.045110,258 +0.047880,258 +0.046840,258 +0.050664,260 +0.047291,260 +0.050600,260 +0.045224,260 +0.044480,260 +0.046777,260 +0.047652,260 +0.048565,260 +0.048601,260 +0.047835,260 +0.054151,260 +0.043818,260 +0.051183,260 +0.044731,260 +0.052353,260 +0.044937,260 +0.045090,260 +0.044738,260 +0.044539,260 +0.044189,260 +0.044068,260 +0.044165,260 +0.044131,260 +0.044706,260 +0.043923,260 +0.044485,260 +0.044039,260 +0.044352,260 +0.043917,260 +0.044257,260 +0.044521,260 +0.044229,260 +0.044743,260 +0.044407,260 +0.045388,260 +0.046720,260 +0.046403,260 +0.044388,260 +0.047111,260 +0.048361,260 +0.049818,260 +0.050172,260 +0.049104,260 +0.051559,260 +0.049807,260 +0.053649,260 +0.051756,260 +0.051425,260 +0.049529,260 +0.050346,260 +0.049346,260 +0.048547,260 +0.048216,260 +0.049552,260 +0.049367,260 +0.046374,260 +0.048519,260 +0.047924,260 +0.052343,260 +0.054300,260 +0.046514,260 +0.047875,260 +0.047481,260 +0.048849,260 +0.046673,260 +0.046245,260 +0.044684,260 +0.048325,260 +0.048049,260 +0.050329,260 +0.047061,260 +0.048243,260 +0.050512,260 +0.052190,260 +0.048308,260 +0.049647,260 +0.047268,260 +0.048502,260 +0.044475,260 +0.045791,260 +0.044151,260 +0.045445,260 +0.049574,260 +0.048230,260 +0.049027,260 +0.054493,260 +0.053909,260 +0.050246,260 +0.050147,260 +0.047211,260 +0.047581,260 +0.044123,260 +0.049601,260 +0.049980,260 +0.058061,260 +0.060819,260 +0.065946,260 +0.056675,260 +0.071167,260 +0.054238,260 +0.068391,262 +0.054044,262 +0.063854,262 +0.055572,262 +0.055039,262 +0.053090,262 +0.059861,262 +0.075603,262 +0.060356,262 +0.053670,262 +0.053980,262 +0.057140,262 +0.060211,262 +0.057499,262 +0.052951,262 +0.051282,262 +0.051657,262 +0.048438,262 +0.050060,262 +0.050079,262 +0.056088,262 +0.050441,262 +0.054786,262 +0.054944,262 +0.061158,262 +0.063592,262 +0.049756,262 +0.049989,262 +0.047498,262 +0.048026,262 +0.048181,262 +0.051458,262 +0.053053,262 +0.052789,262 +0.054084,262 +0.058270,262 +0.048062,262 +0.056312,262 +0.048521,262 +0.061651,262 +0.056249,262 +0.055687,262 +0.052286,262 +0.055558,262 +0.053551,262 +0.052897,262 +0.055583,262 +0.052118,262 +0.055595,262 +0.052332,262 +0.052024,262 +0.050782,262 +0.050073,262 +0.047154,262 +0.050550,262 +0.046832,262 +0.051025,262 +0.051053,262 +0.054520,262 +0.051870,262 +0.050002,262 +0.046938,262 +0.049972,262 +0.046934,262 +0.049755,262 +0.049122,262 +0.054521,262 +0.053756,262 +0.052077,262 +0.049274,262 +0.049231,262 +0.047972,262 +0.048660,262 +0.049238,262 +0.053002,262 +0.050456,262 +0.051622,262 +0.050363,262 +0.050675,262 +0.057281,262 +0.056032,262 +0.057048,262 +0.051817,262 +0.049484,262 +0.048476,262 +0.048065,262 +0.057571,262 +0.053732,262 +0.050675,262 +0.048509,262 +0.049214,262 +0.047276,262 +0.053407,262 +0.056771,262 +0.063283,262 +0.055163,262 +0.054900,262 +0.054134,262 +0.054612,262 +0.053658,262 +0.056285,264 +0.052211,264 +0.050864,264 +0.049217,264 +0.050019,264 +0.050148,264 +0.050645,264 +0.050201,264 +0.049772,264 +0.049309,264 +0.047067,264 +0.049003,264 +0.047070,264 +0.047391,264 +0.046381,264 +0.047166,264 +0.048396,264 +0.047551,264 +0.046881,264 +0.047159,264 +0.047023,264 +0.047268,264 +0.046398,264 +0.046534,264 +0.046563,264 +0.046307,264 +0.047036,264 +0.046239,264 +0.046973,264 +0.046144,264 +0.047086,264 +0.046353,264 +0.047711,264 +0.046246,264 +0.047048,264 +0.046189,264 +0.048609,264 +0.046199,264 +0.046267,264 +0.047407,264 +0.046089,264 +0.047786,264 +0.046747,264 +0.046999,264 +0.046237,264 +0.046987,264 +0.046402,264 +0.048332,264 +0.047240,264 +0.047567,264 +0.047951,264 +0.048270,264 +0.046454,264 +0.048006,264 +0.046843,264 +0.046841,264 +0.047899,264 +0.046480,264 +0.048260,264 +0.046080,264 +0.048094,264 +0.046167,264 +0.048128,264 +0.051792,264 +0.050430,264 +0.049137,264 +0.048897,264 +0.048034,264 +0.047286,264 +0.046188,264 +0.046870,264 +0.046286,264 +0.046630,264 +0.046781,264 +0.046262,264 +0.049960,264 +0.051342,264 +0.049265,264 +0.046303,264 +0.047130,264 +0.046226,264 +0.047704,264 +0.046374,264 +0.046911,264 +0.046082,264 +0.047771,264 +0.046475,264 +0.049328,264 +0.046435,264 +0.046622,264 +0.046266,264 +0.046550,264 +0.048710,264 +0.049719,264 +0.048527,264 +0.048581,264 +0.050060,264 +0.049059,264 +0.047369,264 +0.046636,264 +0.051725,266 +0.051314,266 +0.053410,266 +0.055430,266 +0.054625,266 +0.053391,266 +0.051943,266 +0.051466,266 +0.050024,266 +0.050617,266 +0.049899,266 +0.050297,266 +0.050409,266 +0.050722,266 +0.050274,266 +0.050730,266 +0.054686,266 +0.053915,266 +0.051247,266 +0.051398,266 +0.050113,266 +0.050549,266 +0.054031,266 +0.051283,266 +0.049816,266 +0.050561,266 +0.050195,266 +0.050661,266 +0.049893,266 +0.050586,266 +0.050073,266 +0.050903,266 +0.050330,266 +0.050627,266 +0.049771,266 +0.050922,266 +0.051920,266 +0.053144,266 +0.053605,266 +0.053413,266 +0.052102,266 +0.052975,266 +0.052856,266 +0.054334,266 +0.053598,266 +0.052921,266 +0.052794,266 +0.052685,266 +0.052804,266 +0.051450,266 +0.051631,266 +0.050223,266 +0.050900,266 +0.058479,266 +0.056501,266 +0.055018,266 +0.054116,266 +0.052089,266 +0.052082,266 +0.050745,266 +0.051203,266 +0.050035,266 +0.050797,266 +0.050062,266 +0.051296,266 +0.052480,266 +0.050936,266 +0.057681,266 +0.058276,266 +0.055856,266 +0.053685,266 +0.053777,266 +0.053911,266 +0.052941,266 +0.051741,266 +0.050494,266 +0.055502,266 +0.059932,266 +0.054018,266 +0.052270,266 +0.050435,266 +0.077285,266 +0.054011,266 +0.050785,266 +0.054649,266 +0.052420,266 +0.052819,266 +0.054659,266 +0.054409,266 +0.054260,266 +0.053533,266 +0.053754,266 +0.052733,266 +0.052416,266 +0.051040,266 +0.052033,266 +0.052009,266 +0.052529,266 +0.052487,266 +0.052117,266 +0.052258,268 +0.053511,268 +0.064842,268 +0.059756,268 +0.059964,268 +0.056388,268 +0.060106,268 +0.053551,268 +0.053074,268 +0.052905,268 +0.059101,268 +0.052455,268 +0.053274,268 +0.054025,268 +0.062822,268 +0.056024,268 +0.055818,268 +0.053038,268 +0.052923,268 +0.052858,268 +0.052785,268 +0.052192,268 +0.050187,268 +0.050496,268 +0.052006,268 +0.052511,268 +0.050390,268 +0.050760,268 +0.050301,268 +0.050783,268 +0.050071,268 +0.050577,268 +0.050098,268 +0.050878,268 +0.050046,268 +0.050771,268 +0.050167,268 +0.051274,268 +0.051997,268 +0.051412,268 +0.050190,268 +0.050241,268 +0.051350,268 +0.052092,268 +0.050312,268 +0.050354,268 +0.050081,268 +0.050403,268 +0.050523,268 +0.052009,268 +0.050330,268 +0.050170,268 +0.050514,268 +0.050418,268 +0.050490,268 +0.050214,268 +0.050398,268 +0.050309,268 +0.050384,268 +0.050148,268 +0.050418,268 +0.050590,268 +0.054156,268 +0.053955,268 +0.054889,268 +0.061761,268 +0.066656,268 +0.053520,268 +0.051113,268 +0.050269,268 +0.050530,268 +0.051181,268 +0.050927,268 +0.050556,268 +0.050343,268 +0.050250,268 +0.050333,268 +0.050440,268 +0.050843,268 +0.050310,268 +0.050533,268 +0.050466,268 +0.050440,268 +0.050083,268 +0.050723,268 +0.050275,268 +0.050505,268 +0.050215,268 +0.050782,268 +0.050139,268 +0.050525,268 +0.050406,268 +0.050330,268 +0.050213,268 +0.050382,268 +0.051692,268 +0.051835,268 +0.051324,268 +0.052542,268 +0.050617,268 +0.053960,270 +0.054397,270 +0.053719,270 +0.054373,270 +0.053741,270 +0.054123,270 +0.054112,270 +0.054448,270 +0.053833,270 +0.054301,270 +0.054003,270 +0.054069,270 +0.054124,270 +0.053797,270 +0.054256,270 +0.054018,270 +0.054296,270 +0.053865,270 +0.055765,270 +0.053850,270 +0.054618,270 +0.053893,270 +0.055188,270 +0.058444,270 +0.057940,270 +0.056482,270 +0.058558,270 +0.056220,270 +0.055996,270 +0.058367,270 +0.056417,270 +0.058341,270 +0.062754,270 +0.056253,270 +0.061714,270 +0.057928,270 +0.056349,270 +0.058408,270 +0.058224,270 +0.057903,270 +0.057873,270 +0.059330,270 +0.060017,270 +0.058020,270 +0.057583,270 +0.056950,270 +0.056838,270 +0.057761,270 +0.057302,270 +0.057690,270 +0.059148,270 +0.057890,270 +0.057142,270 +0.057580,270 +0.057715,270 +0.058074,270 +0.057601,270 +0.058007,270 +0.057046,270 +0.056160,270 +0.056786,270 +0.065296,270 +0.060188,270 +0.070213,270 +0.060761,270 +0.060641,270 +0.056608,270 +0.054322,270 +0.056702,270 +0.068307,270 +0.061488,270 +0.059540,270 +0.059322,270 +0.062787,270 +0.056925,270 +0.062799,270 +0.058443,270 +0.057363,270 +0.057748,270 +0.060106,270 +0.064343,270 +0.061347,270 +0.062039,270 +0.063974,270 +0.064517,270 +0.060165,270 +0.062633,270 +0.059059,270 +0.056930,270 +0.054548,270 +0.061077,270 +0.053595,270 +0.059761,270 +0.053469,270 +0.059381,270 +0.059112,270 +0.053274,270 +0.059535,270 +0.053350,270 +0.058998,270 +0.051533,272 +0.056155,272 +0.056381,272 +0.050555,272 +0.056389,272 +0.050467,272 +0.056186,272 +0.050446,272 +0.056900,272 +0.052880,272 +0.056857,272 +0.050859,272 +0.056792,272 +0.050541,272 +0.056909,272 +0.054983,272 +0.051940,272 +0.056142,272 +0.050491,272 +0.057792,272 +0.058770,272 +0.056321,272 +0.057960,272 +0.056229,272 +0.058982,272 +0.056232,272 +0.056269,272 +0.056030,272 +0.057696,272 +0.054746,272 +0.053061,272 +0.051260,272 +0.051097,272 +0.050458,272 +0.050925,272 +0.051690,272 +0.051156,272 +0.051179,272 +0.052154,272 +0.050605,272 +0.051061,272 +0.050549,272 +0.051130,272 +0.051958,272 +0.053018,272 +0.053542,272 +0.051333,272 +0.054512,272 +0.055631,272 +0.056081,272 +0.056137,272 +0.056946,272 +0.055434,272 +0.060452,272 +0.052961,272 +0.055519,272 +0.055727,272 +0.056935,272 +0.052991,272 +0.050753,272 +0.051385,272 +0.050604,272 +0.052218,272 +0.052902,272 +0.053580,272 +0.051193,272 +0.052471,272 +0.050534,272 +0.052734,272 +0.050638,272 +0.052118,272 +0.050569,272 +0.052254,272 +0.050403,272 +0.052877,272 +0.050546,272 +0.051199,272 +0.050424,272 +0.051033,272 +0.050499,272 +0.050719,272 +0.050657,272 +0.051270,272 +0.050571,272 +0.051184,272 +0.050471,272 +0.051083,272 +0.050534,272 +0.051226,272 +0.050497,272 +0.050930,272 +0.050515,272 +0.050652,272 +0.050458,272 +0.050849,272 +0.050960,272 +0.050717,272 +0.050660,272 +0.050604,272 +0.050627,272 +0.055355,274 +0.055286,274 +0.055058,274 +0.077759,274 +0.062612,274 +0.084260,274 +0.104903,274 +0.106103,274 +0.077543,274 +0.085944,274 +0.080646,274 +0.056136,274 +0.056251,274 +0.056378,274 +0.056039,274 +0.056316,274 +0.056571,274 +0.068323,274 +0.065931,274 +0.059785,274 +0.058998,274 +0.056701,274 +0.061016,274 +0.062724,274 +0.056139,274 +0.057446,274 +0.057002,274 +0.059934,274 +0.060444,274 +0.060331,274 +0.070187,274 +0.102343,274 +0.101983,274 +0.085944,274 +0.057725,274 +0.060507,274 +0.078247,274 +0.073117,274 +0.066163,274 +0.060576,274 +0.059118,274 +0.064332,274 +0.068698,274 +0.063827,274 +0.068858,274 +0.062736,274 +0.068263,274 +0.061657,274 +0.059037,274 +0.062543,274 +0.062379,274 +0.065076,274 +0.061394,274 +0.065859,274 +0.059628,274 +0.060438,274 +0.058751,274 +0.060736,274 +0.056983,274 +0.059483,274 +0.058811,274 +0.060062,274 +0.059005,274 +0.058105,274 +0.059569,274 +0.061596,274 +0.067420,274 +0.065639,274 +0.065058,274 +0.064804,274 +0.064150,274 +0.061249,274 +0.060533,274 +0.060707,274 +0.060454,274 +0.063287,274 +0.059066,274 +0.058902,274 +0.062817,274 +0.057138,274 +0.058739,274 +0.056870,274 +0.060131,274 +0.058255,274 +0.057846,274 +0.056016,274 +0.059232,274 +0.059195,274 +0.058514,274 +0.066063,274 +0.068293,274 +0.066232,274 +0.064580,274 +0.059091,274 +0.060501,274 +0.060111,274 +0.060989,274 +0.059421,274 +0.065569,274 +0.061068,274 +0.060733,276 +0.055370,276 +0.077650,276 +0.057427,276 +0.057217,276 +0.057550,276 +0.057177,276 +0.056801,276 +0.062281,276 +0.056746,276 +0.061197,276 +0.057997,276 +0.058909,276 +0.058194,276 +0.059997,276 +0.058988,276 +0.058429,276 +0.064624,276 +0.057617,276 +0.060444,276 +0.060571,276 +0.058261,276 +0.060075,276 +0.059849,276 +0.060039,276 +0.057928,276 +0.058232,276 +0.060680,276 +0.062127,276 +0.060752,276 +0.062138,276 +0.058386,276 +0.058208,276 +0.057690,276 +0.055231,276 +0.055463,276 +0.056137,276 +0.066303,276 +0.060803,276 +0.061295,276 +0.060621,276 +0.061494,276 +0.065527,276 +0.065753,276 +0.069152,276 +0.060415,276 +0.060932,276 +0.060823,276 +0.060634,276 +0.068160,276 +0.071643,276 +0.067290,276 +0.066832,276 +0.066297,276 +0.069288,276 +0.066156,276 +0.061526,276 +0.059984,276 +0.065361,276 +0.059491,276 +0.056447,276 +0.059148,276 +0.059728,276 +0.057638,276 +0.060436,276 +0.074956,276 +0.064729,276 +0.071866,276 +0.078464,276 +0.065329,276 +0.082083,276 +0.060430,276 +0.061510,276 +0.069063,276 +0.064846,276 +0.058104,276 +0.056249,276 +0.059217,276 +0.063967,276 +0.062880,276 +0.055427,276 +0.061798,276 +0.057072,276 +0.065297,276 +0.064682,276 +0.062539,276 +0.060433,276 +0.061693,276 +0.064777,276 +0.062460,276 +0.061834,276 +0.057039,276 +0.063286,276 +0.058734,276 +0.062493,276 +0.061756,276 +0.059587,276 +0.058489,276 +0.058649,276 +0.055728,276 +0.058655,278 +0.058376,278 +0.057495,278 +0.058710,278 +0.058263,278 +0.066848,278 +0.065266,278 +0.058434,278 +0.066578,278 +0.066915,278 +0.069207,278 +0.070718,278 +0.063471,278 +0.061312,278 +0.059197,278 +0.059363,278 +0.058063,278 +0.058907,278 +0.060127,278 +0.058821,278 +0.058679,278 +0.058371,278 +0.060246,278 +0.062742,278 +0.058916,278 +0.059371,278 +0.059822,278 +0.060244,278 +0.062157,278 +0.063462,278 +0.066566,278 +0.068093,278 +0.071604,278 +0.073728,278 +0.069347,278 +0.070758,278 +0.070580,278 +0.062849,278 +0.065264,278 +0.058941,278 +0.058012,278 +0.063789,278 +0.066193,278 +0.072972,278 +0.069772,278 +0.065957,278 +0.070013,278 +0.067595,278 +0.073879,278 +0.063638,278 +0.067512,278 +0.068782,278 +0.070986,278 +0.076221,278 +0.074177,278 +0.066303,278 +0.062857,278 +0.063683,278 +0.061570,278 +0.062001,278 +0.060927,278 +0.062514,278 +0.059205,278 +0.058478,278 +0.059849,278 +0.063694,278 +0.065171,278 +0.072492,278 +0.065300,278 +0.064288,278 +0.064443,278 +0.063192,278 +0.060911,278 +0.063925,278 +0.059304,278 +0.059943,278 +0.059610,278 +0.057801,278 +0.059888,278 +0.058579,278 +0.059326,278 +0.059327,278 +0.058302,278 +0.063137,278 +0.061572,278 +0.060818,278 +0.059413,278 +0.057830,278 +0.063835,278 +0.057556,278 +0.064423,278 +0.063405,278 +0.058073,278 +0.072706,278 +0.068393,278 +0.068173,278 +0.067488,278 +0.064341,278 +0.065489,278 +0.061618,278 +0.063219,280 +0.060395,280 +0.061169,280 +0.060930,280 +0.057626,280 +0.055814,280 +0.056872,280 +0.056238,280 +0.057810,280 +0.056633,280 +0.056554,280 +0.057295,280 +0.056093,280 +0.056544,280 +0.056032,280 +0.056596,280 +0.056284,280 +0.055857,280 +0.056353,280 +0.055744,280 +0.056309,280 +0.055758,280 +0.056570,280 +0.056137,280 +0.056888,280 +0.056344,280 +0.055935,280 +0.056404,280 +0.055796,280 +0.056614,280 +0.055893,280 +0.056381,280 +0.056788,280 +0.056024,280 +0.056255,280 +0.056147,280 +0.056318,280 +0.055886,280 +0.056246,280 +0.055850,280 +0.056286,280 +0.056400,280 +0.055959,280 +0.056493,280 +0.055887,280 +0.056421,280 +0.056425,280 +0.069027,280 +0.063965,280 +0.062629,280 +0.063214,280 +0.066614,280 +0.061499,280 +0.061985,280 +0.063162,280 +0.065707,280 +0.060343,280 +0.060719,280 +0.063382,280 +0.060085,280 +0.063920,280 +0.062268,280 +0.060334,280 +0.057546,280 +0.066008,280 +0.056917,280 +0.059449,280 +0.061266,280 +0.061639,280 +0.061490,280 +0.061053,280 +0.062394,280 +0.061806,280 +0.066203,280 +0.065063,280 +0.068803,280 +0.073897,280 +0.071415,280 +0.061651,280 +0.062140,280 +0.068908,280 +0.069307,280 +0.067386,280 +0.062752,280 +0.069230,280 +0.070114,280 +0.064809,280 +0.060479,280 +0.061138,280 +0.063538,280 +0.061519,280 +0.058772,280 +0.059980,280 +0.061173,280 +0.061562,280 +0.058449,280 +0.059663,280 +0.071151,280 +0.060882,280 +0.066724,280 +0.072016,282 +0.074860,282 +0.070270,282 +0.073070,282 +0.069344,282 +0.076691,282 +0.086220,282 +0.078314,282 +0.068736,282 +0.066885,282 +0.068434,282 +0.066834,282 +0.066249,282 +0.072824,282 +0.075319,282 +0.071495,282 +0.069390,282 +0.068081,282 +0.067893,282 +0.068946,282 +0.067668,282 +0.068085,282 +0.067531,282 +0.069401,282 +0.076482,282 +0.074109,282 +0.068777,282 +0.070797,282 +0.071662,282 +0.070121,282 +0.097231,282 +0.079167,282 +0.069282,282 +0.069333,282 +0.073691,282 +0.068289,282 +0.072362,282 +0.068569,282 +0.068555,282 +0.069764,282 +0.072091,282 +0.065155,282 +0.064922,282 +0.070280,282 +0.064525,282 +0.066633,282 +0.062893,282 +0.064499,282 +0.062042,282 +0.061602,282 +0.061429,282 +0.061333,282 +0.061341,282 +0.060931,282 +0.061759,282 +0.061270,282 +0.060762,282 +0.061671,282 +0.060706,282 +0.061936,282 +0.065297,282 +0.061463,282 +0.062186,282 +0.061000,282 +0.061329,282 +0.061405,282 +0.062654,282 +0.064562,282 +0.064346,282 +0.064517,282 +0.062018,282 +0.062551,282 +0.063137,282 +0.061378,282 +0.061309,282 +0.061441,282 +0.062240,282 +0.063585,282 +0.070333,282 +0.064389,282 +0.062171,282 +0.065352,282 +0.066117,282 +0.067361,282 +0.064329,282 +0.061419,282 +0.061788,282 +0.061899,282 +0.060952,282 +0.062098,282 +0.064113,282 +0.064734,282 +0.065608,282 +0.062708,282 +0.062502,282 +0.061444,282 +0.062500,282 +0.063233,282 +0.062965,282 +0.062939,282 +0.061046,284 +0.060496,284 +0.060836,284 +0.062635,284 +0.061098,284 +0.062422,284 +0.060454,284 +0.061306,284 +0.060970,284 +0.059322,284 +0.060996,284 +0.059282,284 +0.062343,284 +0.061150,284 +0.059339,284 +0.062270,284 +0.059404,284 +0.060982,284 +0.061201,284 +0.059487,284 +0.061295,284 +0.059402,284 +0.061040,284 +0.061154,284 +0.059433,284 +0.061046,284 +0.059347,284 +0.061015,284 +0.062313,284 +0.060296,284 +0.061069,284 +0.059390,284 +0.061376,284 +0.061045,284 +0.059254,284 +0.061072,284 +0.059390,284 +0.061039,284 +0.060863,284 +0.060137,284 +0.061132,284 +0.059248,284 +0.061549,284 +0.061096,284 +0.059492,284 +0.062208,284 +0.059378,284 +0.064014,284 +0.061461,284 +0.059358,284 +0.062296,284 +0.074642,284 +0.071049,284 +0.066325,284 +0.069245,284 +0.068743,284 +0.070516,284 +0.071255,284 +0.067085,284 +0.065974,284 +0.066825,284 +0.067573,284 +0.068968,284 +0.064459,284 +0.061483,284 +0.075049,284 +0.065255,284 +0.077691,284 +0.090725,284 +0.067188,284 +0.065421,284 +0.070782,284 +0.066749,284 +0.067901,284 +0.065804,284 +0.064306,284 +0.061525,284 +0.060358,284 +0.062015,284 +0.060604,284 +0.060064,284 +0.061275,284 +0.059862,284 +0.061431,284 +0.062032,284 +0.061327,284 +0.061746,284 +0.059494,284 +0.060965,284 +0.060872,284 +0.059400,284 +0.062127,284 +0.059301,284 +0.061337,284 +0.061756,284 +0.059648,284 +0.060987,284 +0.059261,284 +0.061118,284 +0.061140,284 +0.063425,286 +0.064737,286 +0.064355,286 +0.063657,286 +0.064667,286 +0.063042,286 +0.064707,286 +0.065789,286 +0.063100,286 +0.065326,286 +0.066364,286 +0.063675,286 +0.064873,286 +0.064375,286 +0.063434,286 +0.063620,286 +0.063581,286 +0.064280,286 +0.063903,286 +0.063200,286 +0.063643,286 +0.063740,286 +0.063307,286 +0.063884,286 +0.063368,286 +0.063508,286 +0.063826,286 +0.063174,286 +0.063968,286 +0.064779,286 +0.063249,286 +0.065129,286 +0.065503,286 +0.066801,286 +0.065673,286 +0.066431,286 +0.066196,286 +0.065085,286 +0.064430,286 +0.064809,286 +0.063816,286 +0.063359,286 +0.063642,286 +0.063762,286 +0.063233,286 +0.063836,286 +0.063836,286 +0.063249,286 +0.064058,286 +0.063400,286 +0.063894,286 +0.063750,286 +0.063127,286 +0.063740,286 +0.064056,286 +0.063366,286 +0.063874,286 +0.063578,286 +0.063819,286 +0.063598,286 +0.063287,286 +0.063787,286 +0.063828,286 +0.063347,286 +0.064371,286 +0.063440,286 +0.063083,286 +0.063631,286 +0.063373,286 +0.063355,286 +0.063701,286 +0.063124,286 +0.063970,286 +0.063441,286 +0.062995,286 +0.063621,286 +0.063674,286 +0.065323,286 +0.064494,286 +0.067087,286 +0.064575,286 +0.064647,286 +0.063564,286 +0.064806,286 +0.064180,286 +0.063215,286 +0.063833,286 +0.063644,286 +0.063111,286 +0.063867,286 +0.063236,286 +0.063614,286 +0.063930,286 +0.062981,286 +0.063888,286 +0.063725,286 +0.063463,286 +0.063839,286 +0.063619,286 +0.063223,286 +0.064376,288 +0.063707,288 +0.064364,288 +0.064462,288 +0.066459,288 +0.064684,288 +0.065017,288 +0.063947,288 +0.064447,288 +0.064137,288 +0.063646,288 +0.065175,288 +0.070360,288 +0.071598,288 +0.071383,288 +0.070829,288 +0.069477,288 +0.069394,288 +0.068970,288 +0.069672,288 +0.069716,288 +0.071996,288 +0.074610,288 +0.068118,288 +0.065774,288 +0.069773,288 +0.074340,288 +0.070091,288 +0.070158,288 +0.068244,288 +0.067423,288 +0.068650,288 +0.069801,288 +0.070965,288 +0.071539,288 +0.071692,288 +0.070481,288 +0.078654,288 +0.072991,288 +0.067273,288 +0.064580,288 +0.065642,288 +0.067566,288 +0.066009,288 +0.066068,288 +0.068610,288 +0.069114,288 +0.068622,288 +0.065788,288 +0.064485,288 +0.065000,288 +0.066887,288 +0.074228,288 +0.069965,288 +0.077213,288 +0.066733,288 +0.071594,288 +0.069941,288 +0.064325,288 +0.070085,288 +0.065749,288 +0.065430,288 +0.083415,288 +0.071016,288 +0.076565,288 +0.072772,288 +0.069500,288 +0.069351,288 +0.066924,288 +0.066275,288 +0.064787,288 +0.066885,288 +0.064586,288 +0.064665,288 +0.067937,288 +0.069406,288 +0.079028,288 +0.082235,288 +0.071772,288 +0.065477,288 +0.068255,288 +0.070726,288 +0.070777,288 +0.070487,288 +0.066012,288 +0.067938,288 +0.068077,288 +0.073226,288 +0.066543,288 +0.066800,288 +0.065631,288 +0.085718,288 +0.089092,288 +0.087413,288 +0.070510,288 +0.066891,288 +0.066570,288 +0.064278,288 +0.064291,288 +0.066164,288 +0.066856,290 +0.066542,290 +0.066700,290 +0.066331,290 +0.066329,290 +0.066563,290 +0.066186,290 +0.066713,290 +0.066740,290 +0.066146,290 +0.066181,290 +0.066832,290 +0.066045,290 +0.066206,290 +0.066781,290 +0.066178,290 +0.066023,290 +0.066379,290 +0.074327,290 +0.067359,290 +0.066890,290 +0.066038,290 +0.066210,290 +0.066857,290 +0.065996,290 +0.066408,290 +0.066721,290 +0.066083,290 +0.066572,290 +0.066601,290 +0.065704,290 +0.066854,290 +0.066663,290 +0.065723,290 +0.066815,290 +0.066464,290 +0.065716,290 +0.066601,290 +0.066705,290 +0.065860,290 +0.066663,290 +0.066405,290 +0.065973,290 +0.066908,290 +0.066657,290 +0.065943,290 +0.066938,290 +0.066389,290 +0.065999,290 +0.066745,290 +0.066303,290 +0.066258,290 +0.067397,290 +0.066411,290 +0.066299,290 +0.066642,290 +0.066156,290 +0.074817,290 +0.070316,290 +0.068684,290 +0.066628,290 +0.067040,290 +0.066562,290 +0.066173,290 +0.067013,290 +0.066810,290 +0.065973,290 +0.066960,290 +0.066530,290 +0.066101,290 +0.066809,290 +0.066522,290 +0.066021,290 +0.066746,290 +0.066434,290 +0.066097,290 +0.066708,290 +0.066651,290 +0.066335,290 +0.066961,290 +0.066217,290 +0.066568,290 +0.066737,290 +0.065997,290 +0.067041,290 +0.067766,290 +0.065829,290 +0.066719,290 +0.066944,290 +0.065817,290 +0.066878,290 +0.066380,290 +0.066074,290 +0.067010,290 +0.067114,290 +0.065857,290 +0.066773,290 +0.066490,290 +0.065858,290 +0.066554,290 +0.066309,292 +0.065868,292 +0.066050,292 +0.066186,292 +0.067014,292 +0.070358,292 +0.066037,292 +0.066376,292 +0.066464,292 +0.065910,292 +0.067182,292 +0.066370,292 +0.066138,292 +0.066665,292 +0.072453,292 +0.065768,292 +0.065263,292 +0.067144,292 +0.065889,292 +0.065232,292 +0.065898,292 +0.065375,292 +0.065452,292 +0.065864,292 +0.065250,292 +0.065853,292 +0.065723,292 +0.064962,292 +0.066235,292 +0.065645,292 +0.065551,292 +0.066315,292 +0.066393,292 +0.066390,292 +0.066038,292 +0.065460,292 +0.066657,292 +0.066426,292 +0.065633,292 +0.067215,292 +0.066436,292 +0.065902,292 +0.065923,292 +0.066517,292 +0.065837,292 +0.065519,292 +0.066377,292 +0.065731,292 +0.065825,292 +0.066306,292 +0.065418,292 +0.065969,292 +0.066479,292 +0.065072,292 +0.066340,292 +0.065952,292 +0.065452,292 +0.066103,292 +0.066080,292 +0.065526,292 +0.066222,292 +0.065902,292 +0.065540,292 +0.066321,292 +0.065830,292 +0.065732,292 +0.067067,292 +0.066852,292 +0.065767,292 +0.066326,292 +0.066414,292 +0.065622,292 +0.066265,292 +0.066090,292 +0.065993,292 +0.066376,292 +0.065403,292 +0.066079,292 +0.066214,292 +0.065233,292 +0.066158,292 +0.066097,292 +0.065168,292 +0.066237,292 +0.065953,292 +0.065484,292 +0.066720,292 +0.072731,292 +0.076935,292 +0.080018,292 +0.082379,292 +0.080917,292 +0.074605,292 +0.068439,292 +0.069450,292 +0.068890,292 +0.068080,292 +0.068419,292 +0.068819,292 +0.069171,292 +0.076822,294 +0.076086,294 +0.078940,294 +0.074760,294 +0.074426,294 +0.073137,294 +0.072081,294 +0.070823,294 +0.072792,294 +0.072130,294 +0.072409,294 +0.072391,294 +0.072992,294 +0.079275,294 +0.086944,294 +0.083957,294 +0.076999,294 +0.076847,294 +0.078900,294 +0.071525,294 +0.071786,294 +0.072034,294 +0.072026,294 +0.074384,294 +0.074108,294 +0.071156,294 +0.070194,294 +0.070710,294 +0.070922,294 +0.070716,294 +0.070229,294 +0.070987,294 +0.070825,294 +0.069836,294 +0.071088,294 +0.070921,294 +0.070434,294 +0.070411,294 +0.071038,294 +0.070787,294 +0.070330,294 +0.071036,294 +0.070979,294 +0.070156,294 +0.070996,294 +0.070858,294 +0.070398,294 +0.070803,294 +0.071150,294 +0.070646,294 +0.071168,294 +0.071539,294 +0.070709,294 +0.069758,294 +0.071038,294 +0.071165,294 +0.070349,294 +0.073770,294 +0.070953,294 +0.072926,294 +0.069917,294 +0.071281,294 +0.071955,294 +0.071535,294 +0.077098,294 +0.074606,294 +0.074303,294 +0.071320,294 +0.070532,294 +0.070896,294 +0.070341,294 +0.069827,294 +0.070714,294 +0.070326,294 +0.072954,294 +0.074486,294 +0.073188,294 +0.070619,294 +0.070657,294 +0.070815,294 +0.071126,294 +0.074661,294 +0.073268,294 +0.076067,294 +0.083637,294 +0.074073,294 +0.082686,294 +0.077119,294 +0.075453,294 +0.076002,294 +0.071392,294 +0.072592,294 +0.074008,294 +0.069877,294 +0.071344,294 +0.070870,294 +0.071150,294 +0.071804,294 +0.071079,294 +0.071553,294 +0.066974,296 +0.068582,296 +0.068594,296 +0.067236,296 +0.068186,296 +0.068300,296 +0.066251,296 +0.068456,296 +0.068182,296 +0.067526,296 +0.068491,296 +0.069412,296 +0.066596,296 +0.068758,296 +0.068368,296 +0.066651,296 +0.068386,296 +0.068434,296 +0.066997,296 +0.068163,296 +0.068334,296 +0.067285,296 +0.071464,296 +0.072527,296 +0.069374,296 +0.066762,296 +0.069384,296 +0.068125,296 +0.066689,296 +0.072023,296 +0.074263,296 +0.066657,296 +0.068572,296 +0.068314,296 +0.066261,296 +0.068553,296 +0.067026,296 +0.066611,296 +0.067615,296 +0.067246,296 +0.066506,296 +0.067668,296 +0.067284,296 +0.066467,296 +0.067471,296 +0.067280,296 +0.067456,296 +0.068320,296 +0.068635,296 +0.066139,296 +0.068106,296 +0.068149,296 +0.066075,296 +0.068784,296 +0.068268,296 +0.066233,296 +0.069456,296 +0.067947,296 +0.066422,296 +0.067812,296 +0.068153,296 +0.066867,296 +0.067462,296 +0.068132,296 +0.067164,296 +0.067326,296 +0.068220,296 +0.067258,296 +0.067231,296 +0.068053,296 +0.068183,296 +0.067775,296 +0.068161,296 +0.067675,296 +0.067005,296 +0.068616,296 +0.067729,296 +0.066907,296 +0.068243,296 +0.067927,296 +0.066670,296 +0.068298,296 +0.067857,296 +0.067380,296 +0.068326,296 +0.068842,296 +0.067039,296 +0.068302,296 +0.068213,296 +0.066634,296 +0.068386,296 +0.067673,296 +0.066894,296 +0.068327,296 +0.066926,296 +0.066740,296 +0.067472,296 +0.066996,296 +0.066620,296 +0.067563,296 +0.074082,298 +0.072820,298 +0.073513,298 +0.073754,298 +0.074084,298 +0.073198,298 +0.073715,298 +0.073480,298 +0.073005,298 +0.073204,298 +0.073714,298 +0.073746,298 +0.072662,298 +0.073693,298 +0.073421,298 +0.073221,298 +0.072732,298 +0.073666,298 +0.073410,298 +0.072768,298 +0.073171,298 +0.073607,298 +0.072946,298 +0.072686,298 +0.073423,298 +0.073634,298 +0.074629,298 +0.072765,298 +0.073651,298 +0.073395,298 +0.072872,298 +0.073192,298 +0.073592,298 +0.073454,298 +0.072587,298 +0.073284,298 +0.073709,298 +0.073488,298 +0.072771,298 +0.073605,298 +0.073534,298 +0.073027,298 +0.073515,298 +0.073689,298 +0.073708,298 +0.072601,298 +0.073632,298 +0.073809,298 +0.073004,298 +0.073058,298 +0.073719,298 +0.073876,298 +0.073224,298 +0.073554,298 +0.073837,298 +0.073483,298 +0.073045,298 +0.073656,298 +0.073569,298 +0.073026,298 +0.075732,298 +0.079497,298 +0.077026,298 +0.076725,298 +0.075296,298 +0.074288,298 +0.075321,298 +0.077556,298 +0.077182,298 +0.080477,298 +0.079437,298 +0.079661,298 +0.079812,298 +0.075677,298 +0.074235,298 +0.073422,298 +0.073126,298 +0.072768,298 +0.073769,298 +0.074062,298 +0.073833,298 +0.074786,298 +0.074297,298 +0.073377,298 +0.072905,298 +0.076307,298 +0.078593,298 +0.074184,298 +0.073057,298 +0.073524,298 +0.073492,298 +0.073582,298 +0.072937,298 +0.073603,298 +0.073564,298 +0.072902,298 +0.073522,298 +0.079887,298 +0.083117,298 +0.075722,298 diff --git a/buch/papers/multiplikation/code/meas/test/blas.txt b/buch/papers/multiplikation/code/meas/test/blas.txt new file mode 100644 index 0000000..7b0a9d1 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/blas.txt @@ -0,0 +1,14900 @@ +0.000001,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000000,6 +0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000010,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000010,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000001,10 +0.000002,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000001,12 +0.000003,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000013,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000002,14 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000005,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000006,18 +0.000007,18 +0.000007,18 +0.000007,18 +0.000006,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000013,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000014,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000004,18 +0.000007,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000005,20 +0.000008,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000011,22 +0.000012,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000016,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000016,22 +0.000016,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000016,22 +0.000007,22 +0.000016,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000006,22 +0.000010,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000010,24 +0.000018,24 +0.000018,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000008,24 +0.000013,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000011,26 +0.000020,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000020,26 +0.000021,26 +0.000031,26 +0.000011,26 +0.000019,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000020,26 +0.000020,26 +0.000020,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000010,26 +0.000015,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000022,28 +0.000022,28 +0.000021,28 +0.000022,28 +0.000021,28 +0.000023,28 +0.000022,28 +0.000023,28 +0.000022,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000024,28 +0.000024,28 +0.000025,28 +0.000035,28 +0.000048,28 +0.000055,28 +0.000045,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000026,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000023,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000020,28 +0.000025,28 +0.000025,28 +0.000025,28 +0.000024,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000013,28 +0.000025,28 +0.000032,30 +0.000031,30 +0.000030,30 +0.000031,30 +0.000030,30 +0.000030,30 +0.000073,30 +0.000030,30 +0.000030,30 +0.000031,30 +0.000017,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000019,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000030,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000026,30 +0.000029,30 +0.000040,30 +0.000041,30 +0.000041,30 +0.000040,30 +0.000038,30 +0.000042,30 +0.000023,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000027,30 +0.000030,30 +0.000030,30 +0.000040,30 +0.000040,30 +0.000031,30 +0.000028,30 +0.000028,30 +0.000024,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000015,30 +0.000021,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000021,32 +0.000025,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000028,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000029,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000028,32 +0.000039,32 +0.000043,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000022,32 +0.000028,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000040,32 +0.000038,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000019,32 +0.000043,32 +0.000047,32 +0.000031,32 +0.000047,34 +0.000039,34 +0.000035,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000022,34 +0.000027,34 +0.000050,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000023,34 +0.000033,34 +0.000023,34 +0.000042,36 +0.000028,36 +0.000037,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000037,36 +0.000036,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000043,36 +0.000050,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000027,36 +0.000037,36 +0.000036,36 +0.000037,36 +0.000059,36 +0.000049,36 +0.000027,36 +0.000037,36 +0.000057,36 +0.000048,36 +0.000046,36 +0.000047,36 +0.000027,36 +0.000046,36 +0.000027,36 +0.000027,36 +0.000035,38 +0.000036,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000051,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000042,38 +0.000041,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000051,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000031,38 +0.000044,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000086,40 +0.000090,40 +0.000051,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000058,40 +0.000062,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000042,40 +0.000053,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000059,42 +0.000077,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000068,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000068,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000064,42 +0.000058,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000048,42 +0.000058,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000078,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000078,44 +0.000095,44 +0.000073,44 +0.000096,44 +0.000097,44 +0.000085,44 +0.000064,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000065,44 +0.000064,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000075,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000054,44 +0.000068,46 +0.000062,46 +0.000078,46 +0.000083,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000085,46 +0.000072,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000081,46 +0.000133,46 +0.000080,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000097,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000061,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000062,46 +0.000073,48 +0.000069,48 +0.000108,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000090,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000089,48 +0.000069,48 +0.000069,48 +0.000095,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000088,48 +0.000079,48 +0.000099,48 +0.000141,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000091,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000069,48 +0.000085,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000092,50 +0.000138,50 +0.000097,50 +0.000151,50 +0.000117,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000098,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000099,50 +0.000077,50 +0.000078,50 +0.000078,50 +0.000078,50 +0.000117,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000150,50 +0.000111,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000078,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000100,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000077,50 +0.000089,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000131,52 +0.000106,52 +0.000147,52 +0.000130,52 +0.000105,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000123,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000106,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000110,52 +0.000128,52 +0.000153,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000110,52 +0.000095,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000086,52 +0.000099,54 +0.000116,54 +0.000161,54 +0.000169,54 +0.000144,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000153,54 +0.000096,54 +0.000096,54 +0.000115,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000114,54 +0.000115,54 +0.000170,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000106,54 +0.000196,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000131,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000139,54 +0.000096,54 +0.000130,54 +0.000096,54 +0.000096,54 +0.000120,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000096,54 +0.000110,56 +0.000125,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000133,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000136,56 +0.000159,56 +0.000159,56 +0.000143,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000126,56 +0.000106,56 +0.000106,56 +0.000125,56 +0.000106,56 +0.000130,56 +0.000135,56 +0.000183,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000172,56 +0.000149,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000106,56 +0.000119,56 +0.000115,56 +0.000123,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000129,58 +0.000127,58 +0.000117,58 +0.000117,58 +0.000156,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000136,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000136,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000152,58 +0.000138,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000117,58 +0.000134,58 +0.000153,60 +0.000178,60 +0.000226,60 +0.000188,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000148,60 +0.000128,60 +0.000128,60 +0.000149,60 +0.000142,60 +0.000132,60 +0.000132,60 +0.000157,60 +0.000190,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000153,60 +0.000132,60 +0.000161,60 +0.000132,60 +0.000132,60 +0.000132,60 +0.000142,60 +0.000180,60 +0.000141,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000212,60 +0.000390,60 +0.000275,60 +0.000261,60 +0.000269,60 +0.000234,60 +0.000272,60 +0.000241,60 +0.000238,60 +0.000326,60 +0.000245,60 +0.000182,60 +0.000150,60 +0.000167,60 +0.000153,60 +0.000138,60 +0.000128,60 +0.000159,60 +0.000249,60 +0.000157,60 +0.000128,60 +0.000164,60 +0.000165,60 +0.000128,60 +0.000128,60 +0.000230,60 +0.000176,60 +0.000244,60 +0.000238,60 +0.000162,60 +0.000128,60 +0.000128,60 +0.000170,60 +0.000148,60 +0.000129,60 +0.000142,60 +0.000128,60 +0.000128,60 +0.000128,60 +0.000180,60 +0.000212,60 +0.000189,60 +0.000191,60 +0.000161,60 +0.000143,60 +0.000166,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000135,60 +0.000142,60 +0.000169,60 +0.000128,60 +0.000128,60 +0.000144,62 +0.000141,62 +0.000141,62 +0.000188,62 +0.000215,62 +0.000213,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000161,62 +0.000141,62 +0.000161,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000167,62 +0.000145,62 +0.000184,62 +0.000145,62 +0.000223,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000165,62 +0.000165,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000178,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000165,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000178,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000145,62 +0.000150,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000141,62 +0.000156,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000198,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000248,64 +0.000255,64 +0.000163,64 +0.000154,64 +0.000154,64 +0.000174,64 +0.000154,64 +0.000174,64 +0.000153,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000190,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000195,64 +0.000192,64 +0.000154,64 +0.000164,64 +0.000216,64 +0.000164,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000168,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000189,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000173,64 +0.000174,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000154,64 +0.000172,66 +0.000169,66 +0.000169,66 +0.000194,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000240,66 +0.000283,66 +0.000188,66 +0.000169,66 +0.000169,66 +0.000188,66 +0.000169,66 +0.000189,66 +0.000169,66 +0.000196,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000179,66 +0.000227,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000191,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000179,66 +0.000198,66 +0.000169,66 +0.000169,66 +0.000189,66 +0.000207,66 +0.000169,66 +0.000169,66 +0.000188,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000191,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000169,66 +0.000186,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000198,68 +0.000307,68 +0.000251,68 +0.000183,68 +0.000183,68 +0.000209,68 +0.000223,68 +0.000345,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000303,68 +0.000331,68 +0.000331,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000255,68 +0.000283,68 +0.000183,68 +0.000201,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000215,68 +0.000223,68 +0.000183,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000203,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000355,68 +0.000196,68 +0.000183,68 +0.000221,68 +0.000183,68 +0.000256,68 +0.000184,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000183,68 +0.000246,68 +0.000312,68 +0.000193,68 +0.000183,68 +0.000183,68 +0.000203,68 +0.000203,68 +0.000218,70 +0.000355,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000237,70 +0.000342,70 +0.000334,70 +0.000339,70 +0.000351,70 +0.000373,70 +0.000355,70 +0.000281,70 +0.000363,70 +0.000341,70 +0.000323,70 +0.000200,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000233,70 +0.000348,70 +0.000199,70 +0.000242,70 +0.000199,70 +0.000199,70 +0.000238,70 +0.000199,70 +0.000210,70 +0.000208,70 +0.000199,70 +0.000199,70 +0.000219,70 +0.000199,70 +0.000378,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000326,70 +0.000209,70 +0.000199,70 +0.000239,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000200,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000341,70 +0.000229,70 +0.000199,70 +0.000291,70 +0.000325,70 +0.000303,70 +0.000199,70 +0.000214,70 +0.000210,70 +0.000210,70 +0.000210,70 +0.000210,70 +0.000214,70 +0.000205,70 +0.000205,70 +0.000210,70 +0.000199,70 +0.000375,70 +0.000347,70 +0.000410,70 +0.000361,70 +0.000362,70 +0.000371,70 +0.000203,70 +0.000199,70 +0.000199,70 +0.000199,70 +0.000382,70 +0.000200,70 +0.000210,70 +0.000345,70 +0.000490,70 +0.000247,70 +0.000255,70 +0.000199,70 +0.000199,70 +0.000359,70 +0.000230,70 +0.000281,70 +0.000210,70 +0.000251,70 +0.000311,72 +0.000259,72 +0.000226,72 +0.000215,72 +0.000235,72 +0.000215,72 +0.000235,72 +0.000367,72 +0.000451,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000250,72 +0.000215,72 +0.000215,72 +0.000393,72 +0.000215,72 +0.000215,72 +0.000293,72 +0.000309,72 +0.000215,72 +0.000304,72 +0.000325,72 +0.000221,72 +0.000221,72 +0.000221,72 +0.000374,72 +0.000227,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000244,72 +0.000356,72 +0.000545,72 +0.000385,72 +0.000391,72 +0.000216,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000420,72 +0.000388,72 +0.000393,72 +0.000223,72 +0.000215,72 +0.000233,72 +0.000270,72 +0.000348,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000254,72 +0.000220,72 +0.000390,72 +0.000215,72 +0.000215,72 +0.000257,72 +0.000308,72 +0.000215,72 +0.000235,72 +0.000301,72 +0.000279,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000215,72 +0.000230,72 +0.000351,72 +0.000215,72 +0.000257,72 +0.000314,72 +0.000254,72 +0.000215,72 +0.000215,72 +0.000281,72 +0.000317,72 +0.000390,72 +0.000292,72 +0.000227,72 +0.000234,72 +0.000221,72 +0.000247,72 +0.000250,72 +0.000227,72 +0.000215,72 +0.000344,74 +0.000473,74 +0.000451,74 +0.000574,74 +0.000248,74 +0.000357,74 +0.000234,74 +0.000233,74 +0.000233,74 +0.000350,74 +0.000234,74 +0.000233,74 +0.000312,74 +0.000311,74 +0.000233,74 +0.000233,74 +0.000314,74 +0.000265,74 +0.000233,74 +0.000234,74 +0.000346,74 +0.000273,74 +0.000234,74 +0.000287,74 +0.000351,74 +0.000234,74 +0.000293,74 +0.000363,74 +0.000233,74 +0.000233,74 +0.000239,74 +0.000348,74 +0.000234,74 +0.000234,74 +0.000302,74 +0.000282,74 +0.000234,74 +0.000234,74 +0.000338,74 +0.000243,74 +0.000233,74 +0.000260,74 +0.000344,74 +0.000234,74 +0.000233,74 +0.000238,74 +0.000346,74 +0.000233,74 +0.000233,74 +0.000299,74 +0.000465,74 +0.000260,74 +0.000274,74 +0.000246,74 +0.000246,74 +0.000287,74 +0.000351,74 +0.000233,74 +0.000233,74 +0.000233,74 +0.000460,74 +0.000435,74 +0.000513,74 +0.000318,74 +0.000234,74 +0.000354,74 +0.000234,74 +0.000233,74 +0.000299,74 +0.000326,74 +0.000233,74 +0.000233,74 +0.000316,74 +0.000256,74 +0.000233,74 +0.000234,74 +0.000351,74 +0.000234,74 +0.000233,74 +0.000234,74 +0.000376,74 +0.000233,74 +0.000253,74 +0.000364,74 +0.000276,74 +0.000234,74 +0.000234,74 +0.000362,74 +0.000234,74 +0.000233,74 +0.000238,74 +0.000346,74 +0.000233,74 +0.000233,74 +0.000313,74 +0.000270,74 +0.000233,74 +0.000269,74 +0.000347,74 +0.000233,74 +0.000260,76 +0.000270,76 +0.000352,76 +0.000252,76 +0.000251,76 +0.000368,76 +0.000251,76 +0.000286,76 +0.000487,76 +0.000252,76 +0.000315,76 +0.000396,76 +0.000262,76 +0.000251,76 +0.000269,76 +0.000351,76 +0.000251,76 +0.000251,76 +0.000444,76 +0.000423,76 +0.000509,76 +0.000443,76 +0.000575,76 +0.000445,76 +0.000520,76 +0.000373,76 +0.000252,76 +0.000372,76 +0.000251,76 +0.000251,76 +0.000279,76 +0.000341,76 +0.000251,76 +0.000312,76 +0.000423,76 +0.000252,76 +0.000251,76 +0.000366,76 +0.000252,76 +0.000251,76 +0.000256,76 +0.000356,76 +0.000252,76 +0.000251,76 +0.000361,76 +0.000251,76 +0.000251,76 +0.000316,76 +0.000334,76 +0.000252,76 +0.000251,76 +0.000362,76 +0.000252,76 +0.000251,76 +0.000268,76 +0.000343,76 +0.000252,76 +0.000251,76 +0.000360,76 +0.000346,76 +0.000320,76 +0.000341,76 +0.000279,76 +0.000296,76 +0.000336,76 +0.000273,76 +0.000251,76 +0.000251,76 +0.000470,76 +0.000439,76 +0.000464,76 +0.000459,76 +0.000586,76 +0.000261,76 +0.000258,76 +0.000345,76 +0.000258,76 +0.000258,76 +0.000283,76 +0.000318,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000258,76 +0.000295,76 +0.000420,76 +0.000291,76 +0.000251,76 +0.000284,76 +0.000251,76 +0.000251,76 +0.000276,76 +0.000405,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000251,76 +0.000287,76 +0.000432,78 +0.000271,78 +0.000271,78 +0.000406,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000420,78 +0.000271,78 +0.000313,78 +0.000500,78 +0.000325,78 +0.000278,78 +0.000298,78 +0.000308,78 +0.000271,78 +0.000427,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000382,78 +0.000539,78 +0.000500,78 +0.000324,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000400,78 +0.000311,78 +0.000305,78 +0.000360,78 +0.000283,78 +0.000292,78 +0.000281,78 +0.000313,78 +0.000316,78 +0.000280,78 +0.000294,78 +0.000292,78 +0.000295,78 +0.000284,78 +0.000282,78 +0.000271,78 +0.000320,78 +0.000271,78 +0.000347,78 +0.000315,78 +0.000271,78 +0.000271,78 +0.000308,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000306,78 +0.000271,78 +0.000271,78 +0.000341,78 +0.000384,78 +0.000271,78 +0.000291,78 +0.000291,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000391,78 +0.000474,78 +0.000490,78 +0.000437,78 +0.000272,78 +0.000271,78 +0.000271,78 +0.000282,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000309,78 +0.000272,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000271,78 +0.000310,78 +0.000271,78 +0.000315,78 +0.000293,80 +0.000310,80 +0.000290,80 +0.000290,80 +0.000323,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000330,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000474,80 +0.000291,80 +0.000310,80 +0.000311,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000328,80 +0.000290,80 +0.000290,80 +0.000450,80 +0.000537,80 +0.000440,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000332,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000330,80 +0.000290,80 +0.000313,80 +0.000290,80 +0.000314,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000301,80 +0.000333,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000310,80 +0.000454,80 +0.000291,80 +0.000448,80 +0.000310,80 +0.000335,80 +0.000291,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000337,80 +0.000592,80 +0.000518,80 +0.000362,80 +0.000290,80 +0.000290,80 +0.000290,80 +0.000317,80 +0.000291,80 +0.000290,80 +0.000290,80 +0.000291,80 +0.000291,80 +0.000290,80 +0.000324,82 +0.000313,82 +0.000313,82 +0.000473,82 +0.000313,82 +0.000366,82 +0.000313,82 +0.000352,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000469,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000353,82 +0.000464,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000472,82 +0.000333,82 +0.000323,82 +0.000526,82 +0.000313,82 +0.000312,82 +0.000312,82 +0.000476,82 +0.000555,82 +0.000576,82 +0.000616,82 +0.000313,82 +0.000356,82 +0.000313,82 +0.000386,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000393,82 +0.000392,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000343,82 +0.000332,82 +0.000336,82 +0.000313,82 +0.000503,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000352,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000468,82 +0.000313,82 +0.000313,82 +0.000424,82 +0.000313,82 +0.000314,82 +0.000421,82 +0.000461,82 +0.000313,82 +0.000332,82 +0.000354,82 +0.000313,82 +0.000313,82 +0.000313,82 +0.000484,82 +0.000571,82 +0.000426,82 +0.000313,82 +0.000353,82 +0.000476,82 +0.000312,82 +0.000367,82 +0.000362,82 +0.000312,82 +0.000312,82 +0.000312,82 +0.000312,82 +0.000353,82 +0.000410,82 +0.000312,82 +0.000348,82 +0.000314,82 +0.000352,82 +0.000454,82 +0.000326,82 +0.000377,84 +0.000335,84 +0.000336,84 +0.000340,84 +0.000470,84 +0.000336,84 +0.000376,84 +0.000335,84 +0.000336,84 +0.000492,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000359,84 +0.000449,84 +0.000375,84 +0.000438,84 +0.000415,84 +0.000430,84 +0.000406,84 +0.000336,84 +0.000335,84 +0.000336,84 +0.000343,84 +0.000608,84 +0.000601,84 +0.000591,84 +0.000681,84 +0.000572,84 +0.000592,84 +0.000335,84 +0.000335,84 +0.000335,84 +0.000389,84 +0.000549,84 +0.000385,84 +0.000390,84 +0.000335,84 +0.000375,84 +0.000360,84 +0.000399,84 +0.000399,84 +0.000348,84 +0.000383,84 +0.000377,84 +0.000349,84 +0.000488,84 +0.000384,84 +0.000335,84 +0.000442,84 +0.000337,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000451,84 +0.000413,84 +0.000463,84 +0.000488,84 +0.000388,84 +0.000385,84 +0.000336,84 +0.000335,84 +0.000624,84 +0.000716,84 +0.000602,84 +0.000619,84 +0.000336,84 +0.000479,84 +0.000336,84 +0.000336,84 +0.000335,84 +0.000336,84 +0.000445,84 +0.000424,84 +0.000336,84 +0.000446,84 +0.000336,84 +0.000373,84 +0.000336,84 +0.000356,84 +0.000335,84 +0.000372,84 +0.000336,84 +0.000522,84 +0.000336,84 +0.000341,84 +0.000438,84 +0.000336,84 +0.000444,84 +0.000336,84 +0.000336,84 +0.000336,84 +0.000335,84 +0.000375,84 +0.000489,84 +0.000336,84 +0.000335,84 +0.000359,84 +0.000494,84 +0.000477,86 +0.000420,86 +0.000358,86 +0.000358,86 +0.000406,86 +0.000458,86 +0.000697,86 +0.000648,86 +0.000407,86 +0.000369,86 +0.000358,86 +0.000499,86 +0.000358,86 +0.000526,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000395,86 +0.000379,86 +0.000358,86 +0.000434,86 +0.000358,86 +0.000358,86 +0.000489,86 +0.000388,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000387,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000532,86 +0.000368,86 +0.000378,86 +0.000379,86 +0.000393,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000472,86 +0.000666,86 +0.000555,86 +0.000358,86 +0.000358,86 +0.000391,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000393,86 +0.000407,86 +0.000358,86 +0.000392,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000384,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000401,86 +0.000502,86 +0.000358,86 +0.000434,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000610,86 +0.000596,86 +0.000358,86 +0.000444,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000358,86 +0.000393,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000452,88 +0.000402,88 +0.000382,88 +0.000416,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000412,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000434,88 +0.000480,88 +0.000382,88 +0.000421,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000426,88 +0.000730,88 +0.000542,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000417,88 +0.000382,88 +0.000416,88 +0.000382,88 +0.000402,88 +0.000382,88 +0.000415,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000431,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000456,88 +0.000544,88 +0.000403,88 +0.000414,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000442,88 +0.000729,88 +0.000707,88 +0.000537,88 +0.000382,88 +0.000382,88 +0.000381,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000628,88 +0.000746,88 +0.000518,88 +0.000409,88 +0.000569,88 +0.000488,88 +0.000509,88 +0.000535,88 +0.000407,88 +0.000392,88 +0.000466,88 +0.000425,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000382,88 +0.000458,90 +0.000408,90 +0.000408,90 +0.000590,90 +0.000408,90 +0.000488,90 +0.000408,90 +0.000428,90 +0.000408,90 +0.000447,90 +0.000408,90 +0.000447,90 +0.000510,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000450,90 +0.000408,90 +0.000409,90 +0.000408,90 +0.000408,90 +0.000448,90 +0.000428,90 +0.000408,90 +0.000444,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000582,90 +0.000417,90 +0.000428,90 +0.000428,90 +0.000408,90 +0.000440,90 +0.000408,90 +0.000408,90 +0.000438,90 +0.000569,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000444,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000442,90 +0.000418,90 +0.000420,90 +0.000475,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000446,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000534,90 +0.000467,90 +0.000427,90 +0.000429,90 +0.000440,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000418,90 +0.000500,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000441,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000408,90 +0.000445,92 +0.000435,92 +0.000466,92 +0.000452,92 +0.000476,92 +0.000467,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000470,92 +0.000444,92 +0.000435,92 +0.000434,92 +0.000435,92 +0.000463,92 +0.000532,92 +0.000593,92 +0.000465,92 +0.000486,92 +0.000435,92 +0.000435,92 +0.000435,92 +0.000435,92 +0.000484,92 +0.000526,92 +0.000434,92 +0.000434,92 +0.000457,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000537,92 +0.000475,92 +0.000434,92 +0.000503,92 +0.000435,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000465,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000579,92 +0.000434,92 +0.000474,92 +0.000434,92 +0.000435,92 +0.000434,92 +0.000434,92 +0.000435,92 +0.000537,92 +0.000470,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000454,92 +0.000434,92 +0.000470,92 +0.000434,92 +0.000468,92 +0.000478,92 +0.000435,92 +0.000466,92 +0.000434,92 +0.000454,92 +0.000434,92 +0.000473,92 +0.000446,92 +0.000451,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000482,92 +0.000619,92 +0.000445,92 +0.000463,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000434,92 +0.000484,94 +0.000565,94 +0.000493,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000507,94 +0.000740,94 +0.000755,94 +0.000503,94 +0.000684,94 +0.000541,94 +0.000739,94 +0.000463,94 +0.000472,94 +0.000596,94 +0.000465,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000496,94 +0.000463,94 +0.000580,94 +0.000588,94 +0.000511,94 +0.000507,94 +0.000462,94 +0.000482,94 +0.000495,94 +0.000502,94 +0.000566,94 +0.000463,94 +0.000478,94 +0.000475,94 +0.000477,94 +0.000462,94 +0.000487,94 +0.000463,94 +0.000462,94 +0.000462,94 +0.000463,94 +0.000530,94 +0.000508,94 +0.000463,94 +0.000538,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000463,94 +0.000496,94 +0.000475,94 +0.000478,94 +0.000526,94 +0.000581,94 +0.000483,94 +0.000487,94 +0.000462,94 +0.000494,94 +0.000463,94 +0.000463,94 +0.000565,94 +0.000606,94 +0.000495,94 +0.000463,94 +0.000563,94 +0.000500,94 +0.000657,94 +0.000624,94 +0.000506,94 +0.000488,94 +0.000515,94 +0.000580,94 +0.000657,94 +0.000534,94 +0.000529,94 +0.000533,94 +0.000540,94 +0.000562,94 +0.000494,94 +0.000537,94 +0.000565,94 +0.000878,94 +0.000931,94 +0.000894,94 +0.000959,94 +0.000763,94 +0.000537,94 +0.000584,94 +0.000978,94 +0.001019,94 +0.001073,94 +0.000778,94 +0.000477,94 +0.000535,96 +0.000582,96 +0.000641,96 +0.000605,96 +0.000597,96 +0.000584,96 +0.000516,96 +0.000534,96 +0.000892,96 +0.000842,96 +0.000522,96 +0.000502,96 +0.000502,96 +0.000609,96 +0.000636,96 +0.000555,96 +0.000502,96 +0.000502,96 +0.000502,96 +0.000502,96 +0.000514,96 +0.000489,96 +0.000504,96 +0.000564,96 +0.000502,96 +0.000707,96 +0.000916,96 +0.000739,96 +0.000601,96 +0.000697,96 +0.000612,96 +0.000552,96 +0.000490,96 +0.000489,96 +0.000489,96 +0.000489,96 +0.000530,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000489,96 +0.000560,96 +0.000598,96 +0.000510,96 +0.000529,96 +0.000489,96 +0.000490,96 +0.000490,96 +0.000498,96 +0.000504,96 +0.000568,96 +0.000502,96 +0.000509,96 +0.000977,96 +0.000834,96 +0.000513,96 +0.000615,96 +0.000572,96 +0.000549,96 +0.000577,96 +0.000508,96 +0.000490,96 +0.000490,96 +0.000527,96 +0.000489,96 +0.000498,96 +0.000502,96 +0.000510,96 +0.000490,96 +0.000489,96 +0.000490,96 +0.000549,96 +0.000661,96 +0.000490,96 +0.000534,96 +0.000490,96 +0.000490,96 +0.000490,96 +0.000498,96 +0.000546,96 +0.000549,96 +0.000550,96 +0.000503,96 +0.000772,96 +0.000877,96 +0.000647,96 +0.000529,96 +0.001050,96 +0.000608,96 +0.000727,96 +0.000565,96 +0.000638,96 +0.000607,96 +0.000500,96 +0.000668,96 +0.000520,96 +0.000490,96 +0.000490,96 +0.000576,98 +0.000523,98 +0.000704,98 +0.000562,98 +0.000563,98 +0.000523,98 +0.000523,98 +0.000564,98 +0.000581,98 +0.000601,98 +0.000634,98 +0.000532,98 +0.000543,98 +0.000626,98 +0.000597,98 +0.000598,98 +0.000631,98 +0.000684,98 +0.000586,98 +0.000643,98 +0.000603,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000555,98 +0.000523,98 +0.000523,98 +0.000663,98 +0.000564,98 +0.000582,98 +0.000538,98 +0.000563,98 +0.000523,98 +0.000563,98 +0.000601,98 +0.000588,98 +0.000581,98 +0.000543,98 +0.000586,98 +0.000556,98 +0.000582,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000725,98 +0.000686,98 +0.000551,98 +0.000551,98 +0.000562,98 +0.000550,98 +0.000536,98 +0.000536,98 +0.000567,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000533,98 +0.000722,98 +0.000543,98 +0.000594,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000562,98 +0.000543,98 +0.000605,98 +0.000593,98 +0.000553,98 +0.000562,98 +0.000701,98 +0.000523,98 +0.000763,98 +0.000631,98 +0.000759,98 +0.000582,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000565,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000523,98 +0.000702,98 +0.000568,98 +0.000563,98 +0.000523,98 +0.000523,98 +0.000552,98 +0.000552,98 +0.000722,98 +0.000579,98 +0.000602,98 +0.000600,100 +0.000567,100 +0.000610,100 +0.000552,100 +0.000695,100 +0.000765,100 +0.000756,100 +0.000605,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000591,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000663,100 +0.000571,100 +0.000591,100 +0.000552,100 +0.000552,100 +0.000592,100 +0.000620,100 +0.000613,100 +0.000572,100 +0.000716,100 +0.000567,100 +0.000675,100 +0.000552,100 +0.000552,100 +0.000766,100 +0.000738,100 +0.000699,100 +0.000611,100 +0.000552,100 +0.000552,100 +0.000598,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000643,100 +0.000704,100 +0.000612,100 +0.000552,100 +0.000552,100 +0.000552,100 +0.000591,100 +0.000704,100 +0.000632,100 +0.000552,100 +0.000711,100 +0.000567,100 +0.000650,100 +0.000635,100 +0.000670,100 +0.001211,100 +0.000648,100 +0.000753,100 +0.000768,100 +0.000696,100 +0.000578,100 +0.000625,100 +0.000567,100 +0.000567,100 +0.000603,100 +0.000567,100 +0.000627,100 +0.000567,100 +0.000593,100 +0.000567,100 +0.000567,100 +0.000594,100 +0.000573,100 +0.000749,100 +0.000572,100 +0.000587,100 +0.000678,100 +0.000579,100 +0.000580,100 +0.000552,100 +0.000642,100 +0.000743,100 +0.000706,100 +0.000611,100 +0.000592,100 +0.000553,100 +0.000552,100 +0.000552,100 +0.000553,100 +0.000552,100 +0.000553,100 +0.000595,100 +0.000553,100 +0.000553,100 +0.000752,100 +0.000619,102 +0.000624,102 +0.000599,102 +0.000604,102 +0.000623,102 +0.000663,102 +0.000725,102 +0.000620,102 +0.000668,102 +0.000805,102 +0.000604,102 +0.000584,102 +0.000627,102 +0.000769,102 +0.000735,102 +0.000616,102 +0.000610,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000622,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000741,102 +0.000642,102 +0.000647,102 +0.000604,102 +0.000584,102 +0.000623,102 +0.000662,102 +0.000776,102 +0.000644,102 +0.000625,102 +0.000584,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000739,102 +0.000766,102 +0.000677,102 +0.000624,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000620,102 +0.000585,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000606,102 +0.000776,102 +0.000668,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000624,102 +0.000783,102 +0.000739,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000660,102 +0.000688,102 +0.000643,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000618,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000584,102 +0.000674,102 +0.000626,102 +0.000731,102 +0.000665,102 +0.000584,102 +0.000623,102 +0.000663,102 +0.000700,102 +0.000696,102 +0.000584,102 +0.000584,102 +0.000585,102 +0.000595,102 +0.000630,102 +0.000584,102 +0.000623,102 +0.000604,102 +0.000623,102 +0.000585,102 +0.000584,102 +0.000627,102 +0.000584,102 +0.000631,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000663,104 +0.000839,104 +0.000650,104 +0.000641,104 +0.000617,104 +0.000617,104 +0.000691,104 +0.000753,104 +0.000980,104 +0.000890,104 +0.000617,104 +0.000650,104 +0.000626,104 +0.000617,104 +0.001098,104 +0.000670,104 +0.000933,104 +0.000782,104 +0.000709,104 +0.000728,104 +0.000733,104 +0.000617,104 +0.000644,104 +0.000617,104 +0.000784,104 +0.000660,104 +0.000646,104 +0.000617,104 +0.000648,104 +0.000784,104 +0.000789,104 +0.000865,104 +0.000654,104 +0.000633,104 +0.000655,104 +0.000617,104 +0.000618,104 +0.000638,104 +0.000656,104 +0.000617,104 +0.000698,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000653,104 +0.000617,104 +0.000617,104 +0.000808,104 +0.000636,104 +0.000657,104 +0.000654,104 +0.000617,104 +0.000794,104 +0.000804,104 +0.000651,104 +0.000640,104 +0.000643,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000656,104 +0.000681,104 +0.000656,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000642,104 +0.000617,104 +0.000617,104 +0.000680,104 +0.000785,104 +0.000661,104 +0.000648,104 +0.000617,104 +0.000656,104 +0.000754,104 +0.000617,104 +0.000617,104 +0.000644,104 +0.000617,104 +0.000633,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000685,104 +0.000637,104 +0.000656,104 +0.000617,104 +0.000617,104 +0.000617,104 +0.000630,104 +0.000679,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000836,106 +0.000702,106 +0.000674,106 +0.000691,106 +0.000803,106 +0.000652,106 +0.000652,106 +0.000696,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000681,106 +0.000691,106 +0.000671,106 +0.000690,106 +0.000651,106 +0.000653,106 +0.000679,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000744,106 +0.000651,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000654,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000654,106 +0.000652,106 +0.000691,106 +0.000652,106 +0.000691,106 +0.000651,106 +0.000656,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000654,106 +0.000711,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000656,106 +0.000654,106 +0.000652,106 +0.000652,106 +0.001086,106 +0.000704,106 +0.000987,106 +0.000778,106 +0.000766,106 +0.000692,106 +0.000831,106 +0.000699,106 +0.000692,106 +0.000752,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000685,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000652,106 +0.000690,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000691,106 +0.000652,106 +0.000696,106 +0.000652,106 +0.000652,106 +0.000651,106 +0.000652,106 +0.000652,106 +0.000730,108 +0.000690,108 +0.000752,108 +0.000689,108 +0.000689,108 +0.000726,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000690,108 +0.000769,108 +0.000729,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000728,108 +0.000711,108 +0.000728,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000753,108 +0.000709,108 +0.000715,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000696,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000700,108 +0.000721,108 +0.000728,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000752,108 +0.000692,108 +0.000690,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000689,108 +0.000694,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000690,108 +0.000689,108 +0.000731,108 +0.000690,108 +0.000729,108 +0.000690,108 +0.000690,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000690,108 +0.000689,108 +0.000690,108 +0.000711,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000693,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000691,108 +0.000721,108 +0.000698,108 +0.000728,108 +0.000689,108 +0.000694,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000689,108 +0.000691,108 +0.000689,108 +0.000689,108 +0.000739,110 +0.000726,110 +0.000726,110 +0.000731,110 +0.000726,110 +0.000785,110 +0.000726,110 +0.000726,110 +0.000729,110 +0.000727,110 +0.000726,110 +0.000765,110 +0.000726,110 +0.000767,110 +0.000882,110 +0.000767,110 +0.000752,110 +0.000763,110 +0.000796,110 +0.000783,110 +0.000819,110 +0.000881,110 +0.000726,110 +0.000726,110 +0.000764,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000761,110 +0.000780,110 +0.000726,110 +0.000748,110 +0.000757,110 +0.000757,110 +0.000772,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000764,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000772,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000729,110 +0.000788,110 +0.000890,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000769,110 +0.000754,110 +0.000767,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000728,110 +0.000737,110 +0.000922,110 +0.000800,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000766,110 +0.000746,110 +0.000765,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000763,110 +0.000729,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000765,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000749,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000726,110 +0.000751,110 +0.000817,112 +0.000763,112 +0.000803,112 +0.000764,112 +0.000766,112 +0.000763,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000809,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000765,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000768,112 +0.000763,112 +0.000802,112 +0.000802,112 +0.000763,112 +0.000766,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000767,112 +0.000763,112 +0.000802,112 +0.000763,112 +0.000895,112 +0.000818,112 +0.000801,112 +0.000821,112 +0.000797,112 +0.000868,112 +0.000816,112 +0.000763,112 +0.000783,112 +0.000763,112 +0.000763,112 +0.000786,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000788,112 +0.000764,112 +0.000763,112 +0.000802,112 +0.000763,112 +0.000825,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000857,112 +0.000764,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000788,112 +0.000764,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000801,112 +0.000822,112 +0.000946,112 +0.000824,112 +0.000814,112 +0.000841,112 +0.000804,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000800,112 +0.000763,112 +0.000763,112 +0.000837,112 +0.000916,112 +0.000820,112 +0.000763,112 +0.000763,112 +0.000763,112 +0.000827,114 +0.000849,114 +0.000812,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000885,114 +0.000831,114 +0.000851,114 +0.000812,114 +0.000812,114 +0.000850,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000836,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000847,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000874,114 +0.000811,114 +0.000851,114 +0.000812,114 +0.000839,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000834,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000862,114 +0.000836,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000812,114 +0.000839,114 +0.000812,114 +0.000851,114 +0.000851,114 +0.000812,114 +0.000837,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000839,114 +0.000812,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000816,114 +0.000812,114 +0.000812,114 +0.000811,114 +0.000864,114 +0.000812,114 +0.000812,114 +0.000850,114 +0.000812,114 +0.000858,114 +0.000978,114 +0.000837,114 +0.000856,114 +0.000860,114 +0.000867,114 +0.000872,114 +0.000832,114 +0.000812,114 +0.000812,114 +0.000847,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000835,114 +0.000811,114 +0.000812,114 +0.000811,114 +0.000851,114 +0.000876,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000845,114 +0.000814,114 +0.000811,114 +0.000811,114 +0.000811,114 +0.000816,114 +0.000811,114 +0.000870,116 +0.000850,116 +0.000850,116 +0.000932,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000925,116 +0.000890,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000854,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000931,116 +0.000851,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000920,116 +0.000850,116 +0.000889,116 +0.000850,116 +0.000850,116 +0.000873,116 +0.000851,116 +0.000850,116 +0.000851,116 +0.000855,116 +0.000851,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000853,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000855,116 +0.000890,116 +0.000889,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000854,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000852,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000855,116 +0.000850,116 +0.000890,116 +0.000850,116 +0.000889,116 +0.000853,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000856,116 +0.000851,116 +0.000850,116 +0.000865,116 +0.000855,116 +0.000851,116 +0.000850,116 +0.000851,116 +0.000850,116 +0.000857,116 +0.000850,116 +0.000870,116 +0.000875,116 +0.000889,116 +0.000852,116 +0.000897,116 +0.000883,116 +0.000907,116 +0.000925,116 +0.000870,116 +0.000907,116 +0.000859,116 +0.000850,116 +0.000873,116 +0.000850,116 +0.000850,116 +0.000850,116 +0.000932,118 +0.000889,118 +0.000890,118 +0.000928,118 +0.000889,118 +0.000951,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000925,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000919,118 +0.000971,118 +0.000889,118 +0.000889,118 +0.000950,118 +0.000928,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000890,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000890,118 +0.000889,118 +0.000951,118 +0.000889,118 +0.000929,118 +0.000889,118 +0.000889,118 +0.000893,118 +0.000889,118 +0.000913,118 +0.000889,118 +0.000897,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000897,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000895,118 +0.000928,118 +0.000889,118 +0.000928,118 +0.000895,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000895,118 +0.000889,118 +0.000889,118 +0.000906,118 +0.000898,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000900,118 +0.000889,118 +0.000928,118 +0.000928,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000893,118 +0.000889,118 +0.000888,118 +0.000889,118 +0.000891,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000889,118 +0.000894,118 +0.000889,118 +0.000933,118 +0.000889,118 +0.000930,118 +0.000889,118 +0.000995,120 +0.000992,120 +0.001008,120 +0.000973,120 +0.000965,120 +0.001004,120 +0.000957,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000964,120 +0.000935,120 +0.000937,120 +0.000974,120 +0.001011,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000958,120 +0.000935,120 +0.000936,120 +0.000935,120 +0.000940,120 +0.000936,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000973,120 +0.001014,120 +0.000936,120 +0.000975,120 +0.000969,120 +0.000974,120 +0.000936,120 +0.000935,120 +0.000969,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000958,120 +0.000935,120 +0.000935,120 +0.000965,120 +0.000935,120 +0.001004,120 +0.000975,120 +0.000935,120 +0.000935,120 +0.000997,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000941,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000935,120 +0.000937,120 +0.000974,120 +0.000974,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000937,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000940,120 +0.000935,120 +0.000935,120 +0.000935,120 +0.000934,120 +0.000937,120 +0.000974,120 +0.000935,120 +0.000974,120 +0.000940,120 +0.000935,120 +0.000961,120 +0.000936,120 +0.000941,120 +0.000938,120 +0.000935,120 +0.000938,120 +0.000941,120 +0.000936,120 +0.000936,120 +0.000995,120 +0.000941,120 +0.001005,122 +0.000983,122 +0.001022,122 +0.001049,122 +0.000983,122 +0.000983,122 +0.001040,122 +0.001136,122 +0.001051,122 +0.001031,122 +0.001070,122 +0.001012,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.000983,122 +0.000984,122 +0.001022,122 +0.001019,122 +0.001012,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001006,122 +0.001090,122 +0.001003,122 +0.000983,122 +0.001051,122 +0.001022,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.001027,122 +0.001022,122 +0.000983,122 +0.000987,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000987,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.001022,122 +0.001022,122 +0.000988,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000990,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001009,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000986,122 +0.001022,122 +0.000983,122 +0.001022,122 +0.000989,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.000985,122 +0.000983,122 +0.000983,122 +0.000983,122 +0.001059,124 +0.001033,124 +0.001073,124 +0.001073,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001158,124 +0.001078,124 +0.001099,124 +0.001071,124 +0.001124,124 +0.001057,124 +0.001033,124 +0.001033,124 +0.001057,124 +0.001034,124 +0.001034,124 +0.001072,124 +0.001098,124 +0.001034,124 +0.001034,124 +0.001057,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001068,124 +0.001092,124 +0.001033,124 +0.001033,124 +0.001109,124 +0.001073,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001034,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001072,124 +0.001072,124 +0.001034,124 +0.001036,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001036,124 +0.001033,124 +0.001034,124 +0.001034,124 +0.001038,124 +0.001073,124 +0.001073,124 +0.001036,124 +0.001034,124 +0.001034,124 +0.001034,124 +0.001061,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001059,124 +0.001033,124 +0.001073,124 +0.001072,124 +0.001067,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001036,124 +0.001033,124 +0.001033,124 +0.001033,124 +0.001038,124 +0.001033,124 +0.001033,124 +0.001073,124 +0.001075,124 +0.001105,126 +0.001084,126 +0.001175,126 +0.001258,126 +0.001130,126 +0.001150,126 +0.001208,126 +0.001215,126 +0.001107,126 +0.001083,126 +0.001121,126 +0.001168,126 +0.001122,126 +0.001185,126 +0.001123,126 +0.001111,126 +0.001149,126 +0.001120,126 +0.001168,126 +0.001139,126 +0.001147,126 +0.001169,126 +0.001084,126 +0.001149,126 +0.001201,126 +0.001249,126 +0.001189,126 +0.001217,126 +0.001123,126 +0.001168,126 +0.001228,126 +0.001204,126 +0.001151,126 +0.001149,126 +0.001206,126 +0.001173,126 +0.001381,126 +0.001185,126 +0.001208,126 +0.001172,126 +0.001250,126 +0.001249,126 +0.001187,126 +0.001148,126 +0.001207,126 +0.001239,126 +0.001200,126 +0.001223,126 +0.001148,126 +0.001199,126 +0.001234,126 +0.001242,126 +0.001171,126 +0.001173,126 +0.001230,126 +0.001272,126 +0.001191,126 +0.001209,126 +0.001169,126 +0.001210,126 +0.001245,126 +0.001253,126 +0.001148,126 +0.001197,126 +0.001235,126 +0.001149,126 +0.001150,126 +0.001207,126 +0.001209,126 +0.001245,126 +0.001266,126 +0.001189,126 +0.001210,126 +0.001300,126 +0.001375,126 +0.001252,126 +0.001221,126 +0.001355,126 +0.001453,126 +0.001288,126 +0.001281,126 +0.001253,126 +0.001228,126 +0.001283,126 +0.001296,126 +0.001215,126 +0.001245,126 +0.001442,126 +0.001202,126 +0.001205,126 +0.001170,126 +0.001228,126 +0.001194,126 +0.001167,126 +0.001169,126 +0.001238,126 +0.001135,126 +0.001112,126 +0.001131,126 +0.001218,126 +0.001382,128 +0.001331,128 +0.001270,128 +0.001313,128 +0.001256,128 +0.001326,128 +0.001293,128 +0.001140,128 +0.001395,128 +0.001199,128 +0.001249,128 +0.001276,128 +0.001238,128 +0.001316,128 +0.001350,128 +0.001339,128 +0.001203,128 +0.001262,128 +0.001302,128 +0.001210,128 +0.001162,128 +0.001297,128 +0.001271,128 +0.001223,128 +0.001257,128 +0.001159,128 +0.001138,128 +0.001228,128 +0.001189,128 +0.001330,128 +0.001185,128 +0.001196,128 +0.001140,128 +0.001139,128 +0.001293,128 +0.001178,128 +0.001178,128 +0.001178,128 +0.001139,128 +0.001138,128 +0.001139,128 +0.001262,128 +0.001179,128 +0.001139,128 +0.001172,128 +0.001140,128 +0.001139,128 +0.001139,128 +0.001178,128 +0.001179,128 +0.001158,128 +0.001211,128 +0.001139,128 +0.001139,128 +0.001139,128 +0.001175,128 +0.001139,128 +0.001140,128 +0.001161,128 +0.001139,128 +0.001139,128 +0.001138,128 +0.001183,128 +0.001139,128 +0.001178,128 +0.001173,128 +0.001139,128 +0.001240,128 +0.001419,128 +0.001814,128 +0.001751,128 +0.001291,128 +0.001630,128 +0.001826,128 +0.001257,128 +0.001138,128 +0.001217,128 +0.001177,128 +0.001138,128 +0.001137,128 +0.001177,128 +0.001278,128 +0.001591,128 +0.001900,128 +0.001170,128 +0.001295,128 +0.001161,128 +0.001207,128 +0.001140,128 +0.001270,128 +0.001356,128 +0.001140,128 +0.001186,128 +0.001140,128 +0.001188,128 +0.001189,128 +0.001161,128 +0.001139,128 +0.001160,128 +0.001239,128 +0.001271,130 +0.001282,130 +0.001341,130 +0.001218,130 +0.001237,130 +0.001244,130 +0.001288,130 +0.001208,130 +0.001301,130 +0.001274,130 +0.001237,130 +0.001239,130 +0.001224,130 +0.001258,130 +0.001198,130 +0.001244,130 +0.001263,130 +0.001237,130 +0.001243,130 +0.001323,130 +0.001227,130 +0.001264,130 +0.001210,130 +0.001232,130 +0.001414,130 +0.001217,130 +0.001218,130 +0.001241,130 +0.001198,130 +0.001239,130 +0.001235,130 +0.001243,130 +0.001323,130 +0.001197,130 +0.001231,130 +0.001198,130 +0.001264,130 +0.001457,130 +0.001198,130 +0.001198,130 +0.001387,130 +0.001198,130 +0.001232,130 +0.001277,130 +0.001321,130 +0.001276,130 +0.001322,130 +0.001198,130 +0.001198,130 +0.001263,130 +0.001405,130 +0.001230,130 +0.001230,130 +0.001298,130 +0.001347,130 +0.001305,130 +0.001444,130 +0.001218,130 +0.001217,130 +0.001365,130 +0.001294,130 +0.001370,130 +0.001236,130 +0.001350,130 +0.001473,130 +0.001258,130 +0.001375,130 +0.001332,130 +0.001422,130 +0.001261,130 +0.001310,130 +0.001338,130 +0.001298,130 +0.001352,130 +0.001393,130 +0.001251,130 +0.001344,130 +0.001407,130 +0.001295,130 +0.001275,130 +0.001400,130 +0.001198,130 +0.001439,130 +0.001305,130 +0.001198,130 +0.001288,130 +0.001342,130 +0.001197,130 +0.001290,130 +0.001473,130 +0.001198,130 +0.001307,130 +0.001305,130 +0.001238,130 +0.001395,130 +0.001226,130 +0.001198,130 +0.001313,130 +0.001309,130 +0.001307,130 +0.001281,132 +0.001541,132 +0.001270,132 +0.001248,132 +0.001384,132 +0.001249,132 +0.001442,132 +0.001331,132 +0.001250,132 +0.001361,132 +0.001277,132 +0.001374,132 +0.001268,132 +0.001442,132 +0.001249,132 +0.001249,132 +0.001248,132 +0.001292,132 +0.001249,132 +0.001328,132 +0.001322,132 +0.001249,132 +0.001248,132 +0.001282,132 +0.001376,132 +0.001268,132 +0.001433,132 +0.001352,132 +0.001316,132 +0.001407,132 +0.001313,132 +0.001351,132 +0.001462,132 +0.001270,132 +0.001269,132 +0.001285,132 +0.001357,132 +0.001288,132 +0.001282,132 +0.001390,132 +0.001249,132 +0.001288,132 +0.001248,132 +0.001332,132 +0.001302,132 +0.001329,132 +0.001249,132 +0.001287,132 +0.001249,132 +0.001353,132 +0.001323,132 +0.001249,132 +0.001250,132 +0.001285,132 +0.001249,132 +0.001249,132 +0.001282,132 +0.001268,132 +0.001332,132 +0.001249,132 +0.001284,132 +0.001248,132 +0.001249,132 +0.001282,132 +0.001249,132 +0.001250,132 +0.001276,132 +0.001249,132 +0.001249,132 +0.001272,132 +0.001268,132 +0.001288,132 +0.001274,132 +0.001249,132 +0.001249,132 +0.001271,132 +0.001249,132 +0.001248,132 +0.001249,132 +0.001254,132 +0.001248,132 +0.001249,132 +0.001272,132 +0.001249,132 +0.001268,132 +0.001338,132 +0.001249,132 +0.001248,132 +0.001272,132 +0.001249,132 +0.001249,132 +0.001254,132 +0.001249,132 +0.001249,132 +0.001251,132 +0.001249,132 +0.001249,132 +0.001268,132 +0.001313,132 +0.001249,132 +0.001338,134 +0.001311,134 +0.001308,134 +0.001308,134 +0.001524,134 +0.001376,134 +0.001356,134 +0.001469,134 +0.001308,134 +0.001395,134 +0.001349,134 +0.001330,134 +0.001510,134 +0.001382,134 +0.001308,134 +0.001352,134 +0.001347,134 +0.001410,134 +0.001334,134 +0.001391,134 +0.001308,134 +0.001364,134 +0.001347,134 +0.001308,134 +0.001433,134 +0.001308,134 +0.001411,134 +0.001380,134 +0.001308,134 +0.001411,134 +0.001345,134 +0.001361,134 +0.001307,134 +0.001344,134 +0.001372,134 +0.001346,134 +0.001334,134 +0.001307,134 +0.001413,134 +0.001371,134 +0.001308,134 +0.001404,134 +0.001348,134 +0.001328,134 +0.001308,134 +0.001344,134 +0.001359,134 +0.001355,134 +0.001334,134 +0.001307,134 +0.001307,134 +0.001416,134 +0.001328,134 +0.001409,134 +0.001343,134 +0.001365,134 +0.001308,134 +0.001346,134 +0.001327,134 +0.001388,134 +0.001335,134 +0.001308,134 +0.001308,134 +0.001449,134 +0.001348,134 +0.001340,134 +0.001449,134 +0.001307,134 +0.001322,134 +0.001437,134 +0.001322,134 +0.001406,134 +0.001347,134 +0.001307,134 +0.001464,134 +0.001407,134 +0.001348,134 +0.001368,134 +0.001487,134 +0.001438,134 +0.001416,134 +0.001460,134 +0.001642,134 +0.001396,134 +0.001350,134 +0.001414,134 +0.001494,134 +0.001531,134 +0.001366,134 +0.001430,134 +0.001381,134 +0.001490,134 +0.001450,134 +0.001369,134 +0.001503,134 +0.001601,134 +0.001517,134 +0.001411,134 +0.001652,134 +0.001479,134 +0.001538,136 +0.001451,136 +0.001496,136 +0.001529,136 +0.001574,136 +0.001464,136 +0.001494,136 +0.001499,136 +0.001571,136 +0.001559,136 +0.001518,136 +0.001445,136 +0.001431,136 +0.001540,136 +0.001456,136 +0.001468,136 +0.001405,136 +0.001430,136 +0.001429,136 +0.001392,136 +0.001369,136 +0.001417,136 +0.001369,136 +0.001514,136 +0.001561,136 +0.001406,136 +0.001490,136 +0.001528,136 +0.001512,136 +0.001735,136 +0.001451,136 +0.001446,136 +0.001588,136 +0.001405,136 +0.001478,136 +0.001445,136 +0.001426,136 +0.001501,136 +0.001555,136 +0.001631,136 +0.001559,136 +0.001444,136 +0.001439,136 +0.001472,136 +0.001405,136 +0.002002,136 +0.001684,136 +0.001495,136 +0.001602,136 +0.001464,136 +0.001550,136 +0.001497,136 +0.001465,136 +0.001462,136 +0.001777,136 +0.002520,136 +0.002108,136 +0.001403,136 +0.001556,136 +0.001532,136 +0.001485,136 +0.001530,136 +0.001473,136 +0.001464,136 +0.001452,136 +0.001369,136 +0.002016,136 +0.001433,136 +0.001533,136 +0.001503,136 +0.001523,136 +0.001506,136 +0.001492,136 +0.001368,136 +0.001444,136 +0.001471,136 +0.001368,136 +0.001980,136 +0.001405,136 +0.001533,136 +0.001496,136 +0.001527,136 +0.001513,136 +0.001481,136 +0.001369,136 +0.001475,136 +0.001472,136 +0.001369,136 +0.002042,136 +0.001405,136 +0.001531,136 +0.001522,136 +0.001476,136 +0.001575,136 +0.001431,136 +0.001369,136 +0.001482,136 +0.001431,136 +0.001368,136 +0.002021,136 +0.001514,138 +0.001650,138 +0.001551,138 +0.001637,138 +0.001606,138 +0.001429,138 +0.001473,138 +0.001531,138 +0.001468,138 +0.001802,138 +0.001543,138 +0.001567,138 +0.001600,138 +0.001570,138 +0.001761,138 +0.001498,138 +0.001508,138 +0.001505,138 +0.001777,138 +0.002262,138 +0.001464,138 +0.001616,138 +0.001670,138 +0.001590,138 +0.001705,138 +0.001457,138 +0.001458,138 +0.001426,138 +0.001721,138 +0.001468,138 +0.001848,138 +0.001652,138 +0.001651,138 +0.001635,138 +0.001545,138 +0.001519,138 +0.001486,138 +0.001428,138 +0.001640,138 +0.001514,138 +0.001677,138 +0.001697,138 +0.001626,138 +0.001468,138 +0.001502,138 +0.001592,138 +0.001525,138 +0.001428,138 +0.001428,138 +0.001586,138 +0.001448,138 +0.001775,138 +0.001582,138 +0.001572,138 +0.001489,138 +0.001526,138 +0.001542,138 +0.001500,138 +0.001429,138 +0.001462,138 +0.001708,138 +0.001428,138 +0.001802,138 +0.001744,138 +0.001468,138 +0.001454,138 +0.001551,138 +0.001566,138 +0.001428,138 +0.001448,138 +0.001684,138 +0.001488,138 +0.001535,138 +0.001780,138 +0.001649,138 +0.001484,138 +0.001455,138 +0.001677,138 +0.001542,138 +0.001429,138 +0.001722,138 +0.001618,138 +0.001505,138 +0.001809,138 +0.001637,138 +0.001648,138 +0.001510,138 +0.001488,138 +0.001589,138 +0.001429,138 +0.001472,138 +0.001452,138 +0.001738,138 +0.001428,138 +0.001784,138 +0.001685,138 +0.001426,138 +0.001426,138 +0.001519,138 +0.001512,138 +0.001563,140 +0.001492,140 +0.001726,140 +0.001577,140 +0.001791,140 +0.001657,140 +0.001654,140 +0.001508,140 +0.001534,140 +0.001586,140 +0.001572,140 +0.001492,140 +0.001492,140 +0.001694,140 +0.001491,140 +0.001866,140 +0.001774,140 +0.001491,140 +0.001550,140 +0.001545,140 +0.001579,140 +0.001511,140 +0.001491,140 +0.001779,140 +0.001515,140 +0.001853,140 +0.001671,140 +0.001677,140 +0.001491,140 +0.001491,140 +0.001635,140 +0.001491,140 +0.001491,140 +0.001702,140 +0.001624,140 +0.001690,140 +0.001754,140 +0.001662,140 +0.001551,140 +0.001553,140 +0.001698,140 +0.001552,140 +0.001530,140 +0.001492,140 +0.001767,140 +0.001529,140 +0.001832,140 +0.001804,140 +0.001491,140 +0.001536,140 +0.001573,140 +0.001594,140 +0.001522,140 +0.001492,140 +0.001757,140 +0.001588,140 +0.001795,140 +0.001798,140 +0.001491,140 +0.001553,140 +0.001522,140 +0.001627,140 +0.001520,140 +0.001492,140 +0.001721,140 +0.001573,140 +0.001679,140 +0.001630,140 +0.001491,140 +0.001491,140 +0.001515,140 +0.001663,140 +0.001605,140 +0.001488,140 +0.001488,140 +0.001664,140 +0.001777,140 +0.001624,140 +0.001492,140 +0.001653,140 +0.001681,140 +0.001615,140 +0.001893,140 +0.001503,140 +0.001758,140 +0.001751,140 +0.001726,140 +0.001625,140 +0.001786,140 +0.001747,140 +0.001649,140 +0.001676,140 +0.001830,140 +0.001711,140 +0.001648,140 +0.001767,140 +0.001934,140 +0.002862,140 +0.002059,140 +0.001580,140 +0.001746,142 +0.001996,142 +0.001840,142 +0.001968,142 +0.002185,142 +0.002980,142 +0.001803,142 +0.001790,142 +0.001804,142 +0.001690,142 +0.001770,142 +0.001839,142 +0.001808,142 +0.002382,142 +0.002844,142 +0.001718,142 +0.001732,142 +0.001741,142 +0.001729,142 +0.001723,142 +0.001685,142 +0.001658,142 +0.002594,142 +0.002747,142 +0.001830,142 +0.001847,142 +0.001883,142 +0.001670,142 +0.001867,142 +0.001723,142 +0.002894,142 +0.002569,142 +0.001765,142 +0.001787,142 +0.001901,142 +0.001879,142 +0.002013,142 +0.001895,142 +0.001922,142 +0.002034,142 +0.001923,142 +0.001942,142 +0.001998,142 +0.002005,142 +0.002019,142 +0.001986,142 +0.001897,142 +0.001892,142 +0.001736,142 +0.001796,142 +0.001669,142 +0.001709,142 +0.001752,142 +0.001864,142 +0.001761,142 +0.002032,142 +0.001679,142 +0.001722,142 +0.001687,142 +0.001759,142 +0.001791,142 +0.001981,142 +0.002008,142 +0.002015,142 +0.002084,142 +0.002184,142 +0.002038,142 +0.002001,142 +0.002046,142 +0.002055,142 +0.002038,142 +0.001952,142 +0.001788,142 +0.002505,142 +0.001885,142 +0.001688,142 +0.001738,142 +0.001726,142 +0.001853,142 +0.001762,142 +0.001856,142 +0.001809,142 +0.002486,142 +0.001766,142 +0.001758,142 +0.001725,142 +0.001789,142 +0.001824,142 +0.001703,142 +0.001824,142 +0.001721,142 +0.002387,142 +0.001682,142 +0.001762,142 +0.001794,142 +0.001795,142 +0.001745,142 +0.001700,142 +0.001879,142 +0.001720,142 +0.001862,144 +0.001783,144 +0.001818,144 +0.001788,144 +0.001835,144 +0.001743,144 +0.001714,144 +0.001984,144 +0.001873,144 +0.002296,144 +0.001929,144 +0.001804,144 +0.001860,144 +0.001873,144 +0.002026,144 +0.001922,144 +0.001990,144 +0.001850,144 +0.001841,144 +0.001818,144 +0.001828,144 +0.001869,144 +0.001881,144 +0.001881,144 +0.001819,144 +0.001855,144 +0.001772,144 +0.001820,144 +0.001894,144 +0.001840,144 +0.001848,144 +0.001992,144 +0.001875,144 +0.001749,144 +0.001878,144 +0.001840,144 +0.001868,144 +0.001814,144 +0.001870,144 +0.001820,144 +0.001867,144 +0.001851,144 +0.001843,144 +0.001905,144 +0.001859,144 +0.001851,144 +0.001825,144 +0.001843,144 +0.001842,144 +0.001934,144 +0.001805,144 +0.001837,144 +0.001922,144 +0.001871,144 +0.001777,144 +0.001845,144 +0.001885,144 +0.001735,144 +0.001769,144 +0.001764,144 +0.001813,144 +0.001879,144 +0.001738,144 +0.001768,144 +0.001809,144 +0.001720,144 +0.001778,144 +0.001797,144 +0.001730,144 +0.001760,144 +0.001766,144 +0.001806,144 +0.001822,144 +0.001879,144 +0.001857,144 +0.001858,144 +0.001913,144 +0.002014,144 +0.001948,144 +0.001844,144 +0.001948,144 +0.001865,144 +0.001881,144 +0.001819,144 +0.001908,144 +0.001920,144 +0.002060,144 +0.001885,144 +0.002011,144 +0.001915,144 +0.001939,144 +0.001870,144 +0.001824,144 +0.001755,144 +0.001816,144 +0.001959,144 +0.001760,144 +0.001881,144 +0.001774,144 +0.001748,144 +0.001905,146 +0.001885,146 +0.001791,146 +0.001961,146 +0.001898,146 +0.001862,146 +0.001960,146 +0.001887,146 +0.001832,146 +0.001839,146 +0.001875,146 +0.001855,146 +0.001900,146 +0.001870,146 +0.001909,146 +0.001862,146 +0.001840,146 +0.001859,146 +0.001834,146 +0.001819,146 +0.001862,146 +0.002148,146 +0.002027,146 +0.001807,146 +0.001939,146 +0.001817,146 +0.001863,146 +0.001835,146 +0.001857,146 +0.001835,146 +0.001915,146 +0.001869,146 +0.001875,146 +0.001886,146 +0.001841,146 +0.001889,146 +0.001834,146 +0.001888,146 +0.001857,146 +0.001886,146 +0.001835,146 +0.001885,146 +0.001837,146 +0.001852,146 +0.001886,146 +0.001918,146 +0.001821,146 +0.001919,146 +0.001934,146 +0.001846,146 +0.001958,146 +0.001918,146 +0.001878,146 +0.001852,146 +0.001881,146 +0.001852,146 +0.001906,146 +0.001880,146 +0.001850,146 +0.001868,146 +0.001860,146 +0.001854,146 +0.001806,146 +0.001794,146 +0.001779,146 +0.001919,146 +0.001855,146 +0.001830,146 +0.002055,146 +0.001954,146 +0.002077,146 +0.001872,146 +0.001821,146 +0.001880,146 +0.001840,146 +0.001889,146 +0.001818,146 +0.001952,146 +0.001826,146 +0.001766,146 +0.001839,146 +0.001794,146 +0.001780,146 +0.001905,146 +0.002034,146 +0.001896,146 +0.001952,146 +0.001833,146 +0.001926,146 +0.002057,146 +0.001924,146 +0.001887,146 +0.001996,146 +0.001829,146 +0.001916,146 +0.001874,146 +0.001916,146 +0.001858,146 +0.001760,146 +0.001866,146 +0.001911,148 +0.001937,148 +0.001896,148 +0.001991,148 +0.001954,148 +0.001922,148 +0.001847,148 +0.001874,148 +0.001895,148 +0.001870,148 +0.001988,148 +0.002018,148 +0.001926,148 +0.001982,148 +0.001928,148 +0.001948,148 +0.001908,148 +0.001924,148 +0.001959,148 +0.001879,148 +0.001966,148 +0.002189,148 +0.001985,148 +0.001938,148 +0.001946,148 +0.001902,148 +0.002000,148 +0.001996,148 +0.001961,148 +0.002127,148 +0.002068,148 +0.001933,148 +0.001979,148 +0.001960,148 +0.002116,148 +0.001997,148 +0.001877,148 +0.002011,148 +0.001897,148 +0.001895,148 +0.001912,148 +0.001844,148 +0.001869,148 +0.001946,148 +0.002006,148 +0.001886,148 +0.001975,148 +0.001852,148 +0.001875,148 +0.001893,148 +0.001875,148 +0.001826,148 +0.001950,148 +0.001973,148 +0.001922,148 +0.001887,148 +0.001872,148 +0.001906,148 +0.001862,148 +0.001892,148 +0.001886,148 +0.002109,148 +0.002104,148 +0.002171,148 +0.002114,148 +0.002102,148 +0.002161,148 +0.002132,148 +0.001975,148 +0.001950,148 +0.001905,148 +0.001915,148 +0.002150,148 +0.001955,148 +0.001946,148 +0.001897,148 +0.001895,148 +0.001987,148 +0.001925,148 +0.001853,148 +0.001973,148 +0.001946,148 +0.001916,148 +0.001968,148 +0.001909,148 +0.001935,148 +0.002010,148 +0.002004,148 +0.001991,148 +0.002028,148 +0.001887,148 +0.001935,148 +0.001936,148 +0.001911,148 +0.001951,148 +0.002074,148 +0.001929,148 +0.001922,148 +0.001936,148 +0.001940,148 +0.002027,150 +0.002057,150 +0.001981,150 +0.002110,150 +0.002039,150 +0.002057,150 +0.002001,150 +0.002028,150 +0.002001,150 +0.002032,150 +0.001992,150 +0.002110,150 +0.001971,150 +0.002019,150 +0.001990,150 +0.002015,150 +0.001988,150 +0.002021,150 +0.001989,150 +0.002062,150 +0.002077,150 +0.001940,150 +0.001878,150 +0.002521,150 +0.002403,150 +0.002418,150 +0.002415,150 +0.002567,150 +0.002108,150 +0.002078,150 +0.002005,150 +0.001971,150 +0.002000,150 +0.001971,150 +0.001997,150 +0.002000,150 +0.002029,150 +0.002118,150 +0.002058,150 +0.002057,150 +0.002034,150 +0.002066,150 +0.002027,150 +0.002163,150 +0.002074,150 +0.002055,150 +0.002094,150 +0.002064,150 +0.002016,150 +0.002077,150 +0.002030,150 +0.002068,150 +0.002005,150 +0.002058,150 +0.002059,150 +0.002117,150 +0.001977,150 +0.001992,150 +0.001878,150 +0.002084,150 +0.001979,150 +0.001900,150 +0.001888,150 +0.002066,150 +0.001897,150 +0.001901,150 +0.001878,150 +0.002055,150 +0.002006,150 +0.001984,150 +0.001986,150 +0.001984,150 +0.002203,150 +0.002178,150 +0.002021,150 +0.001956,150 +0.002305,150 +0.002120,150 +0.002166,150 +0.002037,150 +0.001950,150 +0.002068,150 +0.002040,150 +0.002059,150 +0.002266,150 +0.002048,150 +0.002175,150 +0.002061,150 +0.002094,150 +0.002019,150 +0.002019,150 +0.001992,150 +0.002071,150 +0.001998,150 +0.002128,150 +0.001998,150 +0.002015,150 +0.001990,150 +0.002015,150 +0.001970,150 +0.002200,152 +0.002076,152 +0.002105,152 +0.002039,152 +0.002095,152 +0.002090,152 +0.002091,152 +0.002069,152 +0.002131,152 +0.002110,152 +0.002183,152 +0.002061,152 +0.002054,152 +0.002089,152 +0.002094,152 +0.002085,152 +0.002159,152 +0.002121,152 +0.002076,152 +0.002097,152 +0.002164,152 +0.002036,152 +0.002078,152 +0.002105,152 +0.002139,152 +0.002058,152 +0.002102,152 +0.002118,152 +0.002106,152 +0.002109,152 +0.002084,152 +0.002113,152 +0.002190,152 +0.002055,152 +0.002096,152 +0.002005,152 +0.002036,152 +0.002107,152 +0.002181,152 +0.002116,152 +0.002285,152 +0.002039,152 +0.002262,152 +0.002090,152 +0.002231,152 +0.002144,152 +0.002184,152 +0.002273,152 +0.002246,152 +0.002231,152 +0.002192,152 +0.002114,152 +0.002050,152 +0.002106,152 +0.002111,152 +0.002076,152 +0.002286,152 +0.002248,152 +0.002134,152 +0.002184,152 +0.002176,152 +0.002189,152 +0.002162,152 +0.002302,152 +0.002142,152 +0.002109,152 +0.002065,152 +0.002287,152 +0.002049,152 +0.002108,152 +0.002177,152 +0.002280,152 +0.002104,152 +0.002209,152 +0.002108,152 +0.002147,152 +0.002118,152 +0.002184,152 +0.002196,152 +0.002164,152 +0.002194,152 +0.002148,152 +0.002143,152 +0.002141,152 +0.002147,152 +0.002101,152 +0.002256,152 +0.002117,152 +0.002181,152 +0.002088,152 +0.002180,152 +0.002101,152 +0.002134,152 +0.002111,152 +0.002216,152 +0.002035,152 +0.002099,152 +0.002077,152 +0.002105,152 +0.002024,152 +0.002205,154 +0.002190,154 +0.002186,154 +0.002065,154 +0.002048,154 +0.002059,154 +0.002026,154 +0.002009,154 +0.001975,154 +0.002009,154 +0.002163,154 +0.002015,154 +0.002106,154 +0.002094,154 +0.001976,154 +0.002104,154 +0.002224,154 +0.002124,154 +0.002059,154 +0.002012,154 +0.002226,154 +0.001976,154 +0.001998,154 +0.001976,154 +0.001989,154 +0.001985,154 +0.002102,154 +0.001976,154 +0.002004,154 +0.001975,154 +0.001980,154 +0.001975,154 +0.001976,154 +0.001998,154 +0.001995,154 +0.002019,154 +0.002007,154 +0.002143,154 +0.001982,154 +0.001975,154 +0.001977,154 +0.001975,154 +0.002017,154 +0.002015,154 +0.001980,154 +0.001975,154 +0.001978,154 +0.001976,154 +0.001975,154 +0.001980,154 +0.001976,154 +0.002051,154 +0.002339,154 +0.002092,154 +0.002002,154 +0.002347,154 +0.002136,154 +0.001975,154 +0.002238,154 +0.002441,154 +0.002197,154 +0.002141,154 +0.002148,154 +0.002398,154 +0.002253,154 +0.002308,154 +0.002461,154 +0.002718,154 +0.002731,154 +0.002189,154 +0.002179,154 +0.002139,154 +0.002173,154 +0.002120,154 +0.002183,154 +0.002250,154 +0.002336,154 +0.002298,154 +0.002206,154 +0.002207,154 +0.002210,154 +0.002277,154 +0.002222,154 +0.002231,154 +0.002267,154 +0.002106,154 +0.002195,154 +0.002223,154 +0.002300,154 +0.002120,154 +0.002334,154 +0.002182,154 +0.002288,154 +0.002189,154 +0.002181,154 +0.002210,154 +0.002194,154 +0.002154,154 +0.002150,154 +0.002142,154 +0.002376,156 +0.002262,156 +0.002311,156 +0.002263,156 +0.002213,156 +0.002254,156 +0.002220,156 +0.002106,156 +0.002391,156 +0.002241,156 +0.002224,156 +0.002339,156 +0.002249,156 +0.002301,156 +0.002222,156 +0.002229,156 +0.002243,156 +0.002346,156 +0.002434,156 +0.002223,156 +0.002353,156 +0.002201,156 +0.002275,156 +0.002206,156 +0.002239,156 +0.002356,156 +0.002366,156 +0.002641,156 +0.002381,156 +0.002473,156 +0.002343,156 +0.002298,156 +0.002497,156 +0.002293,156 +0.002359,156 +0.002295,156 +0.002125,156 +0.002263,156 +0.002106,156 +0.002339,156 +0.002133,156 +0.002147,156 +0.002106,156 +0.002135,156 +0.002081,156 +0.002091,156 +0.002085,156 +0.002130,156 +0.002126,156 +0.002204,156 +0.002221,156 +0.002126,156 +0.002280,156 +0.002198,156 +0.002085,156 +0.002255,156 +0.002091,156 +0.002327,156 +0.002051,156 +0.002094,156 +0.002051,156 +0.002077,156 +0.002052,156 +0.002180,156 +0.002051,156 +0.002089,156 +0.002052,156 +0.002074,156 +0.002052,156 +0.002077,156 +0.002051,156 +0.002152,156 +0.002051,156 +0.002076,156 +0.002104,156 +0.002080,156 +0.002051,156 +0.002227,156 +0.002463,156 +0.002595,156 +0.002532,156 +0.003101,156 +0.002759,156 +0.002161,156 +0.002417,156 +0.002332,156 +0.002852,156 +0.002693,156 +0.002307,156 +0.002412,156 +0.002374,156 +0.002192,156 +0.002388,156 +0.002278,156 +0.003178,156 +0.002101,156 +0.002126,156 +0.002054,156 +0.002092,156 +0.002539,156 +0.002303,158 +0.002466,158 +0.002339,158 +0.002641,158 +0.002272,158 +0.002744,158 +0.003238,158 +0.002335,158 +0.002136,158 +0.002323,158 +0.002201,158 +0.002193,158 +0.002135,158 +0.002461,158 +0.002361,158 +0.002260,158 +0.003240,158 +0.002305,158 +0.002172,158 +0.002209,158 +0.002263,158 +0.002313,158 +0.002137,158 +0.002317,158 +0.002133,158 +0.002175,158 +0.002191,158 +0.002377,158 +0.002175,158 +0.002267,158 +0.002179,158 +0.002133,158 +0.002176,158 +0.002133,158 +0.002209,158 +0.002266,158 +0.002210,158 +0.002161,158 +0.002142,158 +0.002178,158 +0.002133,158 +0.002160,158 +0.002271,158 +0.002217,158 +0.002173,158 +0.002162,158 +0.002133,158 +0.002167,158 +0.002149,158 +0.002142,158 +0.002248,158 +0.002133,158 +0.002205,158 +0.002133,158 +0.002195,158 +0.002154,158 +0.002170,158 +0.002215,158 +0.002360,158 +0.002375,158 +0.002395,158 +0.002297,158 +0.002173,158 +0.002307,158 +0.002133,158 +0.002237,158 +0.002158,158 +0.002175,158 +0.002201,158 +0.002134,158 +0.002160,158 +0.002134,158 +0.002178,158 +0.002211,158 +0.002206,158 +0.002133,158 +0.002575,158 +0.002161,158 +0.002392,158 +0.002265,158 +0.002695,158 +0.002399,158 +0.002348,158 +0.002369,158 +0.002395,158 +0.002360,158 +0.002311,158 +0.002464,158 +0.002301,158 +0.002392,158 +0.002272,158 +0.002316,158 +0.002278,158 +0.002309,158 +0.002581,158 +0.002331,158 +0.002421,158 +0.002307,158 +0.002320,158 +0.002327,158 +0.002463,160 +0.002505,160 +0.002359,160 +0.002524,160 +0.002461,160 +0.002479,160 +0.002418,160 +0.002422,160 +0.002452,160 +0.002601,160 +0.002474,160 +0.002475,160 +0.002478,160 +0.002396,160 +0.002523,160 +0.002472,160 +0.002613,160 +0.002480,160 +0.002518,160 +0.002428,160 +0.002499,160 +0.002458,160 +0.002499,160 +0.002613,160 +0.002459,160 +0.002426,160 +0.002437,160 +0.002506,160 +0.002578,160 +0.002446,160 +0.002623,160 +0.002540,160 +0.002366,160 +0.002348,160 +0.002400,160 +0.002920,160 +0.004547,160 +0.004423,160 +0.003569,160 +0.003106,160 +0.003154,160 +0.003011,160 +0.003072,160 +0.002556,160 +0.002439,160 +0.002655,160 +0.002619,160 +0.002688,160 +0.002485,160 +0.002435,160 +0.002441,160 +0.002513,160 +0.002632,160 +0.002688,160 +0.003292,160 +0.002384,160 +0.002356,160 +0.002372,160 +0.002708,160 +0.002480,160 +0.002963,160 +0.002525,160 +0.002414,160 +0.002482,160 +0.002506,160 +0.003104,160 +0.002652,160 +0.002795,160 +0.002947,160 +0.002402,160 +0.003490,160 +0.004557,160 +0.004375,160 +0.002576,160 +0.002360,160 +0.002570,160 +0.002459,160 +0.002533,160 +0.002415,160 +0.002338,160 +0.002298,160 +0.002332,160 +0.002609,160 +0.002467,160 +0.002602,160 +0.002552,160 +0.002393,160 +0.002369,160 +0.002540,160 +0.002677,160 +0.002618,160 +0.002612,160 +0.002328,160 +0.002444,160 +0.002353,160 +0.002467,160 +0.002377,160 +0.002676,160 +0.002682,160 +0.002423,160 +0.002458,162 +0.002465,162 +0.002565,162 +0.002438,162 +0.002644,162 +0.002481,162 +0.002587,162 +0.002390,162 +0.002430,162 +0.002528,162 +0.002642,162 +0.002521,162 +0.002361,162 +0.002344,162 +0.002378,162 +0.002534,162 +0.002318,162 +0.003067,162 +0.002505,162 +0.002380,162 +0.002328,162 +0.002320,162 +0.002513,162 +0.002474,162 +0.002453,162 +0.002954,162 +0.002338,162 +0.002295,162 +0.002423,162 +0.002627,162 +0.002587,162 +0.002435,162 +0.002342,162 +0.002335,162 +0.002330,162 +0.002354,162 +0.002589,162 +0.002554,162 +0.002455,162 +0.002357,162 +0.002449,162 +0.002420,162 +0.002573,162 +0.002431,162 +0.002588,162 +0.002398,162 +0.002329,162 +0.002333,162 +0.002294,162 +0.002598,162 +0.002323,162 +0.002690,162 +0.002464,162 +0.002294,162 +0.002771,162 +0.002616,162 +0.002931,162 +0.003634,162 +0.002846,162 +0.002458,162 +0.002573,162 +0.002642,162 +0.002514,162 +0.003737,162 +0.003512,162 +0.003035,162 +0.003066,162 +0.002736,162 +0.002737,162 +0.002603,162 +0.002509,162 +0.002611,162 +0.002552,162 +0.002661,162 +0.002711,162 +0.002889,162 +0.003110,162 +0.002515,162 +0.002469,162 +0.002588,162 +0.002489,162 +0.002732,162 +0.002544,162 +0.002478,162 +0.002470,162 +0.002426,162 +0.002709,162 +0.002556,162 +0.003016,162 +0.002833,162 +0.002612,162 +0.002586,162 +0.003024,162 +0.003874,162 +0.003492,162 +0.002413,162 +0.002456,162 +0.002437,162 +0.002531,162 +0.002685,162 +0.002841,164 +0.002593,164 +0.002665,164 +0.002604,164 +0.002649,164 +0.002738,164 +0.003488,164 +0.002777,164 +0.002709,164 +0.002529,164 +0.002603,164 +0.002617,164 +0.003292,164 +0.002670,164 +0.002666,164 +0.002505,164 +0.002738,164 +0.002864,164 +0.003250,164 +0.002514,164 +0.002488,164 +0.002493,164 +0.002708,164 +0.002615,164 +0.002986,164 +0.002846,164 +0.002503,164 +0.002438,164 +0.002594,164 +0.002479,164 +0.002857,164 +0.002583,164 +0.002393,164 +0.002433,164 +0.002428,164 +0.002610,164 +0.002759,164 +0.002656,164 +0.002452,164 +0.002440,164 +0.002392,164 +0.002609,164 +0.002540,164 +0.002820,164 +0.002591,164 +0.002432,164 +0.002392,164 +0.002440,164 +0.002621,164 +0.002605,164 +0.002709,164 +0.002562,164 +0.002392,164 +0.002479,164 +0.002531,164 +0.002717,164 +0.002825,164 +0.002509,164 +0.002443,164 +0.002438,164 +0.002413,164 +0.002588,164 +0.002580,164 +0.002837,164 +0.002538,164 +0.002570,164 +0.002403,164 +0.002497,164 +0.002969,164 +0.004485,164 +0.003401,164 +0.002712,164 +0.002849,164 +0.002621,164 +0.003173,164 +0.002910,164 +0.002450,164 +0.002395,164 +0.002477,164 +0.002771,164 +0.002645,164 +0.003699,164 +0.003640,164 +0.002623,164 +0.002579,164 +0.002465,164 +0.002700,164 +0.003043,164 +0.002441,164 +0.002434,164 +0.002557,164 +0.002601,164 +0.002718,164 +0.002494,164 +0.002504,164 +0.002392,164 +0.002434,164 +0.002742,164 +0.002516,164 +0.002553,164 +0.002738,166 +0.002476,166 +0.002514,166 +0.002703,166 +0.002657,166 +0.002698,166 +0.003604,166 +0.002634,166 +0.002706,166 +0.002551,166 +0.002656,166 +0.002929,166 +0.002677,166 +0.002507,166 +0.002471,166 +0.002623,166 +0.002824,166 +0.002874,166 +0.002632,166 +0.002579,166 +0.002471,166 +0.002507,166 +0.002705,166 +0.002622,166 +0.002675,166 +0.002678,166 +0.002513,166 +0.002505,166 +0.002617,166 +0.002702,166 +0.002998,166 +0.002612,166 +0.002503,166 +0.002504,166 +0.002470,166 +0.002719,166 +0.002926,166 +0.002678,166 +0.002527,166 +0.002514,166 +0.002471,166 +0.002740,166 +0.002619,166 +0.002670,166 +0.002584,166 +0.002524,166 +0.002471,166 +0.002555,166 +0.002610,166 +0.002841,166 +0.002664,166 +0.002538,166 +0.002503,166 +0.002506,166 +0.002670,166 +0.002847,166 +0.002579,166 +0.002567,166 +0.002508,166 +0.002510,166 +0.002541,166 +0.002613,166 +0.002932,166 +0.002606,166 +0.002507,166 +0.002521,166 +0.002587,166 +0.002757,166 +0.002953,166 +0.002857,166 +0.002527,166 +0.002512,166 +0.002471,166 +0.002696,166 +0.002884,166 +0.002576,166 +0.002886,166 +0.002597,166 +0.002490,166 +0.002935,166 +0.003359,166 +0.003268,166 +0.002690,166 +0.002614,166 +0.002847,166 +0.002813,166 +0.002894,166 +0.002733,166 +0.002573,166 +0.002665,166 +0.002583,166 +0.002776,166 +0.002903,166 +0.002703,166 +0.002711,166 +0.002610,166 +0.002714,166 +0.002732,166 +0.002941,166 +0.002962,166 +0.002736,168 +0.002825,168 +0.002639,168 +0.002875,168 +0.002828,168 +0.002788,168 +0.002643,168 +0.002624,168 +0.002544,168 +0.002716,168 +0.002653,168 +0.002544,168 +0.002551,168 +0.002544,168 +0.002881,168 +0.002690,168 +0.002870,168 +0.002913,168 +0.002768,168 +0.002799,168 +0.002712,168 +0.002900,168 +0.002896,168 +0.002720,168 +0.002800,168 +0.002811,168 +0.002858,168 +0.002821,168 +0.002969,168 +0.002816,168 +0.002808,168 +0.002847,168 +0.002900,168 +0.002948,168 +0.002776,168 +0.002771,168 +0.003002,168 +0.003304,168 +0.002708,168 +0.002777,168 +0.002802,168 +0.002781,168 +0.002704,168 +0.002751,168 +0.002722,168 +0.003114,168 +0.002848,168 +0.002933,168 +0.002750,168 +0.002655,168 +0.002786,168 +0.002758,168 +0.002819,168 +0.002703,168 +0.002546,168 +0.002857,168 +0.002661,168 +0.003118,168 +0.002598,168 +0.002592,168 +0.002546,168 +0.002840,168 +0.002623,168 +0.002816,168 +0.002566,168 +0.002572,168 +0.002546,168 +0.002573,168 +0.002557,168 +0.002585,168 +0.002585,168 +0.002764,168 +0.002634,168 +0.002619,168 +0.002578,168 +0.002627,168 +0.002832,168 +0.002795,168 +0.002843,168 +0.002642,168 +0.002729,168 +0.002546,168 +0.002848,168 +0.002600,168 +0.002840,168 +0.002853,168 +0.002670,168 +0.002753,168 +0.003022,168 +0.002839,168 +0.002700,168 +0.002935,168 +0.002957,168 +0.002801,168 +0.002843,168 +0.002698,168 +0.002752,168 +0.002640,168 +0.002613,168 +0.002647,168 +0.003061,170 +0.002651,170 +0.002658,170 +0.002652,170 +0.002647,170 +0.002654,170 +0.002785,170 +0.002689,170 +0.002653,170 +0.002655,170 +0.002646,170 +0.002654,170 +0.002727,170 +0.002850,170 +0.002827,170 +0.002848,170 +0.002685,170 +0.002646,170 +0.002706,170 +0.002687,170 +0.002646,170 +0.002678,170 +0.002681,170 +0.002695,170 +0.002732,170 +0.002667,170 +0.002646,170 +0.002651,170 +0.002661,170 +0.002646,170 +0.002715,170 +0.002683,170 +0.002646,170 +0.002788,170 +0.002699,170 +0.002647,170 +0.002671,170 +0.002750,170 +0.002646,170 +0.002657,170 +0.003080,170 +0.002791,170 +0.002717,170 +0.003166,170 +0.002987,170 +0.002883,170 +0.002937,170 +0.002889,170 +0.002878,170 +0.002980,170 +0.003034,170 +0.003052,170 +0.002931,170 +0.002900,170 +0.003430,170 +0.004351,170 +0.003347,170 +0.002914,170 +0.002895,170 +0.002961,170 +0.003166,170 +0.002951,170 +0.002805,170 +0.002811,170 +0.002858,170 +0.002897,170 +0.003924,170 +0.003026,170 +0.003066,170 +0.003075,170 +0.003396,170 +0.002965,170 +0.002926,170 +0.002870,170 +0.002842,170 +0.002817,170 +0.002862,170 +0.002790,170 +0.002856,170 +0.002864,170 +0.002897,170 +0.002913,170 +0.002899,170 +0.002927,170 +0.002776,170 +0.002737,170 +0.002863,170 +0.003196,170 +0.003169,170 +0.003174,170 +0.002972,170 +0.002853,170 +0.002820,170 +0.002859,170 +0.003361,170 +0.003052,170 +0.002939,170 +0.002847,170 +0.002919,170 +0.003103,170 +0.003902,172 +0.003090,172 +0.003185,172 +0.003100,172 +0.003481,172 +0.003511,172 +0.002919,172 +0.002885,172 +0.002846,172 +0.002990,172 +0.003973,172 +0.003140,172 +0.003148,172 +0.003481,172 +0.004020,172 +0.003712,172 +0.003309,172 +0.004044,172 +0.003654,172 +0.003374,172 +0.003559,172 +0.003092,172 +0.003741,172 +0.003325,172 +0.003688,172 +0.003125,172 +0.002883,172 +0.002962,172 +0.003089,172 +0.003673,172 +0.003146,172 +0.002918,172 +0.002874,172 +0.003277,172 +0.003582,172 +0.003203,172 +0.002840,172 +0.002826,172 +0.002969,172 +0.002873,172 +0.003742,172 +0.002978,172 +0.002747,172 +0.002790,172 +0.002956,172 +0.003446,172 +0.003046,172 +0.003076,172 +0.002815,172 +0.002822,172 +0.003267,172 +0.003442,172 +0.003169,172 +0.002880,172 +0.003011,172 +0.002947,172 +0.003491,172 +0.003078,172 +0.003057,172 +0.002833,172 +0.002914,172 +0.003242,172 +0.003967,172 +0.003268,172 +0.003196,172 +0.003737,172 +0.003576,172 +0.003445,172 +0.003383,172 +0.003298,172 +0.003517,172 +0.003472,172 +0.003764,172 +0.003244,172 +0.003295,172 +0.003393,172 +0.004356,172 +0.002991,172 +0.003097,172 +0.002999,172 +0.003230,172 +0.003457,172 +0.003304,172 +0.003088,172 +0.003121,172 +0.003199,172 +0.003288,172 +0.003158,172 +0.003051,172 +0.003034,172 +0.003097,172 +0.003490,172 +0.003527,172 +0.003157,172 +0.003086,172 +0.003062,172 +0.003758,172 +0.003198,172 +0.003024,172 +0.003026,172 +0.003241,174 +0.003326,174 +0.003523,174 +0.003166,174 +0.003049,174 +0.002951,174 +0.003015,174 +0.003492,174 +0.003125,174 +0.003071,174 +0.002934,174 +0.003152,174 +0.003262,174 +0.003171,174 +0.002934,174 +0.002902,174 +0.002950,174 +0.003223,174 +0.003100,174 +0.003020,174 +0.002920,174 +0.002898,174 +0.003007,174 +0.003383,174 +0.003026,174 +0.002891,174 +0.002854,174 +0.002931,174 +0.003208,174 +0.003114,174 +0.003021,174 +0.002915,174 +0.002917,174 +0.003070,174 +0.003445,174 +0.003060,174 +0.002881,174 +0.002894,174 +0.002915,174 +0.003362,174 +0.003250,174 +0.003025,174 +0.003080,174 +0.002871,174 +0.003250,174 +0.003490,174 +0.003080,174 +0.002888,174 +0.002854,174 +0.003048,174 +0.003322,174 +0.003161,174 +0.002920,174 +0.002912,174 +0.002892,174 +0.003085,174 +0.003400,174 +0.003015,174 +0.002890,174 +0.002886,174 +0.003020,174 +0.003468,174 +0.003093,174 +0.002877,174 +0.002899,174 +0.002854,174 +0.003218,174 +0.002946,174 +0.003106,174 +0.002854,174 +0.002877,174 +0.002981,174 +0.003005,174 +0.003079,174 +0.003046,174 +0.003034,174 +0.002933,174 +0.003010,174 +0.003004,174 +0.002890,174 +0.002854,174 +0.002896,174 +0.002927,174 +0.003026,174 +0.002854,174 +0.002879,174 +0.002907,174 +0.002924,174 +0.002894,174 +0.002987,174 +0.002896,174 +0.002855,174 +0.002856,174 +0.002856,174 +0.002995,174 +0.002946,174 +0.004948,174 +0.002848,174 +0.002884,174 +0.002914,174 +0.003203,176 +0.003099,176 +0.002981,176 +0.003032,176 +0.002989,176 +0.003070,176 +0.003019,176 +0.003216,176 +0.003142,176 +0.002963,176 +0.003031,176 +0.003067,176 +0.002967,176 +0.002943,176 +0.002967,176 +0.002990,176 +0.003060,176 +0.002943,176 +0.002949,176 +0.002953,176 +0.002950,176 +0.002994,176 +0.003031,176 +0.002969,176 +0.002945,176 +0.002943,176 +0.002947,176 +0.003173,176 +0.002968,176 +0.002944,176 +0.002946,176 +0.002950,176 +0.002985,176 +0.003058,176 +0.002969,176 +0.002945,176 +0.002946,176 +0.002943,176 +0.002997,176 +0.003061,176 +0.003302,176 +0.003073,176 +0.003229,176 +0.003052,176 +0.003085,176 +0.002981,176 +0.002943,176 +0.002989,176 +0.002990,176 +0.003089,176 +0.002975,176 +0.002985,176 +0.002972,176 +0.002969,176 +0.002983,176 +0.003100,176 +0.002970,176 +0.002974,176 +0.002973,176 +0.002974,176 +0.003029,176 +0.003057,176 +0.002944,176 +0.002946,176 +0.002946,176 +0.002983,176 +0.003064,176 +0.002967,176 +0.002949,176 +0.002943,176 +0.002946,176 +0.003116,176 +0.003328,176 +0.003176,176 +0.003190,176 +0.003030,176 +0.003068,176 +0.003127,176 +0.002944,176 +0.002978,176 +0.002968,176 +0.002979,176 +0.002988,176 +0.003028,176 +0.002983,176 +0.002976,176 +0.002943,176 +0.003021,176 +0.003105,176 +0.002970,176 +0.003105,176 +0.002968,176 +0.002970,176 +0.003030,176 +0.003230,176 +0.002944,176 +0.002966,176 +0.002977,176 +0.002982,176 +0.003142,176 +0.003227,178 +0.003164,178 +0.003159,178 +0.003164,178 +0.003305,178 +0.003147,178 +0.003396,178 +0.003352,178 +0.003144,178 +0.003265,178 +0.003232,178 +0.003124,178 +0.003167,178 +0.003149,178 +0.003172,178 +0.003259,178 +0.003167,178 +0.003154,178 +0.003137,178 +0.003170,178 +0.003277,178 +0.003146,178 +0.003123,178 +0.003121,178 +0.003156,178 +0.003296,178 +0.003127,178 +0.003123,178 +0.003121,178 +0.003126,178 +0.003172,178 +0.003277,178 +0.003134,178 +0.003121,178 +0.003148,178 +0.003178,178 +0.003252,178 +0.003293,178 +0.003244,178 +0.003292,178 +0.003203,178 +0.003303,178 +0.003163,178 +0.003120,178 +0.003144,178 +0.003205,178 +0.003268,178 +0.003182,178 +0.003121,178 +0.003144,178 +0.003146,178 +0.003319,178 +0.003147,178 +0.003180,178 +0.003282,178 +0.003147,178 +0.003277,178 +0.003407,178 +0.003121,178 +0.003155,178 +0.003144,178 +0.003228,178 +0.003333,178 +0.003121,178 +0.003161,178 +0.003155,178 +0.003195,178 +0.003336,178 +0.003121,178 +0.003438,178 +0.003315,178 +0.003203,178 +0.003288,178 +0.003128,178 +0.003120,178 +0.003143,178 +0.003150,178 +0.003320,178 +0.003161,178 +0.003120,178 +0.003125,178 +0.003127,178 +0.003172,178 +0.003242,178 +0.003126,178 +0.003123,178 +0.003132,178 +0.003182,178 +0.003343,178 +0.003130,178 +0.003122,178 +0.003124,178 +0.003168,178 +0.003281,178 +0.003143,178 +0.003134,178 +0.003125,178 +0.003134,178 +0.003321,178 +0.003504,178 +0.003532,180 +0.003527,180 +0.003495,180 +0.004005,180 +0.003884,180 +0.003513,180 +0.003805,180 +0.004142,180 +0.003700,180 +0.003624,180 +0.003559,180 +0.003563,180 +0.004337,180 +0.003487,180 +0.003685,180 +0.003598,180 +0.003867,180 +0.003445,180 +0.003491,180 +0.003522,180 +0.003481,180 +0.003945,180 +0.003953,180 +0.004146,180 +0.004174,180 +0.004212,180 +0.004009,180 +0.003485,180 +0.003538,180 +0.003646,180 +0.003549,180 +0.003461,180 +0.003395,180 +0.003463,180 +0.003542,180 +0.003426,180 +0.003518,180 +0.003413,180 +0.003602,180 +0.003509,180 +0.003408,180 +0.003412,180 +0.003377,180 +0.003336,180 +0.003671,180 +0.003293,180 +0.003453,180 +0.003358,180 +0.003344,180 +0.003603,180 +0.003481,180 +0.003429,180 +0.003489,180 +0.003376,180 +0.003597,180 +0.003199,180 +0.006071,180 +0.004131,180 +0.003369,180 +0.003196,180 +0.003210,180 +0.003194,180 +0.003199,180 +0.003336,180 +0.003196,180 +0.003194,180 +0.003187,180 +0.003171,180 +0.003301,180 +0.003201,180 +0.003163,180 +0.003162,180 +0.003171,180 +0.003267,180 +0.003166,180 +0.003167,180 +0.003166,180 +0.003159,180 +0.003270,180 +0.003200,180 +0.003164,180 +0.003162,180 +0.003159,180 +0.003192,180 +0.003267,180 +0.003193,180 +0.005630,180 +0.004376,180 +0.003275,180 +0.003530,180 +0.003186,180 +0.003178,180 +0.003557,180 +0.003336,180 +0.003194,180 +0.003186,180 +0.003168,180 +0.003224,180 +0.003370,180 +0.003219,180 +0.003419,182 +0.003360,182 +0.003445,182 +0.003421,182 +0.003299,182 +0.003305,182 +0.003301,182 +0.003343,182 +0.003424,182 +0.003325,182 +0.003298,182 +0.003322,182 +0.003373,182 +0.003489,182 +0.003304,182 +0.005269,182 +0.005044,182 +0.003425,182 +0.003322,182 +0.003903,182 +0.003365,182 +0.003537,182 +0.003340,182 +0.003298,182 +0.003336,182 +0.003341,182 +0.003955,182 +0.003324,182 +0.003321,182 +0.003531,182 +0.003343,182 +0.003573,182 +0.003330,182 +0.003325,182 +0.003301,182 +0.003342,182 +0.003532,182 +0.003298,182 +0.003303,182 +0.003549,182 +0.003413,182 +0.003438,182 +0.003696,182 +0.003524,182 +0.003702,182 +0.003760,182 +0.003347,182 +0.003355,182 +0.003342,182 +0.003384,182 +0.003610,182 +0.003367,182 +0.003298,182 +0.003330,182 +0.003324,182 +0.003480,182 +0.003303,182 +0.003301,182 +0.003298,182 +0.003307,182 +0.003458,182 +0.003303,182 +0.003301,182 +0.003303,182 +0.003298,182 +0.003439,182 +0.003310,182 +0.003300,182 +0.003303,182 +0.003300,182 +0.003435,182 +0.003303,182 +0.003391,182 +0.003518,182 +0.003521,182 +0.003498,182 +0.003325,182 +0.003298,182 +0.003301,182 +0.003323,182 +0.003512,182 +0.003333,182 +0.003322,182 +0.003591,182 +0.003476,182 +0.004173,182 +0.003645,182 +0.003635,182 +0.003644,182 +0.003882,182 +0.003617,182 +0.003687,182 +0.003340,182 +0.003958,182 +0.003804,182 +0.003327,182 +0.003628,182 +0.003332,182 +0.003860,182 +0.003440,182 +0.003478,184 +0.003872,184 +0.003574,184 +0.003834,184 +0.003615,184 +0.003471,184 +0.003375,184 +0.003846,184 +0.003612,184 +0.003411,184 +0.003410,184 +0.003546,184 +0.003638,184 +0.003450,184 +0.003373,184 +0.003526,184 +0.003471,184 +0.003868,184 +0.003409,184 +0.003431,184 +0.003712,184 +0.003757,184 +0.003919,184 +0.003743,184 +0.003877,184 +0.004446,184 +0.003781,184 +0.003494,184 +0.003574,184 +0.003515,184 +0.003843,184 +0.003487,184 +0.003726,184 +0.003475,184 +0.003640,184 +0.003964,184 +0.003477,184 +0.003568,184 +0.003411,184 +0.003638,184 +0.003699,184 +0.003571,184 +0.003672,184 +0.003516,184 +0.004054,184 +0.003407,184 +0.003674,184 +0.003867,184 +0.003679,184 +0.003599,184 +0.003693,184 +0.003736,184 +0.003553,184 +0.003677,184 +0.003643,184 +0.003409,184 +0.003831,184 +0.003547,184 +0.003797,184 +0.003437,184 +0.003663,184 +0.003375,184 +0.003873,184 +0.003873,184 +0.003577,184 +0.003461,184 +0.003798,184 +0.003677,184 +0.003596,184 +0.003566,184 +0.003559,184 +0.003469,184 +0.003993,184 +0.003479,184 +0.003687,184 +0.003701,184 +0.003874,184 +0.003523,184 +0.003456,184 +0.003757,184 +0.003408,184 +0.003917,184 +0.003623,184 +0.003624,184 +0.003523,184 +0.003855,184 +0.003613,184 +0.003494,184 +0.003663,184 +0.003490,184 +0.003807,184 +0.003417,184 +0.003416,184 +0.003683,184 +0.003648,184 +0.003582,184 +0.003410,184 +0.003647,184 +0.003441,184 +0.003741,184 +0.003845,186 +0.003610,186 +0.003840,186 +0.003755,186 +0.003996,186 +0.003626,186 +0.003662,186 +0.003616,186 +0.003837,186 +0.003807,186 +0.003575,186 +0.003698,186 +0.003855,186 +0.004090,186 +0.003746,186 +0.003654,186 +0.003662,186 +0.003753,186 +0.003679,186 +0.003729,186 +0.003555,186 +0.004084,186 +0.003842,186 +0.004042,186 +0.003867,186 +0.003646,186 +0.004074,186 +0.003782,186 +0.003805,186 +0.003689,186 +0.004057,186 +0.003623,186 +0.003747,186 +0.003948,186 +0.003816,186 +0.003689,186 +0.003701,186 +0.004021,186 +0.003745,186 +0.004078,186 +0.003749,186 +0.003831,186 +0.003884,186 +0.003938,186 +0.003788,186 +0.003805,186 +0.003843,186 +0.003815,186 +0.004775,186 +0.003963,186 +0.003874,186 +0.003864,186 +0.003969,186 +0.003972,186 +0.003923,186 +0.003896,186 +0.003969,186 +0.003879,186 +0.003893,186 +0.003916,186 +0.004147,186 +0.003865,186 +0.004189,186 +0.004018,186 +0.003830,186 +0.004140,186 +0.003803,186 +0.003855,186 +0.003847,186 +0.003834,186 +0.003831,186 +0.003836,186 +0.003793,186 +0.003835,186 +0.003768,186 +0.003816,186 +0.003799,186 +0.003921,186 +0.003870,186 +0.004070,186 +0.003696,186 +0.003704,186 +0.003752,186 +0.003701,186 +0.003696,186 +0.003698,186 +0.003802,186 +0.003829,186 +0.003843,186 +0.003912,186 +0.003834,186 +0.003880,186 +0.003977,186 +0.003990,186 +0.003975,186 +0.004196,186 +0.003918,186 +0.003972,186 +0.003786,186 +0.003989,186 +0.004024,188 +0.003897,188 +0.004031,188 +0.004214,188 +0.004064,188 +0.004241,188 +0.004052,188 +0.004212,188 +0.003884,188 +0.003797,188 +0.003846,188 +0.004174,188 +0.003773,188 +0.003844,188 +0.003915,188 +0.003933,188 +0.003868,188 +0.004128,188 +0.003906,188 +0.003799,188 +0.004139,188 +0.003761,188 +0.003768,188 +0.003649,188 +0.004111,188 +0.003630,188 +0.003623,188 +0.003623,188 +0.004186,188 +0.003697,188 +0.003625,188 +0.003631,188 +0.003623,188 +0.003940,188 +0.003590,188 +0.003624,188 +0.003612,188 +0.004065,188 +0.003658,188 +0.003619,188 +0.004117,188 +0.003771,188 +0.003812,188 +0.004109,188 +0.004308,188 +0.004025,188 +0.004218,188 +0.004310,188 +0.004067,188 +0.004055,188 +0.004184,188 +0.003942,188 +0.003944,188 +0.003933,188 +0.004197,188 +0.003830,188 +0.003792,188 +0.003786,188 +0.003824,188 +0.003799,188 +0.004284,188 +0.004693,188 +0.004667,188 +0.004699,188 +0.004437,188 +0.004234,188 +0.004512,188 +0.004764,188 +0.003925,188 +0.003896,188 +0.003828,188 +0.003627,188 +0.003622,188 +0.004032,188 +0.003930,188 +0.003808,188 +0.003687,188 +0.003625,188 +0.004004,188 +0.004522,188 +0.003834,188 +0.003986,188 +0.003676,188 +0.004082,188 +0.003910,188 +0.003707,188 +0.004000,188 +0.003937,188 +0.003630,188 +0.003981,188 +0.004197,188 +0.004261,188 +0.004293,188 +0.003882,188 +0.003632,188 +0.003609,188 +0.003895,188 +0.003628,188 +0.003638,188 +0.003625,188 +0.004031,190 +0.003732,190 +0.003713,190 +0.004069,190 +0.003967,190 +0.003814,190 +0.003748,190 +0.003742,190 +0.003794,190 +0.003921,190 +0.003743,190 +0.003948,190 +0.003822,190 +0.003917,190 +0.004039,190 +0.003837,190 +0.003886,190 +0.004334,190 +0.004670,190 +0.003918,190 +0.003767,190 +0.003926,190 +0.004045,190 +0.003812,190 +0.003883,190 +0.004148,190 +0.003789,190 +0.003733,190 +0.003982,190 +0.003831,190 +0.004218,190 +0.003887,190 +0.004065,190 +0.003829,190 +0.004073,190 +0.003854,190 +0.003864,190 +0.004040,190 +0.003908,190 +0.003708,190 +0.003750,190 +0.003847,190 +0.003919,190 +0.004953,190 +0.003872,190 +0.003915,190 +0.003805,190 +0.003935,190 +0.003760,190 +0.003736,190 +0.003736,190 +0.003952,190 +0.003751,190 +0.003966,190 +0.003744,190 +0.004105,190 +0.004057,190 +0.003848,190 +0.004103,190 +0.004007,190 +0.003991,190 +0.003958,190 +0.003858,190 +0.003898,190 +0.004309,190 +0.003779,190 +0.004400,190 +0.003842,190 +0.004690,190 +0.004212,190 +0.003952,190 +0.003825,190 +0.004132,190 +0.003949,190 +0.003970,190 +0.003901,190 +0.004336,190 +0.004022,190 +0.004203,190 +0.004286,190 +0.004137,190 +0.003975,190 +0.004159,190 +0.004018,190 +0.004249,190 +0.003971,190 +0.004063,190 +0.004069,190 +0.004161,190 +0.004036,190 +0.004065,190 +0.004090,190 +0.004051,190 +0.005002,190 +0.004184,190 +0.004001,190 +0.004155,190 +0.004062,190 +0.004114,190 +0.003998,190 +0.004504,192 +0.004226,192 +0.004231,192 +0.004154,192 +0.004391,192 +0.004256,192 +0.004164,192 +0.004621,192 +0.004542,192 +0.004177,192 +0.004269,192 +0.004290,192 +0.004861,192 +0.004628,192 +0.004849,192 +0.004740,192 +0.005128,192 +0.004511,192 +0.004285,192 +0.004344,192 +0.004368,192 +0.004324,192 +0.004270,192 +0.004247,192 +0.004214,192 +0.004177,192 +0.004196,192 +0.004271,192 +0.004291,192 +0.004231,192 +0.004307,192 +0.004301,192 +0.004323,192 +0.004325,192 +0.004395,192 +0.004233,192 +0.004210,192 +0.004187,192 +0.004353,192 +0.004866,192 +0.004385,192 +0.004047,192 +0.004525,192 +0.003945,192 +0.004156,192 +0.004179,192 +0.004386,192 +0.003930,192 +0.004117,192 +0.004327,192 +0.004368,192 +0.004014,192 +0.003910,192 +0.003904,192 +0.004190,192 +0.003906,192 +0.003925,192 +0.004126,192 +0.004216,192 +0.003886,192 +0.004132,192 +0.003998,192 +0.004251,192 +0.004098,192 +0.004112,192 +0.004504,192 +0.004272,192 +0.003909,192 +0.004141,192 +0.003941,192 +0.004337,192 +0.003940,192 +0.004117,192 +0.003910,192 +0.004424,192 +0.003919,192 +0.003898,192 +0.003902,192 +0.004022,192 +0.004072,192 +0.004431,192 +0.003967,192 +0.003941,192 +0.004591,192 +0.003937,192 +0.003917,192 +0.004209,192 +0.004130,192 +0.004293,192 +0.004051,192 +0.003910,192 +0.004307,192 +0.004201,192 +0.004005,192 +0.003908,192 +0.004203,192 +0.003900,192 +0.003901,192 +0.003943,192 +0.004501,192 +0.004094,194 +0.003974,194 +0.003975,194 +0.004121,194 +0.003976,194 +0.003980,194 +0.004015,194 +0.004034,194 +0.003976,194 +0.003973,194 +0.004004,194 +0.004086,194 +0.004075,194 +0.004420,194 +0.004343,194 +0.004312,194 +0.004001,194 +0.004387,194 +0.004344,194 +0.004544,194 +0.004207,194 +0.004339,194 +0.004008,194 +0.004578,194 +0.004317,194 +0.004009,194 +0.004012,194 +0.004546,194 +0.004054,194 +0.004310,194 +0.004004,194 +0.004506,194 +0.004113,194 +0.004008,194 +0.004088,194 +0.004520,194 +0.004227,194 +0.004167,194 +0.004084,194 +0.004735,194 +0.004056,194 +0.004024,194 +0.004008,194 +0.004922,194 +0.004059,194 +0.004162,194 +0.004479,194 +0.004472,194 +0.004063,194 +0.004017,194 +0.004182,194 +0.004476,194 +0.004032,194 +0.004005,194 +0.004184,194 +0.004252,194 +0.004021,194 +0.004021,194 +0.004307,194 +0.004103,194 +0.004144,194 +0.004259,194 +0.004192,194 +0.004050,194 +0.003998,194 +0.004037,194 +0.004022,194 +0.004178,194 +0.003980,194 +0.003993,194 +0.003995,194 +0.004106,194 +0.004053,194 +0.003975,194 +0.003972,194 +0.004192,194 +0.003993,194 +0.004004,194 +0.003973,194 +0.004068,194 +0.003973,194 +0.003975,194 +0.003972,194 +0.004128,194 +0.003974,194 +0.004098,194 +0.004575,194 +0.004296,194 +0.004130,194 +0.004183,194 +0.004120,194 +0.004470,194 +0.004030,194 +0.004261,194 +0.004005,194 +0.004232,194 +0.004353,194 +0.004020,194 +0.004014,194 +0.004370,194 +0.004545,196 +0.004109,196 +0.004114,196 +0.004780,196 +0.004173,196 +0.004120,196 +0.004174,196 +0.004525,196 +0.004153,196 +0.004320,196 +0.004240,196 +0.004641,196 +0.004273,196 +0.004153,196 +0.004230,196 +0.005091,196 +0.004129,196 +0.004116,196 +0.004529,196 +0.004654,196 +0.004161,196 +0.004103,196 +0.004477,196 +0.004167,196 +0.004105,196 +0.004087,196 +0.004363,196 +0.004107,196 +0.004086,196 +0.004084,196 +0.004302,196 +0.004159,196 +0.004212,196 +0.004335,196 +0.004361,196 +0.004112,196 +0.004103,196 +0.004086,196 +0.004496,196 +0.004112,196 +0.004112,196 +0.004083,196 +0.004287,196 +0.004234,196 +0.004107,196 +0.004129,196 +0.004353,196 +0.004115,196 +0.004112,196 +0.004107,196 +0.004223,196 +0.004106,196 +0.004081,196 +0.004080,196 +0.004291,196 +0.004178,196 +0.004245,196 +0.004458,196 +0.004203,196 +0.004119,196 +0.004101,196 +0.004108,196 +0.004204,196 +0.004112,196 +0.004143,196 +0.004096,196 +0.004264,196 +0.004084,196 +0.004080,196 +0.004083,196 +0.004164,196 +0.004152,196 +0.004085,196 +0.004126,196 +0.004152,196 +0.004085,196 +0.004088,196 +0.004084,196 +0.004290,196 +0.004087,196 +0.004122,196 +0.004348,196 +0.004431,196 +0.004117,196 +0.004116,196 +0.004105,196 +0.004325,196 +0.004107,196 +0.004109,196 +0.004101,196 +0.004195,196 +0.004197,196 +0.004107,196 +0.004083,196 +0.004143,196 +0.004084,196 +0.004081,196 +0.004082,196 +0.004170,196 +0.004112,196 +0.004318,198 +0.004213,198 +0.004337,198 +0.004214,198 +0.004221,198 +0.004428,198 +0.004661,198 +0.004246,198 +0.004222,198 +0.004220,198 +0.004276,198 +0.004216,198 +0.004216,198 +0.004216,198 +0.004276,198 +0.004217,198 +0.004213,198 +0.004215,198 +0.004296,198 +0.004217,198 +0.004212,198 +0.004212,198 +0.004280,198 +0.004213,198 +0.004212,198 +0.004426,198 +0.004250,198 +0.004213,198 +0.004275,198 +0.004559,198 +0.004351,198 +0.004217,198 +0.004215,198 +0.004253,198 +0.004269,198 +0.004281,198 +0.004236,198 +0.004277,198 +0.004218,198 +0.004223,198 +0.004214,198 +0.004282,198 +0.004261,198 +0.004236,198 +0.004212,198 +0.004287,198 +0.004214,198 +0.004212,198 +0.004216,198 +0.004355,198 +0.004310,198 +0.004226,198 +0.004401,198 +0.004622,198 +0.004228,198 +0.004243,198 +0.004255,198 +0.004280,198 +0.004212,198 +0.004213,198 +0.004215,198 +0.004380,198 +0.004283,198 +0.004212,198 +0.004255,198 +0.004258,198 +0.004219,198 +0.004212,198 +0.004250,198 +0.004269,198 +0.004219,198 +0.004212,198 +0.004329,198 +0.004275,198 +0.004237,198 +0.004275,198 +0.004463,198 +0.004471,198 +0.004213,198 +0.004217,198 +0.004276,198 +0.004217,198 +0.004242,198 +0.004213,198 +0.004380,198 +0.004281,198 +0.004233,198 +0.004236,198 +0.004297,198 +0.004251,198 +0.004215,198 +0.004216,198 +0.004283,198 +0.004217,198 +0.004213,198 +0.004256,198 +0.004317,198 +0.004218,198 +0.004213,198 +0.004384,198 +0.004875,200 +0.004366,200 +0.004361,200 +0.004399,200 +0.004415,200 +0.004386,200 +0.004407,200 +0.004432,200 +0.004415,200 +0.004395,200 +0.004359,200 +0.004429,200 +0.004360,200 +0.004360,200 +0.004363,200 +0.004422,200 +0.004364,200 +0.004360,200 +0.004365,200 +0.004492,200 +0.004363,200 +0.004359,200 +0.004645,200 +0.004694,200 +0.004384,200 +0.004401,200 +0.004458,200 +0.004390,200 +0.004361,200 +0.004362,200 +0.004420,200 +0.004363,200 +0.004360,200 +0.004362,200 +0.004421,200 +0.004365,200 +0.004360,200 +0.004395,200 +0.004394,200 +0.004364,200 +0.004419,200 +0.004473,200 +0.004394,200 +0.004363,200 +0.004360,200 +0.004659,200 +0.004696,200 +0.004363,200 +0.004363,200 +0.004435,200 +0.004360,200 +0.004365,200 +0.004362,200 +0.004423,200 +0.004365,200 +0.004360,200 +0.004391,200 +0.004401,200 +0.004360,200 +0.004360,200 +0.004427,200 +0.004361,200 +0.004364,200 +0.004360,200 +0.004512,200 +0.004462,200 +0.004412,200 +0.004441,200 +0.004719,200 +0.004610,200 +0.004381,200 +0.004391,200 +0.004394,200 +0.004364,200 +0.004359,200 +0.004427,200 +0.004363,200 +0.004368,200 +0.004362,200 +0.004423,200 +0.004364,200 +0.004360,200 +0.004360,200 +0.004427,200 +0.004361,200 +0.004359,200 +0.004365,200 +0.004485,200 +0.004360,200 +0.004359,200 +0.004434,200 +0.004607,200 +0.004493,200 +0.004360,200 +0.004424,200 +0.004388,200 +0.004379,200 +0.004362,200 +0.004463,200 +0.004364,200 +0.004613,202 +0.004510,202 +0.004569,202 +0.004569,202 +0.004556,202 +0.004572,202 +0.004568,202 +0.004506,202 +0.004510,202 +0.004647,202 +0.004511,202 +0.004512,202 +0.004506,202 +0.004837,202 +0.004759,202 +0.004527,202 +0.004569,202 +0.004513,202 +0.004506,202 +0.004507,202 +0.004567,202 +0.004573,202 +0.004506,202 +0.004505,202 +0.004572,202 +0.004508,202 +0.004508,202 +0.004534,202 +0.004607,202 +0.004505,202 +0.004505,202 +0.004670,202 +0.004512,202 +0.004506,202 +0.004507,202 +0.004731,202 +0.004904,202 +0.004541,202 +0.004570,202 +0.004554,202 +0.004550,202 +0.004508,202 +0.004588,202 +0.004510,202 +0.004506,202 +0.004534,202 +0.004548,202 +0.004505,202 +0.004509,202 +0.004566,202 +0.004510,202 +0.004506,202 +0.004505,202 +0.004651,202 +0.004515,202 +0.004506,202 +0.004507,202 +0.004745,202 +0.004779,202 +0.004541,202 +0.005156,202 +0.004703,202 +0.004594,202 +0.004549,202 +0.004622,202 +0.004536,202 +0.004507,202 +0.004540,202 +0.004541,202 +0.004506,202 +0.004577,202 +0.004567,202 +0.004510,202 +0.004508,202 +0.004508,202 +0.004650,202 +0.004569,202 +0.004506,202 +0.004534,202 +0.004766,202 +0.004821,202 +0.004531,202 +0.004595,202 +0.004530,202 +0.004506,202 +0.004537,202 +0.004541,202 +0.004552,202 +0.004505,202 +0.004571,202 +0.004506,202 +0.004541,202 +0.004512,202 +0.004737,202 +0.004575,202 +0.005103,202 +0.004676,202 +0.004671,202 +0.004511,202 +0.004506,202 +0.005009,204 +0.004842,204 +0.004876,204 +0.004731,204 +0.004710,204 +0.004678,204 +0.004683,204 +0.004779,204 +0.004634,204 +0.004630,204 +0.004762,204 +0.004729,204 +0.004662,204 +0.004660,204 +0.004727,204 +0.004658,204 +0.004705,204 +0.004630,204 +0.004776,204 +0.004630,204 +0.004630,204 +0.004693,204 +0.004734,204 +0.004899,204 +0.004656,204 +0.004711,204 +0.004653,204 +0.004658,204 +0.004669,204 +0.004662,204 +0.004720,204 +0.004629,204 +0.004696,204 +0.004633,204 +0.004635,204 +0.004657,204 +0.004666,204 +0.004630,204 +0.004630,204 +0.004703,204 +0.004710,204 +0.004629,204 +0.004632,204 +0.004732,204 +0.004913,204 +0.004954,204 +0.004754,204 +0.004660,204 +0.004650,204 +0.004663,204 +0.004727,204 +0.004678,204 +0.004629,204 +0.004697,204 +0.004631,204 +0.004630,204 +0.004633,204 +0.004696,204 +0.004629,204 +0.004630,204 +0.004660,204 +0.004747,204 +0.004632,204 +0.004634,204 +0.004871,204 +0.004808,204 +0.004954,204 +0.004905,204 +0.004718,204 +0.004630,204 +0.004633,204 +0.004883,204 +0.004657,204 +0.004652,204 +0.004680,204 +0.004664,204 +0.004670,204 +0.004635,204 +0.004735,204 +0.004636,204 +0.004629,204 +0.004642,204 +0.004760,204 +0.004714,204 +0.004629,204 +0.004696,204 +0.004633,204 +0.004911,204 +0.004861,204 +0.004721,204 +0.004634,204 +0.004653,204 +0.004802,204 +0.004630,204 +0.004630,204 +0.004633,204 +0.004692,204 +0.004636,204 +0.004629,204 +0.004660,204 +0.004924,206 +0.004774,206 +0.004782,206 +0.004954,206 +0.004774,206 +0.004768,206 +0.004833,206 +0.004776,206 +0.005023,206 +0.005055,206 +0.004881,206 +0.004827,206 +0.004799,206 +0.004937,206 +0.004790,206 +0.004772,206 +0.004799,206 +0.004842,206 +0.004774,206 +0.004841,206 +0.004854,206 +0.004783,206 +0.004769,206 +0.004809,206 +0.004883,206 +0.004772,206 +0.004780,206 +0.004834,206 +0.004769,206 +0.005048,206 +0.005067,206 +0.004833,206 +0.004809,206 +0.004795,206 +0.004867,206 +0.004885,206 +0.004772,206 +0.004829,206 +0.004773,206 +0.004769,206 +0.004774,206 +0.004830,206 +0.004772,206 +0.004769,206 +0.004840,206 +0.004875,206 +0.004769,206 +0.004771,206 +0.004831,206 +0.004773,206 +0.005113,206 +0.007995,206 +0.008452,206 +0.008079,206 +0.004899,206 +0.004804,206 +0.004890,206 +0.004867,206 +0.004817,206 +0.004849,206 +0.004793,206 +0.004769,206 +0.004773,206 +0.004853,206 +0.004848,206 +0.004771,206 +0.004855,206 +0.004816,206 +0.004872,206 +0.005138,206 +0.004869,206 +0.004817,206 +0.004909,206 +0.004867,206 +0.004769,206 +0.004772,206 +0.004822,206 +0.004817,206 +0.004771,206 +0.004769,206 +0.004853,206 +0.004775,206 +0.004769,206 +0.004810,206 +0.004889,206 +0.004830,206 +0.004773,206 +0.004847,206 +0.004771,206 +0.004953,206 +0.005091,206 +0.004828,206 +0.004772,206 +0.004789,206 +0.004878,206 +0.004794,206 +0.004769,206 +0.004853,206 +0.004769,206 +0.004771,206 +0.005036,208 +0.005039,208 +0.004925,208 +0.004919,208 +0.005021,208 +0.005021,208 +0.004919,208 +0.004978,208 +0.004968,208 +0.004918,208 +0.005219,208 +0.005136,208 +0.004977,208 +0.005095,208 +0.005023,208 +0.004945,208 +0.004943,208 +0.005017,208 +0.004997,208 +0.004923,208 +0.004930,208 +0.005022,208 +0.004922,208 +0.004961,208 +0.004998,208 +0.004979,208 +0.004918,208 +0.004960,208 +0.004986,208 +0.004919,208 +0.005191,208 +0.005119,208 +0.004947,208 +0.004944,208 +0.004981,208 +0.004919,208 +0.005006,208 +0.004949,208 +0.004951,208 +0.004922,208 +0.004920,208 +0.004983,208 +0.004919,208 +0.004918,208 +0.004981,208 +0.005008,208 +0.004927,208 +0.004949,208 +0.004953,208 +0.004924,208 +0.005130,208 +0.005277,208 +0.004958,208 +0.004919,208 +0.005014,208 +0.004946,208 +0.004918,208 +0.004952,208 +0.004955,208 +0.004919,208 +0.004920,208 +0.004986,208 +0.004918,208 +0.004918,208 +0.004971,208 +0.004995,208 +0.004938,208 +0.005102,208 +0.005016,208 +0.004951,208 +0.005049,208 +0.005315,208 +0.004940,208 +0.004971,208 +0.005001,208 +0.004947,208 +0.004945,208 +0.004969,208 +0.005006,208 +0.004923,208 +0.004919,208 +0.004984,208 +0.004922,208 +0.004919,208 +0.004948,208 +0.005040,208 +0.005027,208 +0.004921,208 +0.004980,208 +0.004925,208 +0.004918,208 +0.005315,208 +0.005033,208 +0.004925,208 +0.004946,208 +0.004956,208 +0.004919,208 +0.004922,208 +0.004980,208 +0.004922,208 +0.005214,210 +0.005162,210 +0.005099,210 +0.005105,210 +0.005186,210 +0.005162,210 +0.005276,210 +0.005236,210 +0.005176,210 +0.005095,210 +0.005244,210 +0.005476,210 +0.005100,210 +0.005196,210 +0.005180,210 +0.005102,210 +0.005095,210 +0.005179,210 +0.005141,210 +0.005170,210 +0.005148,210 +0.005152,210 +0.005102,210 +0.005099,210 +0.005162,210 +0.005164,210 +0.005137,210 +0.005179,210 +0.005100,210 +0.005098,210 +0.005395,210 +0.005238,210 +0.005161,210 +0.005177,210 +0.005125,210 +0.005229,210 +0.005146,210 +0.005129,210 +0.005099,210 +0.005098,210 +0.005160,210 +0.005096,210 +0.005100,210 +0.005157,210 +0.005181,210 +0.005095,210 +0.005163,210 +0.005100,210 +0.005097,210 +0.005175,210 +0.005415,210 +0.005359,210 +0.005202,210 +0.005224,210 +0.005125,210 +0.005177,210 +0.005315,210 +0.005119,210 +0.005096,210 +0.005162,210 +0.005102,210 +0.005095,210 +0.005125,210 +0.005134,210 +0.005175,210 +0.005097,210 +0.005196,210 +0.005098,210 +0.005097,210 +0.005353,210 +0.005342,210 +0.005119,210 +0.005177,210 +0.005102,210 +0.005146,210 +0.005160,210 +0.005101,210 +0.005107,210 +0.005126,210 +0.005128,210 +0.005100,210 +0.005098,210 +0.005166,210 +0.005230,210 +0.005131,210 +0.005158,210 +0.005099,210 +0.005097,210 +0.005200,210 +0.005421,210 +0.005113,210 +0.005148,210 +0.005129,210 +0.005099,210 +0.005100,210 +0.005155,210 +0.005172,210 +0.005104,210 +0.005160,210 +0.005100,210 +0.005338,212 +0.005299,212 +0.005295,212 +0.005210,212 +0.005338,212 +0.005213,212 +0.005208,212 +0.005261,212 +0.005489,212 +0.005501,212 +0.005398,212 +0.005309,212 +0.005229,212 +0.005254,212 +0.005347,212 +0.005216,212 +0.005218,212 +0.005280,212 +0.005212,212 +0.005255,212 +0.005271,212 +0.005316,212 +0.005210,212 +0.005294,212 +0.005210,212 +0.005210,212 +0.005296,212 +0.005481,212 +0.005432,212 +0.005325,212 +0.005243,212 +0.005295,212 +0.005212,212 +0.005296,212 +0.005209,212 +0.005213,212 +0.005270,212 +0.005212,212 +0.005210,212 +0.005275,212 +0.005297,212 +0.005215,212 +0.005271,212 +0.005213,212 +0.005209,212 +0.005241,212 +0.005435,212 +0.005482,212 +0.005306,212 +0.005241,212 +0.005210,212 +0.005216,212 +0.005293,212 +0.005209,212 +0.005214,212 +0.005270,212 +0.005212,212 +0.005214,212 +0.005270,212 +0.005257,212 +0.005216,212 +0.005388,212 +0.005245,212 +0.005221,212 +0.005250,212 +0.005424,212 +0.005478,212 +0.005264,212 +0.005265,212 +0.005257,212 +0.005250,212 +0.005272,212 +0.005208,212 +0.005213,212 +0.005271,212 +0.005214,212 +0.005270,212 +0.005321,212 +0.005319,212 +0.005250,212 +0.005280,212 +0.005211,212 +0.005216,212 +0.005238,212 +0.005358,212 +0.005522,212 +0.005261,212 +0.005268,212 +0.005213,212 +0.005252,212 +0.005271,212 +0.005213,212 +0.005221,212 +0.005293,212 +0.005210,212 +0.005214,212 +0.005291,212 +0.005254,212 +0.005251,212 +0.005415,212 +0.005511,214 +0.005377,214 +0.005431,214 +0.005497,214 +0.005634,214 +0.005582,214 +0.005380,214 +0.005369,214 +0.005434,214 +0.005454,214 +0.005416,214 +0.005450,214 +0.005415,214 +0.005371,214 +0.005402,214 +0.005410,214 +0.005471,214 +0.005407,214 +0.005401,214 +0.005369,214 +0.005376,214 +0.005434,214 +0.005608,214 +0.005504,214 +0.005458,214 +0.005459,214 +0.005456,214 +0.005460,214 +0.005475,214 +0.005412,214 +0.005440,214 +0.005371,214 +0.005371,214 +0.005431,214 +0.005435,214 +0.005369,214 +0.005473,214 +0.005393,214 +0.005372,214 +0.005430,214 +0.005473,214 +0.005797,214 +0.005643,214 +0.005410,214 +0.005420,214 +0.005513,214 +0.005400,214 +0.005405,214 +0.005477,214 +0.005369,214 +0.005369,214 +0.005436,214 +0.005374,214 +0.005494,214 +0.005534,214 +0.005442,214 +0.005402,214 +0.005645,214 +0.005529,214 +0.005776,214 +0.005501,214 +0.005429,214 +0.005412,214 +0.005443,214 +0.005445,214 +0.005392,214 +0.005399,214 +0.005408,214 +0.005370,214 +0.005399,214 +0.005412,214 +0.005515,214 +0.005474,214 +0.005406,214 +0.005369,214 +0.005374,214 +0.005431,214 +0.005568,214 +0.005725,214 +0.005470,214 +0.005413,214 +0.005427,214 +0.005471,214 +0.005412,214 +0.005399,214 +0.005446,214 +0.005378,214 +0.005411,214 +0.005457,214 +0.005401,214 +0.005452,214 +0.005452,214 +0.005376,214 +0.005369,214 +0.005473,214 +0.005397,214 +0.005785,214 +0.005732,214 +0.005391,214 +0.005625,214 +0.006151,216 +0.005788,216 +0.006171,216 +0.006296,216 +0.006094,216 +0.006567,216 +0.008187,216 +0.006341,216 +0.006257,216 +0.006222,216 +0.006249,216 +0.006635,216 +0.007265,216 +0.006322,216 +0.006406,216 +0.006345,216 +0.006161,216 +0.006079,216 +0.007007,216 +0.006613,216 +0.006141,216 +0.006247,216 +0.006074,216 +0.007351,216 +0.005990,216 +0.006103,216 +0.007244,216 +0.007006,216 +0.008089,216 +0.006477,216 +0.007051,216 +0.007433,216 +0.007063,216 +0.006501,216 +0.006232,216 +0.006415,216 +0.006916,216 +0.007117,216 +0.007403,216 +0.006350,216 +0.007760,216 +0.006184,216 +0.005968,216 +0.007188,216 +0.006074,216 +0.007077,216 +0.005790,216 +0.006115,216 +0.008246,216 +0.007490,216 +0.007457,216 +0.005645,216 +0.006889,216 +0.006281,216 +0.006042,216 +0.006582,216 +0.006166,216 +0.006802,216 +0.006558,216 +0.006041,216 +0.006568,216 +0.006179,216 +0.006179,216 +0.006787,216 +0.007046,216 +0.008044,216 +0.006161,216 +0.006380,216 +0.006220,216 +0.005972,216 +0.007988,216 +0.006318,216 +0.007219,216 +0.007577,216 +0.007820,216 +0.006773,216 +0.006201,216 +0.006750,216 +0.006430,216 +0.006074,216 +0.006347,216 +0.005806,216 +0.006344,216 +0.006285,216 +0.006094,216 +0.006686,216 +0.005977,216 +0.005836,216 +0.006300,216 +0.007047,216 +0.006276,216 +0.006208,216 +0.005685,216 +0.006487,216 +0.006019,216 +0.005781,216 +0.007648,216 +0.005997,216 +0.007177,216 +0.006766,216 +0.006210,218 +0.007256,218 +0.005898,218 +0.006264,218 +0.009736,218 +0.005934,218 +0.006642,218 +0.005758,218 +0.006376,218 +0.006204,218 +0.005705,218 +0.006358,218 +0.005827,218 +0.005790,218 +0.006412,218 +0.005781,218 +0.006085,218 +0.006048,218 +0.005698,218 +0.006003,218 +0.006033,218 +0.005719,218 +0.005811,218 +0.005729,218 +0.005720,218 +0.005784,218 +0.005733,218 +0.005670,218 +0.005820,218 +0.005687,218 +0.005769,218 +0.005788,218 +0.005663,218 +0.005668,218 +0.005807,218 +0.005668,218 +0.005742,218 +0.006086,218 +0.005812,218 +0.005815,218 +0.005765,218 +0.005701,218 +0.005771,218 +0.005702,218 +0.005669,218 +0.005714,218 +0.005747,218 +0.005663,218 +0.005804,218 +0.005729,218 +0.005664,218 +0.005859,218 +0.005708,218 +0.005690,218 +0.005978,218 +0.006048,218 +0.005702,218 +0.005724,218 +0.005713,218 +0.005784,218 +0.006000,218 +0.005901,218 +0.005784,218 +0.006205,218 +0.005706,218 +0.005842,218 +0.005730,218 +0.005667,218 +0.005869,218 +0.005789,218 +0.005679,218 +0.005993,218 +0.006072,218 +0.005793,218 +0.005816,218 +0.006076,218 +0.005689,218 +0.005872,218 +0.006006,218 +0.005817,218 +0.005734,218 +0.005828,218 +0.005804,218 +0.005768,218 +0.005742,218 +0.005726,218 +0.005716,218 +0.005692,218 +0.005666,218 +0.006121,218 +0.005762,218 +0.005669,218 +0.005726,218 +0.005705,218 +0.005708,218 +0.005705,218 +0.005665,218 +0.005668,218 +0.005781,218 +0.005691,218 +0.006165,220 +0.005818,220 +0.005839,220 +0.005879,220 +0.005838,220 +0.005813,220 +0.006274,220 +0.005964,220 +0.005843,220 +0.005911,220 +0.005859,220 +0.005875,220 +0.005888,220 +0.005807,220 +0.005817,220 +0.005982,220 +0.005889,220 +0.006092,220 +0.005858,220 +0.005828,220 +0.005898,220 +0.005814,220 +0.005815,220 +0.006025,220 +0.005997,220 +0.005881,220 +0.005914,220 +0.005823,220 +0.005818,220 +0.005881,220 +0.005815,220 +0.005816,220 +0.005895,220 +0.005814,220 +0.005960,220 +0.005851,220 +0.005817,220 +0.005895,220 +0.005836,220 +0.005965,220 +0.006084,220 +0.005981,220 +0.005879,220 +0.005960,220 +0.005945,220 +0.005819,220 +0.005910,220 +0.005815,220 +0.006064,220 +0.005851,220 +0.005837,220 +0.006360,220 +0.005851,220 +0.005961,220 +0.006022,220 +0.005815,220 +0.005884,220 +0.006152,220 +0.006042,220 +0.005933,220 +0.005918,220 +0.005819,220 +0.005834,220 +0.005856,220 +0.005812,220 +0.005853,220 +0.005851,220 +0.005817,220 +0.005985,220 +0.005819,220 +0.005813,220 +0.005885,220 +0.005815,220 +0.005817,220 +0.006085,220 +0.006280,220 +0.005859,220 +0.005925,220 +0.005816,220 +0.005828,220 +0.005856,220 +0.005813,220 +0.005826,220 +0.005852,220 +0.005817,220 +0.005921,220 +0.005824,220 +0.005839,220 +0.005873,220 +0.005821,220 +0.005856,220 +0.006110,220 +0.006147,220 +0.005837,220 +0.005921,220 +0.005834,220 +0.005838,220 +0.005865,220 +0.005813,220 +0.005827,220 +0.006199,222 +0.006047,222 +0.006113,222 +0.005991,222 +0.005998,222 +0.006044,222 +0.005992,222 +0.005992,222 +0.006332,222 +0.006240,222 +0.006050,222 +0.006050,222 +0.006035,222 +0.006060,222 +0.006039,222 +0.006035,222 +0.006087,222 +0.005991,222 +0.006057,222 +0.006044,222 +0.005994,222 +0.006002,222 +0.006035,222 +0.006061,222 +0.006153,222 +0.006487,222 +0.006039,222 +0.006085,222 +0.006020,222 +0.006097,222 +0.006120,222 +0.006067,222 +0.006035,222 +0.006069,222 +0.005991,222 +0.006187,222 +0.005994,222 +0.005995,222 +0.006040,222 +0.005995,222 +0.005993,222 +0.006250,222 +0.006297,222 +0.006125,222 +0.006036,222 +0.006073,222 +0.006072,222 +0.005997,222 +0.005991,222 +0.006043,222 +0.005993,222 +0.006054,222 +0.006039,222 +0.005995,222 +0.006002,222 +0.006036,222 +0.005991,222 +0.006044,222 +0.006302,222 +0.006241,222 +0.006090,222 +0.006012,222 +0.006042,222 +0.006062,222 +0.005993,222 +0.006003,222 +0.006059,222 +0.005991,222 +0.006520,222 +0.005994,222 +0.006099,222 +0.006051,222 +0.006056,222 +0.006015,222 +0.006136,222 +0.006390,222 +0.006093,222 +0.006011,222 +0.006018,222 +0.006080,222 +0.006039,222 +0.006015,222 +0.006043,222 +0.005996,222 +0.006123,222 +0.006034,222 +0.005996,222 +0.006089,222 +0.005991,222 +0.005995,222 +0.006039,222 +0.006226,222 +0.006255,222 +0.006094,222 +0.006012,222 +0.006004,222 +0.006030,222 +0.005996,222 +0.006041,222 +0.005995,222 +0.006544,224 +0.006214,224 +0.006159,224 +0.006201,224 +0.006209,224 +0.006269,224 +0.006196,224 +0.006284,224 +0.006576,224 +0.006228,224 +0.006259,224 +0.006181,224 +0.006204,224 +0.006160,224 +0.006206,224 +0.006182,224 +0.006215,224 +0.006209,224 +0.006159,224 +0.006160,224 +0.006209,224 +0.006219,224 +0.006184,224 +0.006200,224 +0.006813,224 +0.006231,224 +0.006438,224 +0.006208,224 +0.006394,224 +0.006190,224 +0.006206,224 +0.006190,224 +0.006220,224 +0.006259,224 +0.006164,224 +0.006159,224 +0.006209,224 +0.006155,224 +0.006170,224 +0.006197,224 +0.006456,224 +0.006614,224 +0.006198,224 +0.006202,224 +0.006229,224 +0.006181,224 +0.006217,224 +0.006183,224 +0.006216,224 +0.006229,224 +0.006287,224 +0.006185,224 +0.006209,224 +0.006493,224 +0.006197,224 +0.006170,224 +0.006525,224 +0.006446,224 +0.006177,224 +0.006217,224 +0.006214,224 +0.006162,224 +0.006206,224 +0.006165,224 +0.006261,224 +0.006237,224 +0.006162,224 +0.006220,224 +0.006216,224 +0.006155,224 +0.006170,224 +0.006198,224 +0.006455,224 +0.006439,224 +0.006188,224 +0.006182,224 +0.006247,224 +0.006160,224 +0.006166,224 +0.006200,224 +0.006179,224 +0.006269,224 +0.006159,224 +0.006158,224 +0.006210,224 +0.006179,224 +0.006262,224 +0.006195,224 +0.006400,224 +0.006445,224 +0.006241,224 +0.006192,224 +0.006266,224 +0.006244,224 +0.006168,224 +0.006225,224 +0.006156,224 +0.006312,224 +0.006159,224 +0.006161,224 +0.006549,226 +0.006319,226 +0.006334,226 +0.006360,226 +0.006602,226 +0.006872,226 +0.006318,226 +0.006371,226 +0.006378,226 +0.006344,226 +0.006397,226 +0.006370,226 +0.006379,226 +0.006397,226 +0.006319,226 +0.006400,226 +0.006359,226 +0.006319,226 +0.006389,226 +0.006320,226 +0.006569,226 +0.006630,226 +0.006340,226 +0.006420,226 +0.006365,226 +0.006322,226 +0.006366,226 +0.006323,226 +0.006906,226 +0.006387,226 +0.006637,226 +0.006371,226 +0.006345,226 +0.006332,226 +0.006357,226 +0.006324,226 +0.006945,226 +0.006377,226 +0.006349,226 +0.006376,226 +0.006559,226 +0.006351,226 +0.006320,226 +0.006376,226 +0.006434,226 +0.006335,226 +0.006330,226 +0.006359,226 +0.006322,226 +0.006369,226 +0.006323,226 +0.006419,226 +0.006789,226 +0.006450,226 +0.006401,226 +0.006351,226 +0.006318,226 +0.006375,226 +0.006323,226 +0.006379,226 +0.006371,226 +0.006317,226 +0.006370,226 +0.006323,226 +0.006361,226 +0.006372,226 +0.006318,226 +0.006571,226 +0.006741,226 +0.006366,226 +0.006431,226 +0.006340,226 +0.006364,226 +0.006402,226 +0.006318,226 +0.006461,226 +0.006320,226 +0.006319,226 +0.006371,226 +0.006320,226 +0.006330,226 +0.006366,226 +0.006392,226 +0.006721,226 +0.006562,226 +0.006344,226 +0.006403,226 +0.006320,226 +0.006370,226 +0.006322,226 +0.006342,226 +0.006452,226 +0.006320,226 +0.006332,226 +0.006359,226 +0.006359,226 +0.006367,226 +0.006324,226 +0.006318,226 +0.006649,226 +0.007106,228 +0.006580,228 +0.006485,228 +0.006484,228 +0.006534,228 +0.006483,228 +0.006636,228 +0.006547,228 +0.006541,228 +0.006579,228 +0.006543,228 +0.006496,228 +0.006526,228 +0.006482,228 +0.006787,228 +0.006789,228 +0.006515,228 +0.006587,228 +0.006502,228 +0.006544,228 +0.006491,228 +0.006656,228 +0.006526,228 +0.006488,228 +0.006556,228 +0.006483,228 +0.006483,228 +0.006536,228 +0.006488,228 +0.006665,228 +0.006857,228 +0.006545,228 +0.006555,228 +0.006531,228 +0.006544,228 +0.006483,228 +0.006527,228 +0.006643,228 +0.006481,228 +0.006529,228 +0.006496,228 +0.006636,228 +0.006586,228 +0.006502,228 +0.006495,228 +0.007019,228 +0.006552,228 +0.006599,228 +0.006554,228 +0.006495,228 +0.006529,228 +0.006485,228 +0.006610,228 +0.006486,228 +0.006483,228 +0.006535,228 +0.006484,228 +0.006531,228 +0.006488,228 +0.006585,228 +0.006792,228 +0.006762,228 +0.006576,228 +0.006481,228 +0.006486,228 +0.006535,228 +0.006481,228 +0.006615,228 +0.006484,228 +0.006499,228 +0.006538,228 +0.006495,228 +0.006501,228 +0.006530,228 +0.006481,228 +0.006686,228 +0.006840,228 +0.006519,228 +0.006612,228 +0.006503,228 +0.006565,228 +0.006530,228 +0.006877,228 +0.006551,228 +0.006489,228 +0.006533,228 +0.006620,228 +0.006507,228 +0.006530,228 +0.006486,228 +0.006534,228 +0.006951,228 +0.006530,228 +0.006585,228 +0.006482,228 +0.006564,228 +0.006488,228 +0.006579,228 +0.006645,228 +0.006481,228 +0.006906,230 +0.006664,230 +0.006654,230 +0.006708,230 +0.006732,230 +0.007061,230 +0.007030,230 +0.007347,230 +0.007360,230 +0.007459,230 +0.007354,230 +0.007573,230 +0.007686,230 +0.007985,230 +0.007109,230 +0.007216,230 +0.007353,230 +0.008097,230 +0.009631,230 +0.007771,230 +0.009133,230 +0.007343,230 +0.008509,230 +0.007966,230 +0.007210,230 +0.008854,230 +0.008231,230 +0.007544,230 +0.008028,230 +0.007625,230 +0.007927,230 +0.008986,230 +0.008489,230 +0.009163,230 +0.011969,230 +0.011834,230 +0.008479,230 +0.007426,230 +0.007346,230 +0.008399,230 +0.008797,230 +0.007532,230 +0.007414,230 +0.006996,230 +0.007756,230 +0.006975,230 +0.007077,230 +0.007386,230 +0.007467,230 +0.007776,230 +0.007609,230 +0.007568,230 +0.007361,230 +0.007952,230 +0.007071,230 +0.008761,230 +0.007205,230 +0.008618,230 +0.007297,230 +0.007950,230 +0.007024,230 +0.008121,230 +0.007081,230 +0.007821,230 +0.007059,230 +0.006998,230 +0.007775,230 +0.007005,230 +0.008090,230 +0.007026,230 +0.007915,230 +0.007400,230 +0.007968,230 +0.007076,230 +0.006918,230 +0.007954,230 +0.006799,230 +0.008414,230 +0.006951,230 +0.008150,230 +0.007105,230 +0.008124,230 +0.006950,230 +0.006990,230 +0.008277,230 +0.006900,230 +0.007570,230 +0.007040,230 +0.007710,230 +0.007099,230 +0.006936,230 +0.007400,230 +0.006832,230 +0.006759,230 +0.006929,230 +0.006787,230 +0.006863,230 +0.006921,230 +0.007279,230 +0.008303,230 +0.007663,232 +0.008658,232 +0.006971,232 +0.007331,232 +0.007265,232 +0.007715,232 +0.008007,232 +0.007884,232 +0.007827,232 +0.008317,232 +0.007851,232 +0.008945,232 +0.008069,232 +0.008027,232 +0.008219,232 +0.010375,232 +0.009157,232 +0.007510,232 +0.008506,232 +0.007659,232 +0.007794,232 +0.008050,232 +0.007744,232 +0.008130,232 +0.008074,232 +0.009084,232 +0.007656,232 +0.007832,232 +0.007544,232 +0.007925,232 +0.007558,232 +0.008052,232 +0.007596,232 +0.007857,232 +0.007764,232 +0.008353,232 +0.007662,232 +0.007970,232 +0.007488,232 +0.007856,232 +0.007517,232 +0.007807,232 +0.007618,232 +0.007640,232 +0.007767,232 +0.007442,232 +0.008778,232 +0.008466,232 +0.009341,232 +0.007269,232 +0.007878,232 +0.007136,232 +0.007985,232 +0.007516,232 +0.008181,232 +0.007519,232 +0.007891,232 +0.007465,232 +0.008925,232 +0.007472,232 +0.007641,232 +0.008206,232 +0.007339,232 +0.008165,232 +0.007036,232 +0.008310,232 +0.007241,232 +0.007607,232 +0.007111,232 +0.007456,232 +0.007123,232 +0.007018,232 +0.007113,232 +0.006921,232 +0.007212,232 +0.007295,232 +0.006936,232 +0.006939,232 +0.007001,232 +0.006917,232 +0.006998,232 +0.006892,232 +0.006963,232 +0.006877,232 +0.006901,232 +0.006871,232 +0.006835,232 +0.006900,232 +0.006971,232 +0.007192,232 +0.006898,232 +0.006905,232 +0.006866,232 +0.006936,232 +0.007135,232 +0.006877,232 +0.006894,232 +0.006838,232 +0.006897,232 +0.006900,232 +0.007237,234 +0.007229,234 +0.007226,234 +0.007570,234 +0.007112,234 +0.007043,234 +0.007135,234 +0.007101,234 +0.007239,234 +0.007078,234 +0.007109,234 +0.007069,234 +0.007125,234 +0.007131,234 +0.007047,234 +0.007088,234 +0.007028,234 +0.007460,234 +0.007143,234 +0.007030,234 +0.007112,234 +0.007027,234 +0.007208,234 +0.007024,234 +0.007050,234 +0.007111,234 +0.007026,234 +0.007117,234 +0.007020,234 +0.007249,234 +0.007210,234 +0.007394,234 +0.007278,234 +0.007165,234 +0.007221,234 +0.007963,234 +0.009203,234 +0.008000,234 +0.007206,234 +0.007376,234 +0.007202,234 +0.007165,234 +0.007109,234 +0.007178,234 +0.007352,234 +0.007577,234 +0.007112,234 +0.007174,234 +0.007093,234 +0.007694,234 +0.007190,234 +0.007050,234 +0.007141,234 +0.007084,234 +0.007142,234 +0.007064,234 +0.007727,234 +0.007223,234 +0.007325,234 +0.007454,234 +0.007197,234 +0.007191,234 +0.007104,234 +0.007222,234 +0.007170,234 +0.007125,234 +0.007088,234 +0.007044,234 +0.007124,234 +0.007086,234 +0.007128,234 +0.007025,234 +0.007278,234 +0.007411,234 +0.007062,234 +0.007125,234 +0.007030,234 +0.007122,234 +0.007101,234 +0.007102,234 +0.007911,234 +0.007742,234 +0.008329,234 +0.010380,234 +0.008026,234 +0.008500,234 +0.008256,234 +0.008138,234 +0.008184,234 +0.008851,234 +0.008628,234 +0.009289,234 +0.008313,234 +0.007911,234 +0.007843,234 +0.008029,234 +0.007784,234 +0.007991,234 +0.008368,234 +0.008967,234 +0.008834,236 +0.008266,236 +0.008228,236 +0.008136,236 +0.007759,236 +0.007821,236 +0.007737,236 +0.008175,236 +0.007579,236 +0.007759,236 +0.007853,236 +0.008212,236 +0.007521,236 +0.007879,236 +0.007829,236 +0.008431,236 +0.007612,236 +0.007583,236 +0.007709,236 +0.007579,236 +0.007473,236 +0.007549,236 +0.007520,236 +0.007821,236 +0.007461,236 +0.007356,236 +0.007291,236 +0.007332,236 +0.007349,236 +0.007236,236 +0.007218,236 +0.007238,236 +0.007243,236 +0.007231,236 +0.007609,236 +0.007350,236 +0.007396,236 +0.007753,236 +0.007261,236 +0.007650,236 +0.007419,236 +0.007379,236 +0.007389,236 +0.007298,236 +0.007704,236 +0.007321,236 +0.007505,236 +0.007313,236 +0.007608,236 +0.007351,236 +0.007657,236 +0.007536,236 +0.007321,236 +0.008096,236 +0.007385,236 +0.007427,236 +0.007215,236 +0.007849,236 +0.007234,236 +0.007367,236 +0.007348,236 +0.007299,236 +0.007194,236 +0.007443,236 +0.007902,236 +0.007590,236 +0.007554,236 +0.007431,236 +0.007748,236 +0.007674,236 +0.007683,236 +0.007500,236 +0.007520,236 +0.007672,236 +0.007701,236 +0.007689,236 +0.007781,236 +0.007872,236 +0.007630,236 +0.007828,236 +0.007667,236 +0.008095,236 +0.008005,236 +0.007886,236 +0.011243,236 +0.008679,236 +0.007297,236 +0.007512,236 +0.007207,236 +0.007647,236 +0.007748,236 +0.007369,236 +0.007605,236 +0.007382,236 +0.008036,236 +0.007378,236 +0.007765,236 +0.007261,236 +0.008214,236 +0.007343,236 +0.008624,238 +0.007429,238 +0.008038,238 +0.007670,238 +0.007491,238 +0.007370,238 +0.007469,238 +0.007570,238 +0.007449,238 +0.007586,238 +0.007496,238 +0.007464,238 +0.007847,238 +0.007520,238 +0.007370,238 +0.007655,238 +0.007782,238 +0.007511,238 +0.007451,238 +0.007444,238 +0.007455,238 +0.007374,238 +0.007449,238 +0.007378,238 +0.007449,238 +0.007370,238 +0.007508,238 +0.007370,238 +0.007410,238 +0.007805,238 +0.007561,238 +0.007425,238 +0.007431,238 +0.007451,238 +0.007467,238 +0.007449,238 +0.007414,238 +0.007432,238 +0.007401,238 +0.007409,238 +0.007371,238 +0.007368,238 +0.007521,238 +0.007874,238 +0.007490,238 +0.007442,238 +0.007476,238 +0.007785,238 +0.007454,238 +0.007751,238 +0.007405,238 +0.007598,238 +0.007370,238 +0.007409,238 +0.007369,238 +0.007427,238 +0.008021,238 +0.007421,238 +0.007365,238 +0.007567,238 +0.008946,238 +0.008478,238 +0.010571,238 +0.009349,238 +0.011127,238 +0.009461,238 +0.008439,238 +0.008230,238 +0.008482,238 +0.009090,238 +0.008313,238 +0.008916,238 +0.009600,238 +0.009170,238 +0.008555,238 +0.008817,238 +0.008428,238 +0.008248,238 +0.008378,238 +0.008190,238 +0.008983,238 +0.010074,238 +0.009864,238 +0.009125,238 +0.008735,238 +0.007859,238 +0.007874,238 +0.007669,238 +0.007687,238 +0.007573,238 +0.008210,238 +0.008295,238 +0.008358,238 +0.007898,238 +0.008410,238 +0.007990,238 +0.007957,238 +0.008097,238 +0.008056,238 +0.007972,238 +0.008653,240 +0.008411,240 +0.009443,240 +0.010387,240 +0.009186,240 +0.009200,240 +0.008355,240 +0.008307,240 +0.008691,240 +0.009048,240 +0.009448,240 +0.008462,240 +0.010544,240 +0.009193,240 +0.010076,240 +0.008931,240 +0.008495,240 +0.008309,240 +0.008280,240 +0.008282,240 +0.008086,240 +0.008305,240 +0.008257,240 +0.008537,240 +0.007775,240 +0.008803,240 +0.008156,240 +0.008703,240 +0.007829,240 +0.009971,240 +0.010236,240 +0.011200,240 +0.008115,240 +0.009301,240 +0.007973,240 +0.008482,240 +0.007937,240 +0.008784,240 +0.013206,240 +0.008126,240 +0.008587,240 +0.008093,240 +0.008492,240 +0.007942,240 +0.008638,240 +0.007867,240 +0.008002,240 +0.007985,240 +0.008097,240 +0.008768,240 +0.008668,240 +0.007959,240 +0.008045,240 +0.007915,240 +0.007964,240 +0.009017,240 +0.010591,240 +0.010042,240 +0.011167,240 +0.010816,240 +0.008555,240 +0.010858,240 +0.009223,240 +0.010121,240 +0.008837,240 +0.008203,240 +0.008618,240 +0.008413,240 +0.008477,240 +0.008723,240 +0.008598,240 +0.008431,240 +0.008652,240 +0.008653,240 +0.008365,240 +0.008711,240 +0.008385,240 +0.008926,240 +0.008361,240 +0.008319,240 +0.008091,240 +0.008054,240 +0.008121,240 +0.008434,240 +0.010000,240 +0.011078,240 +0.009180,240 +0.008554,240 +0.008533,240 +0.008538,240 +0.008345,240 +0.008361,240 +0.009772,240 +0.009039,240 +0.008347,240 +0.010383,240 +0.011302,240 +0.009205,240 +0.012062,240 +0.009639,240 +0.010181,242 +0.009269,242 +0.009006,242 +0.009717,242 +0.008504,242 +0.010585,242 +0.008997,242 +0.011064,242 +0.010893,242 +0.009848,242 +0.010563,242 +0.009299,242 +0.010176,242 +0.009776,242 +0.013347,242 +0.009719,242 +0.009009,242 +0.009491,242 +0.009756,242 +0.008917,242 +0.009300,242 +0.008440,242 +0.009133,242 +0.008241,242 +0.008374,242 +0.008364,242 +0.008505,242 +0.008798,242 +0.008924,242 +0.009366,242 +0.009250,242 +0.008463,242 +0.008386,242 +0.009386,242 +0.008959,242 +0.008696,242 +0.008675,242 +0.009764,242 +0.008470,242 +0.008959,242 +0.008126,242 +0.008964,242 +0.007957,242 +0.008368,242 +0.007936,242 +0.008271,242 +0.007890,242 +0.008236,242 +0.008135,242 +0.008964,242 +0.007986,242 +0.008580,242 +0.008036,242 +0.008817,242 +0.007993,242 +0.008811,242 +0.008000,242 +0.008834,242 +0.007999,242 +0.008670,242 +0.008321,242 +0.008742,242 +0.008018,242 +0.008544,242 +0.007957,242 +0.008447,242 +0.008035,242 +0.008698,242 +0.007998,242 +0.009916,242 +0.008943,242 +0.008820,242 +0.008849,242 +0.008685,242 +0.009261,242 +0.010206,242 +0.009261,242 +0.008096,242 +0.008463,242 +0.007979,242 +0.008195,242 +0.007949,242 +0.008773,242 +0.008035,242 +0.009100,242 +0.008042,242 +0.008596,242 +0.008102,242 +0.008360,242 +0.008007,242 +0.008242,242 +0.007991,242 +0.008185,242 +0.007931,242 +0.008300,242 +0.007946,242 +0.009118,242 +0.008265,242 +0.008771,242 +0.008246,242 +0.008730,244 +0.008402,244 +0.009118,244 +0.008417,244 +0.009298,244 +0.008481,244 +0.009313,244 +0.008668,244 +0.008875,244 +0.008600,244 +0.008772,244 +0.009428,244 +0.008755,244 +0.009235,244 +0.009010,244 +0.010082,244 +0.008771,244 +0.010093,244 +0.008906,244 +0.009613,244 +0.009461,244 +0.009210,244 +0.010194,244 +0.009208,244 +0.011270,244 +0.009555,244 +0.009779,244 +0.010409,244 +0.009468,244 +0.009655,244 +0.008584,244 +0.008506,244 +0.008732,244 +0.008071,244 +0.008374,244 +0.008024,244 +0.008208,244 +0.008216,244 +0.008539,244 +0.008170,244 +0.008311,244 +0.009333,244 +0.010456,244 +0.009038,244 +0.009488,244 +0.008646,244 +0.008772,244 +0.008282,244 +0.008996,244 +0.013515,244 +0.011108,244 +0.009122,244 +0.009141,244 +0.010592,244 +0.012973,244 +0.010900,244 +0.008776,244 +0.008599,244 +0.008271,244 +0.008535,244 +0.008380,244 +0.008547,244 +0.008541,244 +0.009122,244 +0.009425,244 +0.009985,244 +0.008869,244 +0.009671,244 +0.008826,244 +0.009167,244 +0.009475,244 +0.010463,244 +0.008845,244 +0.009068,244 +0.009923,244 +0.008686,244 +0.009351,244 +0.008841,244 +0.009443,244 +0.009230,244 +0.009117,244 +0.009444,244 +0.008598,244 +0.011855,244 +0.013583,244 +0.009072,244 +0.009092,244 +0.009185,244 +0.014677,244 +0.011672,244 +0.009429,244 +0.008713,244 +0.008714,244 +0.009273,244 +0.010116,244 +0.009393,244 +0.010491,244 +0.008408,244 +0.009318,244 +0.008508,244 +0.009858,246 +0.009395,246 +0.008938,246 +0.011050,246 +0.008977,246 +0.009164,246 +0.009213,246 +0.009397,246 +0.009276,246 +0.009221,246 +0.009539,246 +0.008873,246 +0.009992,246 +0.009103,246 +0.009691,246 +0.010062,246 +0.009052,246 +0.009601,246 +0.009269,246 +0.009436,246 +0.008698,246 +0.008780,246 +0.008658,246 +0.008635,246 +0.009383,246 +0.008811,246 +0.009192,246 +0.008760,246 +0.009154,246 +0.008547,246 +0.009660,246 +0.010609,246 +0.009080,246 +0.009131,246 +0.009144,246 +0.009341,246 +0.013315,246 +0.009230,246 +0.009309,246 +0.009871,246 +0.008865,246 +0.008572,246 +0.010704,246 +0.008672,246 +0.009686,246 +0.011265,246 +0.009018,246 +0.009531,246 +0.008655,246 +0.010740,246 +0.008935,246 +0.008863,246 +0.008870,246 +0.009304,246 +0.009020,246 +0.008978,246 +0.009087,246 +0.008751,246 +0.009580,246 +0.008960,246 +0.009217,246 +0.008830,246 +0.009173,246 +0.008646,246 +0.009105,246 +0.009314,246 +0.008384,246 +0.009238,246 +0.008834,246 +0.009322,246 +0.008750,246 +0.009035,246 +0.008676,246 +0.009955,246 +0.008648,246 +0.009108,246 +0.008685,246 +0.008831,246 +0.009185,246 +0.009365,246 +0.009642,246 +0.008500,246 +0.009377,246 +0.008589,246 +0.008932,246 +0.008653,246 +0.008815,246 +0.008795,246 +0.009015,246 +0.008711,246 +0.009558,246 +0.009287,246 +0.008655,246 +0.008782,246 +0.008563,246 +0.010632,246 +0.008627,246 +0.009575,246 +0.008599,246 +0.009215,246 +0.009130,248 +0.009244,248 +0.009282,248 +0.008789,248 +0.009308,248 +0.008727,248 +0.009762,248 +0.008719,248 +0.008883,248 +0.008873,248 +0.008978,248 +0.008867,248 +0.010259,248 +0.009395,248 +0.008633,248 +0.009338,248 +0.008758,248 +0.009328,248 +0.009498,248 +0.008909,248 +0.009063,248 +0.009817,248 +0.009740,248 +0.009207,248 +0.009438,248 +0.012479,248 +0.010154,248 +0.009249,248 +0.009299,248 +0.010087,248 +0.009723,248 +0.009695,248 +0.010362,248 +0.010546,248 +0.010629,248 +0.010528,248 +0.015329,248 +0.012274,248 +0.011152,248 +0.009396,248 +0.009280,248 +0.009034,248 +0.012744,248 +0.015582,248 +0.015658,248 +0.015078,248 +0.010024,248 +0.009239,248 +0.009943,248 +0.009773,248 +0.014537,248 +0.017530,248 +0.015920,248 +0.011957,248 +0.009105,248 +0.009083,248 +0.009202,248 +0.009940,248 +0.010099,248 +0.009476,248 +0.009598,248 +0.010707,248 +0.009195,248 +0.009424,248 +0.008605,248 +0.009276,248 +0.008892,248 +0.009204,248 +0.008877,248 +0.009213,248 +0.011625,248 +0.009214,248 +0.009382,248 +0.009043,248 +0.009214,248 +0.008909,248 +0.010248,248 +0.009246,248 +0.009236,248 +0.009438,248 +0.008784,248 +0.011077,248 +0.010114,248 +0.009304,248 +0.009221,248 +0.008766,248 +0.009307,248 +0.008864,248 +0.009873,248 +0.008852,248 +0.009311,248 +0.008867,248 +0.009239,248 +0.009388,248 +0.009156,248 +0.009197,248 +0.008510,248 +0.009130,248 +0.008669,248 +0.009244,248 +0.009025,250 +0.009350,250 +0.008872,250 +0.009456,250 +0.009317,250 +0.008936,250 +0.009422,250 +0.008982,250 +0.009744,250 +0.008988,250 +0.009696,250 +0.009359,250 +0.009167,250 +0.012349,250 +0.009517,250 +0.009812,250 +0.009119,250 +0.009061,250 +0.009260,250 +0.009456,250 +0.009952,250 +0.008818,250 +0.009474,250 +0.008798,250 +0.009091,250 +0.009133,250 +0.009540,250 +0.009433,250 +0.009249,250 +0.010214,250 +0.008713,250 +0.010148,250 +0.008962,250 +0.009849,250 +0.009456,250 +0.009602,250 +0.009677,250 +0.008792,250 +0.009677,250 +0.008841,250 +0.009685,250 +0.009485,250 +0.008924,250 +0.009592,250 +0.008825,250 +0.009603,250 +0.009132,250 +0.009784,250 +0.009045,250 +0.009499,250 +0.009518,250 +0.009109,250 +0.009879,250 +0.008919,250 +0.009706,250 +0.008915,250 +0.009780,250 +0.009812,250 +0.009038,250 +0.009642,250 +0.009030,250 +0.009746,250 +0.008882,250 +0.009732,250 +0.009126,250 +0.009544,250 +0.009785,250 +0.009096,250 +0.009853,250 +0.008885,250 +0.009660,250 +0.009002,250 +0.009631,250 +0.009679,250 +0.008955,250 +0.009704,250 +0.008887,250 +0.013027,250 +0.010948,250 +0.008987,250 +0.009630,250 +0.008881,250 +0.009727,250 +0.009298,250 +0.009833,250 +0.009567,250 +0.009455,250 +0.010065,250 +0.009454,250 +0.010091,250 +0.009412,250 +0.009077,250 +0.009636,250 +0.009303,250 +0.009526,250 +0.008877,250 +0.009605,250 +0.009191,250 +0.010011,250 +0.009709,250 +0.010231,252 +0.012990,252 +0.009854,252 +0.010859,252 +0.014675,252 +0.015726,252 +0.012810,252 +0.014456,252 +0.009736,252 +0.010464,252 +0.010532,252 +0.012710,252 +0.010361,252 +0.009999,252 +0.009827,252 +0.013812,252 +0.010463,252 +0.010301,252 +0.009966,252 +0.009810,252 +0.009776,252 +0.009550,252 +0.009727,252 +0.009798,252 +0.009014,252 +0.011330,252 +0.010802,252 +0.009600,252 +0.010121,252 +0.011557,252 +0.009966,252 +0.010390,252 +0.009430,252 +0.009848,252 +0.010062,252 +0.012363,252 +0.012036,252 +0.009869,252 +0.009844,252 +0.010969,252 +0.011726,252 +0.011246,252 +0.011567,252 +0.009282,252 +0.010693,252 +0.010142,252 +0.009920,252 +0.012229,252 +0.010075,252 +0.009732,252 +0.010298,252 +0.009082,252 +0.010190,252 +0.009417,252 +0.009715,252 +0.015873,252 +0.016372,252 +0.016583,252 +0.015830,252 +0.016000,252 +0.011421,252 +0.010158,252 +0.010739,252 +0.009456,252 +0.012964,252 +0.012191,252 +0.012941,252 +0.011451,252 +0.011859,252 +0.013485,252 +0.011426,252 +0.011688,252 +0.016568,252 +0.016182,252 +0.016828,252 +0.016195,252 +0.016573,252 +0.016100,252 +0.010000,252 +0.009507,252 +0.010536,252 +0.010492,252 +0.009154,252 +0.013518,252 +0.010619,252 +0.012216,252 +0.010740,252 +0.009764,252 +0.009365,252 +0.009776,252 +0.010528,252 +0.009679,252 +0.009761,252 +0.009547,252 +0.010305,252 +0.012599,252 +0.011673,252 +0.009893,252 +0.010159,252 +0.009324,252 +0.010555,254 +0.009937,254 +0.010597,254 +0.010326,254 +0.009800,254 +0.010106,254 +0.009499,254 +0.010620,254 +0.010066,254 +0.009924,254 +0.011003,254 +0.009747,254 +0.009786,254 +0.009392,254 +0.010399,254 +0.011080,254 +0.009258,254 +0.010474,254 +0.009610,254 +0.010054,254 +0.011508,254 +0.009480,254 +0.009833,254 +0.009961,254 +0.009436,254 +0.012692,254 +0.009641,254 +0.010464,254 +0.011081,254 +0.009649,254 +0.010144,254 +0.010091,254 +0.009405,254 +0.009991,254 +0.010172,254 +0.010449,254 +0.010108,254 +0.010207,254 +0.010032,254 +0.009369,254 +0.010225,254 +0.009678,254 +0.016870,254 +0.016472,254 +0.010452,254 +0.011093,254 +0.010473,254 +0.009599,254 +0.014770,254 +0.016677,254 +0.017813,254 +0.017380,254 +0.016409,254 +0.017041,254 +0.016572,254 +0.016370,254 +0.016605,254 +0.016964,254 +0.017444,254 +0.017205,254 +0.016628,254 +0.013205,254 +0.010322,254 +0.009270,254 +0.009769,254 +0.009492,254 +0.009941,254 +0.010107,254 +0.010101,254 +0.010084,254 +0.010374,254 +0.012121,254 +0.012037,254 +0.009778,254 +0.010571,254 +0.009853,254 +0.009496,254 +0.009743,254 +0.009096,254 +0.009745,254 +0.009021,254 +0.010155,254 +0.010309,254 +0.009889,254 +0.011350,254 +0.010828,254 +0.010240,254 +0.009932,254 +0.009917,254 +0.010543,254 +0.010089,254 +0.013366,254 +0.016995,254 +0.017477,254 +0.016690,254 +0.016894,254 +0.018866,254 +0.014139,254 +0.010406,254 +0.009661,254 +0.009779,256 +0.010680,256 +0.010421,256 +0.010054,256 +0.010939,256 +0.009451,256 +0.013862,256 +0.010243,256 +0.009519,256 +0.010374,256 +0.009982,256 +0.010124,256 +0.011400,256 +0.010499,256 +0.009763,256 +0.010973,256 +0.009887,256 +0.010968,256 +0.011389,256 +0.013785,256 +0.009945,256 +0.010088,256 +0.010515,256 +0.010346,256 +0.010209,256 +0.009981,256 +0.010826,256 +0.009649,256 +0.011957,256 +0.010635,256 +0.009541,256 +0.010679,256 +0.010541,256 +0.009604,256 +0.010616,256 +0.009487,256 +0.010491,256 +0.010836,256 +0.013541,256 +0.017591,256 +0.014169,256 +0.012726,256 +0.013956,256 +0.011220,256 +0.010190,256 +0.011644,256 +0.010571,256 +0.010247,256 +0.010495,256 +0.010289,256 +0.010695,256 +0.010168,256 +0.009805,256 +0.011205,256 +0.010342,256 +0.010553,256 +0.010728,256 +0.009985,256 +0.010386,256 +0.010392,256 +0.010682,256 +0.011283,256 +0.011353,256 +0.010878,256 +0.015319,256 +0.015399,256 +0.010297,256 +0.010587,256 +0.017157,256 +0.017762,256 +0.017091,256 +0.017641,256 +0.013289,256 +0.011448,256 +0.011872,256 +0.011224,256 +0.010420,256 +0.011012,256 +0.011475,256 +0.015462,256 +0.012049,256 +0.011826,256 +0.011497,256 +0.011092,256 +0.011921,256 +0.011552,256 +0.011640,256 +0.010822,256 +0.011117,256 +0.010751,256 +0.010827,256 +0.010403,256 +0.009689,256 +0.011013,256 +0.012598,256 +0.009945,256 +0.010082,256 +0.014993,256 +0.009717,256 +0.009882,256 +0.010107,258 +0.009770,258 +0.009796,258 +0.009472,258 +0.009749,258 +0.009416,258 +0.010430,258 +0.009918,258 +0.009482,258 +0.009579,258 +0.009374,258 +0.009683,258 +0.009468,258 +0.009405,258 +0.009450,258 +0.009404,258 +0.009560,258 +0.009866,258 +0.009767,258 +0.009467,258 +0.009433,258 +0.009574,258 +0.009596,258 +0.009561,258 +0.009546,258 +0.009753,258 +0.009619,258 +0.009744,258 +0.010196,258 +0.010095,258 +0.010383,258 +0.010210,258 +0.010262,258 +0.010389,258 +0.010256,258 +0.009983,258 +0.009761,258 +0.009582,258 +0.010053,258 +0.009413,258 +0.009532,258 +0.009446,258 +0.009426,258 +0.009423,258 +0.009346,258 +0.009422,258 +0.009347,258 +0.009394,258 +0.009674,258 +0.009704,258 +0.009396,258 +0.009351,258 +0.009391,258 +0.009346,258 +0.009475,258 +0.009598,258 +0.010080,258 +0.010452,258 +0.010871,258 +0.010423,258 +0.010513,258 +0.010116,258 +0.010210,258 +0.009958,258 +0.009968,258 +0.010047,258 +0.010058,258 +0.010037,258 +0.010153,258 +0.011575,258 +0.012614,258 +0.010947,258 +0.009669,258 +0.009714,258 +0.009688,258 +0.010026,258 +0.009516,258 +0.009797,258 +0.009955,258 +0.010176,258 +0.009922,258 +0.010324,258 +0.010263,258 +0.009942,258 +0.010075,258 +0.010010,258 +0.010313,258 +0.010602,258 +0.010260,258 +0.010234,258 +0.010394,258 +0.010284,258 +0.013337,258 +0.010676,258 +0.010417,258 +0.010114,258 +0.010350,258 +0.012891,258 +0.013548,258 +0.010766,258 +0.011532,260 +0.010968,260 +0.010756,260 +0.010761,260 +0.010170,260 +0.010459,260 +0.013812,260 +0.011390,260 +0.009759,260 +0.010005,260 +0.009683,260 +0.009912,260 +0.009788,260 +0.009833,260 +0.012760,260 +0.019698,260 +0.018735,260 +0.018137,260 +0.018051,260 +0.018126,260 +0.016454,260 +0.010452,260 +0.009917,260 +0.009712,260 +0.010646,260 +0.010046,260 +0.010721,260 +0.010848,260 +0.010831,260 +0.011017,260 +0.010318,260 +0.010154,260 +0.009890,260 +0.009848,260 +0.010152,260 +0.009949,260 +0.009642,260 +0.009848,260 +0.010376,260 +0.010758,260 +0.011059,260 +0.010853,260 +0.012435,260 +0.010276,260 +0.010300,260 +0.012000,260 +0.013294,260 +0.012111,260 +0.011801,260 +0.010755,260 +0.011994,260 +0.011919,260 +0.010789,260 +0.012048,260 +0.011977,260 +0.012300,260 +0.012509,260 +0.012142,260 +0.010451,260 +0.010635,260 +0.010448,260 +0.010917,260 +0.010891,260 +0.010783,260 +0.010708,260 +0.010749,260 +0.010585,260 +0.010855,260 +0.011117,260 +0.010729,260 +0.010794,260 +0.010692,260 +0.010542,260 +0.010503,260 +0.010549,260 +0.010460,260 +0.010503,260 +0.010593,260 +0.010516,260 +0.010728,260 +0.010585,260 +0.010632,260 +0.010700,260 +0.013832,260 +0.011336,260 +0.010597,260 +0.010557,260 +0.010810,260 +0.011117,260 +0.011006,260 +0.011358,260 +0.010412,260 +0.010276,260 +0.011562,260 +0.012203,260 +0.015970,260 +0.009911,260 +0.011294,260 +0.011579,260 +0.012378,260 +0.011885,262 +0.011688,262 +0.012098,262 +0.017249,262 +0.012328,262 +0.017765,262 +0.022648,262 +0.018523,262 +0.011370,262 +0.012250,262 +0.011140,262 +0.010837,262 +0.010156,262 +0.010665,262 +0.010573,262 +0.012050,262 +0.011725,262 +0.011434,262 +0.011467,262 +0.011308,262 +0.012422,262 +0.010747,262 +0.011455,262 +0.012212,262 +0.010871,262 +0.011883,262 +0.011414,262 +0.011060,262 +0.011012,262 +0.011690,262 +0.013613,262 +0.010994,262 +0.011202,262 +0.013261,262 +0.012546,262 +0.013007,262 +0.011315,262 +0.011240,262 +0.010581,262 +0.012079,262 +0.011860,262 +0.011337,262 +0.011544,262 +0.013034,262 +0.011081,262 +0.010664,262 +0.010906,262 +0.012053,262 +0.010731,262 +0.014121,262 +0.011711,262 +0.013684,262 +0.012036,262 +0.012383,262 +0.011715,262 +0.010776,262 +0.011244,262 +0.011810,262 +0.010253,262 +0.010740,262 +0.010743,262 +0.011492,262 +0.011037,262 +0.011238,262 +0.010825,262 +0.011052,262 +0.011090,262 +0.010108,262 +0.011135,262 +0.011111,262 +0.011944,262 +0.011301,262 +0.011062,262 +0.010266,262 +0.012399,262 +0.011177,262 +0.009959,262 +0.010554,262 +0.010458,262 +0.010451,262 +0.010572,262 +0.010284,262 +0.011125,262 +0.011215,262 +0.010490,262 +0.011294,262 +0.010950,262 +0.010181,262 +0.010554,262 +0.010798,262 +0.010588,262 +0.010938,262 +0.011195,262 +0.010304,262 +0.016095,262 +0.013226,262 +0.010853,262 +0.010454,262 +0.010427,262 +0.010101,262 +0.010794,264 +0.011579,264 +0.011372,264 +0.013671,264 +0.012693,264 +0.012298,264 +0.011387,264 +0.010932,264 +0.012185,264 +0.012093,264 +0.010862,264 +0.013355,264 +0.013758,264 +0.012014,264 +0.010772,264 +0.013846,264 +0.010442,264 +0.010146,264 +0.010189,264 +0.010453,264 +0.010165,264 +0.010202,264 +0.010154,264 +0.010184,264 +0.016234,264 +0.010232,264 +0.010653,264 +0.010957,264 +0.010317,264 +0.010160,264 +0.010207,264 +0.010154,264 +0.010074,264 +0.015739,264 +0.010218,264 +0.010167,264 +0.010198,264 +0.010039,264 +0.011495,264 +0.010973,264 +0.010209,264 +0.010213,264 +0.010392,264 +0.010206,264 +0.010219,264 +0.010150,264 +0.010204,264 +0.010077,264 +0.010029,264 +0.010081,264 +0.010087,264 +0.010062,264 +0.010284,264 +0.010231,264 +0.010156,264 +0.010122,264 +0.010094,264 +0.010179,264 +0.009974,264 +0.010217,264 +0.010331,264 +0.010127,264 +0.010511,264 +0.010212,264 +0.010175,264 +0.010099,264 +0.010354,264 +0.010094,264 +0.010020,264 +0.010053,264 +0.010128,264 +0.010016,264 +0.010424,264 +0.010017,264 +0.010142,264 +0.010322,264 +0.009975,264 +0.011610,264 +0.010608,264 +0.010153,264 +0.010441,264 +0.010130,264 +0.010610,264 +0.010203,264 +0.010101,264 +0.010052,264 +0.010070,264 +0.010221,264 +0.010127,264 +0.010209,264 +0.010113,264 +0.010248,264 +0.010656,264 +0.010227,264 +0.010537,264 +0.010463,264 +0.010206,264 +0.009976,264 +0.010978,264 +0.012841,264 +0.011457,266 +0.011325,266 +0.012660,266 +0.011298,266 +0.010768,266 +0.011054,266 +0.010783,266 +0.010563,266 +0.010470,266 +0.010377,266 +0.010594,266 +0.010372,266 +0.010286,266 +0.010322,266 +0.010281,266 +0.010319,266 +0.010380,266 +0.010277,266 +0.010316,266 +0.010538,266 +0.010632,266 +0.010314,266 +0.010246,266 +0.010298,266 +0.010313,266 +0.010222,266 +0.010392,266 +0.010303,266 +0.010258,266 +0.011083,266 +0.011373,266 +0.011394,266 +0.011423,266 +0.011494,266 +0.011362,266 +0.011225,266 +0.011327,266 +0.011162,266 +0.011533,266 +0.012106,266 +0.011551,266 +0.011496,266 +0.012078,266 +0.010990,266 +0.011217,266 +0.011571,266 +0.011147,266 +0.010625,266 +0.011689,266 +0.012289,266 +0.011349,266 +0.012935,266 +0.012327,266 +0.011804,266 +0.011409,266 +0.011983,266 +0.011368,266 +0.011151,266 +0.011225,266 +0.010653,266 +0.010704,266 +0.011275,266 +0.011230,266 +0.011698,266 +0.013166,266 +0.015349,266 +0.018412,266 +0.017065,266 +0.013121,266 +0.011527,266 +0.010822,266 +0.011982,266 +0.011018,266 +0.010638,266 +0.011363,266 +0.012734,266 +0.010482,266 +0.010728,266 +0.010993,266 +0.011482,266 +0.011666,266 +0.011318,266 +0.011667,266 +0.011474,266 +0.012265,266 +0.012166,266 +0.011736,266 +0.012148,266 +0.012070,266 +0.011598,266 +0.013895,266 +0.012129,266 +0.014653,266 +0.012137,266 +0.014748,266 +0.015828,266 +0.013458,266 +0.014819,266 +0.012846,266 +0.016506,266 +0.012439,268 +0.011157,268 +0.012181,268 +0.012792,268 +0.018302,268 +0.012486,268 +0.011053,268 +0.011819,268 +0.012515,268 +0.014427,268 +0.018408,268 +0.021454,268 +0.012570,268 +0.011423,268 +0.011239,268 +0.011432,268 +0.011399,268 +0.011265,268 +0.012256,268 +0.011688,268 +0.011787,268 +0.011798,268 +0.011951,268 +0.011667,268 +0.011537,268 +0.012007,268 +0.010827,268 +0.011254,268 +0.011534,268 +0.011232,268 +0.010853,268 +0.011462,268 +0.011062,268 +0.010949,268 +0.011541,268 +0.011058,268 +0.011035,268 +0.011518,268 +0.011622,268 +0.010679,268 +0.011386,268 +0.012035,268 +0.014004,268 +0.011193,268 +0.012148,268 +0.011543,268 +0.012519,268 +0.011213,268 +0.014361,268 +0.013364,268 +0.013924,268 +0.012259,268 +0.013628,268 +0.012660,268 +0.012574,268 +0.012317,268 +0.012326,268 +0.011779,268 +0.012059,268 +0.011431,268 +0.011946,268 +0.013517,268 +0.015301,268 +0.014987,268 +0.012013,268 +0.012194,268 +0.011377,268 +0.011686,268 +0.011386,268 +0.012465,268 +0.015420,268 +0.020418,268 +0.015497,268 +0.012483,268 +0.011771,268 +0.013726,268 +0.012621,268 +0.012090,268 +0.010986,268 +0.012368,268 +0.011458,268 +0.011811,268 +0.011334,268 +0.017564,268 +0.014490,268 +0.016207,268 +0.013307,268 +0.012526,268 +0.011412,268 +0.012655,268 +0.011794,268 +0.011151,268 +0.012182,268 +0.012015,268 +0.011588,268 +0.011319,268 +0.011843,268 +0.011518,268 +0.013115,268 +0.011957,268 +0.013827,270 +0.011480,270 +0.011624,270 +0.011960,270 +0.013117,270 +0.013719,270 +0.012665,270 +0.014312,270 +0.018070,270 +0.012840,270 +0.013579,270 +0.013749,270 +0.011697,270 +0.011351,270 +0.012223,270 +0.017580,270 +0.011414,270 +0.011318,270 +0.011599,270 +0.011700,270 +0.012627,270 +0.011451,270 +0.011609,270 +0.011333,270 +0.011392,270 +0.010944,270 +0.010892,270 +0.011558,270 +0.011820,270 +0.011908,270 +0.011294,270 +0.011460,270 +0.013014,270 +0.014360,270 +0.011905,270 +0.011698,270 +0.011326,270 +0.011469,270 +0.011072,270 +0.011061,270 +0.012363,270 +0.011825,270 +0.012339,270 +0.011823,270 +0.014907,270 +0.011328,270 +0.011481,270 +0.011953,270 +0.014402,270 +0.014933,270 +0.011434,270 +0.011730,270 +0.011142,270 +0.011680,270 +0.011440,270 +0.011634,270 +0.011048,270 +0.012270,270 +0.011313,270 +0.011724,270 +0.011649,270 +0.014341,270 +0.017158,270 +0.013464,270 +0.011567,270 +0.011611,270 +0.011913,270 +0.013445,270 +0.011918,270 +0.015169,270 +0.014472,270 +0.011883,270 +0.012696,270 +0.012013,270 +0.011942,270 +0.011916,270 +0.011145,270 +0.013960,270 +0.012014,270 +0.011429,270 +0.011623,270 +0.013834,270 +0.011994,270 +0.011362,270 +0.010976,270 +0.011128,270 +0.010985,270 +0.011327,270 +0.011608,270 +0.013648,270 +0.011881,270 +0.011458,270 +0.011348,270 +0.011615,270 +0.012125,270 +0.011188,270 +0.013129,270 +0.011223,270 +0.011644,270 +0.011201,270 +0.011853,272 +0.012187,272 +0.012305,272 +0.013455,272 +0.012277,272 +0.012017,272 +0.015585,272 +0.012174,272 +0.011242,272 +0.011910,272 +0.011257,272 +0.011207,272 +0.011918,272 +0.011065,272 +0.011464,272 +0.012213,272 +0.011118,272 +0.011124,272 +0.011316,272 +0.011282,272 +0.011464,272 +0.011202,272 +0.011479,272 +0.011615,272 +0.011943,272 +0.011892,272 +0.011300,272 +0.013015,272 +0.011799,272 +0.012453,272 +0.011830,272 +0.015279,272 +0.013138,272 +0.011969,272 +0.012412,272 +0.013635,272 +0.011874,272 +0.012776,272 +0.012803,272 +0.012065,272 +0.012143,272 +0.011485,272 +0.011841,272 +0.012257,272 +0.012161,272 +0.011664,272 +0.012727,272 +0.012390,272 +0.011519,272 +0.012903,272 +0.012968,272 +0.011564,272 +0.011474,272 +0.012503,272 +0.013555,272 +0.011861,272 +0.017892,272 +0.012202,272 +0.011796,272 +0.011900,272 +0.011608,272 +0.011639,272 +0.012110,272 +0.011517,272 +0.011523,272 +0.011379,272 +0.011210,272 +0.011205,272 +0.011195,272 +0.011060,272 +0.011284,272 +0.011000,272 +0.011011,272 +0.011319,272 +0.010966,272 +0.011012,272 +0.011026,272 +0.010966,272 +0.010985,272 +0.011140,272 +0.010966,272 +0.011092,272 +0.011223,272 +0.010995,272 +0.011014,272 +0.010989,272 +0.010997,272 +0.010986,272 +0.011621,272 +0.010976,272 +0.011770,272 +0.011894,272 +0.012049,272 +0.012264,272 +0.012022,272 +0.011747,272 +0.012237,272 +0.012840,272 +0.012496,272 +0.018836,272 +0.012484,274 +0.011528,274 +0.011521,274 +0.011412,274 +0.011490,274 +0.011426,274 +0.011435,274 +0.017460,274 +0.011924,274 +0.011255,274 +0.011323,274 +0.011351,274 +0.011352,274 +0.011390,274 +0.011604,274 +0.014364,274 +0.014529,274 +0.011399,274 +0.011264,274 +0.011219,274 +0.011388,274 +0.011373,274 +0.011226,274 +0.011304,274 +0.017376,274 +0.011361,274 +0.011385,274 +0.011204,274 +0.011264,274 +0.011887,274 +0.011308,274 +0.011339,274 +0.017406,274 +0.013205,274 +0.012187,274 +0.011445,274 +0.011474,274 +0.011793,274 +0.011532,274 +0.011725,274 +0.017909,274 +0.011546,274 +0.012766,274 +0.011466,274 +0.011593,274 +0.011637,274 +0.011641,274 +0.013013,274 +0.018135,274 +0.013629,274 +0.011539,274 +0.012274,274 +0.012491,274 +0.011918,274 +0.012186,274 +0.011985,274 +0.017766,274 +0.011750,274 +0.011517,274 +0.011799,274 +0.011707,274 +0.011869,274 +0.012377,274 +0.012414,274 +0.011907,274 +0.012177,274 +0.011493,274 +0.011761,274 +0.012167,274 +0.012437,274 +0.011576,274 +0.011602,274 +0.012961,274 +0.011365,274 +0.011398,274 +0.011277,274 +0.011328,274 +0.011243,274 +0.011415,274 +0.011370,274 +0.011262,274 +0.013047,274 +0.011328,274 +0.011282,274 +0.011300,274 +0.011189,274 +0.011350,274 +0.011451,274 +0.011256,274 +0.011985,274 +0.012333,274 +0.011306,274 +0.011182,274 +0.011293,274 +0.011283,274 +0.011312,274 +0.011405,274 +0.011258,274 +0.012624,274 +0.011732,274 +0.011626,276 +0.011830,276 +0.011472,276 +0.011444,276 +0.012230,276 +0.011908,276 +0.011449,276 +0.013251,276 +0.011545,276 +0.011906,276 +0.011556,276 +0.011654,276 +0.011653,276 +0.011543,276 +0.011620,276 +0.014764,276 +0.012550,276 +0.011524,276 +0.011551,276 +0.011626,276 +0.011757,276 +0.012318,276 +0.011735,276 +0.012132,276 +0.012866,276 +0.011526,276 +0.011551,276 +0.011645,276 +0.011461,276 +0.011700,276 +0.011646,276 +0.011464,276 +0.013195,276 +0.011691,276 +0.011567,276 +0.011444,276 +0.011548,276 +0.011577,276 +0.011507,276 +0.011613,276 +0.011945,276 +0.013265,276 +0.011492,276 +0.011523,276 +0.011529,276 +0.011488,276 +0.011626,276 +0.011577,276 +0.011430,276 +0.013222,276 +0.011690,276 +0.011585,276 +0.011442,276 +0.011534,276 +0.011572,276 +0.011527,276 +0.011698,276 +0.011460,276 +0.013457,276 +0.011480,276 +0.011521,276 +0.011593,276 +0.011477,276 +0.011625,276 +0.011618,276 +0.011504,276 +0.013268,276 +0.011676,276 +0.011595,276 +0.011449,276 +0.011510,276 +0.011694,276 +0.011560,276 +0.011675,276 +0.011486,276 +0.013421,276 +0.011482,276 +0.011500,276 +0.011549,276 +0.011423,276 +0.011618,276 +0.011554,276 +0.011484,276 +0.013115,276 +0.011791,276 +0.011593,276 +0.011446,276 +0.011472,276 +0.011623,276 +0.011769,276 +0.011809,276 +0.011456,276 +0.013300,276 +0.011511,276 +0.011486,276 +0.011532,276 +0.011444,276 +0.011601,276 +0.011573,276 +0.011466,276 +0.014016,278 +0.012821,278 +0.011816,278 +0.011791,278 +0.011814,278 +0.011808,278 +0.011876,278 +0.011704,278 +0.012423,278 +0.013013,278 +0.011796,278 +0.011863,278 +0.011816,278 +0.012011,278 +0.011901,278 +0.011876,278 +0.011801,278 +0.013614,278 +0.012472,278 +0.011975,278 +0.011879,278 +0.011779,278 +0.011925,278 +0.011799,278 +0.011921,278 +0.013394,278 +0.012003,278 +0.011716,278 +0.011783,278 +0.011709,278 +0.011817,278 +0.011915,278 +0.011706,278 +0.012678,278 +0.012789,278 +0.011801,278 +0.011737,278 +0.011810,278 +0.011883,278 +0.011786,278 +0.011824,278 +0.011753,278 +0.013593,278 +0.011803,278 +0.011789,278 +0.011834,278 +0.011888,278 +0.011825,278 +0.011847,278 +0.011877,278 +0.013396,278 +0.011984,278 +0.011737,278 +0.011921,278 +0.011703,278 +0.011848,278 +0.012008,278 +0.012461,278 +0.013065,278 +0.015012,278 +0.011799,278 +0.011843,278 +0.011725,278 +0.011822,278 +0.011867,278 +0.011685,278 +0.012549,278 +0.017619,278 +0.012041,278 +0.011872,278 +0.011734,278 +0.011846,278 +0.011907,278 +0.011726,278 +0.013490,278 +0.016518,278 +0.012111,278 +0.011972,278 +0.011709,278 +0.011893,278 +0.011847,278 +0.011849,278 +0.013321,278 +0.017125,278 +0.011849,278 +0.012183,278 +0.011838,278 +0.011931,278 +0.011931,278 +0.011880,278 +0.016327,278 +0.013564,278 +0.011901,278 +0.011785,278 +0.012227,278 +0.012016,278 +0.015415,278 +0.012437,278 +0.018601,278 +0.011967,278 +0.012358,280 +0.012528,280 +0.012497,280 +0.012089,280 +0.012103,280 +0.013682,280 +0.016582,280 +0.011985,280 +0.012008,280 +0.012124,280 +0.012076,280 +0.012043,280 +0.012039,280 +0.015314,280 +0.015128,280 +0.011979,280 +0.012000,280 +0.012176,280 +0.012002,280 +0.012048,280 +0.011957,280 +0.017007,280 +0.013269,280 +0.011976,280 +0.012094,280 +0.012067,280 +0.012082,280 +0.012120,280 +0.011987,280 +0.018353,280 +0.012012,280 +0.012067,280 +0.011959,280 +0.012076,280 +0.012149,280 +0.011906,280 +0.012002,280 +0.018332,280 +0.012014,280 +0.012062,280 +0.011926,280 +0.012084,280 +0.012065,280 +0.012078,280 +0.011952,280 +0.018367,280 +0.012072,280 +0.011984,280 +0.012042,280 +0.012131,280 +0.012037,280 +0.012020,280 +0.011885,280 +0.018517,280 +0.012033,280 +0.011994,280 +0.012136,280 +0.012023,280 +0.012108,280 +0.012008,280 +0.012312,280 +0.019490,280 +0.012129,280 +0.012053,280 +0.012023,280 +0.012058,280 +0.011982,280 +0.012002,280 +0.015990,280 +0.014953,280 +0.012328,280 +0.012194,280 +0.012157,280 +0.012081,280 +0.012064,280 +0.011945,280 +0.018334,280 +0.012104,280 +0.011964,280 +0.012029,280 +0.012046,280 +0.012069,280 +0.012067,280 +0.012037,280 +0.018357,280 +0.011993,280 +0.012012,280 +0.012035,280 +0.012176,280 +0.011944,280 +0.011945,280 +0.012023,280 +0.018378,280 +0.012070,280 +0.011964,280 +0.012046,280 +0.012120,280 +0.011925,280 +0.011982,280 +0.012008,280 +0.018777,282 +0.012455,282 +0.012229,282 +0.012423,282 +0.012639,282 +0.012323,282 +0.012197,282 +0.017554,282 +0.013383,282 +0.012235,282 +0.012296,282 +0.012469,282 +0.012245,282 +0.012271,282 +0.012269,282 +0.018619,282 +0.012279,282 +0.012240,282 +0.012295,282 +0.012357,282 +0.012275,282 +0.012292,282 +0.012448,282 +0.018508,282 +0.012233,282 +0.012294,282 +0.012277,282 +0.012265,282 +0.012279,282 +0.012284,282 +0.016910,282 +0.014048,282 +0.012333,282 +0.012298,282 +0.012427,282 +0.012202,282 +0.012237,282 +0.012336,282 +0.019885,282 +0.012457,282 +0.012339,282 +0.012278,282 +0.012321,282 +0.012412,282 +0.012197,282 +0.015114,282 +0.016011,282 +0.012308,282 +0.012356,282 +0.012507,282 +0.012255,282 +0.012235,282 +0.012698,282 +0.019801,282 +0.013296,282 +0.013066,282 +0.012764,282 +0.012640,282 +0.012618,282 +0.012736,282 +0.016990,282 +0.014150,282 +0.012346,282 +0.012283,282 +0.012471,282 +0.012238,282 +0.012256,282 +0.012278,282 +0.018771,282 +0.012374,282 +0.012408,282 +0.012287,282 +0.012941,282 +0.012385,282 +0.012293,282 +0.014701,282 +0.016269,282 +0.012355,282 +0.012353,282 +0.012427,282 +0.012444,282 +0.012636,282 +0.013100,282 +0.020059,282 +0.013754,282 +0.015306,282 +0.013966,282 +0.013118,282 +0.013573,282 +0.013209,282 +0.013211,282 +0.013682,282 +0.013451,282 +0.013830,282 +0.016563,282 +0.014275,282 +0.013191,282 +0.014931,282 +0.013361,282 +0.013060,282 +0.013946,284 +0.013994,284 +0.013735,284 +0.013689,284 +0.015005,284 +0.013579,284 +0.013733,284 +0.013731,284 +0.014022,284 +0.013994,284 +0.013784,284 +0.013775,284 +0.013650,284 +0.013812,284 +0.013409,284 +0.013660,284 +0.013485,284 +0.013261,284 +0.012729,284 +0.013414,284 +0.012799,284 +0.012514,284 +0.012703,284 +0.012598,284 +0.012822,284 +0.012455,284 +0.012624,284 +0.012976,284 +0.012607,284 +0.012557,284 +0.012518,284 +0.012584,284 +0.012541,284 +0.013689,284 +0.013699,284 +0.013100,284 +0.013475,284 +0.012920,284 +0.013383,284 +0.014202,284 +0.014666,284 +0.014012,284 +0.013489,284 +0.013736,284 +0.013426,284 +0.013414,284 +0.013479,284 +0.013610,284 +0.013781,284 +0.013853,284 +0.014394,284 +0.013401,284 +0.013368,284 +0.013851,284 +0.013561,284 +0.013997,284 +0.013764,284 +0.015446,284 +0.013561,284 +0.013659,284 +0.013920,284 +0.013185,284 +0.013524,284 +0.013365,284 +0.015054,284 +0.014309,284 +0.013730,284 +0.013936,284 +0.013663,284 +0.013726,284 +0.013492,284 +0.014247,284 +0.013913,284 +0.013512,284 +0.013265,284 +0.013152,284 +0.012955,284 +0.012899,284 +0.012563,284 +0.012663,284 +0.012529,284 +0.012587,284 +0.012622,284 +0.012544,284 +0.012493,284 +0.012484,284 +0.012470,284 +0.012798,284 +0.012542,284 +0.012523,284 +0.012628,284 +0.012525,284 +0.012440,284 +0.012487,284 +0.012466,284 +0.012660,284 +0.012507,284 +0.012504,284 +0.012633,284 +0.012492,284 +0.012885,286 +0.012740,286 +0.012743,286 +0.012959,286 +0.012753,286 +0.012818,286 +0.012940,286 +0.012742,286 +0.012681,286 +0.012706,286 +0.012818,286 +0.013008,286 +0.012674,286 +0.012738,286 +0.013173,286 +0.012881,286 +0.012797,286 +0.013203,286 +0.013836,286 +0.013470,286 +0.013405,286 +0.013145,286 +0.013560,286 +0.013173,286 +0.012748,286 +0.012981,286 +0.013443,286 +0.013051,286 +0.012730,286 +0.012914,286 +0.012685,286 +0.012631,286 +0.012703,286 +0.012712,286 +0.013049,286 +0.012640,286 +0.012690,286 +0.012926,286 +0.012703,286 +0.012614,286 +0.012685,286 +0.012711,286 +0.013000,286 +0.012728,286 +0.012750,286 +0.012863,286 +0.012725,286 +0.012820,286 +0.012615,286 +0.012768,286 +0.012977,286 +0.012775,286 +0.012779,286 +0.012877,286 +0.012749,286 +0.012727,286 +0.012663,286 +0.012842,286 +0.012997,286 +0.012824,286 +0.012818,286 +0.012674,286 +0.012758,286 +0.012853,286 +0.012863,286 +0.012864,286 +0.012988,286 +0.012823,286 +0.012866,286 +0.012704,286 +0.012687,286 +0.012745,286 +0.012806,286 +0.013069,286 +0.012840,286 +0.012767,286 +0.012968,286 +0.012784,286 +0.012612,286 +0.012711,286 +0.012723,286 +0.013276,286 +0.012728,286 +0.012752,286 +0.012881,286 +0.012702,286 +0.012743,286 +0.012612,286 +0.012753,286 +0.013214,286 +0.012757,286 +0.012776,286 +0.012821,286 +0.012775,286 +0.012750,286 +0.012712,286 +0.012857,286 +0.013142,286 +0.012788,286 +0.012879,286 +0.013201,288 +0.012976,288 +0.013002,288 +0.012988,288 +0.013214,288 +0.013187,288 +0.013072,288 +0.013409,288 +0.013022,288 +0.012897,288 +0.013063,288 +0.012993,288 +0.013472,288 +0.013100,288 +0.012897,288 +0.013178,288 +0.013025,288 +0.013024,288 +0.013205,288 +0.013200,288 +0.013378,288 +0.013053,288 +0.013097,288 +0.014063,288 +0.013531,288 +0.013111,288 +0.012972,288 +0.013326,288 +0.013193,288 +0.013007,288 +0.013126,288 +0.013079,288 +0.013020,288 +0.013074,288 +0.013201,288 +0.013680,288 +0.013155,288 +0.013164,288 +0.013608,288 +0.013087,288 +0.013348,288 +0.013029,288 +0.013178,288 +0.013346,288 +0.013070,288 +0.013138,288 +0.013156,288 +0.013135,288 +0.013054,288 +0.013051,288 +0.013585,288 +0.014019,288 +0.013054,288 +0.013111,288 +0.013063,288 +0.013061,288 +0.013035,288 +0.013075,288 +0.013358,288 +0.013098,288 +0.013045,288 +0.013083,288 +0.012938,288 +0.012982,288 +0.013000,288 +0.013198,288 +0.013349,288 +0.013032,288 +0.013157,288 +0.013035,288 +0.013016,288 +0.012915,288 +0.013047,288 +0.013452,288 +0.013033,288 +0.012995,288 +0.012971,288 +0.013044,288 +0.013024,288 +0.012997,288 +0.013056,288 +0.013446,288 +0.013038,288 +0.013153,288 +0.013140,288 +0.012877,288 +0.012974,288 +0.013012,288 +0.013184,288 +0.013406,288 +0.012904,288 +0.013190,288 +0.013045,288 +0.013018,288 +0.012908,288 +0.012955,288 +0.013446,288 +0.013057,288 +0.013114,288 +0.012941,288 +0.013481,290 +0.013334,290 +0.013320,290 +0.013323,290 +0.013687,290 +0.013270,290 +0.013456,290 +0.013301,290 +0.013286,290 +0.013170,290 +0.013281,290 +0.013732,290 +0.013544,290 +0.013473,290 +0.014077,290 +0.013593,290 +0.013379,290 +0.013369,290 +0.013526,290 +0.013858,290 +0.013238,290 +0.013551,290 +0.013339,290 +0.013329,290 +0.013351,290 +0.013180,290 +0.013894,290 +0.013400,290 +0.013488,290 +0.013460,290 +0.013149,290 +0.013432,290 +0.014937,290 +0.013927,290 +0.013685,290 +0.013380,290 +0.013409,290 +0.013391,290 +0.013376,290 +0.013751,290 +0.013292,290 +0.013819,290 +0.013339,290 +0.013473,290 +0.013314,290 +0.013291,290 +0.013173,290 +0.013790,290 +0.013684,290 +0.013551,290 +0.013448,290 +0.013325,290 +0.013243,290 +0.013352,290 +0.013321,290 +0.013306,290 +0.013955,290 +0.013242,290 +0.013509,290 +0.013295,290 +0.013302,290 +0.013305,290 +0.013144,290 +0.013688,290 +0.013629,290 +0.013456,290 +0.013424,290 +0.013146,290 +0.013349,290 +0.013292,290 +0.013466,290 +0.013820,290 +0.013269,290 +0.013694,290 +0.013465,290 +0.013425,290 +0.013293,290 +0.013317,290 +0.013721,290 +0.013529,290 +0.013479,290 +0.013367,290 +0.013148,290 +0.013268,290 +0.013541,290 +0.013400,290 +0.013686,290 +0.013212,290 +0.013478,290 +0.013329,290 +0.013299,290 +0.013286,290 +0.013170,290 +0.013637,290 +0.013704,290 +0.013489,290 +0.013450,290 +0.013332,290 +0.013141,290 +0.013324,290 +0.014173,292 +0.013964,292 +0.013706,292 +0.013608,292 +0.013528,292 +0.013538,292 +0.013556,292 +0.013539,292 +0.014056,292 +0.013518,292 +0.013774,292 +0.013569,292 +0.013601,292 +0.013535,292 +0.013463,292 +0.013851,292 +0.013804,292 +0.013714,292 +0.013679,292 +0.013573,292 +0.013422,292 +0.013563,292 +0.013673,292 +0.013962,292 +0.013572,292 +0.013598,292 +0.013531,292 +0.013587,292 +0.013540,292 +0.013535,292 +0.013977,292 +0.013441,292 +0.013751,292 +0.013548,292 +0.013621,292 +0.013551,292 +0.013401,292 +0.013880,292 +0.013904,292 +0.013742,292 +0.013665,292 +0.013593,292 +0.013414,292 +0.013546,292 +0.013682,292 +0.014659,292 +0.014596,292 +0.014658,292 +0.013872,292 +0.014497,292 +0.014095,292 +0.014564,292 +0.014594,292 +0.015230,292 +0.014673,292 +0.014149,292 +0.014151,292 +0.014572,292 +0.014287,292 +0.014656,292 +0.014418,292 +0.014275,292 +0.013836,292 +0.013588,292 +0.013943,292 +0.014227,292 +0.014491,292 +0.014003,292 +0.013849,292 +0.013481,292 +0.014047,292 +0.013839,292 +0.013693,292 +0.014099,292 +0.015242,292 +0.014441,292 +0.014667,292 +0.015529,292 +0.016512,292 +0.016460,292 +0.015420,292 +0.016760,292 +0.014867,292 +0.014562,292 +0.014597,292 +0.014859,292 +0.014662,292 +0.014812,292 +0.015283,292 +0.015188,292 +0.014670,292 +0.014191,292 +0.014242,292 +0.014280,292 +0.014270,292 +0.014309,292 +0.013729,292 +0.013819,292 +0.014126,292 +0.013795,292 +0.014795,294 +0.014027,294 +0.013913,294 +0.013824,294 +0.015135,294 +0.016026,294 +0.015641,294 +0.015718,294 +0.015860,294 +0.015509,294 +0.015591,294 +0.014985,294 +0.015005,294 +0.016038,294 +0.016855,294 +0.016140,294 +0.015329,294 +0.015619,294 +0.015057,294 +0.014654,294 +0.015085,294 +0.015368,294 +0.015454,294 +0.015917,294 +0.015275,294 +0.015016,294 +0.015117,294 +0.015881,294 +0.017002,294 +0.016115,294 +0.016410,294 +0.015987,294 +0.014855,294 +0.015974,294 +0.014814,294 +0.015446,294 +0.015848,294 +0.015758,294 +0.014875,294 +0.014658,294 +0.014860,294 +0.015297,294 +0.016768,294 +0.015180,294 +0.014770,294 +0.015168,294 +0.015061,294 +0.015951,294 +0.017409,294 +0.017436,294 +0.017312,294 +0.015754,294 +0.016206,294 +0.016827,294 +0.016502,294 +0.016044,294 +0.015842,294 +0.018897,294 +0.019509,294 +0.018065,294 +0.019213,294 +0.015811,294 +0.015241,294 +0.014296,294 +0.015615,294 +0.017037,294 +0.017171,294 +0.015242,294 +0.015142,294 +0.015733,294 +0.016041,294 +0.015273,294 +0.015189,294 +0.015082,294 +0.015422,294 +0.016060,294 +0.016130,294 +0.016446,294 +0.017918,294 +0.016325,294 +0.016780,294 +0.015085,294 +0.014598,294 +0.015548,294 +0.018661,294 +0.018239,294 +0.015832,294 +0.015122,294 +0.018574,294 +0.017859,294 +0.016707,294 +0.014995,294 +0.015211,294 +0.014929,294 +0.015035,294 +0.014774,294 +0.014655,294 +0.015027,294 +0.015038,294 +0.015198,294 +0.014681,296 +0.014288,296 +0.015142,296 +0.015681,296 +0.015230,296 +0.015222,296 +0.015204,296 +0.015051,296 +0.015135,296 +0.015832,296 +0.016320,296 +0.015317,296 +0.015174,296 +0.014283,296 +0.016614,296 +0.016972,296 +0.014858,296 +0.014459,296 +0.014602,296 +0.014277,296 +0.015539,296 +0.015612,296 +0.016112,296 +0.015737,296 +0.015104,296 +0.014696,296 +0.015561,296 +0.015715,296 +0.015489,296 +0.015198,296 +0.015239,296 +0.015045,296 +0.015285,296 +0.015164,296 +0.014412,296 +0.014795,296 +0.014220,296 +0.014082,296 +0.013997,296 +0.014116,296 +0.014535,296 +0.014673,296 +0.015166,296 +0.015054,296 +0.014801,296 +0.016423,296 +0.019121,296 +0.016707,296 +0.017321,296 +0.015645,296 +0.015656,296 +0.014643,296 +0.014348,296 +0.014928,296 +0.015420,296 +0.015165,296 +0.015154,296 +0.014837,296 +0.015405,296 +0.015458,296 +0.023828,296 +0.024815,296 +0.016970,296 +0.017982,296 +0.015732,296 +0.016239,296 +0.015299,296 +0.014810,296 +0.014520,296 +0.014830,296 +0.015901,296 +0.015074,296 +0.015274,296 +0.016604,296 +0.015285,296 +0.014779,296 +0.015344,296 +0.015064,296 +0.014944,296 +0.016107,296 +0.015013,296 +0.014853,296 +0.014481,296 +0.015386,296 +0.014975,296 +0.015724,296 +0.014866,296 +0.015657,296 +0.014461,296 +0.014291,296 +0.014056,296 +0.014826,296 +0.014428,296 +0.015374,296 +0.014666,296 +0.015026,296 +0.014345,296 +0.014619,296 +0.015102,296 +0.014787,296 +0.015666,298 +0.014854,298 +0.015187,298 +0.015992,298 +0.016170,298 +0.015382,298 +0.016049,298 +0.015758,298 +0.016153,298 +0.015938,298 +0.016403,298 +0.016760,298 +0.016727,298 +0.017336,298 +0.015007,298 +0.015812,298 +0.016600,298 +0.017088,298 +0.021346,298 +0.016721,298 +0.018078,298 +0.016002,298 +0.015634,298 +0.016869,298 +0.015550,298 +0.015720,298 +0.015011,298 +0.015664,298 +0.015481,298 +0.015510,298 +0.018328,298 +0.020421,298 +0.015091,298 +0.014703,298 +0.014954,298 +0.014855,298 +0.016252,298 +0.017516,298 +0.018290,298 +0.017556,298 +0.016717,298 +0.019328,298 +0.018002,298 +0.017207,298 +0.017260,298 +0.016040,298 +0.015982,298 +0.015778,298 +0.016230,298 +0.017668,298 +0.016499,298 +0.017272,298 +0.015800,298 +0.015261,298 +0.015103,298 +0.015956,298 +0.016004,298 +0.016785,298 +0.016497,298 +0.015962,298 +0.015830,298 +0.017555,298 +0.016003,298 +0.016073,298 +0.016233,298 +0.016343,298 +0.015528,298 +0.017081,298 +0.015666,298 +0.015200,298 +0.015575,298 +0.014971,298 +0.015492,298 +0.016195,298 +0.016266,298 +0.015414,298 +0.015653,298 +0.015342,298 +0.015384,298 +0.015154,298 +0.017177,298 +0.016570,298 +0.017330,298 +0.016724,298 +0.018397,298 +0.021554,298 +0.025023,298 +0.016175,298 +0.017001,298 +0.016864,298 +0.016334,298 +0.016042,298 +0.015923,298 +0.017484,298 +0.016283,298 +0.014971,298 +0.015364,298 +0.016135,298 +0.016538,298 +0.015348,298 diff --git a/buch/papers/multiplikation/code/meas/test/winograd.txt b/buch/papers/multiplikation/code/meas/test/winograd.txt new file mode 100644 index 0000000..d01fefd --- /dev/null +++ b/buch/papers/multiplikation/code/meas/test/winograd.txt @@ -0,0 +1,14900 @@ +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000010,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000010,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000010,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000011,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000010,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000001,6 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000012,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000012,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000014,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000015,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000013,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000012,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000013,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000005,10 +0.000005,10 +0.000005,10 +0.000014,10 +0.000004,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000003,10 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000015,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000014,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000005,12 +0.000008,14 +0.000008,14 +0.000018,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000017,14 +0.000012,14 +0.000013,14 +0.000009,14 +0.000011,14 +0.000014,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000014,14 +0.000013,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000015,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000012,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000009,14 +0.000010,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000017,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000008,14 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000022,16 +0.000011,16 +0.000011,16 +0.000020,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000021,16 +0.000011,16 +0.000011,16 +0.000020,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000016,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000027,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000015,18 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000026,20 +0.000028,20 +0.000031,20 +0.000031,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000031,20 +0.000052,20 +0.000021,20 +0.000021,20 +0.000030,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000028,20 +0.000025,20 +0.000032,20 +0.000036,20 +0.000031,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000021,20 +0.000031,20 +0.000021,20 +0.000030,20 +0.000031,20 +0.000048,22 +0.000038,22 +0.000028,22 +0.000037,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000035,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000035,22 +0.000037,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000029,22 +0.000042,22 +0.000042,22 +0.000036,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000027,22 +0.000036,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000052,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000047,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000048,24 +0.000070,24 +0.000045,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000046,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000035,24 +0.000043,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000034,24 +0.000044,26 +0.000043,26 +0.000052,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000044,26 +0.000057,26 +0.000045,26 +0.000044,26 +0.000044,26 +0.000052,26 +0.000043,26 +0.000043,26 +0.000084,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000061,26 +0.000062,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000053,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000067,26 +0.000073,26 +0.000044,26 +0.000072,26 +0.000074,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000061,26 +0.000057,26 +0.000053,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000043,26 +0.000065,26 +0.000091,26 +0.000047,26 +0.000044,26 +0.000044,26 +0.000048,26 +0.000044,26 +0.000044,26 +0.000049,26 +0.000048,26 +0.000053,26 +0.000043,26 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000084,28 +0.000084,28 +0.000098,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000064,28 +0.000084,28 +0.000064,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000081,28 +0.000063,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000064,28 +0.000074,28 +0.000085,28 +0.000095,28 +0.000063,28 +0.000054,28 +0.000064,28 +0.000073,28 +0.000085,28 +0.000064,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000053,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000062,28 +0.000092,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000054,28 +0.000067,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000098,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000104,30 +0.000077,30 +0.000127,30 +0.000075,30 +0.000065,30 +0.000066,30 +0.000095,30 +0.000086,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000076,30 +0.000087,30 +0.000140,30 +0.000075,30 +0.000066,30 +0.000085,30 +0.000106,30 +0.000076,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000101,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000074,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000067,30 +0.000098,30 +0.000108,30 +0.000075,30 +0.000065,30 +0.000085,30 +0.000106,30 +0.000076,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000066,30 +0.000065,30 +0.000065,30 +0.000076,30 +0.000081,30 +0.000103,30 +0.000096,30 +0.000069,30 +0.000091,30 +0.000080,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000090,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000110,32 +0.000138,32 +0.000099,32 +0.000079,32 +0.000099,32 +0.000120,32 +0.000089,32 +0.000079,32 +0.000119,32 +0.000121,32 +0.000081,32 +0.000085,32 +0.000086,32 +0.000093,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000114,32 +0.000110,32 +0.000155,32 +0.000089,32 +0.000079,32 +0.000090,32 +0.000120,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000109,32 +0.000112,32 +0.000132,32 +0.000079,32 +0.000079,32 +0.000121,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000105,32 +0.000089,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000103,32 +0.000089,32 +0.000096,34 +0.000094,34 +0.000094,34 +0.000125,34 +0.000139,34 +0.000115,34 +0.000114,34 +0.000136,34 +0.000104,34 +0.000094,34 +0.000104,34 +0.000119,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000126,34 +0.000168,34 +0.000104,34 +0.000115,34 +0.000136,34 +0.000105,34 +0.000095,34 +0.000139,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000106,34 +0.000159,34 +0.000134,34 +0.000095,34 +0.000125,34 +0.000116,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000131,34 +0.000095,34 +0.000095,34 +0.000125,34 +0.000165,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000095,34 +0.000125,34 +0.000143,34 +0.000149,34 +0.000095,34 +0.000115,34 +0.000136,34 +0.000104,34 +0.000095,34 +0.000105,34 +0.000133,34 +0.000152,34 +0.000095,34 +0.000105,34 +0.000135,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000094,34 +0.000095,34 +0.000112,36 +0.000123,36 +0.000175,36 +0.000120,36 +0.000146,36 +0.000125,36 +0.000115,36 +0.000115,36 +0.000131,36 +0.000124,36 +0.000124,36 +0.000124,36 +0.000124,36 +0.000140,36 +0.000129,36 +0.000124,36 +0.000159,36 +0.000135,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000114,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000115,36 +0.000150,36 +0.000122,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000133,36 +0.000151,36 +0.000163,36 +0.000153,36 +0.000152,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000145,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000152,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000123,36 +0.000148,36 +0.000127,36 +0.000123,36 +0.000163,36 +0.000121,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000132,36 +0.000111,36 +0.000112,36 +0.000112,36 +0.000112,36 +0.000133,38 +0.000131,38 +0.000131,38 +0.000173,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000141,38 +0.000189,38 +0.000178,38 +0.000140,38 +0.000182,38 +0.000141,38 +0.000131,38 +0.000138,38 +0.000181,38 +0.000175,38 +0.000181,38 +0.000162,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000146,38 +0.000174,38 +0.000230,38 +0.000194,38 +0.000195,38 +0.000222,38 +0.000131,38 +0.000134,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000132,38 +0.000131,38 +0.000175,38 +0.000197,38 +0.000144,38 +0.000176,38 +0.000175,38 +0.000134,38 +0.000135,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000182,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000152,38 +0.000131,38 +0.000141,38 +0.000189,38 +0.000179,38 +0.000172,38 +0.000171,38 +0.000131,38 +0.000169,38 +0.000131,38 +0.000141,38 +0.000140,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000131,38 +0.000177,38 +0.000163,38 +0.000161,38 +0.000182,38 +0.000131,38 +0.000131,38 +0.000149,38 +0.000209,40 +0.000172,40 +0.000213,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000192,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000153,40 +0.000217,40 +0.000162,40 +0.000203,40 +0.000209,40 +0.000152,40 +0.000152,40 +0.000152,40 +0.000174,40 +0.000152,40 +0.000152,40 +0.000163,40 +0.000179,40 +0.000210,40 +0.000172,40 +0.000225,40 +0.000160,40 +0.000200,40 +0.000195,40 +0.000184,40 +0.000167,40 +0.000154,40 +0.000174,40 +0.000181,40 +0.000166,40 +0.000162,40 +0.000153,40 +0.000165,40 +0.000165,40 +0.000153,40 +0.000164,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000157,40 +0.000163,40 +0.000153,40 +0.000153,40 +0.000153,40 +0.000164,40 +0.000195,40 +0.000158,40 +0.000153,40 +0.000185,40 +0.000165,40 +0.000153,40 +0.000153,40 +0.000163,40 +0.000165,40 +0.000152,40 +0.000153,40 +0.000153,40 +0.000153,40 +0.000169,40 +0.000272,40 +0.000177,40 +0.000195,40 +0.000196,40 +0.000162,40 +0.000210,40 +0.000177,40 +0.000166,40 +0.000176,40 +0.000258,40 +0.000241,40 +0.000176,40 +0.000166,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000156,40 +0.000184,40 +0.000184,40 +0.000198,40 +0.000158,40 +0.000158,40 +0.000158,40 +0.000158,40 +0.000184,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000238,42 +0.000302,42 +0.000215,42 +0.000192,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000206,42 +0.000199,42 +0.000188,42 +0.000203,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000206,42 +0.000309,42 +0.000182,42 +0.000222,42 +0.000182,42 +0.000219,42 +0.000280,42 +0.000212,42 +0.000225,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000191,42 +0.000187,42 +0.000187,42 +0.000305,42 +0.000270,42 +0.000180,42 +0.000204,42 +0.000298,42 +0.000289,42 +0.000190,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000201,42 +0.000314,42 +0.000307,42 +0.000314,42 +0.000338,42 +0.000333,42 +0.000327,42 +0.000317,42 +0.000329,42 +0.000328,42 +0.000363,42 +0.000331,42 +0.000323,42 +0.000311,42 +0.000269,42 +0.000233,42 +0.000212,42 +0.000217,42 +0.000272,42 +0.000322,42 +0.000341,42 +0.000225,42 +0.000195,42 +0.000182,42 +0.000182,42 +0.000207,42 +0.000273,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000187,42 +0.000193,42 +0.000182,42 +0.000182,42 +0.000182,42 +0.000215,42 +0.000220,42 +0.000202,42 +0.000191,42 +0.000208,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000180,42 +0.000209,44 +0.000207,44 +0.000207,44 +0.000285,44 +0.000239,44 +0.000239,44 +0.000247,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000253,44 +0.000235,44 +0.000246,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000221,44 +0.000212,44 +0.000212,44 +0.000263,44 +0.000250,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000226,44 +0.000207,44 +0.000207,44 +0.000257,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000246,44 +0.000249,44 +0.000217,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000244,44 +0.000239,44 +0.000207,44 +0.000207,44 +0.000231,44 +0.000240,44 +0.000247,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000273,44 +0.000237,44 +0.000216,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000224,44 +0.000245,44 +0.000262,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000212,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000226,44 +0.000271,44 +0.000272,44 +0.000212,44 +0.000217,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000212,44 +0.000245,44 +0.000227,44 +0.000207,44 +0.000207,44 +0.000210,44 +0.000249,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000207,44 +0.000237,46 +0.000261,46 +0.000249,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000240,46 +0.000281,46 +0.000263,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000274,46 +0.000241,46 +0.000274,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000259,46 +0.000357,46 +0.000296,46 +0.000256,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000255,46 +0.000248,46 +0.000269,46 +0.000253,46 +0.000229,46 +0.000324,46 +0.000286,46 +0.000245,46 +0.000240,46 +0.000282,46 +0.000265,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000283,46 +0.000302,46 +0.000239,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000230,46 +0.000280,46 +0.000230,46 +0.000230,46 +0.000229,46 +0.000229,46 +0.000322,46 +0.000386,46 +0.000279,46 +0.000242,46 +0.000242,46 +0.000242,46 +0.000267,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000260,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000235,46 +0.000236,46 +0.000236,46 +0.000236,46 +0.000242,46 +0.000265,46 +0.000372,46 +0.000339,48 +0.000281,48 +0.000438,48 +0.000286,48 +0.000281,48 +0.000260,48 +0.000276,48 +0.000333,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000293,48 +0.000363,48 +0.000319,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000299,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000371,48 +0.000476,48 +0.000272,48 +0.000263,48 +0.000304,48 +0.000263,48 +0.000309,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000300,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000352,48 +0.000466,48 +0.000337,48 +0.000263,48 +0.000263,48 +0.000263,48 +0.000378,48 +0.000471,48 +0.000335,48 +0.000260,48 +0.000260,48 +0.000260,48 +0.000358,48 +0.000337,48 +0.000293,48 +0.000260,48 +0.000274,48 +0.000271,48 +0.000274,48 +0.000271,48 +0.000273,48 +0.000271,48 +0.000282,48 +0.000283,48 +0.000260,48 +0.000260,48 +0.000285,48 +0.000260,48 +0.000284,48 +0.000260,48 +0.000272,48 +0.000272,48 +0.000260,48 +0.000331,48 +0.000461,48 +0.000328,48 +0.000291,48 +0.000325,48 +0.000402,48 +0.000333,48 +0.000284,48 +0.000300,50 +0.000316,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000533,50 +0.000402,50 +0.000340,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000400,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000301,50 +0.000506,50 +0.000445,50 +0.000294,50 +0.000309,50 +0.000424,50 +0.000302,50 +0.000304,50 +0.000304,50 +0.000310,50 +0.000294,50 +0.000294,50 +0.000344,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000355,50 +0.000308,50 +0.000333,50 +0.000294,50 +0.000333,50 +0.000465,50 +0.000440,50 +0.000349,50 +0.000508,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000341,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000313,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000374,50 +0.000299,50 +0.000294,50 +0.000344,50 +0.000294,50 +0.000300,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000572,50 +0.000427,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000332,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000297,50 +0.000461,50 +0.000454,50 +0.000376,50 +0.000313,50 +0.000294,50 +0.000294,50 +0.000294,50 +0.000354,50 +0.000294,50 +0.000588,52 +0.000370,52 +0.000333,52 +0.000333,52 +0.000378,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000415,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000655,52 +0.000353,52 +0.000591,52 +0.000396,52 +0.000367,52 +0.000341,52 +0.000375,52 +0.000330,52 +0.000330,52 +0.000378,52 +0.000591,52 +0.000334,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000375,52 +0.000330,52 +0.000369,52 +0.000330,52 +0.000330,52 +0.000336,52 +0.000493,52 +0.000479,52 +0.000333,52 +0.000333,52 +0.000333,52 +0.000378,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000494,52 +0.000468,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000376,52 +0.000408,52 +0.000376,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000575,52 +0.000368,52 +0.000330,52 +0.000340,52 +0.000405,52 +0.000378,52 +0.000339,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000600,52 +0.000340,52 +0.000330,52 +0.000330,52 +0.000345,52 +0.000349,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000390,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000382,52 +0.000589,52 +0.000369,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000329,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000330,52 +0.000372,54 +0.000369,54 +0.000369,54 +0.000579,54 +0.000500,54 +0.000471,54 +0.000378,54 +0.000369,54 +0.000379,54 +0.000378,54 +0.000443,54 +0.000369,54 +0.000410,54 +0.000515,54 +0.000437,54 +0.000546,54 +0.000378,54 +0.000377,54 +0.000369,54 +0.000380,54 +0.000588,54 +0.000405,54 +0.000368,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000431,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000410,54 +0.000413,54 +0.000369,54 +0.000369,54 +0.000651,54 +0.000382,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000373,54 +0.000416,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000400,54 +0.000459,54 +0.000369,54 +0.000369,54 +0.000381,54 +0.000378,54 +0.000402,54 +0.000379,54 +0.000411,54 +0.000527,54 +0.000369,54 +0.000379,54 +0.000408,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000404,54 +0.000369,54 +0.000409,54 +0.000369,54 +0.000369,54 +0.000389,54 +0.000369,54 +0.000459,54 +0.000376,54 +0.000438,54 +0.000442,54 +0.000378,54 +0.000369,54 +0.000369,54 +0.000541,54 +0.000588,54 +0.000392,54 +0.000389,54 +0.000389,54 +0.000403,54 +0.000378,54 +0.000378,54 +0.000378,54 +0.000379,54 +0.000378,54 +0.000378,54 +0.000434,54 +0.000369,54 +0.000369,54 +0.000369,54 +0.000406,54 +0.000368,54 +0.000369,54 +0.000369,54 +0.000454,54 +0.000443,54 +0.000395,54 +0.000369,54 +0.000412,56 +0.000410,56 +0.000452,56 +0.000410,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000451,56 +0.000455,56 +0.000490,56 +0.000466,56 +0.000411,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000447,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000411,56 +0.000430,56 +0.000486,56 +0.000467,56 +0.000448,56 +0.000411,56 +0.000410,56 +0.000498,56 +0.000450,56 +0.000491,56 +0.000471,56 +0.000411,56 +0.000410,56 +0.000443,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000410,56 +0.000412,56 +0.000528,56 +0.000454,56 +0.000411,56 +0.000451,56 +0.000411,56 +0.000410,56 +0.000410,56 +0.000517,56 +0.000489,56 +0.000410,56 +0.000410,56 +0.000498,56 +0.000450,56 +0.000410,56 +0.000410,56 +0.000411,56 +0.000431,56 +0.000437,56 +0.000479,56 +0.000411,56 +0.000411,56 +0.000430,56 +0.000442,56 +0.000662,56 +0.000483,56 +0.000445,56 +0.000454,56 +0.000410,56 +0.000410,56 +0.000410,56 +0.000410,56 +0.000597,56 +0.000603,56 +0.000460,56 +0.000458,56 +0.000709,56 +0.000501,56 +0.000462,56 +0.000453,56 +0.000433,56 +0.000421,56 +0.000421,56 +0.000421,56 +0.000449,56 +0.000411,56 +0.000411,56 +0.000679,56 +0.000441,56 +0.000421,56 +0.000421,56 +0.000421,56 +0.000469,58 +0.000832,58 +0.000624,58 +0.000507,58 +0.000506,58 +0.000455,58 +0.000455,58 +0.000538,58 +0.000739,58 +0.000536,58 +0.000467,58 +0.000467,58 +0.000468,58 +0.000487,58 +0.000554,58 +0.000495,58 +0.000467,58 +0.000467,58 +0.000559,58 +0.000508,58 +0.000480,58 +0.000480,58 +0.000582,58 +0.000483,58 +0.000480,58 +0.000480,58 +0.000480,58 +0.000480,58 +0.000506,58 +0.000477,58 +0.000467,58 +0.000467,58 +0.000499,58 +0.000455,58 +0.000697,58 +0.000636,58 +0.000502,58 +0.000472,58 +0.000514,58 +0.000506,58 +0.000566,58 +0.000465,58 +0.000455,58 +0.000515,58 +0.000707,58 +0.000478,58 +0.000487,58 +0.000519,58 +0.000490,58 +0.000467,58 +0.000467,58 +0.000522,58 +0.000483,58 +0.000467,58 +0.000488,58 +0.000477,58 +0.000467,58 +0.000467,58 +0.000467,58 +0.000478,58 +0.000642,58 +0.000498,58 +0.000483,58 +0.000472,58 +0.000467,58 +0.000467,58 +0.000467,58 +0.000502,58 +0.000533,58 +0.000473,58 +0.000467,58 +0.000480,58 +0.000455,58 +0.000498,58 +0.000544,58 +0.000455,58 +0.000632,58 +0.000488,58 +0.000500,58 +0.000507,58 +0.000468,58 +0.000486,58 +0.000499,58 +0.000455,58 +0.000480,58 +0.000493,58 +0.000467,58 +0.000530,58 +0.000557,58 +0.000495,58 +0.000518,58 +0.000539,58 +0.000572,58 +0.000487,58 +0.000467,58 +0.000495,58 +0.000467,58 +0.000498,58 +0.000613,58 +0.000513,58 +0.000605,60 +0.000517,60 +0.000526,60 +0.000540,60 +0.000503,60 +0.000504,60 +0.000648,60 +0.000701,60 +0.000610,60 +0.000554,60 +0.000532,60 +0.000517,60 +0.000645,60 +0.000517,60 +0.000516,60 +0.000517,60 +0.000531,60 +0.000638,60 +0.000557,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000563,60 +0.000653,60 +0.000517,60 +0.000517,60 +0.000565,60 +0.000560,60 +0.000555,60 +0.000548,60 +0.000517,60 +0.000525,60 +0.000650,60 +0.000613,60 +0.000596,60 +0.000517,60 +0.000547,60 +0.000614,60 +0.000526,60 +0.000517,60 +0.000556,60 +0.000551,60 +0.000517,60 +0.000517,60 +0.000670,60 +0.000537,60 +0.000517,60 +0.000531,60 +0.000517,60 +0.000517,60 +0.000613,60 +0.000547,60 +0.000517,60 +0.000585,60 +0.000543,60 +0.000517,60 +0.000517,60 +0.000552,60 +0.000550,60 +0.000553,60 +0.000528,60 +0.000559,60 +0.000517,60 +0.000517,60 +0.000684,60 +0.000583,60 +0.000526,60 +0.000517,60 +0.000604,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000517,60 +0.000588,60 +0.000538,60 +0.000610,60 +0.000534,60 +0.000622,60 +0.000517,60 +0.000517,60 +0.000596,60 +0.000558,60 +0.000544,60 +0.000564,60 +0.000545,60 +0.000537,60 +0.000517,60 +0.000542,60 +0.000586,60 +0.000582,60 +0.000579,60 +0.000522,60 +0.000517,60 +0.000554,60 +0.000558,60 +0.000604,60 +0.000526,60 +0.000563,60 +0.000599,62 +0.000611,62 +0.000569,62 +0.000601,62 +0.000648,62 +0.000579,62 +0.000605,62 +0.000607,62 +0.000613,62 +0.000570,62 +0.000654,62 +0.000610,62 +0.000637,62 +0.000569,62 +0.000569,62 +0.000596,62 +0.000611,62 +0.000664,62 +0.000569,62 +0.000598,62 +0.000570,62 +0.000575,62 +0.000639,62 +0.000654,62 +0.000661,62 +0.000570,62 +0.000569,62 +0.000671,62 +0.000625,62 +0.000630,62 +0.000595,62 +0.000580,62 +0.000695,62 +0.000584,62 +0.000569,62 +0.000719,62 +0.000616,62 +0.000569,62 +0.000644,62 +0.000610,62 +0.000615,62 +0.000605,62 +0.000626,62 +0.000580,62 +0.000580,62 +0.000659,62 +0.000601,62 +0.000570,62 +0.000675,62 +0.000597,62 +0.000570,62 +0.000735,62 +0.000596,62 +0.000570,62 +0.000569,62 +0.000609,62 +0.000749,62 +0.000793,62 +0.000687,62 +0.000570,62 +0.000785,62 +0.000754,62 +0.000608,62 +0.000626,62 +0.000628,62 +0.000734,62 +0.000564,62 +0.000593,62 +0.000564,62 +0.000598,62 +0.000848,62 +0.000569,62 +0.000602,62 +0.000569,62 +0.000781,62 +0.000628,62 +0.000621,62 +0.000570,62 +0.000569,62 +0.000689,62 +0.000595,62 +0.000598,62 +0.000650,62 +0.000576,62 +0.000569,62 +0.000627,62 +0.000617,62 +0.000649,62 +0.000590,62 +0.000579,62 +0.000569,62 +0.000569,62 +0.000569,62 +0.000587,62 +0.000582,62 +0.000569,62 +0.000570,62 +0.000570,62 +0.000555,62 +0.000779,62 +0.000785,64 +0.000667,64 +0.000626,64 +0.000672,64 +0.000706,64 +0.000632,64 +0.000670,64 +0.000610,64 +0.000609,64 +0.000704,64 +0.000675,64 +0.000625,64 +0.000799,64 +0.000684,64 +0.000636,64 +0.000636,64 +0.000610,64 +0.000610,64 +0.000652,64 +0.000610,64 +0.000609,64 +0.000621,64 +0.000832,64 +0.000626,64 +0.000740,64 +0.000707,64 +0.000636,64 +0.000626,64 +0.000626,64 +0.000677,64 +0.000675,64 +0.000680,64 +0.000849,64 +0.000617,64 +0.000616,64 +0.000617,64 +0.000655,64 +0.000617,64 +0.000894,64 +0.000675,64 +0.000660,64 +0.000877,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000630,64 +0.000630,64 +0.000610,64 +0.000822,64 +0.000718,64 +0.000626,64 +0.000816,64 +0.000610,64 +0.000732,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000803,64 +0.000667,64 +0.000646,64 +0.000626,64 +0.000640,64 +0.000626,64 +0.000650,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000646,64 +0.000610,64 +0.000610,64 +0.000755,64 +0.000610,64 +0.000610,64 +0.000630,64 +0.000767,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000653,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000650,64 +0.000610,64 +0.000658,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000610,64 +0.000643,64 +0.000610,64 +0.000701,66 +0.000736,66 +0.000701,66 +0.000695,66 +0.000757,66 +0.000892,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000794,66 +0.000719,66 +0.000730,66 +0.000720,66 +0.000768,66 +0.000752,66 +0.000803,66 +0.000695,66 +0.000803,66 +0.000817,66 +0.000695,66 +0.000730,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000730,66 +0.000695,66 +0.000695,66 +0.000714,66 +0.000695,66 +0.000695,66 +0.000733,66 +0.000735,66 +0.000877,66 +0.000695,66 +0.000695,66 +0.000788,66 +0.000696,66 +0.000707,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000736,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000696,66 +0.000695,66 +0.000730,66 +0.000830,66 +0.001033,66 +0.000793,66 +0.000776,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000695,66 +0.000734,66 +0.000734,66 +0.000695,66 +0.000705,66 +0.000695,66 +0.000695,66 +0.000723,66 +0.000735,66 +0.000887,66 +0.000839,66 +0.001128,66 +0.000973,66 +0.000763,66 +0.000749,66 +0.000970,66 +0.000838,66 +0.000749,66 +0.000845,66 +0.000848,66 +0.000736,66 +0.001027,66 +0.001168,66 +0.001270,66 +0.000751,66 +0.000812,66 +0.000766,66 +0.000714,66 +0.000796,66 +0.000723,66 +0.000749,66 +0.000777,66 +0.000744,66 +0.000703,66 +0.000795,66 +0.000938,66 +0.000951,66 +0.001383,66 +0.000888,66 +0.000774,66 +0.000845,66 +0.001012,66 +0.000972,66 +0.000907,68 +0.001312,68 +0.001344,68 +0.001450,68 +0.001564,68 +0.001454,68 +0.001484,68 +0.001321,68 +0.001172,68 +0.000795,68 +0.000780,68 +0.000896,68 +0.000932,68 +0.000758,68 +0.000793,68 +0.000760,68 +0.000781,68 +0.000796,68 +0.000750,68 +0.000798,68 +0.000770,68 +0.000750,68 +0.000815,68 +0.000750,68 +0.000768,68 +0.000752,68 +0.000890,68 +0.000791,68 +0.000766,68 +0.000730,68 +0.000794,68 +0.000783,68 +0.000771,68 +0.000731,68 +0.000795,68 +0.000825,68 +0.000740,68 +0.000731,68 +0.000730,68 +0.000730,68 +0.000773,68 +0.000730,68 +0.000749,68 +0.000730,68 +0.000829,68 +0.000801,68 +0.000730,68 +0.000872,68 +0.000770,68 +0.000843,68 +0.000796,68 +0.000978,68 +0.000765,68 +0.000857,68 +0.000780,68 +0.000829,68 +0.000744,68 +0.000778,68 +0.000767,68 +0.000777,68 +0.000798,68 +0.000741,68 +0.000730,68 +0.000799,68 +0.000816,68 +0.000816,68 +0.000731,68 +0.000730,68 +0.000800,68 +0.000808,68 +0.000837,68 +0.000731,68 +0.000770,68 +0.000770,68 +0.000832,68 +0.000751,68 +0.000831,68 +0.000730,68 +0.000792,68 +0.000730,68 +0.000751,68 +0.000774,68 +0.000730,68 +0.000730,68 +0.000730,68 +0.000730,68 +0.000830,68 +0.000773,68 +0.000881,68 +0.000797,68 +0.000875,68 +0.000819,68 +0.000830,68 +0.000844,68 +0.000806,68 +0.000879,68 +0.000793,68 +0.000781,68 +0.000763,68 +0.000952,68 +0.000825,70 +0.000867,70 +0.000921,70 +0.000877,70 +0.000817,70 +0.000908,70 +0.000816,70 +0.000816,70 +0.000816,70 +0.000817,70 +0.000928,70 +0.000842,70 +0.000823,70 +0.000836,70 +0.000795,70 +0.000836,70 +0.000795,70 +0.000834,70 +0.000795,70 +0.000835,70 +0.000830,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000841,70 +0.000815,70 +0.000795,70 +0.000795,70 +0.000889,70 +0.000954,70 +0.000795,70 +0.000795,70 +0.000820,70 +0.000839,70 +0.000795,70 +0.000795,70 +0.000835,70 +0.000795,70 +0.000842,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000818,70 +0.000795,70 +0.000795,70 +0.000796,70 +0.000795,70 +0.000822,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000840,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000835,70 +0.000804,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000797,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000797,70 +0.000795,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000842,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000819,70 +0.000835,70 +0.000795,70 +0.000795,70 +0.000795,70 +0.000801,70 +0.000795,70 +0.000819,70 +0.000814,70 +0.000795,70 +0.000797,70 +0.000984,70 +0.000963,70 +0.000832,70 +0.000852,70 +0.000813,70 +0.000854,70 +0.000875,70 +0.000834,70 +0.001028,70 +0.000839,70 +0.000928,72 +0.000914,72 +0.000922,72 +0.000943,72 +0.001004,72 +0.000911,72 +0.000916,72 +0.000949,72 +0.000974,72 +0.001009,72 +0.001021,72 +0.000943,72 +0.000939,72 +0.001050,72 +0.001369,72 +0.000906,72 +0.000931,72 +0.000939,72 +0.001310,72 +0.001418,72 +0.001016,72 +0.000865,72 +0.000924,72 +0.000993,72 +0.000865,72 +0.001087,72 +0.001341,72 +0.000912,72 +0.000969,72 +0.000912,72 +0.000910,72 +0.000887,72 +0.001002,72 +0.000927,72 +0.000911,72 +0.000972,72 +0.001009,72 +0.000945,72 +0.000917,72 +0.000887,72 +0.000948,72 +0.001074,72 +0.000913,72 +0.001173,72 +0.000888,72 +0.001074,72 +0.000951,72 +0.001027,72 +0.000887,72 +0.000908,72 +0.000988,72 +0.000917,72 +0.000887,72 +0.000888,72 +0.000888,72 +0.000912,72 +0.001002,72 +0.000969,72 +0.000928,72 +0.000915,72 +0.001005,72 +0.001022,72 +0.000888,72 +0.000914,72 +0.001134,72 +0.000888,72 +0.000888,72 +0.000908,72 +0.000944,72 +0.001175,72 +0.000911,72 +0.000897,72 +0.000915,72 +0.000887,72 +0.000887,72 +0.000951,72 +0.000912,72 +0.000887,72 +0.000907,72 +0.000887,72 +0.001062,72 +0.000899,72 +0.000865,72 +0.000865,72 +0.000865,72 +0.000925,72 +0.000875,72 +0.000894,72 +0.000865,72 +0.000900,72 +0.000865,72 +0.001257,72 +0.000972,72 +0.000991,72 +0.001001,72 +0.000906,72 +0.000978,72 +0.000865,72 +0.000907,72 +0.000898,72 +0.000985,74 +0.001021,74 +0.000988,74 +0.001000,74 +0.001000,74 +0.001176,74 +0.000992,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.001051,74 +0.000978,74 +0.001045,74 +0.000988,74 +0.001011,74 +0.001138,74 +0.001130,74 +0.001041,74 +0.000939,74 +0.001171,74 +0.001081,74 +0.001145,74 +0.001003,74 +0.000959,74 +0.000938,74 +0.000974,74 +0.001038,74 +0.001237,74 +0.001027,74 +0.001068,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000975,74 +0.000938,74 +0.000978,74 +0.000965,74 +0.001030,74 +0.000938,74 +0.000938,74 +0.001065,74 +0.001153,74 +0.000963,74 +0.000998,74 +0.000958,74 +0.001040,74 +0.000952,74 +0.000938,74 +0.000999,74 +0.001004,74 +0.000938,74 +0.000938,74 +0.000977,74 +0.001011,74 +0.000938,74 +0.000978,74 +0.001126,74 +0.001096,74 +0.001035,74 +0.000964,74 +0.000978,74 +0.000970,74 +0.001084,74 +0.000958,74 +0.000958,74 +0.001020,74 +0.000938,74 +0.000938,74 +0.000939,74 +0.001004,74 +0.000978,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000961,74 +0.000938,74 +0.000938,74 +0.000958,74 +0.000963,74 +0.000938,74 +0.001061,74 +0.000938,74 +0.000966,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000988,74 +0.000938,74 +0.000978,74 +0.000938,74 +0.000961,74 +0.000938,74 +0.000938,74 +0.000938,74 +0.000943,74 +0.000938,74 +0.000938,74 +0.000959,74 +0.000938,74 +0.000963,74 +0.001054,76 +0.001051,76 +0.001090,76 +0.001150,76 +0.001072,76 +0.001172,76 +0.001086,76 +0.001111,76 +0.001071,76 +0.001152,76 +0.001089,76 +0.001051,76 +0.001051,76 +0.001086,76 +0.001061,76 +0.001051,76 +0.001051,76 +0.001075,76 +0.001051,76 +0.001091,76 +0.001112,76 +0.001086,76 +0.001051,76 +0.001071,76 +0.001051,76 +0.001055,76 +0.001051,76 +0.001051,76 +0.001055,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001091,76 +0.001051,76 +0.001094,76 +0.001051,76 +0.001051,76 +0.001090,76 +0.001055,76 +0.001052,76 +0.001051,76 +0.001051,76 +0.001118,76 +0.001051,76 +0.001051,76 +0.001183,76 +0.001303,76 +0.001051,76 +0.001112,76 +0.001124,76 +0.001051,76 +0.001051,76 +0.001075,76 +0.001051,76 +0.001553,76 +0.001176,76 +0.001095,76 +0.001416,76 +0.001071,76 +0.001087,76 +0.001051,76 +0.001051,76 +0.001091,76 +0.001083,76 +0.001102,76 +0.001051,76 +0.001092,76 +0.001051,76 +0.001051,76 +0.001071,76 +0.001075,76 +0.001051,76 +0.001216,76 +0.001051,76 +0.001080,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001114,76 +0.001090,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001055,76 +0.001052,76 +0.001094,76 +0.001051,76 +0.001053,76 +0.001051,76 +0.001051,76 +0.001051,76 +0.001115,76 +0.001051,76 +0.001091,76 +0.001053,76 +0.001051,76 +0.001100,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001122,78 +0.001097,78 +0.001136,78 +0.001156,78 +0.001120,78 +0.001097,78 +0.001097,78 +0.001125,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001136,78 +0.001138,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001101,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001147,78 +0.001097,78 +0.001167,78 +0.001097,78 +0.001097,78 +0.001136,78 +0.001140,78 +0.001097,78 +0.001097,78 +0.001099,78 +0.001097,78 +0.001097,78 +0.001141,78 +0.001167,78 +0.001148,78 +0.001130,78 +0.001170,78 +0.001122,78 +0.001332,78 +0.001157,78 +0.001139,78 +0.001136,78 +0.001097,78 +0.001121,78 +0.001196,78 +0.001097,78 +0.001096,78 +0.001127,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001160,78 +0.001117,78 +0.001116,78 +0.001097,78 +0.001125,78 +0.001097,78 +0.001097,78 +0.001119,78 +0.001097,78 +0.001097,78 +0.001096,78 +0.001122,78 +0.001097,78 +0.001097,78 +0.001121,78 +0.001136,78 +0.001097,78 +0.001136,78 +0.001128,78 +0.001097,78 +0.001171,78 +0.001097,78 +0.001103,78 +0.001097,78 +0.001117,78 +0.001106,78 +0.001097,78 +0.001097,78 +0.001097,78 +0.001100,78 +0.001264,80 +0.001262,80 +0.001225,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001223,80 +0.001223,80 +0.001225,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001262,80 +0.001283,80 +0.001223,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001223,80 +0.001223,80 +0.001225,80 +0.001282,80 +0.001223,80 +0.001227,80 +0.001223,80 +0.001712,80 +0.001329,80 +0.001264,80 +0.001255,80 +0.001251,80 +0.001223,80 +0.001599,80 +0.001299,80 +0.001271,80 +0.001335,80 +0.001309,80 +0.001575,80 +0.001408,80 +0.001299,80 +0.001467,80 +0.001480,80 +0.001317,80 +0.001264,80 +0.001394,80 +0.001587,80 +0.001334,80 +0.001425,80 +0.001378,80 +0.001411,80 +0.001429,80 +0.001355,80 +0.001371,80 +0.001385,80 +0.001368,80 +0.001379,80 +0.001418,80 +0.001370,80 +0.001374,80 +0.001350,80 +0.001364,80 +0.001342,80 +0.001407,80 +0.001450,80 +0.001360,80 +0.001466,80 +0.001275,80 +0.001433,80 +0.001438,80 +0.001355,80 +0.001501,80 +0.001334,80 +0.001378,80 +0.001397,80 +0.001461,80 +0.001453,80 +0.001389,80 +0.001323,80 +0.001326,80 +0.001358,80 +0.001449,80 +0.001381,80 +0.001467,80 +0.001347,80 +0.001351,80 +0.001440,80 +0.001414,80 +0.001330,80 +0.001410,80 +0.001383,80 +0.001459,80 +0.001375,80 +0.001542,80 +0.001452,80 +0.001452,80 +0.001384,80 +0.001366,80 +0.001429,80 +0.001353,80 +0.001473,82 +0.001418,82 +0.001347,82 +0.001387,82 +0.001345,82 +0.001437,82 +0.001763,82 +0.001388,82 +0.001389,82 +0.001345,82 +0.001426,82 +0.001455,82 +0.001466,82 +0.001407,82 +0.001468,82 +0.001408,82 +0.001475,82 +0.001458,82 +0.001405,82 +0.001397,82 +0.001423,82 +0.001519,82 +0.001587,82 +0.001440,82 +0.001367,82 +0.001421,82 +0.001491,82 +0.001387,82 +0.002170,82 +0.001483,82 +0.001421,82 +0.001546,82 +0.001426,82 +0.001630,82 +0.001557,82 +0.001396,82 +0.001408,82 +0.001490,82 +0.001365,82 +0.001479,82 +0.001402,82 +0.001574,82 +0.001383,82 +0.001400,82 +0.001366,82 +0.001451,82 +0.001437,82 +0.001522,82 +0.001670,82 +0.001963,82 +0.002133,82 +0.001533,82 +0.001973,82 +0.001660,82 +0.001853,82 +0.001586,82 +0.001375,82 +0.001368,82 +0.001519,82 +0.001350,82 +0.001552,82 +0.001479,82 +0.001522,82 +0.001393,82 +0.001417,82 +0.001377,82 +0.001486,82 +0.001379,82 +0.001348,82 +0.001396,82 +0.001349,82 +0.001388,82 +0.001407,82 +0.001410,82 +0.001679,82 +0.001334,82 +0.001647,82 +0.001530,82 +0.001803,82 +0.001343,82 +0.001370,82 +0.001336,82 +0.001697,82 +0.001429,82 +0.001737,82 +0.001503,82 +0.001345,82 +0.001364,82 +0.001308,82 +0.001612,82 +0.001366,82 +0.001341,82 +0.001347,82 +0.001424,82 +0.001590,82 +0.001366,82 +0.001375,82 +0.001321,82 +0.001353,82 +0.001294,82 +0.001669,84 +0.001526,84 +0.001538,84 +0.001411,84 +0.001462,84 +0.001597,84 +0.001472,84 +0.001640,84 +0.001412,84 +0.001575,84 +0.001458,84 +0.001693,84 +0.001625,84 +0.001592,84 +0.001543,84 +0.001544,84 +0.001556,84 +0.001714,84 +0.001522,84 +0.001623,84 +0.001591,84 +0.001423,84 +0.001478,84 +0.001554,84 +0.001472,84 +0.001471,84 +0.001495,84 +0.001573,84 +0.001593,84 +0.001494,84 +0.001552,84 +0.001578,84 +0.001505,84 +0.001621,84 +0.001543,84 +0.001499,84 +0.001560,84 +0.001557,84 +0.001518,84 +0.001988,84 +0.001971,84 +0.001965,84 +0.001966,84 +0.001569,84 +0.001649,84 +0.001778,84 +0.001657,84 +0.001753,84 +0.001536,84 +0.001505,84 +0.001472,84 +0.001468,84 +0.001448,84 +0.001509,84 +0.001477,84 +0.001544,84 +0.001528,84 +0.001538,84 +0.001554,84 +0.001537,84 +0.001515,84 +0.001594,84 +0.001543,84 +0.001528,84 +0.001484,84 +0.001527,84 +0.001571,84 +0.001508,84 +0.001607,84 +0.001540,84 +0.001538,84 +0.001628,84 +0.001552,84 +0.001569,84 +0.001489,84 +0.001556,84 +0.001618,84 +0.001560,84 +0.001519,84 +0.001590,84 +0.001533,84 +0.001639,84 +0.001880,84 +0.001776,84 +0.001651,84 +0.001795,84 +0.001832,84 +0.001781,84 +0.001668,84 +0.001819,84 +0.001829,84 +0.001789,84 +0.001550,84 +0.001519,84 +0.001526,84 +0.001636,84 +0.001549,84 +0.001489,84 +0.001573,84 +0.001508,84 +0.001689,86 +0.001727,86 +0.001814,86 +0.001746,86 +0.001651,86 +0.001581,86 +0.002784,86 +0.002020,86 +0.001751,86 +0.001838,86 +0.001704,86 +0.001713,86 +0.002233,86 +0.001671,86 +0.001552,86 +0.001590,86 +0.001488,86 +0.001489,86 +0.001621,86 +0.001542,86 +0.001672,86 +0.002154,86 +0.001683,86 +0.001518,86 +0.001719,86 +0.001589,86 +0.001469,86 +0.001469,86 +0.001507,86 +0.001609,86 +0.001761,86 +0.001685,86 +0.001559,86 +0.001546,86 +0.001493,86 +0.001549,86 +0.001502,86 +0.001508,86 +0.001536,86 +0.001624,86 +0.001597,86 +0.001576,86 +0.001566,86 +0.001572,86 +0.001469,86 +0.001510,86 +0.001543,86 +0.001469,86 +0.001513,86 +0.001469,86 +0.001572,86 +0.001678,86 +0.001723,86 +0.001591,86 +0.001565,86 +0.001511,86 +0.001586,86 +0.001469,86 +0.001469,86 +0.001552,86 +0.001868,86 +0.002483,86 +0.002891,86 +0.002797,86 +0.002861,86 +0.002462,86 +0.001964,86 +0.001836,86 +0.001599,86 +0.001622,86 +0.001578,86 +0.001706,86 +0.001705,86 +0.001788,86 +0.001986,86 +0.001600,86 +0.001528,86 +0.001697,86 +0.001970,86 +0.002888,86 +0.002401,86 +0.001572,86 +0.001520,86 +0.001580,86 +0.001508,86 +0.001532,86 +0.001548,86 +0.001624,86 +0.001765,86 +0.001488,86 +0.001627,86 +0.001469,86 +0.001530,86 +0.001525,86 +0.001469,86 +0.001469,86 +0.001512,86 +0.001666,86 +0.001702,86 +0.001659,86 +0.001687,88 +0.001593,88 +0.001635,88 +0.001608,88 +0.001574,88 +0.001612,88 +0.001613,88 +0.001802,88 +0.001868,88 +0.001818,88 +0.001712,88 +0.001593,88 +0.001653,88 +0.001897,88 +0.001593,88 +0.001613,88 +0.001574,88 +0.001771,88 +0.001871,88 +0.001981,88 +0.001962,88 +0.001625,88 +0.001635,88 +0.002564,88 +0.002989,88 +0.002923,88 +0.002775,88 +0.001774,88 +0.001841,88 +0.001674,88 +0.001592,88 +0.001612,88 +0.001573,88 +0.001729,88 +0.001627,88 +0.001949,88 +0.001631,88 +0.001706,88 +0.001599,88 +0.001656,88 +0.001611,88 +0.001573,88 +0.001574,88 +0.001757,88 +0.001927,88 +0.001673,88 +0.001680,88 +0.001703,88 +0.001627,88 +0.001689,88 +0.001610,88 +0.001880,88 +0.001652,88 +0.001959,88 +0.001833,88 +0.001758,88 +0.001791,88 +0.001764,88 +0.001767,88 +0.001668,88 +0.001744,88 +0.001651,88 +0.001574,88 +0.002012,88 +0.001927,88 +0.001750,88 +0.001866,88 +0.001627,88 +0.001799,88 +0.001638,88 +0.001658,88 +0.001789,88 +0.001902,88 +0.001845,88 +0.001852,88 +0.001896,88 +0.001632,88 +0.001619,88 +0.001929,88 +0.002279,88 +0.001912,88 +0.001828,88 +0.001703,88 +0.001683,88 +0.001792,88 +0.001699,88 +0.001671,88 +0.001785,88 +0.001695,88 +0.001674,88 +0.001746,88 +0.001835,88 +0.001816,88 +0.002181,88 +0.002106,88 +0.001822,88 +0.002063,88 +0.001751,88 +0.002060,88 +0.001953,88 +0.002506,90 +0.002729,90 +0.002557,90 +0.002289,90 +0.002198,90 +0.002215,90 +0.002222,90 +0.002952,90 +0.002940,90 +0.002199,90 +0.002351,90 +0.002141,90 +0.001943,90 +0.002165,90 +0.002890,90 +0.002427,90 +0.002257,90 +0.002644,90 +0.002190,90 +0.002735,90 +0.002083,90 +0.002364,90 +0.002731,90 +0.003146,90 +0.002302,90 +0.002487,90 +0.002181,90 +0.002008,90 +0.002087,90 +0.001829,90 +0.001937,90 +0.002182,90 +0.002111,90 +0.002008,90 +0.001927,90 +0.001947,90 +0.002299,90 +0.002398,90 +0.001884,90 +0.001889,90 +0.002031,90 +0.001808,90 +0.001882,90 +0.001899,90 +0.002200,90 +0.002058,90 +0.001909,90 +0.001916,90 +0.001905,90 +0.001876,90 +0.001885,90 +0.001819,90 +0.002004,90 +0.002309,90 +0.002066,90 +0.001904,90 +0.001882,90 +0.001827,90 +0.001815,90 +0.001880,90 +0.001880,90 +0.002356,90 +0.002548,90 +0.001877,90 +0.001901,90 +0.001806,90 +0.001802,90 +0.001874,90 +0.001893,90 +0.002230,90 +0.002034,90 +0.002065,90 +0.001932,90 +0.001997,90 +0.001898,90 +0.002424,90 +0.003206,90 +0.003277,90 +0.003128,90 +0.002408,90 +0.002066,90 +0.002048,90 +0.002269,90 +0.002389,90 +0.002295,90 +0.002206,90 +0.002143,90 +0.002052,90 +0.002010,90 +0.001989,90 +0.002045,90 +0.002232,90 +0.002216,90 +0.002354,90 +0.002202,90 +0.002418,90 +0.002099,90 +0.002110,90 +0.002142,90 +0.002166,90 +0.002204,92 +0.002298,92 +0.002207,92 +0.002173,92 +0.002178,92 +0.002327,92 +0.002337,92 +0.002156,92 +0.002237,92 +0.002421,92 +0.002156,92 +0.002213,92 +0.002182,92 +0.002491,92 +0.002323,92 +0.002225,92 +0.002425,92 +0.002284,92 +0.002338,92 +0.003061,92 +0.003377,92 +0.003534,92 +0.003016,92 +0.002268,92 +0.002223,92 +0.002220,92 +0.002490,92 +0.002097,92 +0.002016,92 +0.002111,92 +0.002131,92 +0.002017,92 +0.001990,92 +0.002122,92 +0.001988,92 +0.001986,92 +0.002012,92 +0.002017,92 +0.001991,92 +0.002005,92 +0.001974,92 +0.002031,92 +0.002031,92 +0.002045,92 +0.002075,92 +0.002085,92 +0.002380,92 +0.002281,92 +0.002188,92 +0.002187,92 +0.002204,92 +0.002148,92 +0.002144,92 +0.002126,92 +0.002146,92 +0.002135,92 +0.002182,92 +0.002274,92 +0.002168,92 +0.002217,92 +0.002235,92 +0.002338,92 +0.002226,92 +0.002195,92 +0.003377,92 +0.003636,92 +0.003556,92 +0.002944,92 +0.002353,92 +0.002290,92 +0.002484,92 +0.002277,92 +0.002147,92 +0.002483,92 +0.002218,92 +0.002122,92 +0.002113,92 +0.002255,92 +0.002275,92 +0.002155,92 +0.002152,92 +0.002163,92 +0.002218,92 +0.002204,92 +0.002177,92 +0.002174,92 +0.002196,92 +0.002190,92 +0.002202,92 +0.002230,92 +0.002163,92 +0.002154,92 +0.002150,92 +0.002293,92 +0.002182,92 +0.002219,92 +0.002143,92 +0.002209,92 +0.002253,92 +0.002173,92 +0.002319,94 +0.002370,94 +0.002364,94 +0.002271,94 +0.002365,94 +0.002355,94 +0.002271,94 +0.003291,94 +0.003712,94 +0.003714,94 +0.003034,94 +0.002388,94 +0.002673,94 +0.002384,94 +0.002423,94 +0.002168,94 +0.002159,94 +0.002336,94 +0.002190,94 +0.002172,94 +0.002268,94 +0.002195,94 +0.002355,94 +0.002301,94 +0.002343,94 +0.002207,94 +0.002375,94 +0.002346,94 +0.002500,94 +0.002342,94 +0.002345,94 +0.002385,94 +0.002242,94 +0.002254,94 +0.002465,94 +0.002337,94 +0.002118,94 +0.002088,94 +0.002141,94 +0.002053,94 +0.002127,94 +0.002154,94 +0.002742,94 +0.002204,94 +0.002145,94 +0.002119,94 +0.002109,94 +0.002133,94 +0.002150,94 +0.002110,94 +0.002025,94 +0.002053,94 +0.002768,94 +0.002178,94 +0.002147,94 +0.002126,94 +0.002086,94 +0.002378,94 +0.002387,94 +0.002090,94 +0.002102,94 +0.002120,94 +0.002158,94 +0.002133,94 +0.002197,94 +0.002690,94 +0.002092,94 +0.002132,94 +0.002095,94 +0.002105,94 +0.002079,94 +0.002148,94 +0.002127,94 +0.002543,94 +0.002073,94 +0.002065,94 +0.002016,94 +0.002084,94 +0.002091,94 +0.001971,94 +0.002219,94 +0.002043,94 +0.002093,94 +0.002011,94 +0.002007,94 +0.001957,94 +0.001953,94 +0.001918,94 +0.002061,94 +0.002174,94 +0.001999,94 +0.001918,94 +0.002002,94 +0.001957,94 +0.001952,94 +0.001918,94 +0.001996,94 +0.002121,94 +0.002045,94 +0.001991,94 +0.002271,96 +0.002186,96 +0.002124,96 +0.002056,96 +0.002083,96 +0.002061,96 +0.002075,96 +0.002041,96 +0.002082,96 +0.002100,96 +0.002065,96 +0.002071,96 +0.002041,96 +0.002045,96 +0.002042,96 +0.002046,96 +0.002042,96 +0.002122,96 +0.002041,96 +0.002087,96 +0.002101,96 +0.002043,96 +0.002041,96 +0.002043,96 +0.002041,96 +0.002128,96 +0.002041,96 +0.002063,96 +0.002041,96 +0.002045,96 +0.002372,96 +0.002088,96 +0.002136,96 +0.002389,96 +0.002162,96 +0.002095,96 +0.002505,96 +0.002663,96 +0.002072,96 +0.002533,96 +0.002530,96 +0.002976,96 +0.003597,96 +0.002478,96 +0.002308,96 +0.002326,96 +0.002289,96 +0.002277,96 +0.002227,96 +0.002305,96 +0.002198,96 +0.002152,96 +0.002522,96 +0.002326,96 +0.002328,96 +0.002126,96 +0.002330,96 +0.002453,96 +0.002437,96 +0.002298,96 +0.002287,96 +0.002595,96 +0.002550,96 +0.002598,96 +0.002488,96 +0.002446,96 +0.002734,96 +0.002717,96 +0.002524,96 +0.002335,96 +0.002321,96 +0.002189,96 +0.002176,96 +0.002150,96 +0.002250,96 +0.002277,96 +0.002221,96 +0.002236,96 +0.002231,96 +0.002248,96 +0.002288,96 +0.002260,96 +0.002340,96 +0.002302,96 +0.002257,96 +0.002349,96 +0.002321,96 +0.002243,96 +0.002259,96 +0.002285,96 +0.002158,96 +0.002152,96 +0.002160,96 +0.002265,96 +0.002317,96 +0.002278,96 +0.002304,96 +0.002213,96 +0.002157,96 +0.002183,96 +0.002445,98 +0.002454,98 +0.002461,98 +0.002463,98 +0.002556,98 +0.002383,98 +0.002484,98 +0.002539,98 +0.002351,98 +0.002377,98 +0.002374,98 +0.002373,98 +0.002304,98 +0.002409,98 +0.002439,98 +0.002416,98 +0.002296,98 +0.002313,98 +0.002352,98 +0.002399,98 +0.002295,98 +0.002355,98 +0.002379,98 +0.002352,98 +0.002363,98 +0.002364,98 +0.002298,98 +0.002357,98 +0.002371,98 +0.002279,98 +0.002246,98 +0.002735,98 +0.002591,98 +0.002416,98 +0.002642,98 +0.002502,98 +0.002411,98 +0.002420,98 +0.002512,98 +0.002377,98 +0.002522,98 +0.002426,98 +0.002718,98 +0.002724,98 +0.002641,98 +0.002545,98 +0.002366,98 +0.002431,98 +0.002570,98 +0.002433,98 +0.002428,98 +0.002452,98 +0.002455,98 +0.002421,98 +0.002828,98 +0.002920,98 +0.003138,98 +0.003385,98 +0.003285,98 +0.002902,98 +0.003023,98 +0.002947,98 +0.002916,98 +0.002957,98 +0.002793,98 +0.003201,98 +0.002843,98 +0.002986,98 +0.002336,98 +0.003146,98 +0.002695,98 +0.002431,98 +0.002494,98 +0.002348,98 +0.002304,98 +0.002355,98 +0.002373,98 +0.002362,98 +0.002358,98 +0.002454,98 +0.002325,98 +0.002288,98 +0.002278,98 +0.002257,98 +0.002223,98 +0.002179,98 +0.002391,98 +0.002197,98 +0.002214,98 +0.002179,98 +0.002314,98 +0.002227,98 +0.002189,98 +0.002274,98 +0.002424,98 +0.002317,98 +0.002325,98 +0.002287,98 +0.002440,98 +0.002235,98 +0.002631,100 +0.003587,100 +0.003203,100 +0.002856,100 +0.002599,100 +0.002795,100 +0.003222,100 +0.002630,100 +0.002563,100 +0.002547,100 +0.002723,100 +0.002813,100 +0.002615,100 +0.002694,100 +0.002470,100 +0.002390,100 +0.002378,100 +0.002357,100 +0.002366,100 +0.002859,100 +0.002374,100 +0.002423,100 +0.002399,100 +0.002359,100 +0.002351,100 +0.002440,100 +0.002509,100 +0.002368,100 +0.002309,100 +0.002358,100 +0.002390,100 +0.002361,100 +0.002445,100 +0.002447,100 +0.002343,100 +0.002413,100 +0.002403,100 +0.002494,100 +0.002308,100 +0.002389,100 +0.002390,100 +0.002425,100 +0.002337,100 +0.002404,100 +0.002424,100 +0.002375,100 +0.002355,100 +0.003358,100 +0.004333,100 +0.004395,100 +0.002452,100 +0.002391,100 +0.002436,100 +0.002365,100 +0.002428,100 +0.002455,100 +0.002320,100 +0.002347,100 +0.002438,100 +0.002372,100 +0.002368,100 +0.002329,100 +0.002793,100 +0.002615,100 +0.002933,100 +0.003123,100 +0.002914,100 +0.002838,100 +0.003154,100 +0.002967,100 +0.003166,100 +0.003947,100 +0.003279,100 +0.003344,100 +0.002560,100 +0.002644,100 +0.003361,100 +0.002568,100 +0.002543,100 +0.002499,100 +0.002502,100 +0.002419,100 +0.002838,100 +0.004438,100 +0.004333,100 +0.003139,100 +0.002395,100 +0.002680,100 +0.002382,100 +0.002357,100 +0.002347,100 +0.002398,100 +0.002343,100 +0.002342,100 +0.002576,100 +0.002307,100 +0.002332,100 +0.002468,100 +0.002346,100 +0.002337,100 +0.002496,102 +0.002542,102 +0.002490,102 +0.002453,102 +0.002558,102 +0.002461,102 +0.002476,102 +0.002542,102 +0.002453,102 +0.002459,102 +0.002561,102 +0.002531,102 +0.002735,102 +0.002487,102 +0.002580,102 +0.002558,102 +0.002536,102 +0.002528,102 +0.002747,102 +0.002652,102 +0.002880,102 +0.002657,102 +0.002634,102 +0.002690,102 +0.002908,102 +0.002496,102 +0.002894,102 +0.002579,102 +0.002784,102 +0.002583,102 +0.002614,102 +0.002550,102 +0.002555,102 +0.002724,102 +0.002518,102 +0.002594,102 +0.002585,102 +0.002763,102 +0.002479,102 +0.002635,102 +0.002453,102 +0.002732,102 +0.002579,102 +0.002501,102 +0.002537,102 +0.002552,102 +0.002534,102 +0.002491,102 +0.002521,102 +0.002630,102 +0.002478,102 +0.002453,102 +0.002599,102 +0.002474,102 +0.002485,102 +0.002490,102 +0.002544,102 +0.002462,102 +0.002457,102 +0.002535,102 +0.002597,102 +0.002591,102 +0.002620,102 +0.002619,102 +0.002475,102 +0.002493,102 +0.002487,102 +0.002495,102 +0.002473,102 +0.002588,102 +0.002487,102 +0.002486,102 +0.002559,102 +0.002453,102 +0.002496,102 +0.002492,102 +0.002496,102 +0.002455,102 +0.002453,102 +0.002457,102 +0.002455,102 +0.002454,102 +0.002496,102 +0.002492,102 +0.002455,102 +0.002457,102 +0.002452,102 +0.002455,102 +0.002617,102 +0.002530,102 +0.002455,102 +0.002492,102 +0.002455,102 +0.002458,102 +0.002453,102 +0.002455,102 +0.002530,102 +0.002486,102 +0.002476,102 +0.002453,102 +0.002644,104 +0.002914,104 +0.002769,104 +0.002818,104 +0.003162,104 +0.002768,104 +0.002623,104 +0.002629,104 +0.002696,104 +0.002602,104 +0.002633,104 +0.002769,104 +0.002594,104 +0.002641,104 +0.002669,104 +0.002631,104 +0.002635,104 +0.002638,104 +0.002594,104 +0.002596,104 +0.002593,104 +0.002675,104 +0.002601,104 +0.002594,104 +0.002599,104 +0.002614,104 +0.002682,104 +0.002697,104 +0.002606,104 +0.002593,104 +0.002598,104 +0.002596,104 +0.002827,104 +0.002739,104 +0.002733,104 +0.002605,104 +0.002660,104 +0.002610,104 +0.002770,104 +0.002754,104 +0.002903,104 +0.002616,104 +0.002653,104 +0.002636,104 +0.002594,104 +0.002617,104 +0.002683,104 +0.002593,104 +0.002621,104 +0.002694,104 +0.002593,104 +0.002931,104 +0.002687,104 +0.002611,104 +0.002615,104 +0.002731,104 +0.002594,104 +0.002599,104 +0.002743,104 +0.002827,104 +0.002593,104 +0.002853,104 +0.002641,104 +0.002677,104 +0.002846,104 +0.002660,104 +0.002593,104 +0.002880,104 +0.002618,104 +0.002593,104 +0.002888,104 +0.002700,104 +0.002593,104 +0.002697,104 +0.002763,104 +0.002742,104 +0.002744,104 +0.002944,104 +0.002612,104 +0.002875,104 +0.002688,104 +0.002594,104 +0.002825,104 +0.002811,104 +0.002790,104 +0.002676,104 +0.002923,104 +0.002650,104 +0.002593,104 +0.002882,104 +0.002773,104 +0.002749,104 +0.002754,104 +0.002698,104 +0.002613,104 +0.002846,104 +0.002832,104 +0.002777,104 +0.002671,104 +0.002618,104 +0.002861,106 +0.002804,106 +0.002767,106 +0.002771,106 +0.002765,106 +0.002768,106 +0.002816,106 +0.003076,106 +0.002747,106 +0.002774,106 +0.002827,106 +0.002822,106 +0.002887,106 +0.003106,106 +0.002937,106 +0.002827,106 +0.002802,106 +0.002752,106 +0.002786,106 +0.002772,106 +0.002751,106 +0.002766,106 +0.002749,106 +0.002751,106 +0.002757,106 +0.002778,106 +0.002750,106 +0.002749,106 +0.002746,106 +0.002751,106 +0.002749,106 +0.002808,106 +0.002755,106 +0.002766,106 +0.002747,106 +0.002748,106 +0.002812,106 +0.003042,106 +0.002754,106 +0.002816,106 +0.002796,106 +0.002796,106 +0.002974,106 +0.002886,106 +0.002746,106 +0.002830,106 +0.002770,106 +0.002814,106 +0.002845,106 +0.002852,106 +0.002921,106 +0.002764,106 +0.002799,106 +0.002937,106 +0.002828,106 +0.002919,106 +0.002782,106 +0.002887,106 +0.002747,106 +0.002781,106 +0.002797,106 +0.002784,106 +0.002768,106 +0.002771,106 +0.002777,106 +0.002746,106 +0.002824,106 +0.002789,106 +0.002930,106 +0.003093,106 +0.002806,106 +0.002859,106 +0.002835,106 +0.002773,106 +0.003069,106 +0.002904,106 +0.002781,106 +0.002778,106 +0.003197,106 +0.002853,106 +0.002909,106 +0.002748,106 +0.003053,106 +0.003029,106 +0.002944,106 +0.003028,106 +0.002922,106 +0.002943,106 +0.002805,106 +0.002842,106 +0.003043,106 +0.002790,106 +0.002891,106 +0.003061,106 +0.002766,106 +0.002845,106 +0.003088,106 +0.002893,106 +0.002975,106 +0.002841,106 +0.003258,108 +0.003219,108 +0.003353,108 +0.003234,108 +0.003371,108 +0.003265,108 +0.003275,108 +0.003025,108 +0.003320,108 +0.003132,108 +0.003040,108 +0.003275,108 +0.003107,108 +0.003192,108 +0.002982,108 +0.002944,108 +0.003102,108 +0.003042,108 +0.003119,108 +0.003389,108 +0.002972,108 +0.002947,108 +0.002959,108 +0.002946,108 +0.003023,108 +0.003080,108 +0.002959,108 +0.003009,108 +0.002963,108 +0.002908,108 +0.003800,108 +0.002959,108 +0.002980,108 +0.002962,108 +0.002907,108 +0.003076,108 +0.003053,108 +0.003043,108 +0.002974,108 +0.002942,108 +0.002948,108 +0.003255,108 +0.003202,108 +0.002996,108 +0.002961,108 +0.002941,108 +0.003798,108 +0.003248,108 +0.003472,108 +0.003765,108 +0.003114,108 +0.003797,108 +0.003137,108 +0.002941,108 +0.003015,108 +0.002948,108 +0.003830,108 +0.003539,108 +0.003319,108 +0.003370,108 +0.003390,108 +0.003863,108 +0.003414,108 +0.003166,108 +0.003177,108 +0.002997,108 +0.004755,108 +0.003511,108 +0.003067,108 +0.003015,108 +0.003014,108 +0.004106,108 +0.003278,108 +0.002963,108 +0.003018,108 +0.003021,108 +0.003756,108 +0.003218,108 +0.004016,108 +0.003551,108 +0.003735,108 +0.003652,108 +0.002973,108 +0.003049,108 +0.003021,108 +0.003233,108 +0.003566,108 +0.003014,108 +0.002982,108 +0.003015,108 +0.002909,108 +0.003506,108 +0.003099,108 +0.003016,108 +0.002987,108 +0.003012,108 +0.003344,108 +0.003108,108 +0.003036,108 +0.002986,108 +0.003121,110 +0.003308,110 +0.003645,110 +0.003130,110 +0.003139,110 +0.003119,110 +0.003193,110 +0.003599,110 +0.003218,110 +0.003943,110 +0.003833,110 +0.004163,110 +0.003342,110 +0.003072,110 +0.003193,110 +0.003109,110 +0.003806,110 +0.003317,110 +0.003172,110 +0.003261,110 +0.003104,110 +0.004003,110 +0.003298,110 +0.003116,110 +0.003148,110 +0.003104,110 +0.003832,110 +0.003439,110 +0.003874,110 +0.003440,110 +0.005118,110 +0.004115,110 +0.003377,110 +0.003371,110 +0.003585,110 +0.004081,110 +0.003263,110 +0.003363,110 +0.005218,110 +0.004327,110 +0.003541,110 +0.003458,110 +0.003406,110 +0.003481,110 +0.004168,110 +0.003612,110 +0.004007,110 +0.003247,110 +0.003406,110 +0.003569,110 +0.003616,110 +0.003771,110 +0.003692,110 +0.003914,110 +0.004257,110 +0.003764,110 +0.003408,110 +0.003849,110 +0.004592,110 +0.003795,110 +0.003294,110 +0.004595,110 +0.005149,110 +0.004321,110 +0.003406,110 +0.004178,110 +0.005475,110 +0.005511,110 +0.003782,110 +0.003560,110 +0.004343,110 +0.003608,110 +0.003263,110 +0.004953,110 +0.004977,110 +0.006301,110 +0.005646,110 +0.004369,110 +0.004527,110 +0.005416,110 +0.004751,110 +0.003676,110 +0.003736,110 +0.003644,110 +0.005144,110 +0.004847,110 +0.005405,110 +0.003992,110 +0.003676,110 +0.004584,110 +0.003187,110 +0.003931,110 +0.004963,110 +0.004742,110 +0.004872,110 +0.003628,110 +0.003541,110 +0.003228,110 +0.003850,110 +0.005009,110 +0.005836,112 +0.006242,112 +0.006106,112 +0.003673,112 +0.003781,112 +0.003425,112 +0.003692,112 +0.004829,112 +0.003334,112 +0.004316,112 +0.004068,112 +0.006432,112 +0.004738,112 +0.003701,112 +0.003584,112 +0.003472,112 +0.003439,112 +0.004773,112 +0.004372,112 +0.004500,112 +0.003843,112 +0.003317,112 +0.004180,112 +0.003587,112 +0.004891,112 +0.003355,112 +0.004367,112 +0.005543,112 +0.004212,112 +0.003753,112 +0.005279,112 +0.006208,112 +0.006200,112 +0.005718,112 +0.004388,112 +0.003853,112 +0.004592,112 +0.005675,112 +0.005520,112 +0.004401,112 +0.004859,112 +0.006026,112 +0.005075,112 +0.004250,112 +0.004091,112 +0.003717,112 +0.003554,112 +0.003785,112 +0.003421,112 +0.003694,112 +0.003385,112 +0.003369,112 +0.003600,112 +0.003460,112 +0.003418,112 +0.005473,112 +0.006749,112 +0.004214,112 +0.003674,112 +0.004082,112 +0.003621,112 +0.003577,112 +0.003567,112 +0.003612,112 +0.004367,112 +0.003855,112 +0.004755,112 +0.004980,112 +0.004530,112 +0.004115,112 +0.004447,112 +0.003744,112 +0.003871,112 +0.003347,112 +0.003526,112 +0.004476,112 +0.005915,112 +0.006213,112 +0.005642,112 +0.003939,112 +0.004915,112 +0.003862,112 +0.003666,112 +0.005661,112 +0.004728,112 +0.004609,112 +0.004075,112 +0.003584,112 +0.003461,112 +0.003718,112 +0.003806,112 +0.004843,112 +0.003594,112 +0.003614,112 +0.003549,112 +0.004039,112 +0.003723,112 +0.003414,112 +0.003796,112 +0.003973,112 +0.004787,114 +0.004136,114 +0.003698,114 +0.003936,114 +0.004186,114 +0.003469,114 +0.003586,114 +0.003563,114 +0.004120,114 +0.003981,114 +0.003613,114 +0.003603,114 +0.004202,114 +0.003610,114 +0.003615,114 +0.003970,114 +0.003713,114 +0.004594,114 +0.003967,114 +0.003705,114 +0.003533,114 +0.005343,114 +0.003616,114 +0.003937,114 +0.003666,114 +0.004701,114 +0.004117,114 +0.003791,114 +0.003927,114 +0.004133,114 +0.003919,114 +0.003650,114 +0.003989,114 +0.005745,114 +0.004907,114 +0.004419,114 +0.006310,114 +0.004878,114 +0.005730,114 +0.004555,114 +0.004293,114 +0.004167,114 +0.003760,114 +0.003707,114 +0.004708,114 +0.004830,114 +0.004394,114 +0.004506,114 +0.004576,114 +0.003709,114 +0.003710,114 +0.003735,114 +0.003963,114 +0.003603,114 +0.003639,114 +0.003622,114 +0.003918,114 +0.003500,114 +0.003536,114 +0.003496,114 +0.003747,114 +0.004614,114 +0.003626,114 +0.003560,114 +0.004132,114 +0.003929,114 +0.003513,114 +0.003639,114 +0.003501,114 +0.004693,114 +0.003638,114 +0.003510,114 +0.003523,114 +0.005249,114 +0.003929,114 +0.003533,114 +0.003540,114 +0.003679,114 +0.004028,114 +0.003837,114 +0.004211,114 +0.004641,114 +0.003909,114 +0.003980,114 +0.003944,114 +0.003978,114 +0.003950,114 +0.003711,114 +0.004290,114 +0.004783,114 +0.003931,114 +0.003651,114 +0.003681,114 +0.003937,114 +0.004409,114 +0.004043,114 +0.004928,114 +0.004647,114 +0.004604,114 +0.004061,114 +0.003837,116 +0.003813,116 +0.003887,116 +0.004217,116 +0.003743,116 +0.003736,116 +0.004412,116 +0.003754,116 +0.003727,116 +0.003773,116 +0.004102,116 +0.004182,116 +0.003631,116 +0.003809,116 +0.003794,116 +0.004108,116 +0.003639,116 +0.003756,116 +0.003689,116 +0.004026,116 +0.003754,116 +0.003671,116 +0.003682,116 +0.003978,116 +0.003798,116 +0.003636,116 +0.003711,116 +0.004586,116 +0.004441,116 +0.004037,116 +0.003830,116 +0.003782,116 +0.004104,116 +0.003632,116 +0.003748,116 +0.003665,116 +0.004122,116 +0.003719,116 +0.003682,116 +0.003697,116 +0.003930,116 +0.003940,116 +0.003639,116 +0.003774,116 +0.003674,116 +0.004208,116 +0.003627,116 +0.003687,116 +0.003675,116 +0.004086,116 +0.003825,116 +0.003594,116 +0.003723,116 +0.004457,116 +0.004397,116 +0.003899,116 +0.003694,116 +0.003790,116 +0.004091,116 +0.003629,116 +0.004212,116 +0.003711,116 +0.004105,116 +0.003695,116 +0.003939,116 +0.003718,116 +0.004045,116 +0.004201,116 +0.003629,116 +0.003789,116 +0.003828,116 +0.004067,116 +0.003635,116 +0.003762,116 +0.003638,116 +0.004158,116 +0.003709,116 +0.003672,116 +0.003669,116 +0.003834,116 +0.003983,116 +0.004511,116 +0.003747,116 +0.003918,116 +0.003984,116 +0.003632,116 +0.003687,116 +0.003700,116 +0.004324,116 +0.003912,116 +0.004117,116 +0.004163,116 +0.004294,116 +0.003923,116 +0.003681,116 +0.003711,116 +0.004289,116 +0.004412,116 +0.003677,116 +0.003650,116 +0.004346,118 +0.003991,118 +0.003824,118 +0.003865,118 +0.003964,118 +0.004073,118 +0.004120,118 +0.003890,118 +0.003943,118 +0.004015,118 +0.003822,118 +0.003899,118 +0.003838,118 +0.004025,118 +0.003836,118 +0.003853,118 +0.003892,118 +0.003903,118 +0.003821,118 +0.003811,118 +0.003981,118 +0.003875,118 +0.003817,118 +0.003806,118 +0.003877,118 +0.003795,118 +0.003856,118 +0.003790,118 +0.003831,118 +0.003843,118 +0.004057,118 +0.004039,118 +0.003847,118 +0.003866,118 +0.003882,118 +0.003810,118 +0.003817,118 +0.003938,118 +0.003862,118 +0.003835,118 +0.003787,118 +0.003868,118 +0.003877,118 +0.003898,118 +0.003814,118 +0.003827,118 +0.003906,118 +0.003855,118 +0.003836,118 +0.003836,118 +0.003881,118 +0.003875,118 +0.003795,118 +0.003789,118 +0.003846,118 +0.003810,118 +0.004143,118 +0.004031,118 +0.003871,118 +0.003842,118 +0.003850,118 +0.003794,118 +0.003790,118 +0.003881,118 +0.003891,118 +0.003850,118 +0.003791,118 +0.003886,118 +0.004017,118 +0.003790,118 +0.003787,118 +0.003825,118 +0.003930,118 +0.003822,118 +0.003789,118 +0.003793,118 +0.003874,118 +0.003793,118 +0.003789,118 +0.003789,118 +0.003855,118 +0.003809,118 +0.004019,118 +0.004125,118 +0.003866,118 +0.003863,118 +0.003847,118 +0.003883,118 +0.003818,118 +0.003886,118 +0.003990,118 +0.003835,118 +0.003814,118 +0.003876,118 +0.003837,118 +0.003814,118 +0.003791,118 +0.003847,118 +0.003900,118 +0.003798,118 +0.004000,120 +0.004003,120 +0.004077,120 +0.003994,120 +0.003974,120 +0.003978,120 +0.004037,120 +0.003980,120 +0.004235,120 +0.004179,120 +0.004089,120 +0.003979,120 +0.003974,120 +0.004010,120 +0.004069,120 +0.003998,120 +0.003995,120 +0.003976,120 +0.004063,120 +0.004007,120 +0.004009,120 +0.003985,120 +0.004014,120 +0.004230,120 +0.003977,120 +0.003984,120 +0.004036,120 +0.004071,120 +0.003974,120 +0.004011,120 +0.004010,120 +0.004069,120 +0.003974,120 +0.004183,120 +0.004231,120 +0.004194,120 +0.003994,120 +0.004074,120 +0.004010,120 +0.004118,120 +0.004167,120 +0.004004,120 +0.003977,120 +0.004067,120 +0.003977,120 +0.003979,120 +0.003978,120 +0.004116,120 +0.004197,120 +0.003985,120 +0.003974,120 +0.004189,120 +0.004266,120 +0.004054,120 +0.004065,120 +0.004118,120 +0.004036,120 +0.004116,120 +0.004106,120 +0.004314,120 +0.003997,120 +0.004074,120 +0.004018,120 +0.004176,120 +0.004099,120 +0.004020,120 +0.004015,120 +0.004070,120 +0.004088,120 +0.004059,120 +0.003995,120 +0.004057,120 +0.004145,120 +0.004015,120 +0.003982,120 +0.004031,120 +0.004070,120 +0.004034,120 +0.003996,120 +0.003981,120 +0.004161,120 +0.004040,120 +0.004191,120 +0.004170,120 +0.004290,120 +0.004079,120 +0.004132,120 +0.004137,120 +0.004106,120 +0.004235,120 +0.004068,120 +0.004007,120 +0.004126,120 +0.004024,120 +0.004011,120 +0.003998,120 +0.004253,120 +0.004004,120 +0.003992,120 +0.003978,120 +0.004298,122 +0.004239,122 +0.004193,122 +0.004273,122 +0.004511,122 +0.004250,122 +0.004320,122 +0.004322,122 +0.004460,122 +0.004300,122 +0.004190,122 +0.004215,122 +0.004357,122 +0.004246,122 +0.004205,122 +0.004235,122 +0.004389,122 +0.004201,122 +0.004194,122 +0.004306,122 +0.004595,122 +0.004326,122 +0.004256,122 +0.004449,122 +0.004713,122 +0.004423,122 +0.004446,122 +0.006128,122 +0.004411,122 +0.004457,122 +0.004512,122 +0.004526,122 +0.004402,122 +0.004343,122 +0.004366,122 +0.004230,122 +0.004355,122 +0.004229,122 +0.004364,122 +0.004227,122 +0.004440,122 +0.004216,122 +0.004329,122 +0.004527,122 +0.004341,122 +0.004345,122 +0.004381,122 +0.004347,122 +0.004344,122 +0.004340,122 +0.004348,122 +0.004345,122 +0.004357,122 +0.004451,122 +0.004466,122 +0.004447,122 +0.004343,122 +0.004389,122 +0.004335,122 +0.004316,122 +0.004315,122 +0.004398,122 +0.004329,122 +0.004331,122 +0.004306,122 +0.004485,122 +0.004364,122 +0.004366,122 +0.004397,122 +0.004434,122 +0.004343,122 +0.004308,122 +0.004346,122 +0.004389,122 +0.004326,122 +0.004366,122 +0.004459,122 +0.004491,122 +0.004347,122 +0.004341,122 +0.004427,122 +0.004351,122 +0.004329,122 +0.004334,122 +0.004406,122 +0.004350,122 +0.004357,122 +0.004361,122 +0.004495,122 +0.004339,122 +0.004342,122 +0.004354,122 +0.004483,122 +0.004325,122 +0.004302,122 +0.004377,122 +0.004309,122 +0.004324,122 +0.004372,122 +0.004457,122 +0.004703,124 +0.004598,124 +0.004443,124 +0.004476,124 +0.004466,124 +0.004408,124 +0.004476,124 +0.004529,124 +0.004481,124 +0.004412,124 +0.004553,124 +0.004512,124 +0.004408,124 +0.004450,124 +0.004573,124 +0.004461,124 +0.007765,124 +0.005173,124 +0.004744,124 +0.004438,124 +0.004704,124 +0.004726,124 +0.004482,124 +0.004423,124 +0.004644,124 +0.004437,124 +0.004417,124 +0.004424,124 +0.004531,124 +0.004459,124 +0.004431,124 +0.004436,124 +0.004615,124 +0.004449,124 +0.004406,124 +0.004666,124 +0.004435,124 +0.004412,124 +0.004413,124 +0.004490,124 +0.004397,124 +0.004397,124 +0.004487,124 +0.004666,124 +0.004561,124 +0.004433,124 +0.004493,124 +0.004520,124 +0.004441,124 +0.004409,124 +0.004517,124 +0.004419,124 +0.004487,124 +0.004420,124 +0.004562,124 +0.004588,124 +0.004433,124 +0.004631,124 +0.004484,124 +0.004458,124 +0.004426,124 +0.004541,124 +0.004425,124 +0.004432,124 +0.004439,124 +0.004638,124 +0.004596,124 +0.004526,124 +0.004487,124 +0.004598,124 +0.004609,124 +0.004424,124 +0.004537,124 +0.004436,124 +0.004412,124 +0.004425,124 +0.004503,124 +0.004560,124 +0.004420,124 +0.004558,124 +0.004533,124 +0.004439,124 +0.004428,124 +0.004719,124 +0.004512,124 +0.004412,124 +0.004443,124 +0.004649,124 +0.004616,124 +0.004498,124 +0.004453,124 +0.004595,124 +0.004456,124 +0.004447,124 +0.004518,124 +0.004489,124 +0.004441,124 +0.004410,124 +0.004513,124 +0.004580,124 +0.004662,126 +0.004719,126 +0.004843,126 +0.004653,126 +0.004644,126 +0.004688,126 +0.004709,126 +0.004654,126 +0.004646,126 +0.004866,126 +0.004883,126 +0.004728,126 +0.004737,126 +0.004719,126 +0.004731,126 +0.004628,126 +0.004735,126 +0.004633,126 +0.004650,126 +0.004696,126 +0.004805,126 +0.004666,126 +0.004765,126 +0.004727,126 +0.004697,126 +0.004747,126 +0.004852,126 +0.004697,126 +0.004709,126 +0.004681,126 +0.004790,126 +0.004838,126 +0.004740,126 +0.004898,126 +0.004784,126 +0.004648,126 +0.004651,126 +0.004750,126 +0.004659,126 +0.004632,126 +0.004671,126 +0.004750,126 +0.004914,126 +0.004887,126 +0.004847,126 +0.004825,126 +0.004675,126 +0.004664,126 +0.004737,126 +0.004657,126 +0.004647,126 +0.004924,126 +0.004950,126 +0.004737,126 +0.004776,126 +0.004728,126 +0.004695,126 +0.004665,126 +0.004781,126 +0.004666,126 +0.004647,126 +0.004690,126 +0.004912,126 +0.004696,126 +0.004686,126 +0.004803,126 +0.004740,126 +0.004676,126 +0.004654,126 +0.004776,126 +0.004657,126 +0.004629,126 +0.004816,126 +0.005045,126 +0.004844,126 +0.004628,126 +0.004776,126 +0.004704,126 +0.004647,126 +0.004736,126 +0.004655,126 +0.004628,126 +0.004640,126 +0.004790,126 +0.004961,126 +0.004783,126 +0.004804,126 +0.004800,126 +0.004720,126 +0.004644,126 +0.004755,126 +0.004661,126 +0.004621,126 +0.004692,126 +0.005043,126 +0.004882,126 +0.004638,126 +0.004839,126 +0.004672,126 +0.004690,126 +0.005225,128 +0.005116,128 +0.005117,128 +0.005175,128 +0.005454,128 +0.005123,128 +0.005107,128 +0.005244,128 +0.005112,128 +0.005123,128 +0.005198,128 +0.005114,128 +0.005077,128 +0.005257,128 +0.005528,128 +0.005315,128 +0.005355,128 +0.005147,128 +0.005106,128 +0.005195,128 +0.005178,128 +0.005105,128 +0.005101,128 +0.005230,128 +0.005409,128 +0.005327,128 +0.005247,128 +0.005288,128 +0.005124,128 +0.005236,128 +0.005127,128 +0.005086,128 +0.005232,128 +0.005578,128 +0.005388,128 +0.005298,128 +0.005190,128 +0.005099,128 +0.005194,128 +0.005261,128 +0.005117,128 +0.005080,128 +0.005250,128 +0.005435,128 +0.005136,128 +0.005334,128 +0.005132,128 +0.005104,128 +0.005230,128 +0.005121,128 +0.005105,128 +0.005130,128 +0.005415,128 +0.005546,128 +0.005168,128 +0.005223,128 +0.005133,128 +0.005122,128 +0.005209,128 +0.005182,128 +0.005085,128 +0.005205,128 +0.005457,128 +0.005141,128 +0.005219,128 +0.005170,128 +0.005112,128 +0.005161,128 +0.005167,128 +0.005112,128 +0.005090,128 +0.005313,128 +0.005500,128 +0.005229,128 +0.005250,128 +0.005178,128 +0.005094,128 +0.005220,128 +0.005137,128 +0.005098,128 +0.005203,128 +0.005323,128 +0.005221,128 +0.005148,128 +0.005209,128 +0.005150,128 +0.005138,128 +0.005215,128 +0.005138,128 +0.005098,128 +0.005285,128 +0.005508,128 +0.005329,128 +0.005309,128 +0.005242,128 +0.005208,128 +0.005242,128 +0.005098,128 +0.005136,128 +0.005154,128 +0.005345,130 +0.005109,130 +0.005101,130 +0.005213,130 +0.005168,130 +0.005101,130 +0.005221,130 +0.005093,130 +0.005125,130 +0.005204,130 +0.005441,130 +0.005309,130 +0.005259,130 +0.005137,130 +0.005116,130 +0.005168,130 +0.005155,130 +0.005108,130 +0.005112,130 +0.005368,130 +0.005092,130 +0.005176,130 +0.005233,130 +0.005154,130 +0.005104,130 +0.005250,130 +0.005092,130 +0.005104,130 +0.005175,130 +0.005286,130 +0.005459,130 +0.005212,130 +0.005176,130 +0.005118,130 +0.005108,130 +0.005281,130 +0.005082,130 +0.005103,130 +0.005340,130 +0.005336,130 +0.005093,130 +0.005294,130 +0.005209,130 +0.005164,130 +0.005152,130 +0.005189,130 +0.005329,130 +0.005140,130 +0.005263,130 +0.005501,130 +0.005242,130 +0.005252,130 +0.005155,130 +0.005076,130 +0.005336,130 +0.005101,130 +0.005096,130 +0.005204,130 +0.005323,130 +0.005099,130 +0.005217,130 +0.005142,130 +0.005118,130 +0.005215,130 +0.005208,130 +0.005089,130 +0.005125,130 +0.005244,130 +0.005430,130 +0.005506,130 +0.005299,130 +0.005211,130 +0.005093,130 +0.005205,130 +0.005145,130 +0.005165,130 +0.005192,130 +0.005181,130 +0.005061,130 +0.005089,130 +0.005094,130 +0.005067,130 +0.005056,130 +0.005117,130 +0.005075,130 +0.005056,130 +0.005119,130 +0.005140,130 +0.005332,130 +0.005271,130 +0.005136,130 +0.005077,130 +0.005105,130 +0.005112,130 +0.005063,130 +0.005056,130 +0.005156,130 +0.005151,130 +0.005054,130 +0.005122,130 +0.005310,132 +0.005291,132 +0.005352,132 +0.005298,132 +0.005291,132 +0.005321,132 +0.005322,132 +0.005535,132 +0.005626,132 +0.005791,132 +0.005476,132 +0.005464,132 +0.005361,132 +0.005298,132 +0.005315,132 +0.005324,132 +0.005383,132 +0.005287,132 +0.005357,132 +0.005293,132 +0.005288,132 +0.005351,132 +0.005338,132 +0.005285,132 +0.005348,132 +0.005316,132 +0.005635,132 +0.005557,132 +0.005343,132 +0.005305,132 +0.005344,132 +0.005322,132 +0.005313,132 +0.005343,132 +0.005423,132 +0.005314,132 +0.005394,132 +0.005388,132 +0.005292,132 +0.005315,132 +0.005354,132 +0.005294,132 +0.005286,132 +0.005360,132 +0.005639,132 +0.005569,132 +0.006009,132 +0.005312,132 +0.005299,132 +0.005374,132 +0.005315,132 +0.005288,132 +0.005413,132 +0.005389,132 +0.005398,132 +0.005396,132 +0.005329,132 +0.005370,132 +0.005364,132 +0.005331,132 +0.005289,132 +0.005350,132 +0.005295,132 +0.005458,132 +0.005831,132 +0.005349,132 +0.005310,132 +0.005362,132 +0.005319,132 +0.005291,132 +0.005315,132 +0.005331,132 +0.005644,132 +0.005542,132 +0.005394,132 +0.005322,132 +0.005315,132 +0.005354,132 +0.005291,132 +0.005286,132 +0.005589,132 +0.005461,132 +0.005522,132 +0.005612,132 +0.005323,132 +0.005350,132 +0.005379,132 +0.005328,132 +0.005358,132 +0.005373,132 +0.005383,132 +0.005312,132 +0.005371,132 +0.005300,132 +0.005297,132 +0.005343,132 +0.005318,132 +0.005354,132 +0.005344,132 +0.005297,132 +0.005727,134 +0.006001,134 +0.005604,134 +0.005544,134 +0.005591,134 +0.005575,134 +0.005543,134 +0.005602,134 +0.005628,134 +0.005538,134 +0.005601,134 +0.005582,134 +0.005604,134 +0.005593,134 +0.005555,134 +0.005542,134 +0.005612,134 +0.005551,134 +0.005696,134 +0.005928,134 +0.005598,134 +0.005536,134 +0.005602,134 +0.005548,134 +0.005540,134 +0.005598,134 +0.005626,134 +0.005551,134 +0.005602,134 +0.005581,134 +0.005547,134 +0.005591,134 +0.005553,134 +0.005532,134 +0.005735,134 +0.006111,134 +0.006117,134 +0.006362,134 +0.006082,134 +0.006000,134 +0.006281,134 +0.006361,134 +0.006285,134 +0.006281,134 +0.005964,134 +0.006317,134 +0.005929,134 +0.006001,134 +0.006070,134 +0.006045,134 +0.006063,134 +0.006067,134 +0.006021,134 +0.006119,134 +0.006383,134 +0.006022,134 +0.006130,134 +0.006054,134 +0.006025,134 +0.006338,134 +0.006325,134 +0.006297,134 +0.006315,134 +0.005940,134 +0.006068,134 +0.006203,134 +0.006115,134 +0.006111,134 +0.006095,134 +0.006063,134 +0.006335,134 +0.006279,134 +0.006346,134 +0.006127,134 +0.006091,134 +0.006185,134 +0.006060,134 +0.005912,134 +0.006329,134 +0.006379,134 +0.006502,134 +0.006095,134 +0.005933,134 +0.006228,134 +0.005815,134 +0.005759,134 +0.005961,134 +0.005614,134 +0.005607,134 +0.005765,134 +0.005981,134 +0.005591,134 +0.005644,134 +0.005614,134 +0.005600,134 +0.005722,134 +0.005538,134 +0.005589,134 +0.005558,134 +0.005544,134 +0.005834,136 +0.005784,136 +0.005778,136 +0.006098,136 +0.006070,136 +0.005775,136 +0.005948,136 +0.006690,136 +0.005806,136 +0.006403,136 +0.006005,136 +0.006340,136 +0.006973,136 +0.006158,136 +0.006490,136 +0.006354,136 +0.005946,136 +0.006281,136 +0.006280,136 +0.006033,136 +0.006958,136 +0.005882,136 +0.006158,136 +0.006321,136 +0.005967,136 +0.006395,136 +0.006145,136 +0.005931,136 +0.006476,136 +0.006284,136 +0.006077,136 +0.006248,136 +0.006011,136 +0.006106,136 +0.006188,136 +0.005986,136 +0.006076,136 +0.006000,136 +0.005937,136 +0.005843,136 +0.005895,136 +0.005877,136 +0.005874,136 +0.005772,136 +0.005883,136 +0.005784,136 +0.005777,136 +0.005908,136 +0.005777,136 +0.005814,136 +0.005822,136 +0.005816,136 +0.005897,136 +0.006165,136 +0.005819,136 +0.005870,136 +0.005808,136 +0.005839,136 +0.005863,136 +0.005844,136 +0.005773,136 +0.005864,136 +0.005783,136 +0.005776,136 +0.005863,136 +0.005780,136 +0.005784,136 +0.005877,136 +0.005782,136 +0.005913,136 +0.006143,136 +0.005873,136 +0.005858,136 +0.005805,136 +0.005825,136 +0.005900,136 +0.005794,136 +0.005851,136 +0.005868,136 +0.005780,136 +0.005806,136 +0.005853,136 +0.005777,136 +0.005772,136 +0.005847,136 +0.005780,136 +0.005777,136 +0.006138,136 +0.005983,136 +0.005805,136 +0.005818,136 +0.005781,136 +0.005883,136 +0.005782,136 +0.005879,136 +0.005866,136 +0.005825,136 +0.005798,136 +0.005845,136 +0.005789,136 +0.006144,138 +0.006206,138 +0.006050,138 +0.006082,138 +0.006384,138 +0.006272,138 +0.006127,138 +0.006058,138 +0.006054,138 +0.006137,138 +0.006182,138 +0.006050,138 +0.006651,138 +0.006438,138 +0.006146,138 +0.006533,138 +0.006085,138 +0.006288,138 +0.006086,138 +0.006083,138 +0.006998,138 +0.006314,138 +0.006406,138 +0.006107,138 +0.006110,138 +0.006393,138 +0.006200,138 +0.006092,138 +0.006353,138 +0.006054,138 +0.006401,138 +0.006207,138 +0.006265,138 +0.006150,138 +0.006073,138 +0.006086,138 +0.006353,138 +0.006384,138 +0.006190,138 +0.006075,138 +0.006109,138 +0.006160,138 +0.006171,138 +0.006062,138 +0.006181,138 +0.006079,138 +0.006195,138 +0.006082,138 +0.006056,138 +0.006119,138 +0.006057,138 +0.006043,138 +0.006311,138 +0.006433,138 +0.006132,138 +0.006261,138 +0.006091,138 +0.006167,138 +0.006054,138 +0.006126,138 +0.006143,138 +0.006052,138 +0.006045,138 +0.006127,138 +0.006047,138 +0.006085,138 +0.006126,138 +0.006050,138 +0.006128,138 +0.006386,138 +0.006225,138 +0.006126,138 +0.006080,138 +0.006061,138 +0.006171,138 +0.006165,138 +0.006168,138 +0.006123,138 +0.006081,138 +0.006128,138 +0.006048,138 +0.006047,138 +0.006126,138 +0.006076,138 +0.006082,138 +0.006268,138 +0.006333,138 +0.006179,138 +0.006075,138 +0.006054,138 +0.006144,138 +0.006149,138 +0.006059,138 +0.006157,138 +0.006082,138 +0.006094,138 +0.006091,138 +0.006047,138 +0.006129,138 +0.006050,138 +0.006337,140 +0.006400,140 +0.006574,140 +0.006676,140 +0.006315,140 +0.006319,140 +0.006404,140 +0.006336,140 +0.006425,140 +0.006379,140 +0.006310,140 +0.006384,140 +0.006309,140 +0.006344,140 +0.006387,140 +0.006314,140 +0.006349,140 +0.006525,140 +0.006626,140 +0.006451,140 +0.006317,140 +0.006307,140 +0.006405,140 +0.006402,140 +0.006386,140 +0.006310,140 +0.006303,140 +0.006385,140 +0.006305,140 +0.006345,140 +0.006347,140 +0.006308,140 +0.006397,140 +0.006469,140 +0.006585,140 +0.006423,140 +0.006313,140 +0.006412,140 +0.006308,140 +0.006395,140 +0.006382,140 +0.006307,140 +0.006343,140 +0.006368,140 +0.006309,140 +0.006386,140 +0.006307,140 +0.006304,140 +0.006382,140 +0.006535,140 +0.006571,140 +0.006345,140 +0.006319,140 +0.006407,140 +0.006317,140 +0.006471,140 +0.006446,140 +0.006339,140 +0.006411,140 +0.006311,140 +0.006303,140 +0.006465,140 +0.006307,140 +0.006342,140 +0.006347,140 +0.006552,140 +0.006571,140 +0.006321,140 +0.006361,140 +0.006429,140 +0.006384,140 +0.006402,140 +0.006311,140 +0.006303,140 +0.006386,140 +0.006306,140 +0.006354,140 +0.006357,140 +0.006309,140 +0.006384,140 +0.006307,140 +0.006558,140 +0.006513,140 +0.006311,140 +0.006354,140 +0.006346,140 +0.006407,140 +0.006385,140 +0.006308,140 +0.006305,140 +0.006381,140 +0.006309,140 +0.006383,140 +0.006312,140 +0.006313,140 +0.006383,140 +0.006480,140 +0.006622,140 +0.006399,140 +0.006320,140 +0.006685,142 +0.006591,142 +0.006702,142 +0.006625,142 +0.006589,142 +0.006665,142 +0.006586,142 +0.006584,142 +0.006666,142 +0.006587,142 +0.006679,142 +0.006590,142 +0.006811,142 +0.006806,142 +0.006596,142 +0.006669,142 +0.006599,142 +0.006663,142 +0.006728,142 +0.006585,142 +0.007004,142 +0.007236,142 +0.007073,142 +0.007474,142 +0.006630,142 +0.006928,142 +0.006732,142 +0.007071,142 +0.006601,142 +0.006587,142 +0.006673,142 +0.006685,142 +0.006709,142 +0.006656,142 +0.006584,142 +0.006663,142 +0.006588,142 +0.006665,142 +0.006650,142 +0.006594,142 +0.006675,142 +0.006671,142 +0.007029,142 +0.006622,142 +0.006624,142 +0.006750,142 +0.007873,142 +0.006733,142 +0.006849,142 +0.006880,142 +0.006839,142 +0.006767,142 +0.006828,142 +0.006757,142 +0.006806,142 +0.006630,142 +0.006778,142 +0.007067,142 +0.006704,142 +0.006746,142 +0.006644,142 +0.006692,142 +0.006747,142 +0.006707,142 +0.006716,142 +0.006660,142 +0.006632,142 +0.006743,142 +0.007173,142 +0.006932,142 +0.006678,142 +0.006988,142 +0.006903,142 +0.006596,142 +0.006914,142 +0.006590,142 +0.007036,142 +0.006830,142 +0.006713,142 +0.006756,142 +0.006656,142 +0.006650,142 +0.006702,142 +0.006673,142 +0.006853,142 +0.006643,142 +0.006941,142 +0.006973,142 +0.006675,142 +0.006820,142 +0.006726,142 +0.006739,142 +0.006694,142 +0.006696,142 +0.006955,142 +0.006669,142 +0.006780,142 +0.006669,142 +0.006774,142 +0.006784,142 +0.006946,144 +0.007180,144 +0.007175,144 +0.006981,144 +0.007011,144 +0.006981,144 +0.007058,144 +0.006979,144 +0.007020,144 +0.006891,144 +0.006974,144 +0.007013,144 +0.007064,144 +0.007010,144 +0.006935,144 +0.007171,144 +0.007264,144 +0.006881,144 +0.007101,144 +0.007048,144 +0.007135,144 +0.006928,144 +0.006969,144 +0.006954,144 +0.006935,144 +0.007018,144 +0.007033,144 +0.007058,144 +0.006911,144 +0.006959,144 +0.007164,144 +0.007034,144 +0.007004,144 +0.006925,144 +0.007048,144 +0.006911,144 +0.006925,144 +0.006982,144 +0.007009,144 +0.006980,144 +0.007044,144 +0.006942,144 +0.007042,144 +0.007044,144 +0.007140,144 +0.007128,144 +0.006992,144 +0.006979,144 +0.006992,144 +0.007026,144 +0.006894,144 +0.006992,144 +0.006908,144 +0.006913,144 +0.007092,144 +0.006903,144 +0.007016,144 +0.006961,144 +0.007095,144 +0.007097,144 +0.007115,144 +0.007031,144 +0.006934,144 +0.007039,144 +0.006954,144 +0.007028,144 +0.006887,144 +0.006999,144 +0.007085,144 +0.006888,144 +0.007021,144 +0.006992,144 +0.007038,144 +0.007296,144 +0.007040,144 +0.007109,144 +0.006944,144 +0.007045,144 +0.006961,144 +0.006940,144 +0.006953,144 +0.006940,144 +0.007063,144 +0.006913,144 +0.007011,144 +0.006932,144 +0.006881,144 +0.007184,144 +0.007128,144 +0.007072,144 +0.006937,144 +0.007065,144 +0.006980,144 +0.006957,144 +0.007054,144 +0.006988,144 +0.007102,144 +0.006926,144 +0.006940,144 +0.007007,144 +0.007310,146 +0.007503,146 +0.007518,146 +0.007639,146 +0.007285,146 +0.007494,146 +0.007291,146 +0.007312,146 +0.007408,146 +0.007292,146 +0.007390,146 +0.007326,146 +0.007384,146 +0.007387,146 +0.007313,146 +0.007532,146 +0.007562,146 +0.007357,146 +0.007306,146 +0.007373,146 +0.007276,146 +0.007394,146 +0.007270,146 +0.007294,146 +0.007332,146 +0.007257,146 +0.007375,146 +0.007292,146 +0.007418,146 +0.007439,146 +0.007513,146 +0.007323,146 +0.007384,146 +0.007416,146 +0.007336,146 +0.007373,146 +0.007230,146 +0.007855,146 +0.007391,146 +0.007525,146 +0.007321,146 +0.007766,146 +0.007705,146 +0.008125,146 +0.007839,146 +0.008005,146 +0.008066,146 +0.007611,146 +0.007603,146 +0.007924,146 +0.007917,146 +0.008697,146 +0.007902,146 +0.008156,146 +0.007777,146 +0.007991,146 +0.007792,146 +0.007690,146 +0.008070,146 +0.007532,146 +0.007425,146 +0.007711,146 +0.007342,146 +0.007745,146 +0.007388,146 +0.007762,146 +0.007380,146 +0.007572,146 +0.008872,146 +0.007442,146 +0.007244,146 +0.007486,146 +0.007478,146 +0.007317,146 +0.007404,146 +0.007255,146 +0.007393,146 +0.007261,146 +0.007373,146 +0.007560,146 +0.007425,146 +0.008690,146 +0.007781,146 +0.007627,146 +0.007529,146 +0.007442,146 +0.007458,146 +0.007404,146 +0.007270,146 +0.007425,146 +0.007276,146 +0.007546,146 +0.007440,146 +0.007283,146 +0.007965,146 +0.008321,146 +0.007419,146 +0.007291,146 +0.007481,146 +0.007402,146 +0.007778,148 +0.007615,148 +0.007758,148 +0.007670,148 +0.007914,148 +0.007726,148 +0.007688,148 +0.008380,148 +0.008756,148 +0.007832,148 +0.007708,148 +0.007808,148 +0.007701,148 +0.007684,148 +0.007601,148 +0.007729,148 +0.007646,148 +0.010019,148 +0.010566,148 +0.008456,148 +0.008756,148 +0.008002,148 +0.007720,148 +0.008182,148 +0.007676,148 +0.007769,148 +0.007617,148 +0.007762,148 +0.007616,148 +0.007896,148 +0.007661,148 +0.008434,148 +0.007774,148 +0.007898,148 +0.007938,148 +0.007794,148 +0.007770,148 +0.007682,148 +0.007740,148 +0.007658,148 +0.007811,148 +0.007639,148 +0.007765,148 +0.008333,148 +0.007766,148 +0.007792,148 +0.008049,148 +0.007656,148 +0.007810,148 +0.007844,148 +0.007735,148 +0.007690,148 +0.007637,148 +0.007724,148 +0.007651,148 +0.007805,148 +0.007719,148 +0.007757,148 +0.007824,148 +0.008019,148 +0.007648,148 +0.007793,148 +0.007652,148 +0.007700,148 +0.007683,148 +0.007605,148 +0.007735,148 +0.007639,148 +0.007750,148 +0.007703,148 +0.007735,148 +0.007821,148 +0.008072,148 +0.007652,148 +0.007801,148 +0.007742,148 +0.007765,148 +0.007639,148 +0.008044,148 +0.008433,148 +0.007989,148 +0.008329,148 +0.008245,148 +0.008221,148 +0.008322,148 +0.008063,148 +0.007857,148 +0.007852,148 +0.007735,148 +0.008152,148 +0.008043,148 +0.008220,148 +0.007921,148 +0.008088,148 +0.008168,148 +0.008056,148 +0.008000,148 +0.008362,148 +0.007909,148 +0.009064,148 +0.008346,150 +0.008128,150 +0.007978,150 +0.007981,150 +0.007997,150 +0.008024,150 +0.008138,150 +0.008056,150 +0.008012,150 +0.008554,150 +0.007982,150 +0.008079,150 +0.008173,150 +0.008247,150 +0.007963,150 +0.007973,150 +0.007973,150 +0.007978,150 +0.007963,150 +0.007982,150 +0.007996,150 +0.008331,150 +0.008317,150 +0.008052,150 +0.008038,150 +0.007984,150 +0.008001,150 +0.008107,150 +0.007991,150 +0.007992,150 +0.008025,150 +0.007979,150 +0.008018,150 +0.008062,150 +0.008459,150 +0.008003,150 +0.008107,150 +0.008063,150 +0.007981,150 +0.007958,150 +0.008063,150 +0.007984,150 +0.008013,150 +0.007974,150 +0.008009,150 +0.008056,150 +0.008926,150 +0.008235,150 +0.008700,150 +0.008811,150 +0.008310,150 +0.008023,150 +0.008036,150 +0.007984,150 +0.008003,150 +0.008007,150 +0.008060,150 +0.007973,150 +0.008231,150 +0.008441,150 +0.008058,150 +0.008011,150 +0.007978,150 +0.008027,150 +0.007937,150 +0.008053,150 +0.007993,150 +0.008003,150 +0.008118,150 +0.008002,150 +0.007976,150 +0.008652,150 +0.008004,150 +0.008149,150 +0.008675,150 +0.008305,150 +0.008023,150 +0.008031,150 +0.007990,150 +0.007980,150 +0.007962,150 +0.008021,150 +0.007980,150 +0.008286,150 +0.008263,150 +0.008098,150 +0.008096,150 +0.008071,150 +0.007968,150 +0.007976,150 +0.007980,150 +0.008035,150 +0.007977,150 +0.008001,150 +0.007974,150 +0.008073,150 +0.008516,150 +0.007981,150 +0.008411,150 +0.008241,150 +0.008650,152 +0.008546,152 +0.008398,152 +0.008301,152 +0.008325,152 +0.008319,152 +0.008371,152 +0.008372,152 +0.008826,152 +0.008335,152 +0.008408,152 +0.008364,152 +0.008326,152 +0.008344,152 +0.008336,152 +0.008302,152 +0.008316,152 +0.008305,152 +0.008350,152 +0.008368,152 +0.008856,152 +0.008355,152 +0.008551,152 +0.008376,152 +0.008291,152 +0.008303,152 +0.008329,152 +0.008321,152 +0.008396,152 +0.008476,152 +0.008333,152 +0.008421,152 +0.009212,152 +0.008451,152 +0.008314,152 +0.008375,152 +0.008240,152 +0.008306,152 +0.008367,152 +0.008485,152 +0.008341,152 +0.008528,152 +0.008268,152 +0.008497,152 +0.008824,152 +0.008429,152 +0.008309,152 +0.008354,152 +0.008250,152 +0.008309,152 +0.008308,152 +0.008352,152 +0.008268,152 +0.008575,152 +0.008266,152 +0.008708,152 +0.008738,152 +0.008758,152 +0.008415,152 +0.008447,152 +0.008256,152 +0.008588,152 +0.008314,152 +0.008504,152 +0.008304,152 +0.008422,152 +0.008275,152 +0.008529,152 +0.008792,152 +0.008401,152 +0.008369,152 +0.008584,152 +0.008314,152 +0.008303,152 +0.008326,152 +0.008382,152 +0.008319,152 +0.008334,152 +0.008260,152 +0.008533,152 +0.008883,152 +0.008571,152 +0.008472,152 +0.008538,152 +0.008479,152 +0.008707,152 +0.008450,152 +0.008625,152 +0.008442,152 +0.008723,152 +0.009167,152 +0.009004,152 +0.009271,152 +0.009005,152 +0.010127,152 +0.010188,152 +0.011063,152 +0.009559,152 +0.009838,152 +0.009961,152 +0.009792,154 +0.009499,154 +0.009653,154 +0.009494,154 +0.009772,154 +0.009646,154 +0.009619,154 +0.009178,154 +0.009863,154 +0.009757,154 +0.009511,154 +0.009677,154 +0.009544,154 +0.009983,154 +0.009500,154 +0.009243,154 +0.009506,154 +0.009279,154 +0.009287,154 +0.009049,154 +0.008765,154 +0.008746,154 +0.008860,154 +0.008931,154 +0.008970,154 +0.008748,154 +0.008955,154 +0.009060,154 +0.009114,154 +0.009070,154 +0.009268,154 +0.009261,154 +0.009288,154 +0.009213,154 +0.009292,154 +0.009037,154 +0.009542,154 +0.009994,154 +0.009146,154 +0.009390,154 +0.009094,154 +0.008783,154 +0.008926,154 +0.008703,154 +0.008679,154 +0.009198,154 +0.008700,154 +0.008618,154 +0.008616,154 +0.008538,154 +0.008603,154 +0.008568,154 +0.008587,154 +0.008565,154 +0.008594,154 +0.008616,154 +0.008779,154 +0.008935,154 +0.008574,154 +0.008673,154 +0.008572,154 +0.008687,154 +0.008556,154 +0.008651,154 +0.008531,154 +0.008601,154 +0.008538,154 +0.008599,154 +0.009100,154 +0.008690,154 +0.008595,154 +0.008651,154 +0.008587,154 +0.008598,154 +0.008538,154 +0.008612,154 +0.008553,154 +0.008637,154 +0.008539,154 +0.008770,154 +0.010257,154 +0.008723,154 +0.008869,154 +0.008579,154 +0.008621,154 +0.008552,154 +0.008607,154 +0.008537,154 +0.008603,154 +0.008534,154 +0.008603,154 +0.008690,154 +0.009026,154 +0.008675,154 +0.009593,154 +0.008742,154 +0.008727,154 +0.008825,154 +0.008665,154 +0.008692,154 +0.008984,156 +0.008931,156 +0.011467,156 +0.011223,156 +0.009128,156 +0.008904,156 +0.008958,156 +0.008882,156 +0.008937,156 +0.009507,156 +0.010447,156 +0.009244,156 +0.009419,156 +0.009403,156 +0.009228,156 +0.009477,156 +0.009392,156 +0.009371,156 +0.009207,156 +0.009178,156 +0.009348,156 +0.009250,156 +0.009315,156 +0.009246,156 +0.009537,156 +0.009041,156 +0.009492,156 +0.009271,156 +0.009272,156 +0.009327,156 +0.009955,156 +0.011658,156 +0.009964,156 +0.011695,156 +0.012714,156 +0.011539,156 +0.010104,156 +0.011475,156 +0.009902,156 +0.009919,156 +0.011891,156 +0.011584,156 +0.010316,156 +0.010424,156 +0.009976,156 +0.011155,156 +0.009782,156 +0.010686,156 +0.013995,156 +0.011084,156 +0.009411,156 +0.010324,156 +0.015872,156 +0.011228,156 +0.009864,156 +0.010520,156 +0.009239,156 +0.010670,156 +0.009977,156 +0.009525,156 +0.009844,156 +0.009151,156 +0.009747,156 +0.009790,156 +0.009815,156 +0.010218,156 +0.010520,156 +0.012190,156 +0.015521,156 +0.009509,156 +0.009140,156 +0.012884,156 +0.009942,156 +0.009681,156 +0.009923,156 +0.009139,156 +0.009531,156 +0.008975,156 +0.009821,156 +0.009291,156 +0.010210,156 +0.009505,156 +0.010075,156 +0.009369,156 +0.008945,156 +0.010025,156 +0.009424,156 +0.009071,156 +0.009673,156 +0.009162,156 +0.009764,156 +0.009041,156 +0.011949,156 +0.009617,156 +0.009074,156 +0.009598,156 +0.009052,156 +0.009570,156 +0.009098,156 +0.010041,156 +0.009708,158 +0.010064,158 +0.009928,158 +0.009806,158 +0.010372,158 +0.009740,158 +0.010422,158 +0.009990,158 +0.012470,158 +0.011446,158 +0.011016,158 +0.013338,158 +0.014195,158 +0.011668,158 +0.011490,158 +0.012130,158 +0.019081,158 +0.015487,158 +0.009681,158 +0.012794,158 +0.010850,158 +0.011093,158 +0.010817,158 +0.011067,158 +0.010525,158 +0.012347,158 +0.013523,158 +0.015113,158 +0.011413,158 +0.011253,158 +0.010759,158 +0.015331,158 +0.016442,158 +0.015369,158 +0.018370,158 +0.018265,158 +0.011872,158 +0.009907,158 +0.011238,158 +0.010150,158 +0.010105,158 +0.010182,158 +0.010156,158 +0.010646,158 +0.010022,158 +0.011163,158 +0.011613,158 +0.012204,158 +0.010184,158 +0.010941,158 +0.009729,158 +0.010241,158 +0.011784,158 +0.012669,158 +0.010926,158 +0.010744,158 +0.009868,158 +0.010450,158 +0.010083,158 +0.009632,158 +0.011187,158 +0.010271,158 +0.010291,158 +0.010722,158 +0.010145,158 +0.010388,158 +0.010175,158 +0.009634,158 +0.010690,158 +0.010194,158 +0.010933,158 +0.010413,158 +0.010111,158 +0.009954,158 +0.009935,158 +0.009513,158 +0.010208,158 +0.009461,158 +0.010033,158 +0.009768,158 +0.009675,158 +0.009992,158 +0.015378,158 +0.009805,158 +0.009962,158 +0.009615,158 +0.009814,158 +0.009782,158 +0.009562,158 +0.009641,158 +0.009396,158 +0.009651,158 +0.009703,158 +0.009545,158 +0.009404,158 +0.009308,158 +0.009399,158 +0.009599,158 +0.009542,158 +0.009624,158 +0.009764,160 +0.009766,160 +0.010419,160 +0.009815,160 +0.009659,160 +0.009766,160 +0.009896,160 +0.009800,160 +0.009621,160 +0.009634,160 +0.009769,160 +0.009709,160 +0.010182,160 +0.010103,160 +0.009729,160 +0.016327,160 +0.018110,160 +0.009952,160 +0.009734,160 +0.009748,160 +0.009848,160 +0.010281,160 +0.009908,160 +0.009824,160 +0.009719,160 +0.009832,160 +0.009633,160 +0.009759,160 +0.009556,160 +0.009787,160 +0.009659,160 +0.010176,160 +0.010140,160 +0.009638,160 +0.010102,160 +0.009776,160 +0.009687,160 +0.009705,160 +0.009597,160 +0.009634,160 +0.009557,160 +0.009941,160 +0.015949,160 +0.018097,160 +0.018372,160 +0.017274,160 +0.017383,160 +0.017845,160 +0.017787,160 +0.017123,160 +0.009852,160 +0.009752,160 +0.009764,160 +0.009808,160 +0.009696,160 +0.009943,160 +0.010198,160 +0.009885,160 +0.009826,160 +0.009636,160 +0.009895,160 +0.009603,160 +0.012460,160 +0.009786,160 +0.009703,160 +0.009974,160 +0.010484,160 +0.009772,160 +0.009750,160 +0.009698,160 +0.009840,160 +0.009727,160 +0.009810,160 +0.009745,160 +0.009768,160 +0.009757,160 +0.012811,160 +0.009725,160 +0.009802,160 +0.009732,160 +0.009781,160 +0.009819,160 +0.009776,160 +0.009768,160 +0.009759,160 +0.009821,160 +0.011373,160 +0.009787,160 +0.009738,160 +0.009744,160 +0.009732,160 +0.009770,160 +0.009758,160 +0.009691,160 +0.009695,160 +0.009737,160 +0.011340,160 +0.009818,160 +0.009742,160 +0.009665,160 +0.010148,162 +0.010251,162 +0.010111,162 +0.010181,162 +0.010023,162 +0.010160,162 +0.011832,162 +0.010147,162 +0.010344,162 +0.009981,162 +0.010106,162 +0.010133,162 +0.010074,162 +0.010133,162 +0.010118,162 +0.010709,162 +0.011354,162 +0.010097,162 +0.010123,162 +0.010064,162 +0.010051,162 +0.010191,162 +0.009993,162 +0.010145,162 +0.010079,162 +0.011254,162 +0.010817,162 +0.010116,162 +0.010152,162 +0.010225,162 +0.010111,162 +0.010227,162 +0.010041,162 +0.010084,162 +0.010101,162 +0.011673,162 +0.010321,162 +0.010229,162 +0.010453,162 +0.010441,162 +0.010382,162 +0.010084,162 +0.010164,162 +0.010015,162 +0.010080,162 +0.011790,162 +0.010053,162 +0.010139,162 +0.010015,162 +0.010101,162 +0.010225,162 +0.009966,162 +0.010188,162 +0.010130,162 +0.010811,162 +0.011149,162 +0.010074,162 +0.010151,162 +0.010192,162 +0.009983,162 +0.010172,162 +0.010086,162 +0.010313,162 +0.010065,162 +0.011288,162 +0.010595,162 +0.010108,162 +0.010117,162 +0.010081,162 +0.010025,162 +0.010051,162 +0.010062,162 +0.009960,162 +0.010127,162 +0.012434,162 +0.010552,162 +0.010108,162 +0.010048,162 +0.010067,162 +0.010161,162 +0.010022,162 +0.010066,162 +0.009953,162 +0.010138,162 +0.011683,162 +0.010006,162 +0.010122,162 +0.010041,162 +0.010038,162 +0.010052,162 +0.009980,162 +0.010051,162 +0.010021,162 +0.010381,162 +0.011370,162 +0.010045,162 +0.010075,162 +0.010103,162 +0.010161,162 +0.010138,162 +0.010413,164 +0.010478,164 +0.010468,164 +0.011700,164 +0.011035,164 +0.010514,164 +0.010441,164 +0.010456,164 +0.010483,164 +0.010397,164 +0.010585,164 +0.010424,164 +0.010495,164 +0.012097,164 +0.010512,164 +0.010464,164 +0.010491,164 +0.010400,164 +0.010487,164 +0.010544,164 +0.010423,164 +0.010437,164 +0.012053,164 +0.010544,164 +0.010522,164 +0.010433,164 +0.010460,164 +0.010495,164 +0.010396,164 +0.010457,164 +0.010480,164 +0.010995,164 +0.011689,164 +0.010565,164 +0.010388,164 +0.010465,164 +0.010401,164 +0.010423,164 +0.010470,164 +0.010378,164 +0.010484,164 +0.012143,164 +0.010831,164 +0.010480,164 +0.010462,164 +0.010407,164 +0.010435,164 +0.010439,164 +0.010430,164 +0.010510,164 +0.011330,164 +0.011362,164 +0.010723,164 +0.010432,164 +0.010464,164 +0.010741,164 +0.010533,164 +0.010585,164 +0.010826,164 +0.010397,164 +0.011904,164 +0.010379,164 +0.010397,164 +0.010446,164 +0.010295,164 +0.010390,164 +0.010363,164 +0.010311,164 +0.010359,164 +0.012203,164 +0.011248,164 +0.010458,164 +0.010732,164 +0.010783,164 +0.010587,164 +0.010392,164 +0.010336,164 +0.010346,164 +0.010453,164 +0.011919,164 +0.010390,164 +0.010326,164 +0.010369,164 +0.010723,164 +0.010331,164 +0.010576,164 +0.010334,164 +0.010446,164 +0.011779,164 +0.010543,164 +0.010437,164 +0.010399,164 +0.010404,164 +0.010340,164 +0.010328,164 +0.010594,164 +0.010360,164 +0.010354,164 +0.012024,164 +0.010405,164 +0.010744,166 +0.010745,166 +0.010723,166 +0.010712,166 +0.010866,166 +0.010727,166 +0.010759,166 +0.012288,166 +0.010952,166 +0.010841,166 +0.010858,166 +0.010729,166 +0.010668,166 +0.010714,166 +0.010732,166 +0.010707,166 +0.012446,166 +0.010702,166 +0.010806,166 +0.010861,166 +0.010752,166 +0.010744,166 +0.010715,166 +0.010670,166 +0.010739,166 +0.011991,166 +0.010997,166 +0.010792,166 +0.010768,166 +0.010704,166 +0.010760,166 +0.010717,166 +0.010701,166 +0.010783,166 +0.011691,166 +0.011293,166 +0.010739,166 +0.010756,166 +0.010708,166 +0.010774,166 +0.010693,166 +0.010799,166 +0.010777,166 +0.010820,166 +0.012218,166 +0.010780,166 +0.010711,166 +0.010703,166 +0.010750,166 +0.010693,166 +0.012657,166 +0.010827,166 +0.011021,166 +0.012073,166 +0.010826,166 +0.010750,166 +0.010721,166 +0.010735,166 +0.010689,166 +0.010798,166 +0.010740,166 +0.010746,166 +0.013313,166 +0.010825,166 +0.010754,166 +0.010796,166 +0.010818,166 +0.010668,166 +0.010738,166 +0.010805,166 +0.010845,166 +0.012153,166 +0.010795,166 +0.010743,166 +0.010758,166 +0.010742,166 +0.010670,166 +0.010774,166 +0.010884,166 +0.010697,166 +0.012186,166 +0.010813,166 +0.010782,166 +0.010716,166 +0.010772,166 +0.010932,166 +0.010732,166 +0.010799,166 +0.010905,166 +0.012334,166 +0.011287,166 +0.010728,166 +0.010781,166 +0.010719,166 +0.010703,166 +0.010891,166 +0.010675,166 +0.010746,166 +0.011915,166 +0.011197,166 +0.011188,168 +0.011176,168 +0.011134,168 +0.011091,168 +0.011122,168 +0.011091,168 +0.011333,168 +0.012676,168 +0.011323,168 +0.011132,168 +0.011158,168 +0.011182,168 +0.011040,168 +0.011103,168 +0.011119,168 +0.011032,168 +0.012494,168 +0.011247,168 +0.011090,168 +0.011127,168 +0.011116,168 +0.011033,168 +0.011132,168 +0.011111,168 +0.011323,168 +0.012560,168 +0.011198,168 +0.011052,168 +0.011112,168 +0.011170,168 +0.011056,168 +0.011182,168 +0.011106,168 +0.011096,168 +0.012608,168 +0.011202,168 +0.011168,168 +0.011096,168 +0.011665,168 +0.011273,168 +0.011239,168 +0.011162,168 +0.011810,168 +0.013018,168 +0.011296,168 +0.013346,168 +0.011301,168 +0.011328,168 +0.011371,168 +0.011118,168 +0.011642,168 +0.013363,168 +0.012294,168 +0.011239,168 +0.011365,168 +0.011286,168 +0.011206,168 +0.011182,168 +0.011193,168 +0.011358,168 +0.012980,168 +0.011323,168 +0.011290,168 +0.011096,168 +0.011324,168 +0.011231,168 +0.011120,168 +0.011345,168 +0.011328,168 +0.013012,168 +0.011295,168 +0.011217,168 +0.011203,168 +0.011287,168 +0.011296,168 +0.011253,168 +0.011104,168 +0.012233,168 +0.012366,168 +0.011131,168 +0.011286,168 +0.011339,168 +0.011209,168 +0.011334,168 +0.011235,168 +0.011186,168 +0.012163,168 +0.011562,168 +0.011245,168 +0.011236,168 +0.011327,168 +0.011180,168 +0.011227,168 +0.011246,168 +0.011389,168 +0.011467,168 +0.011451,168 +0.011252,168 +0.011184,168 +0.011440,168 +0.011803,170 +0.011633,170 +0.011754,170 +0.011733,170 +0.012118,170 +0.011671,170 +0.011704,170 +0.011708,170 +0.011543,170 +0.011757,170 +0.011879,170 +0.012707,170 +0.012234,170 +0.012154,170 +0.012029,170 +0.011819,170 +0.011794,170 +0.011707,170 +0.011739,170 +0.011616,170 +0.011782,170 +0.011894,170 +0.011620,170 +0.011676,170 +0.011737,170 +0.011665,170 +0.013483,170 +0.011864,170 +0.011862,170 +0.011783,170 +0.011887,170 +0.011690,170 +0.011598,170 +0.011614,170 +0.011786,170 +0.011668,170 +0.011574,170 +0.011753,170 +0.012154,170 +0.011741,170 +0.011661,170 +0.011731,170 +0.011587,170 +0.011728,170 +0.011885,170 +0.012014,170 +0.011749,170 +0.012165,170 +0.011731,170 +0.011691,170 +0.011632,170 +0.011787,170 +0.011654,170 +0.011534,170 +0.011671,170 +0.012229,170 +0.011720,170 +0.011710,170 +0.011681,170 +0.011628,170 +0.011850,170 +0.012076,170 +0.012006,170 +0.011998,170 +0.012166,170 +0.011650,170 +0.011619,170 +0.013339,170 +0.011921,170 +0.011944,170 +0.011613,170 +0.012039,170 +0.012333,170 +0.011874,170 +0.011528,170 +0.011718,170 +0.012276,170 +0.011680,170 +0.011720,170 +0.011750,170 +0.011871,170 +0.011891,170 +0.011765,170 +0.011748,170 +0.012251,170 +0.012336,170 +0.011824,170 +0.011639,170 +0.011552,170 +0.012302,170 +0.011869,170 +0.011699,170 +0.011653,170 +0.011691,170 +0.011702,170 +0.011613,170 +0.011693,170 +0.011867,170 +0.011884,170 +0.011810,170 +0.012074,172 +0.011974,172 +0.012033,172 +0.012139,172 +0.012091,172 +0.012195,172 +0.012515,172 +0.012144,172 +0.012095,172 +0.011989,172 +0.012052,172 +0.012197,172 +0.011944,172 +0.012017,172 +0.012634,172 +0.012185,172 +0.012032,172 +0.011984,172 +0.011944,172 +0.011948,172 +0.012013,172 +0.012059,172 +0.012414,172 +0.012556,172 +0.012083,172 +0.012123,172 +0.012035,172 +0.011958,172 +0.012100,172 +0.012146,172 +0.012187,172 +0.012415,172 +0.012021,172 +0.012361,172 +0.012271,172 +0.012159,172 +0.012322,172 +0.012592,172 +0.012602,172 +0.017974,172 +0.012685,172 +0.012590,172 +0.012584,172 +0.013232,172 +0.012474,172 +0.013220,172 +0.012502,172 +0.013119,172 +0.014392,172 +0.013448,172 +0.013295,172 +0.012219,172 +0.013097,172 +0.012303,172 +0.012687,172 +0.012114,172 +0.012033,172 +0.012130,172 +0.012114,172 +0.012187,172 +0.012298,172 +0.012147,172 +0.013105,172 +0.012013,172 +0.012057,172 +0.011979,172 +0.011942,172 +0.011856,172 +0.011861,172 +0.011924,172 +0.012072,172 +0.012259,172 +0.011844,172 +0.011881,172 +0.011843,172 +0.011926,172 +0.011862,172 +0.012586,172 +0.012893,172 +0.012599,172 +0.012343,172 +0.012339,172 +0.012494,172 +0.013816,172 +0.013387,172 +0.012774,172 +0.012310,172 +0.012798,172 +0.012672,172 +0.012516,172 +0.013154,172 +0.013189,172 +0.013596,172 +0.013207,172 +0.012189,172 +0.012599,172 +0.012129,172 +0.011997,172 +0.011920,172 +0.011909,172 +0.012384,174 +0.012414,174 +0.012323,174 +0.012920,174 +0.012416,174 +0.012512,174 +0.012308,174 +0.012340,174 +0.012355,174 +0.012403,174 +0.012300,174 +0.012744,174 +0.012276,174 +0.012355,174 +0.012279,174 +0.012386,174 +0.012333,174 +0.012360,174 +0.012270,174 +0.012730,174 +0.012328,174 +0.012354,174 +0.012453,174 +0.012383,174 +0.012623,174 +0.012689,174 +0.012315,174 +0.012723,174 +0.012302,174 +0.012564,174 +0.012282,174 +0.012302,174 +0.012277,174 +0.012412,174 +0.012272,174 +0.012768,174 +0.012377,174 +0.012371,174 +0.012361,174 +0.013034,174 +0.012987,174 +0.012628,174 +0.013998,174 +0.013698,174 +0.014008,174 +0.013889,174 +0.013980,174 +0.013791,174 +0.013426,174 +0.013223,174 +0.013151,174 +0.013028,174 +0.012541,174 +0.012331,174 +0.012293,174 +0.012333,174 +0.012407,174 +0.012313,174 +0.012564,174 +0.012576,174 +0.012471,174 +0.012335,174 +0.012304,174 +0.012388,174 +0.012524,174 +0.012404,174 +0.012559,174 +0.012668,174 +0.012388,174 +0.012343,174 +0.012292,174 +0.012377,174 +0.012352,174 +0.012424,174 +0.012519,174 +0.012774,174 +0.012341,174 +0.012310,174 +0.012281,174 +0.012314,174 +0.012306,174 +0.012409,174 +0.012421,174 +0.012911,174 +0.012366,174 +0.012398,174 +0.012284,174 +0.012317,174 +0.012333,174 +0.012430,174 +0.012790,174 +0.012808,174 +0.012425,174 +0.012461,174 +0.012323,174 +0.012311,174 +0.012329,174 +0.012341,174 +0.012318,174 +0.012892,174 +0.012960,176 +0.012683,176 +0.012958,176 +0.012756,176 +0.012903,176 +0.015272,176 +0.013608,176 +0.013179,176 +0.012783,176 +0.012762,176 +0.012756,176 +0.013141,176 +0.012996,176 +0.012790,176 +0.013298,176 +0.012712,176 +0.012703,176 +0.012714,176 +0.012706,176 +0.012737,176 +0.012772,176 +0.012755,176 +0.013546,176 +0.013366,176 +0.013516,176 +0.012994,176 +0.012751,176 +0.013049,176 +0.013413,176 +0.012935,176 +0.013297,176 +0.012956,176 +0.012993,176 +0.012823,176 +0.012865,176 +0.012933,176 +0.012857,176 +0.013186,176 +0.013147,176 +0.012913,176 +0.012906,176 +0.012921,176 +0.013084,176 +0.012999,176 +0.012901,176 +0.013274,176 +0.013093,176 +0.013013,176 +0.013214,176 +0.013072,176 +0.013100,176 +0.012980,176 +0.012936,176 +0.013306,176 +0.012931,176 +0.012915,176 +0.012792,176 +0.012953,176 +0.013011,176 +0.012916,176 +0.013064,176 +0.013292,176 +0.013001,176 +0.012893,176 +0.013025,176 +0.015394,176 +0.012886,176 +0.013035,176 +0.013505,176 +0.012926,176 +0.012864,176 +0.012822,176 +0.012955,176 +0.013117,176 +0.013025,176 +0.012799,176 +0.013449,176 +0.012980,176 +0.012970,176 +0.013047,176 +0.013065,176 +0.014701,176 +0.014472,176 +0.013191,176 +0.012983,176 +0.012964,176 +0.012861,176 +0.012866,176 +0.012829,176 +0.012984,176 +0.012747,176 +0.013213,176 +0.012899,176 +0.013713,176 +0.024383,176 +0.023947,176 +0.023787,176 +0.024533,176 +0.020622,176 +0.012850,176 +0.013423,178 +0.013214,178 +0.013369,178 +0.013415,178 +0.013215,178 +0.013210,178 +0.013217,178 +0.013262,178 +0.013397,178 +0.013134,178 +0.013471,178 +0.013426,178 +0.013207,178 +0.013239,178 +0.013152,178 +0.013520,178 +0.013238,178 +0.013340,178 +0.013517,178 +0.013335,178 +0.013132,178 +0.013216,178 +0.013238,178 +0.013494,178 +0.013076,178 +0.013547,178 +0.013249,178 +0.013361,178 +0.013213,178 +0.013097,178 +0.013363,178 +0.013336,178 +0.013284,178 +0.013659,178 +0.013276,178 +0.013364,178 +0.013297,178 +0.013291,178 +0.013249,178 +0.013256,178 +0.013445,178 +0.013561,178 +0.013437,178 +0.013181,178 +0.013125,178 +0.013279,178 +0.013336,178 +0.013215,178 +0.014821,178 +0.013188,178 +0.013328,178 +0.013293,178 +0.013606,178 +0.013379,178 +0.013260,178 +0.014431,178 +0.013638,178 +0.013395,178 +0.013212,178 +0.013191,178 +0.013361,178 +0.013519,178 +0.013701,178 +0.014332,178 +0.013212,178 +0.013294,178 +0.013222,178 +0.013290,178 +0.013266,178 +0.013418,178 +0.014835,178 +0.013408,178 +0.013361,178 +0.013201,178 +0.013219,178 +0.013530,178 +0.013478,178 +0.014482,178 +0.014100,178 +0.013266,178 +0.013233,178 +0.013167,178 +0.013363,178 +0.013241,178 +0.013262,178 +0.014768,178 +0.013224,178 +0.013219,178 +0.013202,178 +0.013827,178 +0.013347,178 +0.013195,178 +0.014322,178 +0.013850,178 +0.013280,178 +0.013235,178 +0.013249,178 +0.013219,178 +0.013212,178 +0.013230,178 +0.015233,180 +0.013626,180 +0.013766,180 +0.013514,180 +0.013690,180 +0.013639,180 +0.013634,180 +0.016223,180 +0.014035,180 +0.013553,180 +0.013603,180 +0.013822,180 +0.013851,180 +0.013732,180 +0.015221,180 +0.013563,180 +0.013429,180 +0.013443,180 +0.013436,180 +0.013512,180 +0.013390,180 +0.014203,180 +0.014348,180 +0.013512,180 +0.013476,180 +0.013443,180 +0.013712,180 +0.013452,180 +0.013452,180 +0.015234,180 +0.013533,180 +0.013496,180 +0.013369,180 +0.013502,180 +0.013443,180 +0.013460,180 +0.014897,180 +0.013679,180 +0.013442,180 +0.013460,180 +0.013442,180 +0.013522,180 +0.013461,180 +0.013933,180 +0.014692,180 +0.013510,180 +0.013534,180 +0.013457,180 +0.013455,180 +0.013410,180 +0.013439,180 +0.015126,180 +0.013476,180 +0.013476,180 +0.013371,180 +0.013891,180 +0.013455,180 +0.013458,180 +0.014949,180 +0.013609,180 +0.013448,180 +0.013444,180 +0.013600,180 +0.013514,180 +0.013525,180 +0.013936,180 +0.014586,180 +0.013585,180 +0.013459,180 +0.013418,180 +0.013584,180 +0.013392,180 +0.013459,180 +0.015049,180 +0.013426,180 +0.013406,180 +0.013403,180 +0.013465,180 +0.013494,180 +0.013467,180 +0.015478,180 +0.014293,180 +0.013425,180 +0.013365,180 +0.013495,180 +0.013476,180 +0.013442,180 +0.013944,180 +0.014480,180 +0.013447,180 +0.013480,180 +0.013425,180 +0.013722,180 +0.013414,180 +0.013474,180 +0.015276,180 +0.013472,180 +0.013435,180 +0.013424,180 +0.013643,180 +0.013902,182 +0.013907,182 +0.015443,182 +0.014029,182 +0.013959,182 +0.013974,182 +0.014015,182 +0.013872,182 +0.013870,182 +0.015263,182 +0.014036,182 +0.013872,182 +0.013946,182 +0.013903,182 +0.014017,182 +0.013900,182 +0.015056,182 +0.017820,182 +0.014901,182 +0.013865,182 +0.013997,182 +0.013866,182 +0.014549,182 +0.019217,182 +0.013981,182 +0.013916,182 +0.013907,182 +0.013986,182 +0.013927,182 +0.013883,182 +0.019150,182 +0.013907,182 +0.013926,182 +0.013915,182 +0.013980,182 +0.013910,182 +0.013977,182 +0.020017,182 +0.014346,182 +0.013972,182 +0.013997,182 +0.013899,182 +0.013899,182 +0.014963,182 +0.018291,182 +0.013958,182 +0.013986,182 +0.013974,182 +0.013918,182 +0.013935,182 +0.016002,182 +0.017890,182 +0.014267,182 +0.014013,182 +0.014023,182 +0.013904,182 +0.013822,182 +0.019177,182 +0.014132,182 +0.013980,182 +0.014011,182 +0.014188,182 +0.013923,182 +0.013921,182 +0.020269,182 +0.014097,182 +0.014227,182 +0.014711,182 +0.014058,182 +0.013927,182 +0.014158,182 +0.019033,182 +0.013974,182 +0.013980,182 +0.013983,182 +0.013825,182 +0.013902,182 +0.016214,182 +0.017030,182 +0.013948,182 +0.013924,182 +0.014053,182 +0.013955,182 +0.013969,182 +0.018330,182 +0.014625,182 +0.013950,182 +0.013899,182 +0.013992,182 +0.013903,182 +0.013896,182 +0.019139,182 +0.014123,182 +0.013892,182 +0.014028,182 +0.013953,182 +0.013911,182 +0.013905,182 +0.019032,182 +0.013962,182 +0.014479,184 +0.014455,184 +0.014369,184 +0.014412,184 +0.014929,184 +0.019210,184 +0.014443,184 +0.014334,184 +0.014386,184 +0.014356,184 +0.014315,184 +0.019437,184 +0.014461,184 +0.014292,184 +0.014367,184 +0.014483,184 +0.014369,184 +0.014329,184 +0.020059,184 +0.014497,184 +0.014341,184 +0.014386,184 +0.014289,184 +0.014306,184 +0.016362,184 +0.017521,184 +0.014389,184 +0.014344,184 +0.014387,184 +0.014368,184 +0.014352,184 +0.019472,184 +0.014474,184 +0.014347,184 +0.015075,184 +0.014360,184 +0.014348,184 +0.014399,184 +0.019423,184 +0.014507,184 +0.014438,184 +0.014416,184 +0.014332,184 +0.015185,184 +0.019410,184 +0.016408,184 +0.015864,184 +0.015536,184 +0.014972,184 +0.015582,184 +0.027270,184 +0.018104,184 +0.015220,184 +0.016124,184 +0.014965,184 +0.014821,184 +0.014793,184 +0.014504,184 +0.014466,184 +0.014458,184 +0.014914,184 +0.014509,184 +0.014484,184 +0.014877,184 +0.014463,184 +0.014389,184 +0.014486,184 +0.014340,184 +0.014570,184 +0.014492,184 +0.014879,184 +0.014335,184 +0.014371,184 +0.014412,184 +0.014258,184 +0.015139,184 +0.014796,184 +0.015086,184 +0.015209,184 +0.014670,184 +0.014514,184 +0.014402,184 +0.014345,184 +0.014389,184 +0.015136,184 +0.014319,184 +0.014330,184 +0.014358,184 +0.014303,184 +0.014298,184 +0.014372,184 +0.014798,184 +0.014356,184 +0.014343,184 +0.014388,184 +0.014325,184 +0.014326,184 +0.014415,184 +0.014743,184 +0.014389,184 +0.015259,186 +0.015109,186 +0.014963,186 +0.015024,186 +0.015551,186 +0.015172,186 +0.015104,186 +0.015000,186 +0.014967,186 +0.014994,186 +0.015068,186 +0.025382,186 +0.029037,186 +0.015744,186 +0.022137,186 +0.015311,186 +0.015295,186 +0.014945,186 +0.014972,186 +0.015185,186 +0.015195,186 +0.014981,186 +0.015459,186 +0.014972,186 +0.014958,186 +0.015054,186 +0.014974,186 +0.014953,186 +0.014940,186 +0.015495,186 +0.015012,186 +0.015054,186 +0.015140,186 +0.015008,186 +0.015085,186 +0.015402,186 +0.015411,186 +0.015059,186 +0.015014,186 +0.015397,186 +0.015012,186 +0.014989,186 +0.015490,186 +0.015117,186 +0.015029,186 +0.015152,186 +0.015804,186 +0.014965,186 +0.015016,186 +0.015574,186 +0.014951,186 +0.014957,186 +0.015062,186 +0.015000,186 +0.015073,186 +0.015221,186 +0.015300,186 +0.014961,186 +0.015027,186 +0.014961,186 +0.014952,186 +0.014975,186 +0.015491,186 +0.015028,186 +0.015032,186 +0.015069,186 +0.014967,186 +0.014969,186 +0.015113,186 +0.015516,186 +0.014974,186 +0.014906,186 +0.015022,186 +0.014984,186 +0.014992,186 +0.015205,186 +0.015358,186 +0.014973,186 +0.015069,186 +0.015046,186 +0.014976,186 +0.015026,186 +0.015461,186 +0.014995,186 +0.014958,186 +0.015029,186 +0.015035,186 +0.014989,186 +0.014946,186 +0.015537,186 +0.018234,186 +0.016711,186 +0.015068,186 +0.015017,186 +0.015000,186 +0.015504,186 +0.014981,186 +0.015016,186 +0.015108,186 +0.015070,186 +0.015702,188 +0.015573,188 +0.016011,188 +0.015475,188 +0.015665,188 +0.015472,188 +0.015559,188 +0.015475,188 +0.015965,188 +0.015482,188 +0.015496,188 +0.015608,188 +0.015600,188 +0.015478,188 +0.015600,188 +0.016119,188 +0.015570,188 +0.015585,188 +0.015472,188 +0.015473,188 +0.015478,188 +0.016057,188 +0.015521,188 +0.015449,188 +0.015591,188 +0.015474,188 +0.015849,188 +0.021293,188 +0.029933,188 +0.029273,188 +0.029209,188 +0.029517,188 +0.029054,188 +0.029225,188 +0.029937,188 +0.029164,188 +0.028743,188 +0.028933,188 +0.029663,188 +0.028790,188 +0.029312,188 +0.029178,188 +0.029934,188 +0.029684,188 +0.029071,188 +0.029666,188 +0.029133,188 +0.029237,188 +0.029800,188 +0.029108,188 +0.029052,188 +0.029270,188 +0.029256,188 +0.029173,188 +0.029406,188 +0.029462,188 +0.029302,188 +0.029582,188 +0.032099,188 +0.029381,188 +0.029352,188 +0.030201,188 +0.025227,188 +0.017845,188 +0.016191,188 +0.016249,188 +0.016641,188 +0.017521,188 +0.016085,188 +0.016326,188 +0.016309,188 +0.016209,188 +0.016283,188 +0.021234,188 +0.015879,188 +0.015915,188 +0.015630,188 +0.015712,188 +0.015935,188 +0.020878,188 +0.016506,188 +0.015879,188 +0.015805,188 +0.015917,188 +0.015749,188 +0.020783,188 +0.015975,188 +0.015752,188 +0.015739,188 +0.015889,188 +0.015739,188 +0.020795,188 +0.015937,188 +0.015899,188 +0.015682,188 +0.017630,188 +0.015786,188 +0.016189,188 +0.015989,188 +0.015832,188 +0.016330,190 +0.016433,190 +0.016326,190 +0.016356,190 +0.016731,190 +0.016684,190 +0.016410,190 +0.016675,190 +0.016609,190 +0.016545,190 +0.016663,190 +0.016281,190 +0.016178,190 +0.016171,190 +0.016348,190 +0.016273,190 +0.016541,190 +0.016366,190 +0.016309,190 +0.016257,190 +0.016565,190 +0.016389,190 +0.016721,190 +0.016352,190 +0.016311,190 +0.016366,190 +0.016356,190 +0.016395,190 +0.016891,190 +0.016458,190 +0.016458,190 +0.016651,190 +0.016730,190 +0.016754,190 +0.017093,190 +0.016874,190 +0.016853,190 +0.017064,190 +0.017028,190 +0.023721,190 +0.018242,190 +0.017103,190 +0.017085,190 +0.016747,190 +0.016366,190 +0.016701,190 +0.016568,190 +0.016367,190 +0.016247,190 +0.016355,190 +0.016363,190 +0.016749,190 +0.016560,190 +0.016463,190 +0.016335,190 +0.016366,190 +0.016223,190 +0.016496,190 +0.016825,190 +0.016327,190 +0.016257,190 +0.016236,190 +0.016298,190 +0.016230,190 +0.016841,190 +0.016357,190 +0.016425,190 +0.016208,190 +0.016314,190 +0.016231,190 +0.016985,190 +0.016357,190 +0.016317,190 +0.016216,190 +0.016243,190 +0.016221,190 +0.016878,190 +0.016325,190 +0.016272,190 +0.016287,190 +0.016271,190 +0.016204,190 +0.017171,190 +0.016317,190 +0.016377,190 +0.016395,190 +0.016442,190 +0.016784,190 +0.017779,190 +0.016077,190 +0.016126,190 +0.016031,190 +0.015989,190 +0.016613,190 +0.016412,190 +0.016562,190 +0.016252,190 +0.016061,190 +0.016037,190 +0.016055,190 +0.017758,192 +0.018130,192 +0.017835,192 +0.017625,192 +0.017569,192 +0.017560,192 +0.018093,192 +0.017590,192 +0.017646,192 +0.017595,192 +0.017589,192 +0.017593,192 +0.018053,192 +0.017857,192 +0.017576,192 +0.018595,192 +0.018000,192 +0.017856,192 +0.017902,192 +0.017668,192 +0.017556,192 +0.017600,192 +0.017589,192 +0.018096,192 +0.017726,192 +0.017848,192 +0.018263,192 +0.018465,192 +0.018469,192 +0.019493,192 +0.019087,192 +0.018881,192 +0.019300,192 +0.018882,192 +0.020475,192 +0.018907,192 +0.018425,192 +0.018675,192 +0.018796,192 +0.019180,192 +0.018455,192 +0.018796,192 +0.019406,192 +0.018863,192 +0.019209,192 +0.019241,192 +0.018335,192 +0.018386,192 +0.018598,192 +0.021133,192 +0.019768,192 +0.019792,192 +0.019381,192 +0.019887,192 +0.019157,192 +0.019405,192 +0.019352,192 +0.018494,192 +0.018213,192 +0.018221,192 +0.018205,192 +0.018568,192 +0.018134,192 +0.017751,192 +0.017784,192 +0.017656,192 +0.018212,192 +0.017853,192 +0.017730,192 +0.017663,192 +0.017586,192 +0.017701,192 +0.017985,192 +0.017648,192 +0.017545,192 +0.017614,192 +0.017532,192 +0.018059,192 +0.017754,192 +0.017547,192 +0.018010,192 +0.017615,192 +0.017596,192 +0.018172,192 +0.017703,192 +0.017613,192 +0.017505,192 +0.017577,192 +0.017640,192 +0.018077,192 +0.017675,192 +0.017876,192 +0.017800,192 +0.017545,192 +0.018172,192 +0.017663,192 +0.017645,192 +0.017551,192 +0.017570,192 +0.017639,192 +0.017723,194 +0.017201,194 +0.017217,194 +0.017284,194 +0.017187,194 +0.017117,194 +0.017673,194 +0.017179,194 +0.017058,194 +0.017121,194 +0.017032,194 +0.017173,194 +0.017470,194 +0.017173,194 +0.017038,194 +0.017035,194 +0.017031,194 +0.017312,194 +0.017448,194 +0.017117,194 +0.017095,194 +0.017161,194 +0.017030,194 +0.017458,194 +0.017410,194 +0.017029,194 +0.017090,194 +0.017150,194 +0.017056,194 +0.017628,194 +0.017249,194 +0.017056,194 +0.017107,194 +0.017040,194 +0.017043,194 +0.017798,194 +0.017358,194 +0.018198,194 +0.018354,194 +0.018124,194 +0.019318,194 +0.019823,194 +0.018403,194 +0.018274,194 +0.017861,194 +0.017662,194 +0.017762,194 +0.017314,194 +0.017294,194 +0.017188,194 +0.017390,194 +0.017211,194 +0.017584,194 +0.017199,194 +0.017207,194 +0.017087,194 +0.017136,194 +0.017488,194 +0.017390,194 +0.017213,194 +0.017064,194 +0.017075,194 +0.017029,194 +0.017756,194 +0.018961,194 +0.017272,194 +0.017127,194 +0.017087,194 +0.017077,194 +0.017945,194 +0.017222,194 +0.017054,194 +0.017034,194 +0.017032,194 +0.017027,194 +0.017971,194 +0.017141,194 +0.017032,194 +0.017031,194 +0.017031,194 +0.017108,194 +0.017596,194 +0.017183,194 +0.017266,194 +0.017126,194 +0.017049,194 +0.017203,194 +0.017470,194 +0.017219,194 +0.017033,194 +0.017059,194 +0.017057,194 +0.017218,194 +0.017503,194 +0.017104,194 +0.017073,194 +0.017095,194 +0.017032,194 +0.017256,194 +0.017648,194 +0.017649,196 +0.017528,196 +0.017527,196 +0.017525,196 +0.017969,196 +0.017686,196 +0.017538,196 +0.017524,196 +0.017531,196 +0.019247,196 +0.020003,196 +0.019093,196 +0.018780,196 +0.018794,196 +0.017793,196 +0.018126,196 +0.017694,196 +0.017561,196 +0.017558,196 +0.017488,196 +0.017509,196 +0.018199,196 +0.017556,196 +0.017535,196 +0.017544,196 +0.017471,196 +0.017794,196 +0.017866,196 +0.017479,196 +0.017464,196 +0.017628,196 +0.017493,196 +0.018101,196 +0.017621,196 +0.017466,196 +0.017535,196 +0.017462,196 +0.017503,196 +0.018121,196 +0.017712,196 +0.017655,196 +0.017517,196 +0.017495,196 +0.017710,196 +0.017903,196 +0.017532,196 +0.017483,196 +0.017467,196 +0.017495,196 +0.018009,196 +0.017698,196 +0.017549,196 +0.017547,196 +0.017500,196 +0.017464,196 +0.018189,196 +0.017632,196 +0.017809,196 +0.017598,196 +0.017607,196 +0.017754,196 +0.017993,196 +0.017522,196 +0.017505,196 +0.017483,196 +0.017663,196 +0.018069,196 +0.017601,196 +0.017471,196 +0.017477,196 +0.017527,196 +0.017463,196 +0.018090,196 +0.017821,196 +0.017606,196 +0.017499,196 +0.017503,196 +0.017560,196 +0.018135,196 +0.017621,196 +0.017612,196 +0.017501,196 +0.017469,196 +0.018569,196 +0.017776,196 +0.017502,196 +0.017464,196 +0.017463,196 +0.017467,196 +0.018028,196 +0.017664,196 +0.018535,196 +0.020325,196 +0.018020,196 +0.018523,196 +0.018185,196 +0.017650,196 +0.017807,196 +0.019012,196 +0.019560,196 +0.021297,198 +0.018879,198 +0.019415,198 +0.018237,198 +0.018151,198 +0.018833,198 +0.018286,198 +0.018125,198 +0.018174,198 +0.018090,198 +0.018107,198 +0.018952,198 +0.018206,198 +0.018143,198 +0.018094,198 +0.018124,198 +0.023542,198 +0.018220,198 +0.018218,198 +0.018148,198 +0.018384,198 +0.022983,198 +0.018703,198 +0.018196,198 +0.018158,198 +0.018113,198 +0.019203,198 +0.022723,198 +0.018422,198 +0.018436,198 +0.018288,198 +0.018514,198 +0.023999,198 +0.018266,198 +0.018654,198 +0.018360,198 +0.018278,198 +0.023968,198 +0.018381,198 +0.018400,198 +0.018328,198 +0.018368,198 +0.024078,198 +0.018356,198 +0.018515,198 +0.018419,198 +0.018498,198 +0.024293,198 +0.020207,198 +0.018954,198 +0.018380,198 +0.018465,198 +0.024021,198 +0.018793,198 +0.018296,198 +0.018294,198 +0.018455,198 +0.021622,198 +0.025022,198 +0.019093,198 +0.018406,198 +0.018466,198 +0.020783,198 +0.022209,198 +0.018543,198 +0.018451,198 +0.018320,198 +0.020868,198 +0.021467,198 +0.018890,198 +0.018451,198 +0.018416,198 +0.018991,198 +0.023501,198 +0.018466,198 +0.018396,198 +0.018622,198 +0.018818,198 +0.019036,198 +0.018999,198 +0.018954,198 +0.018368,198 +0.018850,198 +0.019231,198 +0.018180,198 +0.018262,198 +0.018089,198 +0.018069,198 +0.018296,198 +0.018660,198 +0.018183,198 +0.018072,198 +0.018069,198 +0.018087,198 +0.018824,198 +0.018486,198 +0.018444,198 +0.018565,198 +0.018482,198 +0.018686,198 +0.019614,200 +0.018985,200 +0.018951,200 +0.019013,200 +0.018900,200 +0.019752,200 +0.018977,200 +0.018916,200 +0.019042,200 +0.019185,200 +0.019620,200 +0.019126,200 +0.019041,200 +0.019046,200 +0.019005,200 +0.019648,200 +0.019398,200 +0.018984,200 +0.018921,200 +0.019097,200 +0.019108,200 +0.019361,200 +0.018982,200 +0.018946,200 +0.018984,200 +0.019093,200 +0.019620,200 +0.018948,200 +0.018868,200 +0.018854,200 +0.018931,200 +0.019449,200 +0.019022,200 +0.019014,200 +0.018844,200 +0.018885,200 +0.019446,200 +0.019151,200 +0.019011,200 +0.018906,200 +0.018898,200 +0.018926,200 +0.019673,200 +0.018902,200 +0.018821,200 +0.018833,200 +0.018963,200 +0.019687,200 +0.019112,200 +0.019051,200 +0.018897,200 +0.019042,200 +0.019607,200 +0.019062,200 +0.018903,200 +0.018925,200 +0.018920,200 +0.019317,200 +0.019451,200 +0.018919,200 +0.019014,200 +0.018887,200 +0.019028,200 +0.020660,200 +0.019032,200 +0.018857,200 +0.019030,200 +0.019124,200 +0.022260,200 +0.019522,200 +0.019082,200 +0.019479,200 +0.018689,200 +0.020167,200 +0.018665,200 +0.018714,200 +0.019436,200 +0.018740,200 +0.020238,200 +0.018807,200 +0.018606,200 +0.018601,200 +0.018634,200 +0.019663,200 +0.019381,200 +0.018664,200 +0.018644,200 +0.018625,200 +0.018611,200 +0.020134,200 +0.018772,200 +0.018611,200 +0.018597,200 +0.018606,200 +0.020143,200 +0.018630,200 +0.018587,200 +0.018580,200 +0.018601,200 +0.019625,200 +0.019955,202 +0.019270,202 +0.019276,202 +0.019466,202 +0.020023,202 +0.020513,202 +0.019293,202 +0.019209,202 +0.019191,202 +0.019206,202 +0.020959,202 +0.019258,202 +0.019271,202 +0.019220,202 +0.019201,202 +0.020855,202 +0.019424,202 +0.019376,202 +0.019329,202 +0.019204,202 +0.022095,202 +0.019331,202 +0.019276,202 +0.019260,202 +0.019274,202 +0.020895,202 +0.019298,202 +0.019362,202 +0.019265,202 +0.019339,202 +0.020935,202 +0.019314,202 +0.019344,202 +0.019257,202 +0.019289,202 +0.020819,202 +0.019280,202 +0.019256,202 +0.019269,202 +0.019241,202 +0.020638,202 +0.019632,202 +0.019357,202 +0.019642,202 +0.019539,202 +0.020262,202 +0.020131,202 +0.019248,202 +0.019233,202 +0.019343,202 +0.019285,202 +0.020917,202 +0.019276,202 +0.019215,202 +0.019297,202 +0.019431,202 +0.021968,202 +0.019440,202 +0.019328,202 +0.019243,202 +0.019206,202 +0.019737,202 +0.019363,202 +0.019230,202 +0.019292,202 +0.019199,202 +0.020305,202 +0.019640,202 +0.019347,202 +0.019220,202 +0.019197,202 +0.019628,202 +0.019511,202 +0.019280,202 +0.019240,202 +0.019250,202 +0.019447,202 +0.020550,202 +0.019445,202 +0.019274,202 +0.019406,202 +0.019407,202 +0.019588,202 +0.019275,202 +0.019281,202 +0.019254,202 +0.019371,202 +0.019940,202 +0.019374,202 +0.019312,202 +0.019333,202 +0.019288,202 +0.019764,202 +0.019403,202 +0.019297,202 +0.019224,202 +0.019246,202 +0.019714,202 +0.019373,202 +0.019290,202 +0.020346,204 +0.019918,204 +0.020338,204 +0.019947,204 +0.019849,204 +0.019833,204 +0.020035,204 +0.020295,204 +0.019921,204 +0.019865,204 +0.019769,204 +0.019774,204 +0.020104,204 +0.020178,204 +0.019959,204 +0.019820,204 +0.019834,204 +0.020111,204 +0.020052,204 +0.019878,204 +0.019775,204 +0.019783,204 +0.020072,204 +0.020188,204 +0.019887,204 +0.019811,204 +0.019828,204 +0.020040,204 +0.020067,204 +0.020056,204 +0.019794,204 +0.019855,204 +0.020051,204 +0.020079,204 +0.019893,204 +0.019762,204 +0.019778,204 +0.019882,204 +0.020157,204 +0.019869,204 +0.020606,204 +0.020034,204 +0.020459,204 +0.020252,204 +0.019838,204 +0.019776,204 +0.019760,204 +0.019930,204 +0.020156,204 +0.019840,204 +0.019778,204 +0.019795,204 +0.019914,204 +0.020118,204 +0.019836,204 +0.019809,204 +0.019894,204 +0.019863,204 +0.020166,204 +0.019825,204 +0.019781,204 +0.019731,204 +0.019851,204 +0.020210,204 +0.019788,204 +0.019774,204 +0.019908,204 +0.019780,204 +0.020163,204 +0.019885,204 +0.019818,204 +0.019725,204 +0.019835,204 +0.020265,204 +0.019733,204 +0.019779,204 +0.019784,204 +0.019784,204 +0.020236,204 +0.020084,204 +0.019783,204 +0.019811,204 +0.019831,204 +0.020212,204 +0.019767,204 +0.019805,204 +0.019774,204 +0.019814,204 +0.020358,204 +0.019773,204 +0.019830,204 +0.019771,204 +0.019804,204 +0.020233,204 +0.019854,204 +0.019767,204 +0.019772,204 +0.019890,204 +0.020138,204 +0.019739,204 +0.020474,206 +0.021390,206 +0.020503,206 +0.020879,206 +0.020554,206 +0.020528,206 +0.020522,206 +0.020726,206 +0.020909,206 +0.020593,206 +0.020475,206 +0.020340,206 +0.020749,206 +0.021044,206 +0.020424,206 +0.020461,206 +0.020456,206 +0.020496,206 +0.020875,206 +0.020437,206 +0.020355,206 +0.020425,206 +0.020503,206 +0.020988,206 +0.020476,206 +0.020374,206 +0.020402,206 +0.020521,206 +0.020866,206 +0.020498,206 +0.020491,206 +0.020461,206 +0.020494,206 +0.020731,206 +0.020377,206 +0.020408,206 +0.020478,206 +0.020558,206 +0.020627,206 +0.020435,206 +0.020376,206 +0.020436,206 +0.020589,206 +0.020674,206 +0.020367,206 +0.020386,206 +0.020430,206 +0.020825,206 +0.020477,206 +0.020425,206 +0.020371,206 +0.020455,206 +0.020832,206 +0.020454,206 +0.020433,206 +0.020450,206 +0.020546,206 +0.020845,206 +0.020509,206 +0.020404,206 +0.020361,206 +0.020545,206 +0.020790,206 +0.020547,206 +0.020483,206 +0.020445,206 +0.020497,206 +0.021000,206 +0.020620,206 +0.020432,206 +0.020507,206 +0.020377,206 +0.021019,206 +0.020574,206 +0.020587,206 +0.020427,206 +0.020517,206 +0.021153,206 +0.020512,206 +0.021221,206 +0.020608,206 +0.020599,206 +0.020907,206 +0.020395,206 +0.020442,206 +0.020490,206 +0.020755,206 +0.020848,206 +0.020516,206 +0.020425,206 +0.020515,206 +0.021067,206 +0.020579,206 +0.020578,206 +0.020460,206 +0.020519,206 +0.020952,206 +0.020452,206 +0.020415,206 +0.020555,206 +0.020937,208 +0.021447,208 +0.021110,208 +0.021063,208 +0.021080,208 +0.021059,208 +0.021476,208 +0.021106,208 +0.020988,208 +0.021031,208 +0.021058,208 +0.021473,208 +0.020970,208 +0.020922,208 +0.021063,208 +0.021414,208 +0.021251,208 +0.020921,208 +0.021078,208 +0.020971,208 +0.021575,208 +0.021036,208 +0.021007,208 +0.021015,208 +0.021137,208 +0.021794,208 +0.021007,208 +0.021026,208 +0.021033,208 +0.021063,208 +0.021563,208 +0.021013,208 +0.020908,208 +0.021028,208 +0.021103,208 +0.021375,208 +0.020978,208 +0.021054,208 +0.020989,208 +0.021518,208 +0.020965,208 +0.020957,208 +0.020970,208 +0.020899,208 +0.021561,208 +0.021345,208 +0.020959,208 +0.021026,208 +0.021020,208 +0.021515,208 +0.020916,208 +0.021116,208 +0.021035,208 +0.021011,208 +0.021544,208 +0.020938,208 +0.020971,208 +0.020993,208 +0.021331,208 +0.021146,208 +0.020975,208 +0.021000,208 +0.020880,208 +0.021581,208 +0.020919,208 +0.020933,208 +0.021065,208 +0.021079,208 +0.021627,208 +0.020984,208 +0.021031,208 +0.021143,208 +0.021434,208 +0.021466,208 +0.021069,208 +0.021036,208 +0.020908,208 +0.021261,208 +0.021241,208 +0.020960,208 +0.020993,208 +0.020928,208 +0.021676,208 +0.021072,208 +0.020921,208 +0.021194,208 +0.020953,208 +0.021478,208 +0.020900,208 +0.020952,208 +0.021031,208 +0.020963,208 +0.021564,208 +0.020987,208 +0.021018,208 +0.020997,208 +0.021287,208 +0.021463,208 +0.020961,208 +0.021010,208 +0.021837,210 +0.022359,210 +0.021703,210 +0.021722,210 +0.021748,210 +0.021800,210 +0.022293,210 +0.021726,210 +0.021681,210 +0.021713,210 +0.022189,210 +0.021968,210 +0.021695,210 +0.021828,210 +0.021751,210 +0.022327,210 +0.021710,210 +0.021823,210 +0.021882,210 +0.024530,210 +0.023167,210 +0.021845,210 +0.021955,210 +0.021629,210 +0.022300,210 +0.021750,210 +0.021700,210 +0.021613,210 +0.021707,210 +0.022299,210 +0.021728,210 +0.021733,210 +0.021715,210 +0.022258,210 +0.021667,210 +0.021689,210 +0.021675,210 +0.021617,210 +0.022322,210 +0.021623,210 +0.021723,210 +0.021755,210 +0.021899,210 +0.022125,210 +0.021792,210 +0.021803,210 +0.021650,210 +0.022226,210 +0.021704,210 +0.021738,210 +0.021623,210 +0.021700,210 +0.022291,210 +0.021647,210 +0.021842,210 +0.021684,210 +0.022042,210 +0.021837,210 +0.021654,210 +0.021712,210 +0.021604,210 +0.022472,210 +0.021726,210 +0.021741,210 +0.021754,210 +0.023545,210 +0.022155,210 +0.021975,210 +0.021686,210 +0.021615,210 +0.022360,210 +0.021625,210 +0.022446,210 +0.022446,210 +0.022270,210 +0.022792,210 +0.021866,210 +0.021678,210 +0.021673,210 +0.022255,210 +0.021645,210 +0.021740,210 +0.021689,210 +0.021647,210 +0.022128,210 +0.021689,210 +0.021829,210 +0.021827,210 +0.021905,210 +0.022211,210 +0.021896,210 +0.021644,210 +0.021800,210 +0.022196,210 +0.021754,210 +0.021831,210 +0.021608,210 +0.021701,210 +0.022241,210 +0.021665,210 +0.022333,212 +0.022289,212 +0.022824,212 +0.022219,212 +0.022375,212 +0.022238,212 +0.022223,212 +0.022961,212 +0.022227,212 +0.022258,212 +0.022534,212 +0.022837,212 +0.022326,212 +0.022341,212 +0.022220,212 +0.022228,212 +0.022974,212 +0.022232,212 +0.022573,212 +0.022355,212 +0.022848,212 +0.022325,212 +0.022381,212 +0.022277,212 +0.022785,212 +0.022947,212 +0.022319,212 +0.022236,212 +0.022260,212 +0.022802,212 +0.022282,212 +0.022393,212 +0.022251,212 +0.022384,212 +0.022750,212 +0.022347,212 +0.022354,212 +0.022219,212 +0.022789,212 +0.022340,212 +0.022302,212 +0.022216,212 +0.022453,212 +0.022677,212 +0.022374,212 +0.022228,212 +0.022263,212 +0.022823,212 +0.022218,212 +0.022228,212 +0.022198,212 +0.022395,212 +0.022869,212 +0.022323,212 +0.022361,212 +0.022268,212 +0.022801,212 +0.022334,212 +0.022253,212 +0.022175,212 +0.022361,212 +0.022652,212 +0.022286,212 +0.022231,212 +0.022339,212 +0.023049,212 +0.022210,212 +0.022239,212 +0.022321,212 +0.022345,212 +0.022578,212 +0.022393,212 +0.022224,212 +0.022156,212 +0.022832,212 +0.022247,212 +0.022352,212 +0.022454,212 +0.022399,212 +0.022739,212 +0.022451,212 +0.022183,212 +0.022177,212 +0.022833,212 +0.022297,212 +0.023886,212 +0.022259,212 +0.022521,212 +0.022645,212 +0.022403,212 +0.022249,212 +0.022298,212 +0.022748,212 +0.022594,212 +0.022305,212 +0.022199,212 +0.022525,212 +0.022699,212 +0.022429,212 +0.022883,212 +0.023026,214 +0.023601,214 +0.022894,214 +0.022924,214 +0.022801,214 +0.023424,214 +0.022784,214 +0.022958,214 +0.022937,214 +0.023036,214 +0.023292,214 +0.022977,214 +0.022910,214 +0.022914,214 +0.023308,214 +0.022945,214 +0.022868,214 +0.022820,214 +0.023361,214 +0.022903,214 +0.022967,214 +0.023011,214 +0.022831,214 +0.023594,214 +0.022994,214 +0.022835,214 +0.022873,214 +0.023355,214 +0.023009,214 +0.022910,214 +0.022801,214 +0.023142,214 +0.023126,214 +0.022873,214 +0.022995,214 +0.022831,214 +0.023499,214 +0.022909,214 +0.022804,214 +0.022903,214 +0.023405,214 +0.023121,214 +0.023190,214 +0.023021,214 +0.023059,214 +0.023475,214 +0.022920,214 +0.022871,214 +0.023039,214 +0.023400,214 +0.022957,214 +0.022797,214 +0.022976,214 +0.023346,214 +0.023228,214 +0.022894,214 +0.023023,214 +0.022950,214 +0.023304,214 +0.022880,214 +0.022979,214 +0.022820,214 +0.023251,214 +0.022990,214 +0.022892,214 +0.022999,214 +0.023206,214 +0.023043,214 +0.022884,214 +0.022835,214 +0.022819,214 +0.023492,214 +0.022915,214 +0.022874,214 +0.022853,214 +0.023394,214 +0.022965,214 +0.022915,214 +0.022892,214 +0.023037,214 +0.023072,214 +0.022953,214 +0.022892,214 +0.022866,214 +0.023559,214 +0.022908,214 +0.023742,214 +0.022807,214 +0.023526,214 +0.023016,214 +0.022789,214 +0.023650,214 +0.023282,214 +0.023171,214 +0.022981,214 +0.022893,214 +0.022843,214 +0.023337,214 +0.022931,214 +0.022935,214 +0.023484,216 +0.023960,216 +0.023784,216 +0.023437,216 +0.023560,216 +0.023767,216 +0.023759,216 +0.023548,216 +0.023554,216 +0.023648,216 +0.023907,216 +0.023504,216 +0.023411,216 +0.023361,216 +0.023976,216 +0.023612,216 +0.023527,216 +0.023568,216 +0.024065,216 +0.023642,216 +0.023505,216 +0.023500,216 +0.023761,216 +0.023708,216 +0.023398,216 +0.023390,216 +0.023527,216 +0.023995,216 +0.023649,216 +0.023565,216 +0.023520,216 +0.024105,216 +0.023535,216 +0.023515,216 +0.023435,216 +0.024056,216 +0.023549,216 +0.023436,216 +0.023527,216 +0.023797,216 +0.024015,216 +0.023496,216 +0.023743,216 +0.023574,216 +0.023869,216 +0.023564,216 +0.023412,216 +0.023448,216 +0.024012,216 +0.023638,216 +0.023633,216 +0.023510,216 +0.024206,216 +0.023510,216 +0.023539,216 +0.023430,216 +0.023712,216 +0.023728,216 +0.023420,216 +0.023466,216 +0.023403,216 +0.023832,216 +0.023598,216 +0.023477,216 +0.023488,216 +0.023875,216 +0.023622,216 +0.023453,216 +0.023399,216 +0.024021,216 +0.023578,216 +0.023585,216 +0.023475,216 +0.024381,216 +0.024930,216 +0.023957,216 +0.024402,216 +0.023838,216 +0.024771,216 +0.023503,216 +0.023520,216 +0.023429,216 +0.025026,216 +0.023553,216 +0.023468,216 +0.023556,216 +0.024949,216 +0.023713,216 +0.023406,216 +0.023559,216 +0.024893,216 +0.023608,216 +0.023511,216 +0.023548,216 +0.025018,216 +0.023749,216 +0.023568,216 +0.023493,216 +0.023500,216 +0.025098,216 +0.024321,218 +0.024253,218 +0.024154,218 +0.025959,218 +0.024192,218 +0.024190,218 +0.024139,218 +0.025750,218 +0.024191,218 +0.024242,218 +0.024402,218 +0.030602,218 +0.024774,218 +0.024360,218 +0.024410,218 +0.024888,218 +0.024177,218 +0.024285,218 +0.024374,218 +0.024681,218 +0.024682,218 +0.024262,218 +0.024223,218 +0.024665,218 +0.024532,218 +0.024227,218 +0.024309,218 +0.024826,218 +0.024397,218 +0.024196,218 +0.024256,218 +0.024776,218 +0.024537,218 +0.024244,218 +0.024336,218 +0.024614,218 +0.024646,218 +0.024301,218 +0.024200,218 +0.024366,218 +0.024733,218 +0.024201,218 +0.024230,218 +0.024197,218 +0.024804,218 +0.024310,218 +0.024180,218 +0.024274,218 +0.024824,218 +0.024214,218 +0.024201,218 +0.024154,218 +0.025116,218 +0.024334,218 +0.024319,218 +0.024365,218 +0.024794,218 +0.024186,218 +0.024323,218 +0.024177,218 +0.024657,218 +0.024300,218 +0.024207,218 +0.024112,218 +0.024419,218 +0.024600,218 +0.024227,218 +0.024217,218 +0.024233,218 +0.024734,218 +0.024214,218 +0.025253,218 +0.024190,218 +0.024788,218 +0.024715,218 +0.024626,218 +0.024456,218 +0.024755,218 +0.024196,218 +0.024166,218 +0.024235,218 +0.024681,218 +0.024260,218 +0.024331,218 +0.024221,218 +0.024686,218 +0.024356,218 +0.024330,218 +0.024253,218 +0.024664,218 +0.024319,218 +0.024420,218 +0.025809,218 +0.024817,218 +0.024451,218 +0.024223,218 +0.024401,218 +0.024759,218 +0.024375,218 +0.024219,218 +0.024873,220 +0.025108,220 +0.025061,220 +0.024885,220 +0.024765,220 +0.025074,220 +0.025367,220 +0.024839,220 +0.024765,220 +0.025052,220 +0.025111,220 +0.024817,220 +0.024792,220 +0.025239,220 +0.025257,220 +0.025068,220 +0.024841,220 +0.025115,220 +0.025180,220 +0.024913,220 +0.024890,220 +0.025050,220 +0.025184,220 +0.024911,220 +0.024798,220 +0.025013,220 +0.025192,220 +0.024926,220 +0.024795,220 +0.024976,220 +0.025252,220 +0.024912,220 +0.024793,220 +0.024958,220 +0.025602,220 +0.024894,220 +0.024824,220 +0.024999,220 +0.025398,220 +0.024906,220 +0.024775,220 +0.024963,220 +0.025427,220 +0.024907,220 +0.024832,220 +0.024869,220 +0.025427,220 +0.025238,220 +0.024822,220 +0.024873,220 +0.025321,220 +0.024911,220 +0.024858,220 +0.024902,220 +0.025402,220 +0.024943,220 +0.024956,220 +0.024943,220 +0.025503,220 +0.024872,220 +0.024849,220 +0.024872,220 +0.025515,220 +0.024940,220 +0.024794,220 +0.024854,220 +0.025468,220 +0.025027,220 +0.024804,220 +0.024812,220 +0.025526,220 +0.024885,220 +0.024797,220 +0.024926,220 +0.025620,220 +0.024928,220 +0.024839,220 +0.024926,220 +0.025429,220 +0.025009,220 +0.024797,220 +0.024856,220 +0.025474,220 +0.024913,220 +0.024784,220 +0.024895,220 +0.025441,220 +0.025252,220 +0.024798,220 +0.024784,220 +0.025461,220 +0.024823,220 +0.024757,220 +0.025039,220 +0.026051,220 +0.025156,220 +0.026092,220 +0.024877,220 +0.025423,220 +0.024875,220 +0.025803,222 +0.025612,222 +0.026133,222 +0.025814,222 +0.026533,222 +0.025811,222 +0.026799,222 +0.028307,222 +0.026128,222 +0.026274,222 +0.026490,222 +0.025989,222 +0.025987,222 +0.027747,222 +0.026207,222 +0.025834,222 +0.026027,222 +0.027656,222 +0.025946,222 +0.025867,222 +0.025983,222 +0.027567,222 +0.025950,222 +0.025924,222 +0.025934,222 +0.027547,222 +0.025963,222 +0.025842,222 +0.026992,222 +0.026363,222 +0.025988,222 +0.025937,222 +0.027749,222 +0.025962,222 +0.026520,222 +0.026097,222 +0.027628,222 +0.025700,222 +0.026003,222 +0.025730,222 +0.027521,222 +0.025729,222 +0.026208,222 +0.025815,222 +0.027381,222 +0.025782,222 +0.025681,222 +0.025890,222 +0.027240,222 +0.025703,222 +0.026188,222 +0.028180,222 +0.026576,222 +0.025724,222 +0.025760,222 +0.027488,222 +0.026379,222 +0.026555,222 +0.027810,222 +0.029167,222 +0.026614,222 +0.027743,222 +0.027495,222 +0.029081,222 +0.028671,222 +0.027525,222 +0.026388,222 +0.026126,222 +0.026361,222 +0.026159,222 +0.027152,222 +0.026343,222 +0.026092,222 +0.026325,222 +0.026569,222 +0.026080,222 +0.026654,222 +0.026354,222 +0.026697,222 +0.026229,222 +0.026825,222 +0.027730,222 +0.028674,222 +0.027830,222 +0.028155,222 +0.028284,222 +0.028044,222 +0.026559,222 +0.028011,222 +0.033725,222 +0.027623,222 +0.028418,222 +0.031350,222 +0.028729,222 +0.026083,222 +0.026010,222 +0.032434,222 +0.027779,222 +0.026996,222 +0.028396,222 +0.028949,224 +0.027685,224 +0.026853,224 +0.027342,224 +0.026836,224 +0.026846,224 +0.027353,224 +0.027514,224 +0.035273,224 +0.032047,224 +0.027517,224 +0.026843,224 +0.026461,224 +0.026823,224 +0.026482,224 +0.026429,224 +0.026592,224 +0.026880,224 +0.026321,224 +0.026325,224 +0.026351,224 +0.026876,224 +0.026249,224 +0.026443,224 +0.026446,224 +0.026957,224 +0.026337,224 +0.026385,224 +0.026553,224 +0.026630,224 +0.026286,224 +0.026370,224 +0.026752,224 +0.026410,224 +0.026253,224 +0.026425,224 +0.027212,224 +0.026683,224 +0.026352,224 +0.026306,224 +0.026796,224 +0.026319,224 +0.026409,224 +0.027414,224 +0.027239,224 +0.026580,224 +0.026598,224 +0.026857,224 +0.026380,224 +0.026298,224 +0.026425,224 +0.026794,224 +0.026301,224 +0.026350,224 +0.026489,224 +0.027160,224 +0.026314,224 +0.026349,224 +0.026421,224 +0.026793,224 +0.026374,224 +0.026456,224 +0.026503,224 +0.026953,224 +0.026346,224 +0.026434,224 +0.026791,224 +0.026370,224 +0.026421,224 +0.026372,224 +0.026847,224 +0.026371,224 +0.026353,224 +0.026352,224 +0.026915,224 +0.026435,224 +0.026356,224 +0.026417,224 +0.026870,224 +0.026376,224 +0.026433,224 +0.026624,224 +0.027409,224 +0.026897,224 +0.026468,224 +0.026801,224 +0.026327,224 +0.026391,224 +0.026394,224 +0.026912,224 +0.026554,224 +0.026577,224 +0.026535,224 +0.026772,224 +0.026386,224 +0.026433,224 +0.026597,224 +0.026615,224 +0.026654,224 +0.026921,224 +0.028603,226 +0.027266,226 +0.027135,226 +0.027072,226 +0.027474,226 +0.027131,226 +0.027086,226 +0.027116,226 +0.027478,226 +0.027045,226 +0.027091,226 +0.027592,226 +0.027407,226 +0.027063,226 +0.027063,226 +0.027425,226 +0.027157,226 +0.027344,226 +0.027210,226 +0.027718,226 +0.027114,226 +0.027143,226 +0.027466,226 +0.027005,226 +0.027020,226 +0.026995,226 +0.027437,226 +0.027026,226 +0.026995,226 +0.027142,226 +0.027541,226 +0.026967,226 +0.027073,226 +0.027470,226 +0.026976,226 +0.027179,226 +0.027682,226 +0.027688,226 +0.027113,226 +0.027033,226 +0.027071,226 +0.027531,226 +0.026931,226 +0.027160,226 +0.027355,226 +0.027081,226 +0.026994,226 +0.027038,226 +0.027578,226 +0.027147,226 +0.027222,226 +0.027132,226 +0.027484,226 +0.026990,226 +0.027118,226 +0.027287,226 +0.027333,226 +0.027106,226 +0.027130,226 +0.027430,226 +0.027058,226 +0.026931,226 +0.027072,226 +0.027519,226 +0.027034,226 +0.027094,226 +0.027110,226 +0.027528,226 +0.027124,226 +0.027042,226 +0.027476,226 +0.027152,226 +0.027089,226 +0.027805,226 +0.027947,226 +0.027093,226 +0.027021,226 +0.026933,226 +0.027671,226 +0.027016,226 +0.026995,226 +0.027477,226 +0.027034,226 +0.027993,226 +0.027066,226 +0.027560,226 +0.027294,226 +0.027060,226 +0.027045,226 +0.027400,226 +0.027050,226 +0.026985,226 +0.027514,226 +0.027799,226 +0.027884,226 +0.027555,226 +0.027529,226 +0.026994,226 +0.027625,226 +0.027030,226 +0.028396,228 +0.027789,228 +0.027706,228 +0.028292,228 +0.027713,228 +0.027641,228 +0.027753,228 +0.028166,228 +0.027764,228 +0.027839,228 +0.027917,228 +0.028371,228 +0.027708,228 +0.027819,228 +0.028142,228 +0.027675,228 +0.027806,228 +0.027774,228 +0.028090,228 +0.027691,228 +0.028016,228 +0.028347,228 +0.027715,228 +0.027710,228 +0.027669,228 +0.028135,228 +0.027709,228 +0.027739,228 +0.028289,228 +0.027917,228 +0.027731,228 +0.027709,228 +0.028199,228 +0.027688,228 +0.027750,228 +0.027957,228 +0.028081,228 +0.027754,228 +0.027762,228 +0.028137,228 +0.027730,228 +0.027760,228 +0.027624,228 +0.028232,228 +0.027763,228 +0.027841,228 +0.027998,228 +0.028292,228 +0.027739,228 +0.027804,228 +0.028145,228 +0.027705,228 +0.027735,228 +0.027768,228 +0.028157,228 +0.027802,228 +0.027793,228 +0.028159,228 +0.027800,228 +0.027955,228 +0.027726,228 +0.028202,228 +0.027815,228 +0.027765,228 +0.027927,228 +0.028082,228 +0.027911,228 +0.028507,228 +0.029761,228 +0.029541,228 +0.030357,228 +0.029105,228 +0.030264,228 +0.030174,228 +0.028764,228 +0.028345,228 +0.028749,228 +0.028297,228 +0.031972,228 +0.027970,228 +0.028245,228 +0.027927,228 +0.033471,228 +0.029183,228 +0.030954,228 +0.030335,228 +0.029571,228 +0.029664,228 +0.029525,228 +0.029456,228 +0.029034,228 +0.028302,228 +0.028582,228 +0.027869,228 +0.027958,228 +0.032860,228 +0.054217,228 +0.055905,228 +0.032124,228 +0.030037,228 +0.031212,230 +0.031446,230 +0.029493,230 +0.028981,230 +0.029714,230 +0.029217,230 +0.029330,230 +0.029472,230 +0.028810,230 +0.028966,230 +0.028912,230 +0.029368,230 +0.029060,230 +0.028714,230 +0.029201,230 +0.028925,230 +0.029145,230 +0.029026,230 +0.029022,230 +0.028966,230 +0.028870,230 +0.029391,230 +0.028822,230 +0.029057,230 +0.029450,230 +0.028822,230 +0.029209,230 +0.029746,230 +0.029454,230 +0.028988,230 +0.029127,230 +0.029064,230 +0.029241,230 +0.029435,230 +0.029081,230 +0.031390,230 +0.029498,230 +0.029355,230 +0.029553,230 +0.028982,230 +0.028996,230 +0.028980,230 +0.029188,230 +0.029060,230 +0.028818,230 +0.029422,230 +0.029067,230 +0.028992,230 +0.029280,230 +0.029486,230 +0.029258,230 +0.029168,230 +0.029584,230 +0.029309,230 +0.029174,230 +0.029294,230 +0.028859,230 +0.029155,230 +0.028960,230 +0.029254,230 +0.029074,230 +0.030576,230 +0.030232,230 +0.029177,230 +0.029131,230 +0.030245,230 +0.029385,230 +0.028945,230 +0.028784,230 +0.029233,230 +0.029134,230 +0.029420,230 +0.029514,230 +0.028832,230 +0.028563,230 +0.028667,230 +0.029067,230 +0.028526,230 +0.028438,230 +0.028899,230 +0.029096,230 +0.028589,230 +0.028424,230 +0.029054,230 +0.028619,230 +0.028536,230 +0.028929,230 +0.028593,230 +0.029794,230 +0.038274,230 +0.028631,230 +0.028745,230 +0.028442,230 +0.028873,230 +0.028448,230 +0.028783,230 +0.028461,230 +0.028953,230 +0.028479,230 +0.028411,230 +0.029688,232 +0.029182,232 +0.029007,232 +0.029212,232 +0.030177,232 +0.029792,232 +0.030598,232 +0.033744,232 +0.033655,232 +0.030829,232 +0.032066,232 +0.032223,232 +0.031038,232 +0.030659,232 +0.030033,232 +0.029460,232 +0.029567,232 +0.029924,232 +0.029216,232 +0.029134,232 +0.029829,232 +0.029198,232 +0.029112,232 +0.029550,232 +0.029096,232 +0.029180,232 +0.029056,232 +0.029627,232 +0.029195,232 +0.029088,232 +0.029468,232 +0.029486,232 +0.030023,232 +0.029728,232 +0.029768,232 +0.029106,232 +0.029068,232 +0.029595,232 +0.029140,232 +0.029497,232 +0.029585,232 +0.029460,232 +0.029183,232 +0.029034,232 +0.029641,232 +0.029115,232 +0.029208,232 +0.029817,232 +0.029447,232 +0.029239,232 +0.029114,232 +0.029866,232 +0.029166,232 +0.029146,232 +0.029593,232 +0.029066,232 +0.029145,232 +0.029049,232 +0.029621,232 +0.029042,232 +0.029041,232 +0.029647,232 +0.029164,232 +0.029283,232 +0.029343,232 +0.029674,232 +0.029265,232 +0.029332,232 +0.029687,232 +0.029218,232 +0.029087,232 +0.029494,232 +0.029337,232 +0.029189,232 +0.029091,232 +0.029642,232 +0.029189,232 +0.029207,232 +0.029540,232 +0.029594,232 +0.029035,232 +0.029327,232 +0.032385,232 +0.030660,232 +0.029237,232 +0.029852,232 +0.029299,232 +0.029156,232 +0.029341,232 +0.029562,232 +0.029221,232 +0.029107,232 +0.029742,232 +0.029237,232 +0.029049,232 +0.029655,232 +0.029219,232 +0.029072,232 +0.029165,232 +0.029762,232 +0.030358,234 +0.030127,234 +0.030604,234 +0.030153,234 +0.030130,234 +0.030406,234 +0.030486,234 +0.030233,234 +0.030003,234 +0.030490,234 +0.030202,234 +0.030074,234 +0.030438,234 +0.030215,234 +0.030018,234 +0.031065,234 +0.032074,234 +0.030253,234 +0.030099,234 +0.030677,234 +0.031515,234 +0.031204,234 +0.033240,234 +0.031116,234 +0.030199,234 +0.030712,234 +0.030225,234 +0.030108,234 +0.030597,234 +0.030284,234 +0.030132,234 +0.030359,234 +0.030782,234 +0.030082,234 +0.030109,234 +0.030729,234 +0.030159,234 +0.030105,234 +0.030472,234 +0.030409,234 +0.030108,234 +0.030038,234 +0.030701,234 +0.030097,234 +0.032153,234 +0.032187,234 +0.030610,234 +0.030178,234 +0.030790,234 +0.030180,234 +0.030011,234 +0.030187,234 +0.030570,234 +0.030096,234 +0.030133,234 +0.031568,234 +0.030319,234 +0.030084,234 +0.030822,234 +0.030645,234 +0.030130,234 +0.030539,234 +0.031045,234 +0.030107,234 +0.030286,234 +0.030675,234 +0.030380,234 +0.030718,234 +0.031886,234 +0.032856,234 +0.033020,234 +0.032307,234 +0.031610,234 +0.032002,234 +0.032058,234 +0.031528,234 +0.030505,234 +0.030506,234 +0.030780,234 +0.030169,234 +0.030483,234 +0.030792,234 +0.030206,234 +0.030239,234 +0.031256,234 +0.030443,234 +0.030501,234 +0.030984,234 +0.030521,234 +0.030428,234 +0.030373,234 +0.030966,234 +0.030462,234 +0.030669,234 +0.030869,234 +0.030494,234 +0.030628,234 +0.031014,234 +0.031166,234 +0.033034,234 +0.033777,236 +0.033994,236 +0.033944,236 +0.034148,236 +0.031757,236 +0.030948,236 +0.032556,236 +0.031320,236 +0.031032,236 +0.031013,236 +0.032891,236 +0.032434,236 +0.032233,236 +0.034586,236 +0.033126,236 +0.033744,236 +0.034739,236 +0.031994,236 +0.031318,236 +0.033039,236 +0.031272,236 +0.031136,236 +0.032828,236 +0.031334,236 +0.031468,236 +0.032985,236 +0.031576,236 +0.031285,236 +0.033451,236 +0.035104,236 +0.034135,236 +0.032739,236 +0.032981,236 +0.032480,236 +0.032441,236 +0.032488,236 +0.033266,236 +0.031990,236 +0.031856,236 +0.031373,236 +0.031471,236 +0.031751,236 +0.032149,236 +0.031541,236 +0.031784,236 +0.031390,236 +0.031234,236 +0.031803,236 +0.031537,236 +0.031533,236 +0.032068,236 +0.031771,236 +0.031798,236 +0.031953,236 +0.031569,236 +0.031234,236 +0.031939,236 +0.031545,236 +0.031601,236 +0.031578,236 +0.031932,236 +0.031237,236 +0.031325,236 +0.031721,236 +0.031366,236 +0.031220,236 +0.031750,236 +0.031240,236 +0.032455,236 +0.033766,236 +0.031280,236 +0.030793,236 +0.031328,236 +0.030853,236 +0.030771,236 +0.031968,236 +0.031074,236 +0.030757,236 +0.030916,236 +0.032139,236 +0.032433,236 +0.034592,236 +0.033978,236 +0.032397,236 +0.032334,236 +0.031628,236 +0.031247,236 +0.031339,236 +0.031525,236 +0.032272,236 +0.034320,236 +0.035302,236 +0.033631,236 +0.032443,236 +0.031868,236 +0.036478,236 +0.032029,236 +0.031947,236 +0.030840,236 +0.030834,236 +0.032290,238 +0.031663,238 +0.031577,238 +0.033485,238 +0.033872,238 +0.035361,238 +0.035761,238 +0.032871,238 +0.032131,238 +0.032473,238 +0.031940,238 +0.031745,238 +0.032728,238 +0.032135,238 +0.031720,238 +0.032094,238 +0.033397,238 +0.032657,238 +0.034607,238 +0.034474,238 +0.034204,238 +0.038265,238 +0.033422,238 +0.032119,238 +0.032749,238 +0.032330,238 +0.033634,238 +0.034926,238 +0.036489,238 +0.034506,238 +0.033690,238 +0.032542,238 +0.032052,238 +0.032223,238 +0.033186,238 +0.034131,238 +0.034831,238 +0.034710,238 +0.033838,238 +0.032466,238 +0.032274,238 +0.032050,238 +0.031949,238 +0.032542,238 +0.031693,238 +0.031649,238 +0.032263,238 +0.031716,238 +0.031614,238 +0.032194,238 +0.033197,238 +0.035426,238 +0.035452,238 +0.033799,238 +0.034757,238 +0.033376,238 +0.032357,238 +0.032370,238 +0.033924,238 +0.031932,238 +0.031730,238 +0.033355,238 +0.031602,238 +0.032070,238 +0.033182,238 +0.031728,238 +0.031650,238 +0.033281,238 +0.031678,238 +0.031882,238 +0.034564,238 +0.031760,238 +0.031552,238 +0.033319,238 +0.031600,238 +0.031533,238 +0.032823,238 +0.032028,238 +0.031525,238 +0.031993,238 +0.032756,238 +0.031828,238 +0.031746,238 +0.033238,238 +0.031641,238 +0.031616,238 +0.033137,238 +0.031554,238 +0.031585,238 +0.033085,238 +0.031562,238 +0.031473,238 +0.033401,238 +0.031639,238 +0.031512,238 +0.033092,238 +0.031949,238 +0.031735,238 +0.033181,238 +0.031755,238 +0.032343,240 +0.033862,240 +0.034092,240 +0.032217,240 +0.033336,240 +0.032581,240 +0.032189,240 +0.032208,240 +0.033655,240 +0.032166,240 +0.032460,240 +0.033617,240 +0.032209,240 +0.032333,240 +0.033738,240 +0.032283,240 +0.032250,240 +0.033561,240 +0.033114,240 +0.034166,240 +0.035387,240 +0.034878,240 +0.034778,240 +0.035309,240 +0.032956,240 +0.032670,240 +0.034152,240 +0.032453,240 +0.032523,240 +0.033747,240 +0.032219,240 +0.032256,240 +0.034852,240 +0.032188,240 +0.032216,240 +0.033476,240 +0.032083,240 +0.033007,240 +0.034557,240 +0.032568,240 +0.032249,240 +0.033585,240 +0.032223,240 +0.032403,240 +0.033472,240 +0.032224,240 +0.032070,240 +0.032631,240 +0.032187,240 +0.032076,240 +0.032691,240 +0.032156,240 +0.032070,240 +0.032641,240 +0.032126,240 +0.032065,240 +0.032322,240 +0.032443,240 +0.032428,240 +0.032233,240 +0.032845,240 +0.032217,240 +0.032185,240 +0.032981,240 +0.032174,240 +0.032270,240 +0.032766,240 +0.032613,240 +0.032274,240 +0.032744,240 +0.032155,240 +0.032178,240 +0.032682,240 +0.032216,240 +0.032185,240 +0.032755,240 +0.032373,240 +0.032354,240 +0.032655,240 +0.032702,240 +0.032727,240 +0.033254,240 +0.032606,240 +0.032792,240 +0.033288,240 +0.032707,240 +0.032698,240 +0.032970,240 +0.033131,240 +0.032702,240 +0.032809,240 +0.032904,240 +0.032723,240 +0.032811,240 +0.033252,240 +0.032700,240 +0.032779,240 +0.033331,240 +0.032580,240 +0.032634,240 +0.034677,242 +0.034333,242 +0.035353,242 +0.037132,242 +0.035416,242 +0.035410,242 +0.034834,242 +0.033790,242 +0.034383,242 +0.033788,242 +0.033457,242 +0.034437,242 +0.035468,242 +0.036031,242 +0.038102,242 +0.036129,242 +0.036671,242 +0.038472,242 +0.034601,242 +0.034189,242 +0.036864,242 +0.036533,242 +0.036482,242 +0.037213,242 +0.036504,242 +0.038268,242 +0.036324,242 +0.038244,242 +0.035677,242 +0.035634,242 +0.034792,242 +0.036135,242 +0.036817,242 +0.037817,242 +0.037462,242 +0.036281,242 +0.036753,242 +0.036863,242 +0.035234,242 +0.034721,242 +0.034226,242 +0.034461,242 +0.035540,242 +0.036877,242 +0.036143,242 +0.036095,242 +0.035628,242 +0.034672,242 +0.034271,242 +0.034081,242 +0.034506,242 +0.035000,242 +0.035985,242 +0.035727,242 +0.036704,242 +0.037648,242 +0.035403,242 +0.034006,242 +0.033905,242 +0.034223,242 +0.036224,242 +0.036299,242 +0.038138,242 +0.036845,242 +0.036640,242 +0.036335,242 +0.036843,242 +0.034545,242 +0.033487,242 +0.036115,242 +0.036344,242 +0.036293,242 +0.035307,242 +0.038131,242 +0.045884,242 +0.042915,242 +0.035826,242 +0.036449,242 +0.035700,242 +0.036295,242 +0.039672,242 +0.035614,242 +0.035382,242 +0.034891,242 +0.033864,242 +0.034920,242 +0.035236,242 +0.036033,242 +0.037853,242 +0.036326,242 +0.036606,242 +0.035340,242 +0.038935,242 +0.033753,242 +0.033520,242 +0.038138,242 +0.035472,242 +0.035660,242 +0.035369,242 +0.034935,242 +0.035351,244 +0.035871,244 +0.035230,244 +0.035925,244 +0.038724,244 +0.040129,244 +0.039379,244 +0.038537,244 +0.040497,244 +0.036633,244 +0.035343,244 +0.038747,244 +0.038757,244 +0.045130,244 +0.036858,244 +0.041927,244 +0.039854,244 +0.037641,244 +0.038082,244 +0.043394,244 +0.039307,244 +0.038785,244 +0.037869,244 +0.037780,244 +0.035217,244 +0.034456,244 +0.036203,244 +0.037800,244 +0.040150,244 +0.050008,244 +0.049812,244 +0.041325,244 +0.045832,244 +0.052610,244 +0.052008,244 +0.042045,244 +0.067749,244 +0.072703,244 +0.072166,244 +0.046886,244 +0.038491,244 +0.039296,244 +0.037777,244 +0.049037,244 +0.036943,244 +0.036475,244 +0.036480,244 +0.036279,244 +0.036979,244 +0.035601,244 +0.037431,244 +0.035981,244 +0.035024,244 +0.035396,244 +0.035535,244 +0.035078,244 +0.035980,244 +0.035874,244 +0.035106,244 +0.034888,244 +0.034206,244 +0.034227,244 +0.034895,244 +0.038662,244 +0.034279,244 +0.039300,244 +0.035010,244 +0.034118,244 +0.034979,244 +0.034239,244 +0.034100,244 +0.047447,244 +0.034204,244 +0.034705,244 +0.034445,244 +0.034354,244 +0.034837,244 +0.034082,244 +0.034278,244 +0.034973,244 +0.034284,244 +0.034085,244 +0.034760,244 +0.034259,244 +0.034188,244 +0.034593,244 +0.034133,244 +0.034105,244 +0.034614,244 +0.034142,244 +0.034141,244 +0.034646,244 +0.034292,244 +0.034239,244 +0.034943,244 +0.034119,244 +0.034072,244 +0.034719,244 +0.034357,244 +0.034145,244 +0.035788,246 +0.035212,246 +0.035194,246 +0.035476,246 +0.035298,246 +0.036709,246 +0.035462,246 +0.035223,246 +0.035805,246 +0.035209,246 +0.035165,246 +0.035768,246 +0.035274,246 +0.035219,246 +0.035662,246 +0.035250,246 +0.035914,246 +0.036826,246 +0.038206,246 +0.044112,246 +0.041421,246 +0.043092,246 +0.042983,246 +0.036796,246 +0.039207,246 +0.038178,246 +0.037697,246 +0.039172,246 +0.038369,246 +0.038217,246 +0.037788,246 +0.039724,246 +0.043731,246 +0.039567,246 +0.039280,246 +0.036046,246 +0.035558,246 +0.037500,246 +0.037027,246 +0.037366,246 +0.038814,246 +0.037329,246 +0.036223,246 +0.036504,246 +0.035596,246 +0.036479,246 +0.037131,246 +0.035821,246 +0.036483,246 +0.035860,246 +0.035607,246 +0.036814,246 +0.035801,246 +0.035939,246 +0.036605,246 +0.036062,246 +0.036307,246 +0.035925,246 +0.036517,246 +0.037065,246 +0.036557,246 +0.035529,246 +0.036068,246 +0.036164,246 +0.035511,246 +0.036099,246 +0.035529,246 +0.035457,246 +0.036358,246 +0.035706,246 +0.035986,246 +0.037572,246 +0.035684,246 +0.036861,246 +0.035794,246 +0.035796,246 +0.036792,246 +0.035434,246 +0.035464,246 +0.036024,246 +0.035524,246 +0.035594,246 +0.036032,246 +0.035576,246 +0.036133,246 +0.035656,246 +0.035641,246 +0.036242,246 +0.035668,246 +0.035511,246 +0.036249,246 +0.035679,246 +0.035835,246 +0.036350,246 +0.035769,246 +0.035779,246 +0.036081,246 +0.035742,246 +0.036305,246 +0.035666,246 +0.036538,248 +0.036950,248 +0.036891,248 +0.037282,248 +0.037122,248 +0.035963,248 +0.035966,248 +0.036533,248 +0.035865,248 +0.036491,248 +0.036088,248 +0.035918,248 +0.036324,248 +0.036204,248 +0.036010,248 +0.036408,248 +0.036022,248 +0.035875,248 +0.036484,248 +0.035847,248 +0.035988,248 +0.036638,248 +0.035939,248 +0.036479,248 +0.036101,248 +0.035841,248 +0.037387,248 +0.035967,248 +0.036096,248 +0.036605,248 +0.037319,248 +0.036080,248 +0.036739,248 +0.035905,248 +0.036373,248 +0.036001,248 +0.035857,248 +0.036426,248 +0.036060,248 +0.036116,248 +0.036435,248 +0.036006,248 +0.035934,248 +0.036601,248 +0.036661,248 +0.038456,248 +0.037034,248 +0.036383,248 +0.037245,248 +0.036645,248 +0.036301,248 +0.036790,248 +0.036420,248 +0.036386,248 +0.039304,248 +0.037737,248 +0.036706,248 +0.037622,248 +0.039952,248 +0.039045,248 +0.039536,248 +0.038979,248 +0.037102,248 +0.040524,248 +0.047871,248 +0.039514,248 +0.038784,248 +0.036877,248 +0.036276,248 +0.036576,248 +0.036445,248 +0.036307,248 +0.038011,248 +0.036560,248 +0.036393,248 +0.039587,248 +0.037070,248 +0.038024,248 +0.036550,248 +0.036464,248 +0.039896,248 +0.040696,248 +0.039671,248 +0.037722,248 +0.037045,248 +0.037030,248 +0.036760,248 +0.036654,248 +0.036918,248 +0.036292,248 +0.036506,248 +0.036907,248 +0.036397,248 +0.036666,248 +0.037172,248 +0.036737,248 +0.037231,248 +0.036764,248 +0.037268,248 +0.037170,248 +0.038086,250 +0.038827,250 +0.038990,250 +0.037656,250 +0.039527,250 +0.037633,250 +0.037549,250 +0.038221,250 +0.037844,250 +0.038290,250 +0.037835,250 +0.037638,250 +0.038288,250 +0.037639,250 +0.037595,250 +0.038418,250 +0.037800,250 +0.038053,250 +0.037847,250 +0.037909,250 +0.038100,250 +0.037897,250 +0.037869,250 +0.038147,250 +0.037684,250 +0.038149,250 +0.038995,250 +0.043489,250 +0.045378,250 +0.039512,250 +0.043945,250 +0.041917,250 +0.046253,250 +0.051930,250 +0.061852,250 +0.060873,250 +0.055203,250 +0.056209,250 +0.049196,250 +0.052504,250 +0.054557,250 +0.049361,250 +0.055008,250 +0.048738,250 +0.048519,250 +0.040005,250 +0.052799,250 +0.053327,250 +0.043411,250 +0.044696,250 +0.042284,250 +0.040053,250 +0.043783,250 +0.040671,250 +0.043014,250 +0.041375,250 +0.039464,250 +0.038793,250 +0.037435,250 +0.037281,250 +0.037981,250 +0.037245,250 +0.037327,250 +0.037564,250 +0.037241,250 +0.037451,250 +0.039258,250 +0.037382,250 +0.037922,250 +0.037268,250 +0.037188,250 +0.037485,250 +0.037387,250 +0.038525,250 +0.038325,250 +0.038383,250 +0.038073,250 +0.040982,250 +0.074718,250 +0.038744,250 +0.038323,250 +0.038145,250 +0.037754,250 +0.039391,250 +0.037818,250 +0.038091,250 +0.038323,250 +0.037743,250 +0.038526,250 +0.037601,250 +0.037652,250 +0.038597,250 +0.037943,250 +0.038059,250 +0.037976,250 +0.037702,250 +0.038592,250 +0.037895,250 +0.037840,250 +0.038815,250 +0.038699,252 +0.039045,252 +0.038515,252 +0.038525,252 +0.039196,252 +0.038629,252 +0.038606,252 +0.039003,252 +0.038791,252 +0.039151,252 +0.038370,252 +0.038741,252 +0.039158,252 +0.038488,252 +0.039305,252 +0.038434,252 +0.038216,252 +0.039576,252 +0.038537,252 +0.038717,252 +0.038729,252 +0.038565,252 +0.039139,252 +0.038482,252 +0.038509,252 +0.039110,252 +0.038557,252 +0.039360,252 +0.038386,252 +0.038276,252 +0.039334,252 +0.038254,252 +0.038748,252 +0.038706,252 +0.038297,252 +0.039110,252 +0.038381,252 +0.038306,252 +0.038858,252 +0.038423,252 +0.039294,252 +0.038163,252 +0.037901,252 +0.038654,252 +0.037990,252 +0.038164,252 +0.038542,252 +0.037878,252 +0.038594,252 +0.038343,252 +0.038125,252 +0.038493,252 +0.037896,252 +0.038614,252 +0.038042,252 +0.037831,252 +0.038678,252 +0.038131,252 +0.038024,252 +0.038536,252 +0.042861,252 +0.038422,252 +0.037953,252 +0.037943,252 +0.038348,252 +0.037991,252 +0.038721,252 +0.038117,252 +0.037917,252 +0.038919,252 +0.037938,252 +0.038027,252 +0.039191,252 +0.037861,252 +0.038955,252 +0.040984,252 +0.038092,252 +0.040819,252 +0.038052,252 +0.039542,252 +0.037981,252 +0.037802,252 +0.039468,252 +0.037887,252 +0.037890,252 +0.038429,252 +0.037804,252 +0.038395,252 +0.038648,252 +0.037949,252 +0.038276,252 +0.037851,252 +0.038169,252 +0.039792,252 +0.042231,252 +0.039571,252 +0.038210,252 +0.038467,252 +0.038717,252 +0.038249,252 +0.039936,254 +0.039465,254 +0.039334,254 +0.040065,254 +0.039383,254 +0.040090,254 +0.039435,254 +0.039177,254 +0.040657,254 +0.039187,254 +0.040312,254 +0.039448,254 +0.039488,254 +0.040645,254 +0.040085,254 +0.041609,254 +0.039331,254 +0.039357,254 +0.041614,254 +0.039211,254 +0.041913,254 +0.039449,254 +0.039495,254 +0.041637,254 +0.039478,254 +0.041623,254 +0.039509,254 +0.039517,254 +0.043351,254 +0.039365,254 +0.041827,254 +0.039644,254 +0.039558,254 +0.041600,254 +0.039541,254 +0.041388,254 +0.039354,254 +0.039592,254 +0.041203,254 +0.039634,254 +0.041391,254 +0.039556,254 +0.039549,254 +0.041227,254 +0.039462,254 +0.041692,254 +0.039581,254 +0.039455,254 +0.041425,254 +0.039442,254 +0.041406,254 +0.039491,254 +0.039306,254 +0.042753,254 +0.039219,254 +0.041637,254 +0.039697,254 +0.039207,254 +0.043401,254 +0.039485,254 +0.041004,254 +0.038971,254 +0.039117,254 +0.041379,254 +0.038966,254 +0.040863,254 +0.038944,254 +0.038962,254 +0.042000,254 +0.039254,254 +0.039711,254 +0.039101,254 +0.038850,254 +0.040741,254 +0.039132,254 +0.039386,254 +0.039018,254 +0.038897,254 +0.039604,254 +0.039720,254 +0.039484,254 +0.039226,254 +0.039947,254 +0.039878,254 +0.039104,254 +0.039400,254 +0.040058,254 +0.039104,254 +0.039540,254 +0.039171,254 +0.039434,254 +0.039560,254 +0.039144,254 +0.039675,254 +0.039228,254 +0.039316,254 +0.039891,254 +0.038911,254 +0.039681,254 +0.039048,254 +0.045297,256 +0.045849,256 +0.045395,256 +0.046163,256 +0.045344,256 +0.046896,256 +0.045613,256 +0.048069,256 +0.045930,256 +0.046376,256 +0.045710,256 +0.046088,256 +0.047383,256 +0.045935,256 +0.047501,256 +0.045963,256 +0.047293,256 +0.046090,256 +0.047512,256 +0.045820,256 +0.047847,256 +0.045723,256 +0.047504,256 +0.045714,256 +0.046280,256 +0.048077,256 +0.045847,256 +0.047505,256 +0.045955,256 +0.047295,256 +0.045545,256 +0.047311,256 +0.045926,256 +0.047432,256 +0.045836,256 +0.047683,256 +0.045752,256 +0.047709,256 +0.046274,256 +0.046592,256 +0.047855,256 +0.050953,256 +0.047916,256 +0.045931,256 +0.047817,256 +0.046053,256 +0.049004,256 +0.046315,256 +0.048031,256 +0.046460,256 +0.048593,256 +0.046224,256 +0.047719,256 +0.045832,256 +0.047828,256 +0.046105,256 +0.045767,256 +0.047757,256 +0.045915,256 +0.048175,256 +0.046601,256 +0.047080,256 +0.045218,256 +0.046985,256 +0.045308,256 +0.046867,256 +0.045136,256 +0.047985,256 +0.045647,256 +0.045707,256 +0.046499,256 +0.045497,256 +0.047160,256 +0.045219,256 +0.047095,256 +0.045170,256 +0.046713,256 +0.045684,256 +0.046960,256 +0.045355,256 +0.046547,256 +0.045593,256 +0.045185,256 +0.046832,256 +0.045076,256 +0.047068,256 +0.045091,256 +0.046798,256 +0.045298,256 +0.048013,256 +0.045422,256 +0.046954,256 +0.045552,256 +0.046425,256 +0.046089,256 +0.045377,256 +0.045881,256 +0.045229,256 +0.045887,256 +0.045230,256 +0.042081,258 +0.042614,258 +0.041833,258 +0.042086,258 +0.041492,258 +0.043070,258 +0.042303,258 +0.042069,258 +0.042106,258 +0.041970,258 +0.042518,258 +0.041982,258 +0.042699,258 +0.041835,258 +0.042066,258 +0.042568,258 +0.042002,258 +0.042405,258 +0.042074,258 +0.042611,258 +0.042106,258 +0.041835,258 +0.042608,258 +0.041898,258 +0.042480,258 +0.042001,258 +0.041909,258 +0.042463,258 +0.045149,258 +0.043737,258 +0.042288,258 +0.042411,258 +0.041625,258 +0.042247,258 +0.042165,258 +0.041585,258 +0.042754,258 +0.041842,258 +0.043590,258 +0.041990,258 +0.043031,258 +0.044013,258 +0.041785,258 +0.043605,258 +0.041802,258 +0.043916,258 +0.041727,258 +0.041861,258 +0.043481,258 +0.042282,258 +0.043696,258 +0.042073,258 +0.043473,258 +0.041695,258 +0.041836,258 +0.043509,258 +0.041741,258 +0.043380,258 +0.042463,258 +0.041709,258 +0.042632,258 +0.042106,258 +0.042620,258 +0.042544,258 +0.045255,258 +0.043871,258 +0.041508,258 +0.041967,258 +0.041501,258 +0.041899,258 +0.041971,258 +0.041960,258 +0.041676,258 +0.041295,258 +0.042285,258 +0.041558,258 +0.042110,258 +0.041293,258 +0.041305,258 +0.042215,258 +0.041494,258 +0.041830,258 +0.041343,258 +0.041394,258 +0.042209,258 +0.041295,258 +0.042063,258 +0.043349,258 +0.045494,258 +0.043548,258 +0.041453,258 +0.046725,258 +0.041732,258 +0.046617,258 +0.041177,258 +0.046633,258 +0.041518,258 +0.045840,258 +0.042901,258 +0.041345,258 +0.048255,260 +0.042324,260 +0.047944,260 +0.042678,260 +0.047935,260 +0.042694,260 +0.044666,260 +0.046949,260 +0.042397,260 +0.048135,260 +0.042603,260 +0.047941,260 +0.042574,260 +0.048251,260 +0.042447,260 +0.047803,260 +0.042785,260 +0.042291,260 +0.048307,260 +0.042330,260 +0.048392,260 +0.042397,260 +0.048226,260 +0.042667,260 +0.047873,260 +0.042525,260 +0.042523,260 +0.048155,260 +0.042379,260 +0.049098,260 +0.042286,260 +0.048006,260 +0.042583,260 +0.047957,260 +0.042498,260 +0.043690,260 +0.046701,260 +0.042336,260 +0.048451,260 +0.042400,260 +0.048644,260 +0.042495,260 +0.048564,260 +0.042649,260 +0.045546,260 +0.045037,260 +0.042463,260 +0.048389,260 +0.042364,260 +0.047973,260 +0.042311,260 +0.048661,260 +0.042668,260 +0.047775,260 +0.043000,260 +0.042421,260 +0.049528,260 +0.042978,260 +0.048586,260 +0.042669,260 +0.048119,260 +0.042438,260 +0.048009,260 +0.042556,260 +0.043498,260 +0.047218,260 +0.042378,260 +0.048384,260 +0.042388,260 +0.048305,260 +0.042455,260 +0.048446,260 +0.042351,260 +0.044113,260 +0.047139,260 +0.042322,260 +0.048408,260 +0.042434,260 +0.048234,260 +0.042494,260 +0.048293,260 +0.042480,260 +0.047994,260 +0.042675,260 +0.042313,260 +0.048334,260 +0.042412,260 +0.048358,260 +0.042306,260 +0.048182,260 +0.042543,260 +0.048056,260 +0.042424,260 +0.042349,260 +0.048096,260 +0.042478,260 +0.049024,260 +0.042525,260 +0.048152,260 +0.042303,260 +0.051544,262 +0.045612,262 +0.050535,262 +0.045288,262 +0.048709,262 +0.047252,262 +0.045144,262 +0.051457,262 +0.045062,262 +0.051046,262 +0.045063,262 +0.050513,262 +0.045180,262 +0.051306,262 +0.045181,262 +0.050392,262 +0.045029,262 +0.051435,262 +0.045635,262 +0.050680,262 +0.045062,262 +0.050670,262 +0.045119,262 +0.050427,262 +0.045001,262 +0.046788,262 +0.049032,262 +0.045134,262 +0.050543,262 +0.045412,262 +0.051262,262 +0.045004,262 +0.050438,262 +0.045083,262 +0.051226,262 +0.045002,262 +0.050308,262 +0.045029,262 +0.052155,262 +0.045088,262 +0.050504,262 +0.045078,262 +0.050475,262 +0.045118,262 +0.050361,262 +0.046407,262 +0.045584,262 +0.050035,262 +0.045313,262 +0.051202,262 +0.045060,262 +0.051355,262 +0.045182,262 +0.051282,262 +0.049080,262 +0.046642,262 +0.045015,262 +0.045746,262 +0.045166,262 +0.045918,262 +0.045070,262 +0.045495,262 +0.045338,262 +0.045044,262 +0.045700,262 +0.045056,262 +0.045916,262 +0.045165,262 +0.045669,262 +0.045212,262 +0.045766,262 +0.045216,262 +0.045616,262 +0.045724,262 +0.045022,262 +0.045808,262 +0.045308,262 +0.047476,262 +0.045366,262 +0.045937,262 +0.045114,262 +0.045810,262 +0.045430,262 +0.045258,262 +0.045845,262 +0.045254,262 +0.045789,262 +0.045173,262 +0.045872,262 +0.045020,262 +0.045713,262 +0.045355,262 +0.045629,262 +0.045504,262 +0.045357,262 +0.045746,262 +0.045122,262 +0.045805,262 +0.045116,262 +0.045932,262 +0.045572,264 +0.045377,264 +0.044911,264 +0.045498,264 +0.045480,264 +0.045013,264 +0.045361,264 +0.044835,264 +0.045345,264 +0.044850,264 +0.045363,264 +0.044819,264 +0.045119,264 +0.045038,264 +0.044929,264 +0.045277,264 +0.045018,264 +0.045337,264 +0.044766,264 +0.045071,264 +0.045004,264 +0.045191,264 +0.044777,264 +0.044833,264 +0.045091,264 +0.044788,264 +0.045319,264 +0.044897,264 +0.045363,264 +0.045009,264 +0.045403,264 +0.044783,264 +0.044908,264 +0.045218,264 +0.044848,264 +0.045603,264 +0.044800,264 +0.045850,264 +0.047181,264 +0.045717,264 +0.044871,264 +0.045471,264 +0.044947,264 +0.044940,264 +0.045371,264 +0.044852,264 +0.045318,264 +0.044823,264 +0.045581,264 +0.044927,264 +0.045449,264 +0.045173,264 +0.044880,264 +0.045276,264 +0.045357,264 +0.045468,264 +0.044777,264 +0.045276,264 +0.044682,264 +0.047804,264 +0.046794,264 +0.046725,264 +0.044823,264 +0.044911,264 +0.049118,264 +0.045572,264 +0.045130,264 +0.045017,264 +0.045110,264 +0.044772,264 +0.045407,264 +0.045054,264 +0.045183,264 +0.045040,264 +0.044867,264 +0.045725,264 +0.044958,264 +0.045318,264 +0.044947,264 +0.045226,264 +0.044847,264 +0.045403,264 +0.045587,264 +0.045449,264 +0.045266,264 +0.044929,264 +0.045318,264 +0.044923,264 +0.045372,264 +0.045250,264 +0.045429,264 +0.044795,264 +0.044988,264 +0.045278,264 +0.045132,264 +0.045579,264 +0.044765,264 +0.045500,264 +0.044827,264 +0.045411,264 +0.048093,266 +0.048554,266 +0.047857,266 +0.048832,266 +0.048130,266 +0.048065,266 +0.048130,266 +0.047908,266 +0.048489,266 +0.048060,266 +0.048360,266 +0.047964,266 +0.048440,266 +0.047902,266 +0.048555,266 +0.048409,266 +0.048603,266 +0.047875,266 +0.048451,266 +0.047899,266 +0.048415,266 +0.047878,266 +0.048513,266 +0.048003,266 +0.048460,266 +0.048109,266 +0.048418,266 +0.047827,266 +0.048355,266 +0.048271,266 +0.048101,266 +0.048250,266 +0.047861,266 +0.048418,266 +0.047947,266 +0.048736,266 +0.047898,266 +0.048680,266 +0.047957,266 +0.048521,266 +0.048046,266 +0.048546,266 +0.048040,266 +0.049049,266 +0.047991,266 +0.048726,266 +0.048007,266 +0.048397,266 +0.047939,266 +0.048432,266 +0.047919,266 +0.048511,266 +0.048066,266 +0.048158,266 +0.048293,266 +0.048010,266 +0.048770,266 +0.048032,266 +0.048726,266 +0.047981,266 +0.048417,266 +0.048049,266 +0.048393,266 +0.048031,266 +0.048320,266 +0.048281,266 +0.049239,266 +0.047884,266 +0.048425,266 +0.047931,266 +0.048400,266 +0.047844,266 +0.048448,266 +0.048015,266 +0.048546,266 +0.048001,266 +0.048574,266 +0.048322,266 +0.048336,266 +0.048125,266 +0.048212,266 +0.048421,266 +0.048035,266 +0.048492,266 +0.047906,266 +0.048542,266 +0.048039,266 +0.048647,266 +0.047852,266 +0.048421,266 +0.047796,266 +0.048576,266 +0.047807,266 +0.048873,266 +0.047809,266 +0.048401,266 +0.047913,266 +0.048670,266 +0.048133,266 +0.048864,266 +0.048275,268 +0.048696,268 +0.048144,268 +0.048465,268 +0.048125,268 +0.048255,268 +0.048431,268 +0.048170,268 +0.048705,268 +0.048052,268 +0.048540,268 +0.048015,268 +0.048595,268 +0.048046,268 +0.048586,268 +0.048002,268 +0.049067,268 +0.048110,268 +0.048884,268 +0.048117,268 +0.048584,268 +0.048039,268 +0.048778,268 +0.048048,268 +0.048461,268 +0.048128,268 +0.048589,268 +0.048218,268 +0.048745,268 +0.048078,268 +0.048564,268 +0.048037,268 +0.048153,268 +0.048413,268 +0.047985,268 +0.048706,268 +0.048094,268 +0.048498,268 +0.048325,268 +0.048784,268 +0.048145,268 +0.048614,268 +0.048069,268 +0.048603,268 +0.048081,268 +0.048666,268 +0.048397,268 +0.048522,268 +0.048516,268 +0.048846,268 +0.048086,268 +0.048523,268 +0.048044,268 +0.048577,268 +0.048127,268 +0.048515,268 +0.048060,268 +0.048525,268 +0.048301,268 +0.048229,268 +0.048670,268 +0.048532,268 +0.048557,268 +0.048008,268 +0.048688,268 +0.048004,268 +0.048554,268 +0.048121,268 +0.048588,268 +0.048915,268 +0.048832,268 +0.048046,268 +0.048471,268 +0.048041,268 +0.048648,268 +0.048166,268 +0.048498,268 +0.048032,268 +0.048534,268 +0.048124,268 +0.048592,268 +0.048203,268 +0.048449,268 +0.048046,268 +0.048568,268 +0.048168,268 +0.048328,268 +0.048358,268 +0.048142,268 +0.048514,268 +0.048489,268 +0.048674,268 +0.048018,268 +0.048568,268 +0.048246,268 +0.048617,268 +0.048178,268 +0.048707,268 +0.048113,268 +0.048557,268 +0.051342,270 +0.051541,270 +0.051119,270 +0.051441,270 +0.051187,270 +0.051469,270 +0.050958,270 +0.051311,270 +0.051083,270 +0.051505,270 +0.051255,270 +0.051646,270 +0.050894,270 +0.051497,270 +0.050975,270 +0.051511,270 +0.050891,270 +0.051461,270 +0.051058,270 +0.051288,270 +0.051191,270 +0.051547,270 +0.051195,270 +0.051279,270 +0.051556,270 +0.051011,270 +0.051468,270 +0.050985,270 +0.051403,270 +0.051001,270 +0.051945,270 +0.050997,270 +0.051442,270 +0.051165,270 +0.051447,270 +0.051047,270 +0.051476,270 +0.051056,270 +0.051486,270 +0.051006,270 +0.051561,270 +0.051181,270 +0.051743,270 +0.051012,270 +0.051433,270 +0.050948,270 +0.051489,270 +0.051084,270 +0.051561,270 +0.051276,270 +0.051648,270 +0.050909,270 +0.051372,270 +0.051003,270 +0.051535,270 +0.050986,270 +0.051464,270 +0.050818,270 +0.051522,270 +0.050939,270 +0.051597,270 +0.050956,270 +0.051504,270 +0.050854,270 +0.051526,270 +0.050830,270 +0.051485,270 +0.050898,270 +0.051404,270 +0.056755,270 +0.052415,270 +0.051187,270 +0.051174,270 +0.051398,270 +0.050898,270 +0.051421,270 +0.051019,270 +0.051525,270 +0.050984,270 +0.051634,270 +0.051033,270 +0.051498,270 +0.050999,270 +0.051528,270 +0.050991,270 +0.051460,270 +0.050919,270 +0.051540,270 +0.051221,270 +0.051615,270 +0.050929,270 +0.051637,270 +0.051243,270 +0.051707,270 +0.051443,270 +0.051519,270 +0.050925,270 +0.051655,270 +0.051174,270 +0.051755,270 +0.049435,272 +0.049712,272 +0.049166,272 +0.049631,272 +0.049171,272 +0.049689,272 +0.049117,272 +0.049701,272 +0.049306,272 +0.049876,272 +0.049086,272 +0.049662,272 +0.049139,272 +0.049734,272 +0.049166,272 +0.049868,272 +0.049411,272 +0.049673,272 +0.049128,272 +0.049832,272 +0.049201,272 +0.049724,272 +0.051215,272 +0.050721,272 +0.049178,272 +0.050670,272 +0.049205,272 +0.050658,272 +0.049243,272 +0.050589,272 +0.049139,272 +0.050582,272 +0.049158,272 +0.050957,272 +0.049261,272 +0.050503,272 +0.049055,272 +0.050749,272 +0.049715,272 +0.051716,272 +0.049319,272 +0.050582,272 +0.049194,272 +0.050733,272 +0.049297,272 +0.051079,272 +0.049202,272 +0.050302,272 +0.049431,272 +0.050735,272 +0.049148,272 +0.050486,272 +0.049299,272 +0.050421,272 +0.049318,272 +0.050266,272 +0.049265,272 +0.050209,272 +0.049803,272 +0.051081,272 +0.049932,272 +0.050271,272 +0.049587,272 +0.050158,272 +0.049592,272 +0.050020,272 +0.049635,272 +0.050008,272 +0.050422,272 +0.049948,272 +0.049773,272 +0.049773,272 +0.050027,272 +0.049700,272 +0.050082,272 +0.049474,272 +0.050181,272 +0.049382,272 +0.050677,272 +0.049202,272 +0.052091,272 +0.049543,272 +0.050200,272 +0.049158,272 +0.050576,272 +0.049119,272 +0.050529,272 +0.049232,272 +0.050573,272 +0.049112,272 +0.050611,272 +0.049247,272 +0.050781,272 +0.049196,272 +0.050974,272 +0.049342,272 +0.050484,272 +0.049243,272 +0.050431,272 +0.049244,272 +0.055936,274 +0.053476,274 +0.053482,274 +0.054314,274 +0.052765,274 +0.054135,274 +0.052769,274 +0.054386,274 +0.053011,274 +0.054183,274 +0.052823,274 +0.054154,274 +0.052873,274 +0.054188,274 +0.052746,274 +0.054069,274 +0.052887,274 +0.054350,274 +0.054909,274 +0.053474,274 +0.053989,274 +0.052878,274 +0.054203,274 +0.052980,274 +0.054277,274 +0.052768,274 +0.054341,274 +0.052917,274 +0.054331,274 +0.052932,274 +0.054125,274 +0.052855,274 +0.054084,274 +0.053899,274 +0.053103,274 +0.054212,274 +0.052839,274 +0.055637,274 +0.053230,274 +0.054193,274 +0.052798,274 +0.054121,274 +0.052883,274 +0.054491,274 +0.053176,274 +0.054155,274 +0.052861,274 +0.054216,274 +0.053711,274 +0.053177,274 +0.054143,274 +0.052794,274 +0.054244,274 +0.052822,274 +0.054396,274 +0.052789,274 +0.055424,274 +0.052788,274 +0.054105,274 +0.052730,274 +0.054005,274 +0.052820,274 +0.054166,274 +0.053538,274 +0.053382,274 +0.054193,274 +0.053835,274 +0.055035,274 +0.055093,274 +0.055100,274 +0.054008,274 +0.055025,274 +0.053819,274 +0.054744,274 +0.053556,274 +0.056024,274 +0.054414,274 +0.053970,274 +0.055162,274 +0.053304,274 +0.055780,274 +0.053383,274 +0.055202,274 +0.053354,274 +0.054638,274 +0.053250,274 +0.054771,274 +0.053860,274 +0.054538,274 +0.054270,274 +0.053734,274 +0.054906,274 +0.053493,274 +0.055184,274 +0.053665,274 +0.053948,274 +0.053557,274 +0.054322,274 +0.053787,274 +0.053672,274 +0.054128,276 +0.054896,276 +0.054354,276 +0.054290,276 +0.054894,276 +0.053618,276 +0.054930,276 +0.053730,276 +0.054892,276 +0.054017,276 +0.056243,276 +0.054117,276 +0.056417,276 +0.054062,276 +0.055307,276 +0.055088,276 +0.054532,276 +0.054670,276 +0.053246,276 +0.054359,276 +0.053118,276 +0.054349,276 +0.053165,276 +0.054354,276 +0.053115,276 +0.054216,276 +0.053150,276 +0.054336,276 +0.054530,276 +0.053243,276 +0.055437,276 +0.053164,276 +0.054328,276 +0.053144,276 +0.054764,276 +0.054260,276 +0.054312,276 +0.056166,276 +0.055131,276 +0.053252,276 +0.053969,276 +0.054267,276 +0.053053,276 +0.054094,276 +0.053045,276 +0.053980,276 +0.053225,276 +0.055082,276 +0.053120,276 +0.053623,276 +0.053141,276 +0.054539,276 +0.053074,276 +0.053560,276 +0.053681,276 +0.053762,276 +0.055634,276 +0.053254,276 +0.053405,276 +0.054822,276 +0.054325,276 +0.053122,276 +0.053438,276 +0.053207,276 +0.053634,276 +0.053511,276 +0.053607,276 +0.053119,276 +0.053694,276 +0.053250,276 +0.053541,276 +0.053725,276 +0.053152,276 +0.053525,276 +0.053539,276 +0.053485,276 +0.053115,276 +0.053708,276 +0.053342,276 +0.053600,276 +0.053844,276 +0.053480,276 +0.053116,276 +0.053744,276 +0.053231,276 +0.053467,276 +0.053083,276 +0.053788,276 +0.053221,276 +0.053674,276 +0.053589,276 +0.053146,276 +0.053575,276 +0.053412,276 +0.053608,276 +0.053061,276 +0.053592,276 +0.053129,276 +0.053909,276 +0.052992,276 +0.056686,278 +0.056121,278 +0.056500,278 +0.056478,278 +0.055945,278 +0.056477,278 +0.055941,278 +0.056564,278 +0.055995,278 +0.056528,278 +0.056414,278 +0.056325,278 +0.056512,278 +0.056066,278 +0.056793,278 +0.056123,278 +0.056582,278 +0.055945,278 +0.056602,278 +0.056426,278 +0.056327,278 +0.056475,278 +0.056034,278 +0.056723,278 +0.056029,278 +0.056717,278 +0.056075,278 +0.056660,278 +0.056743,278 +0.056300,278 +0.056511,278 +0.055932,278 +0.056550,278 +0.056184,278 +0.056580,278 +0.056058,278 +0.056266,278 +0.056487,278 +0.056185,278 +0.056611,278 +0.055784,278 +0.056613,278 +0.056066,278 +0.056499,278 +0.056814,278 +0.055931,278 +0.056476,278 +0.056853,278 +0.056435,278 +0.055918,278 +0.056794,278 +0.057376,278 +0.056570,278 +0.056438,278 +0.055998,278 +0.056864,278 +0.056111,278 +0.056630,278 +0.055871,278 +0.056763,278 +0.056253,278 +0.056417,278 +0.056558,278 +0.055982,278 +0.056670,278 +0.055937,278 +0.056469,278 +0.055934,278 +0.056489,278 +0.056263,278 +0.056659,278 +0.056447,278 +0.056029,278 +0.056709,278 +0.056107,278 +0.056422,278 +0.055829,278 +0.056632,278 +0.056431,278 +0.055938,278 +0.056483,278 +0.055816,278 +0.056627,278 +0.055849,278 +0.056359,278 +0.055843,278 +0.057168,278 +0.056457,278 +0.055904,278 +0.056399,278 +0.055899,278 +0.057277,278 +0.055828,278 +0.056306,278 +0.055929,278 +0.056550,278 +0.056387,278 +0.055821,278 +0.056925,278 +0.056030,278 +0.056039,280 +0.054997,280 +0.056157,280 +0.055203,280 +0.055545,280 +0.055597,280 +0.055629,280 +0.055476,280 +0.055143,280 +0.055797,280 +0.055150,280 +0.055650,280 +0.055104,280 +0.055887,280 +0.055714,280 +0.055130,280 +0.055771,280 +0.055378,280 +0.055863,280 +0.055104,280 +0.055756,280 +0.055104,280 +0.055971,280 +0.055739,280 +0.055151,280 +0.055592,280 +0.055293,280 +0.055854,280 +0.055124,280 +0.055650,280 +0.055182,280 +0.055857,280 +0.055306,280 +0.055486,280 +0.055568,280 +0.055182,280 +0.055911,280 +0.055098,280 +0.055473,280 +0.055237,280 +0.055612,280 +0.055152,280 +0.055658,280 +0.055459,280 +0.055312,280 +0.055762,280 +0.055169,280 +0.055615,280 +0.055152,280 +0.055908,280 +0.055204,280 +0.055705,280 +0.055386,280 +0.055221,280 +0.056019,280 +0.055110,280 +0.055731,280 +0.055292,280 +0.056103,280 +0.055521,280 +0.055667,280 +0.055302,280 +0.055408,280 +0.055828,280 +0.055129,280 +0.055558,280 +0.055119,280 +0.055847,280 +0.055210,280 +0.055756,280 +0.055195,280 +0.055800,280 +0.055859,280 +0.055122,280 +0.055436,280 +0.055093,280 +0.055607,280 +0.055062,280 +0.055480,280 +0.055228,280 +0.055440,280 +0.055857,280 +0.055213,280 +0.055463,280 +0.055038,280 +0.055800,280 +0.055128,280 +0.055669,280 +0.055285,280 +0.055366,280 +0.055615,280 +0.055130,280 +0.055400,280 +0.055457,280 +0.055801,280 +0.056098,280 +0.055713,280 +0.055297,280 +0.055464,280 +0.055897,280 +0.061178,282 +0.060940,282 +0.060385,282 +0.061193,282 +0.060907,282 +0.060585,282 +0.060973,282 +0.061083,282 +0.060710,282 +0.060792,282 +0.060495,282 +0.060994,282 +0.060557,282 +0.060853,282 +0.060833,282 +0.060674,282 +0.061016,282 +0.060525,282 +0.060771,282 +0.060985,282 +0.060689,282 +0.060932,282 +0.060415,282 +0.060865,282 +0.065272,282 +0.060795,282 +0.060861,282 +0.060535,282 +0.060739,282 +0.060891,282 +0.060540,282 +0.060519,282 +0.060961,282 +0.060622,282 +0.060677,282 +0.060447,282 +0.060994,282 +0.060663,282 +0.060750,282 +0.060640,282 +0.060824,282 +0.061117,282 +0.060853,282 +0.060488,282 +0.061053,282 +0.060691,282 +0.060881,282 +0.060800,282 +0.060519,282 +0.060955,282 +0.060484,282 +0.060771,282 +0.061039,282 +0.060620,282 +0.061179,282 +0.060412,282 +0.060860,282 +0.061263,282 +0.060412,282 +0.060798,282 +0.060409,282 +0.061082,282 +0.060783,282 +0.060369,282 +0.060791,282 +0.060680,282 +0.060823,282 +0.060749,282 +0.060454,282 +0.060993,282 +0.060702,282 +0.060723,282 +0.060732,282 +0.060771,282 +0.060674,282 +0.060352,282 +0.060997,282 +0.060970,282 +0.060575,282 +0.060690,282 +0.060320,282 +0.061755,282 +0.060964,282 +0.060513,282 +0.060540,282 +0.060371,282 +0.060994,282 +0.061590,282 +0.060600,282 +0.061419,282 +0.060636,282 +0.060621,282 +0.060998,282 +0.060314,282 +0.060860,282 +0.060558,282 +0.060567,282 +0.060689,282 +0.060647,282 +0.060750,282 +0.058921,284 +0.058936,284 +0.059176,284 +0.058603,284 +0.059371,284 +0.058771,284 +0.060202,284 +0.059112,284 +0.058822,284 +0.059130,284 +0.058993,284 +0.059290,284 +0.059066,284 +0.058856,284 +0.059348,284 +0.059093,284 +0.059185,284 +0.058805,284 +0.059290,284 +0.059479,284 +0.059320,284 +0.059182,284 +0.058853,284 +0.059464,284 +0.059027,284 +0.058661,284 +0.058992,284 +0.058628,284 +0.060052,284 +0.058768,284 +0.058889,284 +0.058936,284 +0.058981,284 +0.059222,284 +0.058769,284 +0.059221,284 +0.059170,284 +0.059063,284 +0.059002,284 +0.058687,284 +0.059421,284 +0.058926,284 +0.058686,284 +0.059023,284 +0.058684,284 +0.059015,284 +0.058624,284 +0.059053,284 +0.059106,284 +0.058753,284 +0.059009,284 +0.058660,284 +0.059045,284 +0.058886,284 +0.059208,284 +0.058953,284 +0.058749,284 +0.059335,284 +0.058585,284 +0.059025,284 +0.059127,284 +0.058718,284 +0.059328,284 +0.058785,284 +0.059074,284 +0.059040,284 +0.059038,284 +0.059060,284 +0.058690,284 +0.059024,284 +0.058809,284 +0.062781,284 +0.062612,284 +0.059017,284 +0.062422,284 +0.061937,284 +0.058787,284 +0.062778,284 +0.058929,284 +0.062076,284 +0.062005,284 +0.058849,284 +0.062248,284 +0.058850,284 +0.061965,284 +0.061794,284 +0.060139,284 +0.063142,284 +0.059049,284 +0.061887,284 +0.061915,284 +0.058789,284 +0.061870,284 +0.058607,284 +0.061869,284 +0.062020,284 +0.058899,284 +0.061880,284 +0.058643,284 +0.062002,284 +0.065981,286 +0.063085,286 +0.065705,286 +0.066395,286 +0.063186,286 +0.065908,286 +0.065949,286 +0.062979,286 +0.065761,286 +0.063785,286 +0.064798,286 +0.064375,286 +0.062746,286 +0.063914,286 +0.063989,286 +0.062908,286 +0.064041,286 +0.063173,286 +0.062956,286 +0.063980,286 +0.063076,286 +0.063271,286 +0.063561,286 +0.062711,286 +0.063212,286 +0.063110,286 +0.063045,286 +0.063386,286 +0.062728,286 +0.063221,286 +0.063484,286 +0.063042,286 +0.063231,286 +0.063095,286 +0.062986,286 +0.063989,286 +0.062867,286 +0.063241,286 +0.063624,286 +0.062800,286 +0.063251,286 +0.063172,286 +0.062871,286 +0.063358,286 +0.062740,286 +0.063326,286 +0.063316,286 +0.062790,286 +0.063419,286 +0.063193,286 +0.062935,286 +0.063784,286 +0.063122,286 +0.064094,286 +0.067483,286 +0.062756,286 +0.063161,286 +0.063158,286 +0.062857,286 +0.063157,286 +0.063145,286 +0.062850,286 +0.063292,286 +0.062744,286 +0.063340,286 +0.063324,286 +0.062920,286 +0.063674,286 +0.063221,286 +0.064689,286 +0.063610,286 +0.062748,286 +0.064264,286 +0.063843,286 +0.062842,286 +0.063239,286 +0.063366,286 +0.063586,286 +0.063319,286 +0.063017,286 +0.063736,286 +0.063332,286 +0.062838,286 +0.063847,286 +0.063231,286 +0.063415,286 +0.063301,286 +0.063123,286 +0.062875,286 +0.063330,286 +0.063156,286 +0.063569,286 +0.063378,286 +0.063101,286 +0.063237,286 +0.063325,286 +0.062859,286 +0.063421,286 +0.062976,286 +0.063373,286 +0.065231,288 +0.065049,288 +0.065202,288 +0.065060,288 +0.064777,288 +0.065043,288 +0.064091,288 +0.063515,288 +0.064231,288 +0.064605,288 +0.063848,288 +0.064219,288 +0.063622,288 +0.063975,288 +0.064850,288 +0.064732,288 +0.065307,288 +0.065324,288 +0.064693,288 +0.065179,288 +0.065310,288 +0.064844,288 +0.065290,288 +0.064943,288 +0.065224,288 +0.065342,288 +0.064823,288 +0.065187,288 +0.063950,288 +0.063716,288 +0.064065,288 +0.064224,288 +0.063697,288 +0.064055,288 +0.063800,288 +0.063614,288 +0.064130,288 +0.063993,288 +0.063986,288 +0.064079,288 +0.063585,288 +0.064072,288 +0.065238,288 +0.065154,288 +0.065189,288 +0.065756,288 +0.064803,288 +0.065795,288 +0.065136,288 +0.064741,288 +0.065112,288 +0.064663,288 +0.065022,288 +0.065250,288 +0.064910,288 +0.065307,288 +0.065144,288 +0.064645,288 +0.065135,288 +0.065097,288 +0.064721,288 +0.065196,288 +0.065120,288 +0.064938,288 +0.065088,288 +0.064598,288 +0.065139,288 +0.065346,288 +0.064673,288 +0.065012,288 +0.065111,288 +0.064899,288 +0.064962,288 +0.065290,288 +0.064877,288 +0.065087,288 +0.065402,288 +0.064656,288 +0.065058,288 +0.064950,288 +0.064708,288 +0.064946,288 +0.064646,288 +0.064967,288 +0.065059,288 +0.064819,288 +0.064989,288 +0.065037,288 +0.064656,288 +0.065418,288 +0.065141,288 +0.065037,288 +0.064033,288 +0.063644,288 +0.063892,288 +0.063866,288 +0.064388,288 +0.065006,288 +0.065188,288 +0.064741,288 +0.066894,290 +0.066439,290 +0.065936,290 +0.066189,290 +0.066283,290 +0.065873,290 +0.066252,290 +0.066334,290 +0.066409,290 +0.066338,290 +0.066291,290 +0.065812,290 +0.066247,290 +0.066345,290 +0.065786,290 +0.066483,290 +0.066503,290 +0.066027,290 +0.065965,290 +0.066054,290 +0.066133,290 +0.066230,290 +0.065766,290 +0.066377,290 +0.066257,290 +0.065813,290 +0.066228,290 +0.066223,290 +0.065864,290 +0.066141,290 +0.066147,290 +0.065878,290 +0.066227,290 +0.066032,290 +0.065745,290 +0.066243,290 +0.066123,290 +0.066314,290 +0.066257,290 +0.066300,290 +0.065877,290 +0.066223,290 +0.066203,290 +0.066044,290 +0.066232,290 +0.066328,290 +0.065944,290 +0.066421,290 +0.066077,290 +0.066266,290 +0.066172,290 +0.066210,290 +0.065911,290 +0.066374,290 +0.065973,290 +0.066060,290 +0.066242,290 +0.065823,290 +0.066221,290 +0.066933,290 +0.065836,290 +0.066934,290 +0.066470,290 +0.065773,290 +0.066684,290 +0.066227,290 +0.065889,290 +0.066280,290 +0.066238,290 +0.065969,290 +0.066354,290 +0.066274,290 +0.065947,290 +0.066260,290 +0.066301,290 +0.065937,290 +0.066530,290 +0.066418,290 +0.066328,290 +0.066159,290 +0.066282,290 +0.065979,290 +0.066425,290 +0.066258,290 +0.066737,290 +0.066388,290 +0.066281,290 +0.065948,290 +0.066293,290 +0.066228,290 +0.066327,290 +0.066376,290 +0.066135,290 +0.066085,290 +0.066672,290 +0.066038,290 +0.066262,290 +0.066243,290 +0.065868,290 +0.067703,290 +0.068319,292 +0.065282,292 +0.066127,292 +0.066207,292 +0.065202,292 +0.065459,292 +0.065341,292 +0.065483,292 +0.065563,292 +0.065269,292 +0.065137,292 +0.065553,292 +0.066180,292 +0.065189,292 +0.065532,292 +0.065671,292 +0.065080,292 +0.065441,292 +0.065277,292 +0.066142,292 +0.065382,292 +0.065143,292 +0.065610,292 +0.065445,292 +0.064946,292 +0.065470,292 +0.065479,292 +0.065502,292 +0.065399,292 +0.065523,292 +0.065342,292 +0.065557,292 +0.065380,292 +0.065116,292 +0.065437,292 +0.065276,292 +0.065088,292 +0.065440,292 +0.065563,292 +0.065113,292 +0.065422,292 +0.067850,292 +0.065228,292 +0.065730,292 +0.065117,292 +0.065829,292 +0.065496,292 +0.065036,292 +0.065513,292 +0.065588,292 +0.065061,292 +0.065361,292 +0.065541,292 +0.065403,292 +0.065816,292 +0.065784,292 +0.065190,292 +0.065547,292 +0.065565,292 +0.065511,292 +0.066175,292 +0.065516,292 +0.065099,292 +0.065469,292 +0.065223,292 +0.065155,292 +0.065435,292 +0.065118,292 +0.065490,292 +0.065777,292 +0.064977,292 +0.065431,292 +0.065489,292 +0.065406,292 +0.065351,292 +0.065495,292 +0.067420,292 +0.065514,292 +0.065273,292 +0.065096,292 +0.065467,292 +0.065280,292 +0.065053,292 +0.065718,292 +0.065420,292 +0.065287,292 +0.065960,292 +0.065394,292 +0.065229,292 +0.066330,292 +0.065249,292 +0.065580,292 +0.065533,292 +0.065008,292 +0.065597,292 +0.065550,292 +0.065213,292 +0.065404,292 +0.065527,292 +0.065221,292 +0.070272,294 +0.069894,294 +0.069447,294 +0.069989,294 +0.070190,294 +0.069640,294 +0.069925,294 +0.069958,294 +0.069810,294 +0.069592,294 +0.070002,294 +0.069833,294 +0.069407,294 +0.070111,294 +0.070008,294 +0.069346,294 +0.069899,294 +0.070334,294 +0.074104,294 +0.069582,294 +0.073152,294 +0.072409,294 +0.069674,294 +0.073156,294 +0.072663,294 +0.072446,294 +0.069788,294 +0.072631,294 +0.073153,294 +0.069503,294 +0.072394,294 +0.072529,294 +0.072809,294 +0.069747,294 +0.073212,294 +0.072429,294 +0.069558,294 +0.072261,294 +0.072765,294 +0.072226,294 +0.069624,294 +0.073477,294 +0.072357,294 +0.069487,294 +0.072482,294 +0.072561,294 +0.072795,294 +0.069543,294 +0.073329,294 +0.072326,294 +0.069506,294 +0.072625,294 +0.072249,294 +0.072306,294 +0.069604,294 +0.072639,294 +0.072928,294 +0.069496,294 +0.072464,294 +0.072455,294 +0.104865,294 +0.123952,294 +0.086093,294 +0.070427,294 +0.070317,294 +0.071085,294 +0.070397,294 +0.070592,294 +0.070531,294 +0.070553,294 +0.070144,294 +0.070019,294 +0.070232,294 +0.070128,294 +0.069989,294 +0.070661,294 +0.070622,294 +0.070228,294 +0.070136,294 +0.070735,294 +0.071010,294 +0.070106,294 +0.072252,294 +0.070903,294 +0.070173,294 +0.071147,294 +0.070767,294 +0.070937,294 +0.070518,294 +0.071030,294 +0.070945,294 +0.070058,294 +0.070628,294 +0.070684,294 +0.070469,294 +0.070892,294 +0.070566,294 +0.070380,294 +0.069266,294 +0.070158,294 +0.066924,296 +0.065989,296 +0.066792,296 +0.071059,296 +0.066570,296 +0.066726,296 +0.066726,296 +0.065890,296 +0.066737,296 +0.066712,296 +0.065697,296 +0.067572,296 +0.066782,296 +0.065651,296 +0.066919,296 +0.066653,296 +0.065605,296 +0.066935,296 +0.069359,296 +0.065816,296 +0.066748,296 +0.069562,296 +0.065701,296 +0.066538,296 +0.066545,296 +0.065713,296 +0.066771,296 +0.066588,296 +0.065797,296 +0.066558,296 +0.066710,296 +0.065667,296 +0.066725,296 +0.067926,296 +0.066058,296 +0.067089,296 +0.066650,296 +0.066134,296 +0.067048,296 +0.066233,296 +0.066122,296 +0.066731,296 +0.065608,296 +0.066676,296 +0.066550,296 +0.065618,296 +0.066656,296 +0.066657,296 +0.065731,296 +0.067849,296 +0.066753,296 +0.065648,296 +0.066515,296 +0.066662,296 +0.065703,296 +0.066702,296 +0.066753,296 +0.065804,296 +0.066577,296 +0.066754,296 +0.065707,296 +0.066704,296 +0.066666,296 +0.065873,296 +0.068169,296 +0.066783,296 +0.065783,296 +0.066619,296 +0.066828,296 +0.065808,296 +0.066684,296 +0.066990,296 +0.065875,296 +0.066807,296 +0.065919,296 +0.065617,296 +0.065887,296 +0.065956,296 +0.066141,296 +0.065855,296 +0.065801,296 +0.065621,296 +0.066005,296 +0.067027,296 +0.065780,296 +0.065900,296 +0.065676,296 +0.065972,296 +0.066076,296 +0.065811,296 +0.065789,296 +0.078423,296 +0.070391,296 +0.088537,296 +0.083934,296 +0.074624,296 +0.074875,296 +0.074878,296 +0.072253,296 +0.072570,296 +0.081909,298 +0.079450,298 +0.073185,298 +0.072747,298 +0.072461,298 +0.072164,298 +0.072826,298 +0.072595,298 +0.072652,298 +0.072581,298 +0.072825,298 +0.078690,298 +0.080412,298 +0.079329,298 +0.080308,298 +0.079911,298 +0.077494,298 +0.073448,298 +0.077835,298 +0.073131,298 +0.081008,298 +0.079288,298 +0.080261,298 +0.076548,298 +0.075494,298 +0.079484,298 +0.082832,298 +0.078936,298 +0.079092,298 +0.078865,298 +0.075786,298 +0.079212,298 +0.077011,298 +0.074678,298 +0.074451,298 +0.072372,298 +0.073247,298 +0.072424,298 +0.074625,298 +0.074462,298 +0.076295,298 +0.073360,298 +0.072790,298 +0.073887,298 +0.074409,298 +0.073295,298 +0.072906,298 +0.073051,298 +0.072361,298 +0.072727,298 +0.072425,298 +0.073496,298 +0.072491,298 +0.072717,298 +0.072248,298 +0.073342,298 +0.072399,298 +0.072332,298 +0.072550,298 +0.072592,298 +0.072652,298 +0.073236,298 +0.076327,298 +0.074498,298 +0.073960,298 +0.072665,298 +0.072811,298 +0.073851,298 +0.078967,298 +0.077097,298 +0.076110,298 +0.075197,298 +0.075843,298 +0.075148,298 +0.076042,298 +0.074501,298 +0.075122,298 +0.073719,298 +0.074472,298 +0.074512,298 +0.073973,298 +0.074826,298 +0.073913,298 +0.073266,298 +0.072438,298 +0.073866,298 +0.073519,298 +0.074649,298 +0.072506,298 +0.073378,298 +0.073498,298 +0.072656,298 +0.073167,298 +0.074034,298 +0.073469,298 +0.072580,298 +0.073423,298 +0.073679,298 +0.078404,298 +0.079920,298 diff --git a/buch/papers/multiplikation/code/meas/winograd.txt b/buch/papers/multiplikation/code/meas/winograd.txt new file mode 100644 index 0000000..3a4d88b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/winograd.txt @@ -0,0 +1,11 @@ +0.000000,2 +0.000001,4 +0.000002,8 +0.000011,16 +0.000091,32 +0.000663,64 +0.005182,128 +0.046038,256 +0.533429,512 +4.257458,1024 +130.378038,2048 diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf new file mode 100644 index 0000000..fd0a108 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/meas_1024.txt b/buch/papers/multiplikation/code/meas_1024.txt new file mode 100644 index 0000000..c5ce619 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_1024.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 1.024000000000000000e+03 +1.502037048339843750e-05 6.628036499023437500e-05 4.780292510986328125e-04 2.713203430175781250e-03 2.115225791931152344e-02 1.758832931518554688e-01 1.338865518569946289e+00 1.009106445312500000e+01 8.192077994346618652e+01 7.835870332717895508e+02 +6.675720214843750000e-06 7.200241088867187500e-05 5.540847778320312500e-04 3.144979476928710938e-03 2.545046806335449219e-02 2.083067893981933594e-01 1.659256219863891602e+00 1.319160294532775879e+01 1.046767003536224365e+02 9.679818902015686035e+02 +1.668930053710937500e-05 1.628398895263671875e-04 7.648468017578125000e-04 4.426956176757812500e-03 2.922415733337402344e-02 1.800994873046875000e-01 1.286747694015502930e+00 9.412034273147583008e+00 6.263725924491882324e+01 4.427414393424987793e+02 +2.408027648925781250e-05 8.463859558105468750e-05 4.761219024658203125e-04 2.339839935302734375e-03 1.682758331298828125e-02 1.299476623535156250e-01 1.048770904541015625e+00 8.114667415618896484e+00 6.373566389083862305e+01 6.489995403289794922e+02 +1.573562622070312500e-05 7.152557373046875000e-06 7.152557373046875000e-06 2.074241638183593750e-05 5.388259887695312500e-05 6.365776062011718750e-05 3.257751464843750000e-03 1.396179199218750000e-03 3.274917602539062500e-03 2.186250686645507812e-02 diff --git a/buch/papers/multiplikation/code/meas_128.pdf b/buch/papers/multiplikation/code/meas_128.pdf new file mode 100644 index 0000000..ed1ec63 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_128.pdf differ diff --git a/buch/papers/multiplikation/code/meas_128.txt b/buch/papers/multiplikation/code/meas_128.txt new file mode 100644 index 0000000..976bbdf --- /dev/null +++ b/buch/papers/multiplikation/code/meas_128.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 +1.978874206542968750e-05 1.134872436523437500e-04 4.298686981201171875e-04 2.815246582031250000e-03 2.616596221923828125e-02 1.767718791961669922e-01 1.293319463729858398e+00 +6.675720214843750000e-06 1.251697540283203125e-04 4.818439483642578125e-04 3.490447998046875000e-03 2.465796470642089844e-02 2.014584541320800781e-01 1.630620479583740234e+00 +2.408027648925781250e-05 2.126693725585937500e-04 1.172780990600585938e-03 4.364490509033203125e-03 3.148293495178222656e-02 2.010228633880615234e-01 1.429297924041748047e+00 +2.932548522949218750e-05 1.466274261474609375e-04 4.270076751708984375e-04 2.837419509887695312e-03 1.723575592041015625e-02 1.308519840240478516e-01 1.015527009963989258e+00 +3.337860107421875000e-05 1.096725463867187500e-05 9.536743164062500000e-06 3.600120544433593750e-05 2.837181091308593750e-05 5.912780761718750000e-05 1.981019973754882812e-03 diff --git a/buch/papers/multiplikation/code/meas_16.pdf b/buch/papers/multiplikation/code/meas_16.pdf new file mode 100644 index 0000000..c2c3834 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_16.pdf differ diff --git a/buch/papers/multiplikation/code/meas_16.txt b/buch/papers/multiplikation/code/meas_16.txt new file mode 100644 index 0000000..69f85bd --- /dev/null +++ b/buch/papers/multiplikation/code/meas_16.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 +1.549720764160156250e-05 6.914138793945312500e-05 5.259513854980468750e-04 2.841711044311523438e-03 +6.914138793945312500e-06 7.557868957519531250e-05 4.496574401855468750e-04 3.437519073486328125e-03 +1.883506774902343750e-05 1.499652862548828125e-04 8.952617645263671875e-04 4.348516464233398438e-03 +2.694129943847656250e-05 1.082420349121093750e-04 4.131793975830078125e-04 2.580165863037109375e-03 +1.621246337890625000e-05 1.120567321777343750e-05 9.298324584960937500e-06 1.239776611328125000e-05 diff --git a/buch/papers/multiplikation/code/meas_256.pdf b/buch/papers/multiplikation/code/meas_256.pdf new file mode 100644 index 0000000..5f049dc Binary files /dev/null and b/buch/papers/multiplikation/code/meas_256.pdf differ diff --git a/buch/papers/multiplikation/code/meas_256.txt b/buch/papers/multiplikation/code/meas_256.txt new file mode 100644 index 0000000..15035c6 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_256.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 +1.049041748046875000e-05 5.340576171875000000e-05 5.936622619628906250e-04 2.707719802856445312e-03 2.246093750000000000e-02 1.631326675415039062e-01 1.335460901260375977e+00 1.052024245262145996e+01 +4.768371582031250000e-06 5.531311035156250000e-05 8.208751678466796875e-04 3.099203109741210938e-03 2.490711212158203125e-02 2.070860862731933594e-01 1.739669799804687500e+00 1.384817218780517578e+01 +1.478195190429687500e-05 1.132488250732421875e-04 5.970001220703125000e-04 3.906726837158203125e-03 3.041696548461914062e-02 2.000186443328857422e-01 1.392681598663330078e+00 9.388872385025024414e+00 +1.716613769531250000e-05 6.866455078125000000e-05 5.314350128173828125e-04 2.688407897949218750e-03 1.695108413696289062e-02 1.297233104705810547e-01 1.087257385253906250e+00 8.699601650238037109e+00 +2.336502075195312500e-05 4.529953002929687500e-06 8.106231689453125000e-06 4.291534423828125000e-05 6.008148193359375000e-05 8.988380432128906250e-05 1.647472381591796875e-04 4.460811614990234375e-04 diff --git a/buch/papers/multiplikation/code/meas_32.pdf b/buch/papers/multiplikation/code/meas_32.pdf new file mode 100644 index 0000000..94c3731 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_32.pdf differ diff --git a/buch/papers/multiplikation/code/meas_32.txt b/buch/papers/multiplikation/code/meas_32.txt new file mode 100644 index 0000000..afdb6d5 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_32.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 +1.215934753417968750e-05 5.459785461425781250e-05 3.700256347656250000e-04 3.249406814575195312e-03 1.996850967407226562e-02 +4.529953002929687500e-06 5.650520324707031250e-05 4.577636718750000000e-04 4.029273986816406250e-03 2.444481849670410156e-02 +1.311302185058593750e-05 1.165866851806640625e-04 6.275177001953125000e-04 4.323244094848632812e-03 2.624726295471191406e-02 +1.835823059082031250e-05 6.890296936035156250e-05 3.914833068847656250e-04 2.423048019409179688e-03 1.761770248413085938e-02 +1.263618469238281250e-05 5.006790161132812500e-06 5.960464477539062500e-06 1.144409179687500000e-05 3.600120544433593750e-05 diff --git a/buch/papers/multiplikation/code/meas_512.pdf b/buch/papers/multiplikation/code/meas_512.pdf new file mode 100644 index 0000000..4d8f04b Binary files /dev/null and b/buch/papers/multiplikation/code/meas_512.pdf differ diff --git a/buch/papers/multiplikation/code/meas_512.txt b/buch/papers/multiplikation/code/meas_512.txt new file mode 100644 index 0000000..1b2089d --- /dev/null +++ b/buch/papers/multiplikation/code/meas_512.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 +1.358985900878906250e-05 5.817413330078125000e-05 4.582405090332031250e-04 3.082036972045898438e-03 2.020335197448730469e-02 1.636352539062500000e-01 1.280331134796142578e+00 1.093638324737548828e+01 8.666778349876403809e+01 +6.198883056640625000e-06 6.270408630371093750e-05 4.820823669433593750e-04 3.279924392700195312e-03 2.462601661682128906e-02 2.034928798675537109e-01 1.630282878875732422e+00 1.372955965995788574e+01 1.104150602817535400e+02 +1.621246337890625000e-05 1.292228698730468750e-04 6.661415100097656250e-04 4.615545272827148438e-03 2.836179733276367188e-02 1.843333244323730469e-01 1.310264825820922852e+00 9.937873125076293945e+00 6.667592120170593262e+01 +2.217292785644531250e-05 7.486343383789062500e-05 4.060268402099609375e-04 2.455949783325195312e-03 1.685857772827148438e-02 1.299629211425781250e-01 1.173750638961791992e+00 8.648802757263183594e+00 6.876212453842163086e+01 +2.431869506835937500e-05 5.006790161132812500e-06 6.914138793945312500e-06 8.106231689453125000e-06 2.717971801757812500e-05 6.461143493652343750e-05 1.480579376220703125e-04 5.280971527099609375e-04 3.390312194824218750e-03 diff --git a/buch/papers/multiplikation/code/meas_64.pdf b/buch/papers/multiplikation/code/meas_64.pdf new file mode 100644 index 0000000..3a90949 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_64.pdf differ diff --git a/buch/papers/multiplikation/code/meas_64.txt b/buch/papers/multiplikation/code/meas_64.txt new file mode 100644 index 0000000..ae6ff9b --- /dev/null +++ b/buch/papers/multiplikation/code/meas_64.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 +1.645088195800781250e-05 7.295608520507812500e-05 3.807544708251953125e-04 2.672195434570312500e-03 2.010774612426757812e-02 1.662156581878662109e-01 +7.390975952148437500e-06 7.843971252441406250e-05 4.265308380126953125e-04 3.107070922851562500e-03 2.457642555236816406e-02 2.122807502746582031e-01 +1.931190490722656250e-05 1.568794250488281250e-04 7.593631744384765625e-04 3.937005996704101562e-03 3.596329689025878906e-02 2.131938934326171875e-01 +2.622604370117187500e-05 9.226799011230468750e-05 3.504753112792968750e-04 2.469539642333984375e-03 1.652932167053222656e-02 1.281068325042724609e-01 +1.788139343261718750e-05 7.152557373046875000e-06 6.914138793945312500e-06 1.120567321777343750e-05 2.884864807128906250e-05 6.914138793945312500e-05 diff --git a/buch/papers/multiplikation/code/meas_8.pdf b/buch/papers/multiplikation/code/meas_8.pdf new file mode 100644 index 0000000..16d177d Binary files /dev/null and b/buch/papers/multiplikation/code/meas_8.pdf differ diff --git a/buch/papers/multiplikation/code/meas_8.txt b/buch/papers/multiplikation/code/meas_8.txt new file mode 100644 index 0000000..6cf6515 --- /dev/null +++ b/buch/papers/multiplikation/code/meas_8.txt @@ -0,0 +1,6 @@ +2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 +1.144409179687500000e-05 5.412101745605468750e-05 3.845691680908203125e-04 +4.768371582031250000e-06 5.698204040527343750e-05 5.209445953369140625e-04 +1.382827758789062500e-05 1.180171966552734375e-04 6.978511810302734375e-04 +1.859664916992187500e-05 7.033348083496093750e-05 3.886222839355468750e-04 +1.525878906250000000e-05 4.529953002929687500e-06 7.390975952148437500e-06 diff --git a/buch/papers/multiplikation/code/test.tex b/buch/papers/multiplikation/code/test.tex new file mode 100644 index 0000000..40ea239 --- /dev/null +++ b/buch/papers/multiplikation/code/test.tex @@ -0,0 +1,92 @@ +% This file was created by tikzplotlib v0.9.8. +\begin{tikzpicture} + +\definecolor{color0}{rgb}{0.886274509803922,0.290196078431373,0.2} +\definecolor{color1}{rgb}{0.203921568627451,0.541176470588235,0.741176470588235} +\definecolor{color2}{rgb}{0.596078431372549,0.556862745098039,0.835294117647059} +\definecolor{color3}{rgb}{0.984313725490196,0.756862745098039,0.368627450980392} + +\begin{axis}[ +axis background/.style={fill=white!89.8039215686275!black}, +axis line style={white}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + at={(0.03,0.97)}, + anchor=north west, + draw=white!80!black, + fill=white!89.8039215686275!black +}, +tick align=outside, +tick pos=left, +x grid style={white}, +xlabel={n}, +xmajorgrids, +xmin=-4.3, xmax=134.3, +xtick style={color=white!33.3333333333333!black}, +y grid style={white}, +ylabel={time (s)}, +ymajorgrids, +ymin=-0.0834965705871582, ymax=1.75356960296631, +ytick style={color=white!33.3333333333333!black} +] +\addplot [line width=2pt, color0] +table {% +2 1.57356262207031e-05 +4 5.96046447753906e-05 +8 0.000428915023803711 +16 0.00276041030883789 +32 0.0217020511627197 +64 0.160412073135376 +128 1.3419406414032 +}; +\addlegendentry{Standard MM} +\addplot [line width=2pt, color1] +table {% +2 6.43730163574219e-06 +4 6.69956207275391e-05 +8 0.00048065185546875 +16 0.00336766242980957 +32 0.0257236957550049 +64 0.231612205505371 +128 1.67006659507751 +}; +\addlegendentry{Divide and conquer MM} +\addplot [line width=2pt, color2] +table {% +2 2.90870666503906e-05 +4 0.000133275985717773 +8 0.000703096389770508 +16 0.00453472137451172 +32 0.0282893180847168 +64 0.181003332138062 +128 1.40816903114319 +}; +\addlegendentry{Strassen MM} +\addplot [line width=2pt, white!46.6666666666667!black] +table {% +2 2.19345092773438e-05 +4 9.01222229003906e-05 +8 0.000406503677368164 +16 0.00258469581604004 +32 0.0171687602996826 +64 0.126588344573975 +128 1.02698183059692 +}; +\addlegendentry{Winograd MM} +\addplot [line width=2pt, color3] +table {% +2 1.45435333251953e-05 +4 1.1444091796875e-05 +8 7.39097595214844e-06 +16 1.28746032714844e-05 +32 2.83718109130859e-05 +64 0.000111103057861328 +128 0.000159025192260742 +}; +\addlegendentry{np MM} +\end{axis} + +\end{tikzpicture} diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex new file mode 100755 index 0000000..bc4bfcf --- /dev/null +++ b/buch/papers/multiplikation/einlteung.tex @@ -0,0 +1,52 @@ +% +% einleitung.tex -- Beispiel-File für die Einleitung +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Einleitung \label{multiplikation:section:einleitung}} +\rhead{Einleitung} + +Die Multiplikation zweier Matrizen ist eine wichtige Operation die in verschiedensten Teilen der Mathematik Anwendung findet. +Die Beschreibung der Multiplikation aus der Definition 2.10 (\textcolor{blue} {Kein Hyperlink zu einer Definition?)}: + +Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine +$n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt +eine $n\times l$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{n\times l}(\Bbbk)$ mit den +Koeffizienten +\begin{equation} +c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. +\label{multiplikation:eq:MM} +\end{equation} +Grafisch kann die Matrizenmultiplikation $AB=C$ wie in \ref{multiplikation:fig:mm_viz} visualisiert werden. +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/mm_visualisation} + \caption{Matrizen Multiplikation} + \label{multiplikation:fig:mm_viz} +\end{figure} +Im Fall einer Matrizengr\"osse von $2\times 2$ +\begin{equation} + \begin{bmatrix} +A_{11} & A_{12}\\ +A_{21} & A_{22} +\end{bmatrix} +\begin{bmatrix} +B_{11} & B_{12}\\ +B_{21} & B_{22} +\end{bmatrix} += +\begin{bmatrix} +C_{11} & C_{12}\\ +C_{21} & C_{22} +\end{bmatrix} +\end{equation} +kann die Gleichung der einzelnen Terme +\begin{equation} \label{multiplikation:eq:MM_exp} +\begin{split} +C_{11} &= A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ +C_{12} &= A_{11} \cdot B_{12} + A_{12} \cdot B_{22}\\ +C_{21} &= A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ +C_{22} &= A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +\end{split} +\end{equation} +explizit geschrieben werden. diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf new file mode 100644 index 0000000..dfa2ba4 Binary files /dev/null and b/buch/papers/multiplikation/images/bigo.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex new file mode 100644 index 0000000..e3293e4 --- /dev/null +++ b/buch/papers/multiplikation/images/bigo.tex @@ -0,0 +1,107 @@ +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 500, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +\addplot [ + domain= 1:20, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +\addplot [ + domain= 1:20, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:20, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:10, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:10, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:20, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} + +\addplot [ + domain= 1:20, + samples=100, + color=gray, +] +{x*log2(x)}; +\addlegendentry{$\mathcal{O}(n \log n)$} +\end{axis} +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/images/mm_visualisation.pdf b/buch/papers/multiplikation/images/mm_visualisation.pdf new file mode 100644 index 0000000..9309df1 Binary files /dev/null and b/buch/papers/multiplikation/images/mm_visualisation.pdf differ diff --git a/buch/papers/multiplikation/images/mm_visualisation.tex b/buch/papers/multiplikation/images/mm_visualisation.tex new file mode 100644 index 0000000..6e8f789 --- /dev/null +++ b/buch/papers/multiplikation/images/mm_visualisation.tex @@ -0,0 +1,45 @@ + + \begin{tikzpicture}[ampersand replacement=\&] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (0,0) + { + A_{1,1} \& \cdots \& A_{1,k} \& \cdots \& A_{1,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{i,1} \& \cdots \& A_{i,k} \& \cdots \& A_{i,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{m,1} \& \cdots \& A_{m,k} \& \cdots \& A_{m,n} \\ + }; + + \node [right=0.1 of A] (mul) {$\cdot$}; + + + \matrix (B)[right=0.1 of mul, matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + B_{1,1} \& \cdots \& B_{1,j} \& \cdots \& B_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{k,1} \& \cdots \& B_{k,j} \& \cdots \& B_{k,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{n,1} \& \cdots \& B_{n,j} \& \cdots \& B_{n,p} \\ + }; + + \node [right=0.1 of B] (eq) {$=$}; + + \matrix (C)[right=0.1 of eq, matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + C_{1,1} \& \cdots \& C_{1,j} \& \cdots \& C_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{i,1} \& \cdots \& C_{i,j} \& \cdots \& C_{i,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{m,1} \& \cdots \& C_{m,j} \& \cdots \& C_{m,p} \\ + }; + + + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=green, fit=(A-3-1)(A-3-5)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=blue, fit=(B-1-3)(B-5-3)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=red, fit=(C-3-3)] {}; + + + \end{tikzpicture} + +\end{document} + diff --git a/buch/papers/multiplikation/images/strassen.pdf b/buch/papers/multiplikation/images/strassen.pdf new file mode 100644 index 0000000..9899dcb Binary files /dev/null and b/buch/papers/multiplikation/images/strassen.pdf differ diff --git a/buch/papers/multiplikation/images/strassen.tex b/buch/papers/multiplikation/images/strassen.tex new file mode 100644 index 0000000..797772b --- /dev/null +++ b/buch/papers/multiplikation/images/strassen.tex @@ -0,0 +1,140 @@ +\documentclass[border=10pt]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture}[ampersand replacement=\&] + +\foreach \i in {1,...,4} +{ + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } +} + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; +} + + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex new file mode 100755 index 0000000..83be814 --- /dev/null +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -0,0 +1,309 @@ +% +% teil2.tex -- Beispiel-File für teil2 +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% + +\section{L\"osungsmethoden} +\rhead{L\"osungsmethoden} + +In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Libraries zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. + +\subsection{Standard Algorithmus} + +Der Standard Methode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen werden. +Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. +Die \texttt{For i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{For j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{For k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. + +\begin{algorithm}\caption{Matrix Multiplication} + \label{multiplikation:alg:smm} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + \State $\textbf{C} \gets zeros(m,p)$ + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O}(n^3)$ + +\subsubsection{Divide and Conquer Methode} + +F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze zu markant besseren Laufzeiten. +Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O}(n^2)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. + +Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. +Zur vereinfachten Veranschaulichung kann die Situation, mit $\mathbf{A}$ und $\mathbf{B}$ der gr\"osse $2^n \times 2^n$ verwendet werden. +Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der gr\"osse $2^{n-1} \times 2^{n-1}$ +\begin{equation} +\mathbf{A}\mathbf{B}= +\begin{bmatrix} +\mathbf{A}_{11} & \mathbf{A}_{12}\\ +\mathbf{A}_{21} & \mathbf{A}_{22} +\end{bmatrix} +\begin{bmatrix} +\mathbf{B}_{11} & \mathbf{B}_{12}\\ +\mathbf{B}_{21} & \mathbf{B}_{22} +\end{bmatrix} += +\begin{bmatrix} +\mathbf{C}_{11} & \mathbf{C}_{12}\\ +\mathbf{C}_{21} & \mathbf{C}_{22} +\end{bmatrix} +\end{equation} +aufgeteilt. +Die Berechnung +\begin{equation} +\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj} +\label{multiplikation:eq:MM_block} +\end{equation} +ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, wobei hier f\"ur die Multiplikation die Matrizenmultiplikation verwendet wird. + +Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, +Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. +Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. +\begin{algorithm}\caption{Divide and Conquer Matrix Multiplication} + \setlength{\lineskip}{7pt} + \label{multiplikation:alg:devide_mm} + \begin{algorithmic} + \Function{MM}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros(n, n)$ + \State $C[0, 0] \gets A[0][0]\cdot B[0][0]+A[0][1]\cdot B[1][0]$ + \State $C[0, 1] \gets A[0][0]\cdot B[0][1]+A[0][1]\cdot B[1][1]$ + \State $C[1, 0] \gets A[1][0]\cdot B[0][0]+A[1][1]\cdot B[1][0]$ + \State $C[1, 1] \gets A[1][0]\cdot B[0][1]+A[1][1]\cdot B[1][1]$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $\mathbf{C11} \gets \text{MM}(\mathbf{A11}, \mathbf{B11},n) + \text{MM}(\mathbf{A12}, \mathbf{B21},n)$ + \State $\mathbf{C12} \gets \text{MM}(\mathbf{A11},\mathbf{B12},n) + \text{MM}(\mathbf{A12}, \mathbf{B22},n)$ + \State $\mathbf{C21} \gets \text{MM}(\mathbf{A21}, \mathbf{B11},n) + \text{MM}(\mathbf{A22}, \mathbf{B21},n)$ + \State $\mathbf{C22} \gets \text{MM}(\mathbf{A21}, \mathbf{B12},n) + \text{MM}(\mathbf{A22}, \mathbf{B22},n)$ + \State $ C \gets vstack(hstack(C11, C12), hstack(C21, C22))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} berechnet werden. +Ohne auf diesen vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe der Funktion die Laufzeit. +In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt +\begin{equation} \label{multiplikation:eq:laufzeitdac} + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}(n^{3}) +\end{equation} +zu einer kubischen Laufzeit. +Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. +In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung gef\"uhrt. + + +\subsection{Strassen's Algorithmus} + +Strassen's Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen. +Die Grundlegenden Terme +\begin{equation} \label{multiplikation:eq:strassen} +\begin{split} +\text{\textbf{P}} &= (\mathbf{A}_{11} + \mathbf{A}_{22}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{22}) \\ +\text{\textbf{Q}} &= (\mathbf{A}_{21} + \mathbf{A}_{22}) \cdot \mathbf{B}_{11} \\ +\text{\textbf{R}} &= \mathbf{A}_{11} \cdot (\mathbf{B}_{12}-\mathbf{B}_{22}) \\ +\text{\textbf{S}} &= \mathbf{A}_{22} \cdot (-\mathbf{B}_{11}+\mathbf{B}_{21}) \\ +\text{\textbf{T}} &= (\mathbf{A}_{11} + \mathbf{A}_{12}) \cdot \mathbf{B}_{22} \\ +\text{\textbf{U}} &= (-\mathbf{A}_{11} + \mathbf{A}_{21}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{12}) \\ +\text{\textbf{V}} &= (\mathbf{A}_{12} - \mathbf{A}_{22}) \cdot (\mathbf{B}_{21} + \mathbf{B}_{22}) +\end{split} +\end{equation} +aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Matrix $\mathbf{C}$ +\begin{equation} \label{multiplikation:eq:strassen2} +\begin{split} +\mathbf{C}_{11} &= \text{\textbf{P}} + \text{\textbf{S}} - \text{\textbf{T}} + \text{\textbf{V}} \\ +\mathbf{C}_{21} &= \text{\textbf{R}} + \text{\textbf{T}} \\ +\mathbf{C}_{12} &= \text{\textbf{Q}} + \text{\textbf{S}}\\ +\mathbf{C}_{22} &= \text{\textbf{P}} + \text{\textbf{R}} - \text{\textbf{Q}} + \text{\textbf{U}} +\end{split} +\end{equation} +gebraucht. +\begin{algorithm}\caption{Strassen Matrix Multiplication} + \label{multiplikation:alg:strassen} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{strassen}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $P \gets (A[0][0]+A[1][1])\cdot( B[0][0]+B[1][1])$ + \State $Q \gets (A[1][0]+A[1][1])\cdot B[0][0]$ + \State $R \gets A[0][0]\cdot (B[0][1]-B[1][1])$ + \State $S \gets A[1][1]\cdot (B[1][0]-B[0][0])$ + \State $T \gets (A[0][0]+A[0][1])\cdot B[1][1]$ + \State $U \gets (A[1][0]-A[0][0])\cdot (B[0][0]+B[0][1])$ + \State $V \gets (A[0][1]-A[1][1])\cdot (B[1][0]+B[1][1])$ + \State $C[0][0] \gets P+S-T+V$ + \State $C[0][1] \gets R+T$ + \State $C[1][0] \gets Q+S$ + \State $C[1][1] \gets P+R-Q+U$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $ \mathbf{P} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A22}),(\mathbf{B11}+\mathbf{B22}), m)$ + \State $ \mathbf{Q} \gets \text{strassen}((\mathbf{A21}+ \mathbf{A22}), \mathbf{B11},m)$ + \State $ \mathbf{R} \gets \text{strassen}( \mathbf{A11},(\mathbf{B12}- \mathbf{B22}),m)$ + \State $ \mathbf{S} \gets \text{strassen}( \mathbf{A22},(\mathbf{B21}- \mathbf{B11}),m)$ + \State $ \mathbf{T} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A12}), \mathbf{B22},m)$ + \State $ \mathbf{U} \gets \text{strassen}((\mathbf{A21}- \mathbf{A11}),(\mathbf{B11}+\mathbf{B12}),m)$ + \State $ \mathbf{V} \gets \text{strassen}((\mathbf{A12}- \mathbf{A22}),(\mathbf{B21}+\mathbf{B22}),m)$ + + + + \State $\mathbf{C11} \gets \mathbf{P+S-T+V}$ + \State $\mathbf{C12} \gets \mathbf{R+T}$ + \State $\mathbf{C21} \gets \mathbf{Q+S}$ + \State $\mathbf{C22} \gets \mathbf{P+R-Q+U}$ + \State $ C \gets vstack(hstack(C11, C12), hstack(C21, C22))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} +Strassens's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. +\begin{figure} + \center + \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} + \caption{Strassen's Algorithmus} + \label{multiplikation:fig:strassen} +\end{figure} + +Die Funktion wird sieben mal rekursiv aufgerufen. +Dies f\"uhrt zu einer Laufzeit von +\begin{equation} \label{multiplikation:eq:laufzeitstrassen} +\mathcal{T}(n) = +\begin{cases} +1 & \text{if } n \leq 2\\ +7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 +\end{cases} = \mathcal{O}(n^{\log_2 7}) = \mathcal{O}(n^{2.8074}) +\end{equation} +und ist somit schneller als die Standard Methode. + +\subsection{Winograd's Algorithmus} + +Ein weiterer Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. +Er zeigte einen neuen Algorithmus f\"ur das +\begin{equation} + \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i +\end{equation} +Skalarprodukt. +F\"ur jeden Vektor berechne +\begin{equation} + \xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} +\end{equation} +und +\begin{equation} + \eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j}. +\end{equation} +Das Skalarprodukt ist nun geben mit +\begin{equation} + \langle x,y \rangle = + \begin{cases} + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd}. + \end{cases} +\end{equation} + +Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. +Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. +Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. +Dies f\"uhrt zu +\begin{equation} + (m+p) \left \lfloor \frac{n}{2} \right \rfloor + mp \left \lfloor \frac{n+1}{2} \right \rfloor = \frac{mn}{2} + \frac{pn}{2} + \frac{mpn}{2} + \frac{mp}{2} +\end{equation} +Multiplikationen. +Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. +Was im Vergleich zu den $mpn$ Multiplikation der Standard Methode nur die H\"alfte ist. +Die Implementation kann im Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. + +\begin{algorithm}\caption{Winograd Matrix Multiplication} + \setlength{\lineskip}{7pt} + \label{multiplikation:alg:winograd} + \begin{algorithmic} + \Function{Winograd}{$\textbf{A}, \textbf{B}, n$} + \State $ m \gets rows(\mathbf{A})$ + \State $ n \gets columns(\mathbf{A}) == rows(\mathbf{B})$ + \State $ p \gets columns(\mathbf{B})$ + \State $ \mathbf{\xi} \gets zeros(m)$ + \State $ \mathbf{\eta} \gets zeros(p)$ + + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $\xi[i] \gets \xi[i]+A[i,2 j]A[i,2 j+1]$ + \EndFor + \EndFor + + \For{$i = 0,1,2 \dots,p-1$} + \For{$j = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $\eta[i] \gets \eta[i]+B[2 j,i]B[2 j+1,i]$ + \EndFor + \EndFor + + \If{$n \% 2 == 0$} + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $ab \gets 0$ + \For{$k = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $ab \gets ab + (A[i,2k]+B[2k+1,j])(A[i,2k+1]+B[2k,j])$ + \EndFor + \State $C[i,j] \gets ab-\eta[j]-\xi[i]$ + \EndFor + \EndFor + \Else + \For{$i = 0,1,2 \dots,n-1$} + \For{$j = 0,1,2 \dots,n-1$} + \State $ab \gets 0$ + \For{$k = 0,1,2 \dots,\lfloor n/2 \rfloor-1$} + \State $ab \gets ab + (A[i,2k]+B[2k+1,j])(A[i,2k+1]+B[2k,j])$ + \EndFor + \State $C[i,j] \gets ab-\eta[j]-\xi[i]+A[i,-1]B[-1,j]$ + \EndFor + \EndFor + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +\subsection{Weitere Algorithmen} + +\textcolor{red}{TODO: BLAS} + +\section{Implementation} +\rhead{Implementation} +\textcolor{red}{TODO: messresultate} + +\section{Fazit} +\rhead{Fazit} diff --git a/buch/papers/multiplikation/main.tex b/buch/papers/multiplikation/main.tex old mode 100644 new mode 100755 index 42f2768..8d0a8df --- a/buch/papers/multiplikation/main.tex +++ b/buch/papers/multiplikation/main.tex @@ -1,36 +1,18 @@ +% !TEX root = ../../buch.tex % % main.tex -- Paper zum Thema % -% (c) 2020 Hochschule Rapperswil +% (c) 2021 Hochschule Rapperswil % -\chapter{Thema\label{chapter:multiplikation}} -\lhead{Thema} +\chapter{Schnelle Matrizen Multiplikation\label{chapter:multiplikation}} +\lhead{FMM} \begin{refsection} -\chapterauthor{Hans Muster} +\chapterauthor{Michael Schmid} -Ein paar Hinweise für die korrekte Formatierung des Textes -\begin{itemize} -\item -Absätze werden gebildet, indem man eine Leerzeile einfügt. -Die Verwendung von \verb+\\+ ist nur in Tabellen und Arrays gestattet. -\item -Die explizite Platzierung von Bildern ist nicht erlaubt, entsprechende -Optionen werden gelöscht. -Verwenden Sie Labels und Verweise, um auf Bilder hinzuweisen. -\item -Beginnen Sie jeden Satz auf einer neuen Zeile. -Damit ermöglichen Sie dem Versionsverwaltungssysteme, Änderungen -in verschiedenen Sätzen von verschiedenen Autoren ohne Konflikt -anzuwenden. -\item -Bilden Sie auch für Formeln kurze Zeilen, einerseits der besseren -Übersicht wegen, aber auch um GIT die Arbeit zu erleichtern. -\end{itemize} -\input{papers/multiplikation/teil0.tex} -\input{papers/multiplikation/teil1.tex} -\input{papers/multiplikation/teil2.tex} -\input{papers/multiplikation/teil3.tex} +\input{papers/multiplikation/einlteung.tex} +\input{papers/multiplikation/problemstellung.tex} +\input{papers/multiplikation/loesungsmethoden.tex} \printbibliography[heading=subbibliography] \end{refsection} diff --git a/buch/papers/multiplikation/packages.tex b/buch/papers/multiplikation/packages.tex old mode 100644 new mode 100755 diff --git a/buch/papers/multiplikation/papers/Strassen_GPU.pdf b/buch/papers/multiplikation/papers/Strassen_GPU.pdf new file mode 100755 index 0000000..4ce7625 Binary files /dev/null and b/buch/papers/multiplikation/papers/Strassen_GPU.pdf differ diff --git a/buch/papers/multiplikation/papers/Strassen_original_1969.pdf b/buch/papers/multiplikation/papers/Strassen_original_1969.pdf new file mode 100755 index 0000000..b647fc0 Binary files /dev/null and b/buch/papers/multiplikation/papers/Strassen_original_1969.pdf differ diff --git a/buch/papers/multiplikation/papers/assay_fast_MM.pdf b/buch/papers/multiplikation/papers/assay_fast_MM.pdf new file mode 100755 index 0000000..3cd6b63 Binary files /dev/null and b/buch/papers/multiplikation/papers/assay_fast_MM.pdf differ diff --git a/buch/papers/multiplikation/papers/strassen_video.txt b/buch/papers/multiplikation/papers/strassen_video.txt new file mode 100755 index 0000000..f84122c --- /dev/null +++ b/buch/papers/multiplikation/papers/strassen_video.txt @@ -0,0 +1 @@ +https://www.youtube.com/watch?v=0oJyNmEbS4w diff --git a/buch/papers/multiplikation/papers/winograd_original.pdf b/buch/papers/multiplikation/papers/winograd_original.pdf new file mode 100755 index 0000000..a7aba36 Binary files /dev/null and b/buch/papers/multiplikation/papers/winograd_original.pdf differ diff --git a/buch/papers/multiplikation/presentation/common.tex b/buch/papers/multiplikation/presentation/common.tex new file mode 100644 index 0000000..200d244 --- /dev/null +++ b/buch/papers/multiplikation/presentation/common.tex @@ -0,0 +1,79 @@ +% +% common.tex -- gemeinsame Definitionen +% +% (c) 2021 Michael Schmid, OST Campus Rapperswil +% +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{epic} +\usepackage{color} +\usepackage{array} +\usepackage{algorithm} +\usepackage{ifthen} +\usepackage{adjustbox} +\usepackage[noend]{algpseudocode} +\usepackage{neuralnetwork} +\usepackage{amsmath} +\usepackage{lmodern} +\usepackage{tikz} +\usetikzlibrary{decorations.text} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usepackage{pgfplots} +\usepackage{listings} +\usepackage{svg} + +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\definecolor{ost}{rgb}{164,0,136} + +\lstdefinestyle{mystyle}{ + backgroundcolor=\color{backcolour}, + commentstyle=\color{codegreen}, + keywordstyle=\color{magenta}, + numberstyle=\tiny\color{codegray}, + stringstyle=\color{codepurple}, + basicstyle=\footnotesize, + breakatwhitespace=false, + breaklines=true, + captionpos=b, + keepspaces=true, + numbers=left, + numbersep=2pt, + showspaces=false, + showstringspaces=false, + showtabs=false, + tabsize=2 +} + +\usetikzlibrary{fit} +\tikzset{% + highlight/.style={rectangle,rounded corners,fill=red!15,draw,fill opacity=0.5,inner sep=0pt} +} +\newcommand{\tikzmark}[2]{\tikz[overlay,remember picture,baseline=(#1.base)] \node (#1) {#2};} +% +\newcommand{\Highlight}[1][submatrix]{% + \tikz[overlay,remember picture]{ + \node[highlight,fit=(left.north west) (right.south east)] (#1) {};} +} + + +\lstset{style=mystyle} +\lstdefinestyle{mystyle}{ + morekeywords={cwt,contourf,datetick} +} + + +\usetikzlibrary{shapes.geometric} +\mode{% +\usetheme[]{Frankfurt}} +\beamertemplatenavigationsymbolsempty +\title[]{Fast Matrix Multiplication} +\author[]{Michael Schmid} +\usecolortheme[named=ost]{structure} + +\date[]{31.05.2021} +\newboolean{presentation} diff --git a/buch/papers/multiplikation/presentation/presentation.nav b/buch/papers/multiplikation/presentation/presentation.nav new file mode 100644 index 0000000..2a01568 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.nav @@ -0,0 +1,59 @@ +\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}} +\headcommand {\beamer@framepages {1}{1}} +\headcommand {\beamer@sectionpages {1}{1}} +\headcommand {\beamer@subsectionpages {1}{1}} +\headcommand {\sectionentry {1}{Big $\mathcal {O}$}{2}{Big $\mathcal {O}$}{0}} +\headcommand {\slideentry {1}{0}{1}{2/4}{}{0}} +\headcommand {\beamer@framepages {2}{4}} +\headcommand {\slideentry {1}{0}{2}{5/6}{}{0}} +\headcommand {\beamer@framepages {5}{6}} +\headcommand {\slideentry {1}{0}{3}{7/8}{}{0}} +\headcommand {\beamer@framepages {7}{8}} +\headcommand {\slideentry {1}{0}{4}{9/10}{}{0}} +\headcommand {\beamer@framepages {9}{10}} +\headcommand {\slideentry {1}{0}{5}{11/12}{}{0}} +\headcommand {\beamer@framepages {11}{12}} +\headcommand {\slideentry {1}{0}{6}{13/13}{}{0}} +\headcommand {\beamer@framepages {13}{13}} +\headcommand {\slideentry {1}{0}{7}{14/14}{}{0}} +\headcommand {\beamer@framepages {14}{14}} +\headcommand {\beamer@sectionpages {2}{14}} +\headcommand {\beamer@subsectionpages {2}{14}} +\headcommand {\sectionentry {2}{Strassen's Algorithm}{15}{Strassen's Algorithm}{0}} +\headcommand {\slideentry {2}{0}{1}{15/15}{}{0}} +\headcommand {\beamer@framepages {15}{15}} +\headcommand {\slideentry {2}{0}{2}{16/18}{}{0}} +\headcommand {\beamer@framepages {16}{18}} +\headcommand {\slideentry {2}{0}{3}{19/19}{}{0}} +\headcommand {\beamer@framepages {19}{19}} +\headcommand {\slideentry {2}{0}{4}{20/20}{}{0}} +\headcommand {\beamer@framepages {20}{20}} +\headcommand {\slideentry {2}{0}{5}{21/23}{}{0}} +\headcommand {\beamer@framepages {21}{23}} +\headcommand {\slideentry {2}{0}{6}{24/24}{}{0}} +\headcommand {\beamer@framepages {24}{24}} +\headcommand {\slideentry {2}{0}{7}{25/25}{}{0}} +\headcommand {\beamer@framepages {25}{25}} +\headcommand {\slideentry {2}{0}{8}{26/26}{}{0}} +\headcommand {\beamer@framepages {26}{26}} +\headcommand {\slideentry {2}{0}{9}{27/29}{}{0}} +\headcommand {\beamer@framepages {27}{29}} +\headcommand {\slideentry {2}{0}{10}{30/32}{}{0}} +\headcommand {\beamer@framepages {30}{32}} +\headcommand {\beamer@sectionpages {15}{32}} +\headcommand {\beamer@subsectionpages {15}{32}} +\headcommand {\sectionentry {3}{Measurements}{33}{Measurements}{0}} +\headcommand {\slideentry {3}{0}{1}{33/40}{}{0}} +\headcommand {\beamer@framepages {33}{40}} +\headcommand {\slideentry {3}{0}{2}{41/49}{}{0}} +\headcommand {\beamer@framepages {41}{49}} +\headcommand {\beamer@sectionpages {33}{49}} +\headcommand {\beamer@subsectionpages {33}{49}} +\headcommand {\sectionentry {4}{How To Matrix Multiply}{50}{How To Matrix Multiply}{0}} +\headcommand {\slideentry {4}{0}{1}{50/50}{}{0}} +\headcommand {\beamer@framepages {50}{50}} +\headcommand {\beamer@partpages {1}{50}} +\headcommand {\beamer@subsectionpages {50}{50}} +\headcommand {\beamer@sectionpages {50}{50}} +\headcommand {\beamer@documentpages {50}} +\headcommand {\gdef \inserttotalframenumber {21}} diff --git a/buch/papers/multiplikation/presentation/presentation.pdf b/buch/papers/multiplikation/presentation/presentation.pdf new file mode 100644 index 0000000..842e68c Binary files /dev/null and b/buch/papers/multiplikation/presentation/presentation.pdf differ diff --git a/buch/papers/multiplikation/presentation/presentation.snm b/buch/papers/multiplikation/presentation/presentation.snm new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/multiplikation/presentation/presentation.tex b/buch/papers/multiplikation/presentation/presentation.tex new file mode 100644 index 0000000..2a4af45 --- /dev/null +++ b/buch/papers/multiplikation/presentation/presentation.tex @@ -0,0 +1,12 @@ +% +% MathSem-yyy-xxx.tex -- Präsentation +% +% (c) 2021 Michael Schmid, OST campus Rapperswil +% + +\documentclass[aspectratio=169]{beamer} +\input{common.tex} +%\setboolean{presentation}{true} +\begin{document} +\input{slides/slides.tex} +\end{document} diff --git a/buch/papers/multiplikation/presentation/slides/algo.tex b/buch/papers/multiplikation/presentation/slides/algo.tex new file mode 100644 index 0000000..0c3d130 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/algo.tex @@ -0,0 +1,111 @@ +\begin{frame} + \frametitle{Algorithm} + \begin{columns} + \begin{column}{0.6\textwidth} + \begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} + \end{algorithm} +\end{column} +\begin{column}{0.4\textwidth} + \scalebox{0.6}{\parbox{\linewidth}{ + + \begin{tikzpicture}[ampersand replacement=\&,remember picture,overlay] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (2,-2.8) + { + A_{1,1} \& \cdots \& A_{1,k} \& \cdots \& A_{1,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{i,1} \& \cdots \& A_{i,k} \& \cdots \& A_{i,n} \\ + \vdots \& \& \vdots \& \& \vdots \\ + A_{m,1} \& \cdots \& A_{m,k} \& \cdots \& A_{m,n} \\ + }; + + \matrix (B)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (7.5,1.2) + { + B_{1,1} \& \cdots \& B_{1,j} \& \cdots \& B_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{k,1} \& \cdots \& B_{k,j} \& \cdots \& B_{k,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + B_{n,1} \& \cdots \& B_{n,j} \& \cdots \& B_{n,p} \\ + }; + + \matrix (C)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (7.5,-2.8) + { + C_{1,1} \& \cdots \& C_{1,j} \& \cdots \& C_{1,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{i,1} \& \cdots \& C_{i,j} \& \cdots \& C_{i,p} \\ + \vdots \& \& \vdots \& \& \vdots \\ + C_{m,1} \& \cdots \& C_{m,j} \& \cdots \& C_{m,p} \\ + }; + + + \begin{scope}[on background layer] + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=green, fit=(A-3-1)(A-3-5)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=blue, fit=(B-1-3)(B-5-3)] {}; + \node[opacity=0.5, rounded corners=2pt, inner sep=-1pt, fill=red, fit=(C-3-3)] {}; + + \end{scope} + + + + + \end{tikzpicture} + }} + \end{column} +\end{columns} +\end{frame} + + +\begin{frame} + \frametitle{Algorithm} + +\begin{columns} + \begin{column}{0.6\textwidth} +\begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}$} + \State $sum \gets 0$ + \State $n \gets columns(\textbf{A}) == rows(\textbf{B})$ + \State $m \gets rows(\textbf{A})$ + \State $p \gets columns(\textbf{B})$ + + \For{$i = 0,1,2 \dots,m-1$} + \For{$j = 0,1,2 \dots,p-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \State \textbf{return} $\textbf{C}$ + \EndFunction + \end{algorithmic} +\end{algorithm} +\end{column} +\begin{column}{0.4\textwidth} +\Huge$\mathcal{O}(n^3)$ +\end{column} +\end{columns} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/bigO.tex b/buch/papers/multiplikation/presentation/slides/bigO.tex new file mode 100644 index 0000000..d425da8 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/bigO.tex @@ -0,0 +1,251 @@ + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{itemize} + \item <1-> Time complexity of an algorithm + \item <2-> How many multiplications in a function + \item <3-> Drop Constants +\end{itemize} +\end{frame} + + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 1} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(1)$ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 2} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(1) + \mathcal{O}(1) = 2\mathcal{O}(1) = \mathcal{O}(1) $ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 3} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(n)$ + } +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} + \onslide<1->{ + + \begin{algorithm}[H]\caption{Foo 4} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{foo}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} + \end{algorithm} +} +\onslide<2->{ +$\mathcal{O}(n^2)$ + } +\end{frame} + +% \begin{frame} +% \frametitle{Big $\mathcal{O}$ notation} +% \onslide<1->{ +% +% \begin{algorithm}[H]\caption{Fibonacci} +% \setlength{\lineskip}{7pt} +% \begin{algorithmic}[1] +% \Function{fib}{$n$} +% \If{$n <= 1$} +% \State \textbf{return} $1$ +% \Else +% \State \textbf{return} fib($n-1$) + fib($n-2$) +% \EndIf +% +% \EndFunction +% \end{algorithmic} +% \end{algorithm} +% } +% \onslide<2->{ +% \[ +% \langle x,y \rangle = +% \begin{cases} +% \displaystyle $\mathcal{O}(1)$ & \text{if $n \leq 2$}\\ +% \displaystyle $ 2 \mathcal{T}(\frac{n}{2})$ & \text{if $n > 2$} +% \end{cases} +% \] } +% \end{frame} + + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 20, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +%Below the red parabola is defined +\addplot [ + domain= 1:6, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +%Here the blue parabloa is defined +\addplot [ + domain= 1:6, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:6, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:6, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:3, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:6, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} +\end{axis} +\end{tikzpicture} + +\end{frame} + +\begin{frame} + \frametitle{Big $\mathcal{O}$ notation} +\begin{tikzpicture} +\begin{axis}[ + axis lines = left, + xlabel = $n$ (Data Input), + ylabel = {$t$ (time)}, + legend pos=north east, + very thick, + ymax = 500, + yticklabels=\empty, + xticklabels=\empty, + scale only axis=true, + width=12cm, height=6cm, + ] +\addplot [ + domain= 1:20, + samples=100, + color=red, +] +{1}; +\addlegendentry{$\mathcal{O}(1)$} +\addplot [ + domain= 1:20, + samples=100, + color=green, +] +{x}; +\addlegendentry{$\mathcal{O}(n)$} +\addplot [ + domain= 1:20, + samples=100, + color=blue, +] +{x^2}; +\addlegendentry{$\mathcal{O}(n^2)$} +\addplot [ + domain= 1:10, + samples=100, + color=purple, +] +{x^3}; +\addlegendentry{$\mathcal{O}(n^3)$} +\addplot [ + domain= 1:10, + samples=100, + color=black, +] +{exp(x)}; +\addlegendentry{$\mathcal{O}(e^n)$} +\addplot [ + domain= 1:20, + samples=100, + color=orange, +] +{log2(x)}; +\addlegendentry{$\mathcal{O}(\log n)$} +\end{axis} +\end{tikzpicture} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/blas.tex b/buch/papers/multiplikation/presentation/slides/blas.tex new file mode 100644 index 0000000..ed498a3 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/blas.tex @@ -0,0 +1,18 @@ +\begin{frame} +\frametitle{BLAS, LAPACK} +\begin{itemize} + \item Basic Linear Algebra Subprograms + \begin{itemize} + \item $\mathbf{y} = \alpha \mathbf{x}+\mathbf{y}$ + \item $\mathbf{y} = \alpha \mathbf{A}\mathbf{x}+ \beta \mathbf{y}$ + \item $\mathbf{C} = \alpha \mathbf{A}\mathbf{B}+ \beta \mathbf{C}$ + + \end{itemize} + \item Linear Algebra Package + \begin{itemize} + \item QR decomposition + \item Singular value decomposition + \item Eigenvalues + \end{itemize} +\end{itemize} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/conclusuion.tex b/buch/papers/multiplikation/presentation/slides/conclusuion.tex new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/multiplikation/presentation/slides/logo.pdf b/buch/papers/multiplikation/presentation/slides/logo.pdf new file mode 100644 index 0000000..d78ca88 Binary files /dev/null and b/buch/papers/multiplikation/presentation/slides/logo.pdf differ diff --git a/buch/papers/multiplikation/presentation/slides/meas.tex b/buch/papers/multiplikation/presentation/slides/meas.tex new file mode 100644 index 0000000..489c010 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/meas.tex @@ -0,0 +1,42 @@ +\begin{frame} + \frametitle{Measurements Python} + \only<1>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_8.pdf}} + \only<2>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_16.pdf}} + \only<3>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_32.pdf}} + \only<4>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_64.pdf}} + \only<5>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_128.pdf}} + \only<6>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_256.pdf}} + \only<7>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_512.pdf}} + \only<8>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/meas_1024.pdf}} +\end{frame} + + +\begin{frame} + \frametitle{Measurements C} + \only<1>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_8.pdf}} + \only<2>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_16.pdf}} + \only<3>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_32.pdf}} + \only<4>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_64.pdf}} + \only<5>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_128.pdf}} + \only<6>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_256.pdf}} + \only<7>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_512.pdf}} + \only<8>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_1024.pdf}} + \only<9>{ + \includegraphics[width=\textwidth,height=0.9\textheight,keepaspectratio]{../code/c_meas_2048.pdf}} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/nn.tex b/buch/papers/multiplikation/presentation/slides/nn.tex new file mode 100644 index 0000000..e74e970 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/nn.tex @@ -0,0 +1,97 @@ + +\begin{frame} + \frametitle{Neural Network} + \centering +\newcommand{\inputnum}{4} + +% Hidden layer neurons'number +\newcommand{\hiddennumA}{5} +\newcommand{\hiddennumB}{6} + +% Output layer neurons'number +\newcommand{\outputnum}{4} + +\begin{tikzpicture} + + +% Input Layer +\foreach \i in {1,...,\inputnum} +{ + \node[circle, + minimum size = 6mm, + fill=blue!30] (Input-\i) at (0,-\i) {}; +} + +% Hidden Layer1 +\foreach \i in {1,...,\hiddennumA} +{ + \node[circle, + minimum size = 6mm, + fill=red!50, + yshift=(\hiddennumA-\inputnum)*5 mm + ] (Hidden1-\i) at (2.5,-\i) {}; +} + +% Hidden Layer2 +\foreach \i in {1,...,\hiddennumB} +{ + \node[circle, + minimum size = 6mm, + fill=red!50, + yshift=(\hiddennumB-\inputnum)*5 mm + ] (Hidden2-\i) at (5,-\i) {}; +} + +% Output Layer +\foreach \i in {1,...,\outputnum} +{ + \node[circle, + minimum size = 6mm, + fill=green!50, + yshift=(\outputnum-\inputnum)*5 mm + ] (Output-\i) at (7.5,-\i) {}; +} + +% Connect neurons In-Hidden +\foreach \i in {1,...,\inputnum} +{ + \foreach \j in {1,...,\hiddennumA} + { + \draw[->, shorten >=1pt] (Input-\i) -- (Hidden1-\j); + } +} + +% Connect neurons In-Hidden +\foreach \i in {1,...,\hiddennumA} +{ + \foreach \j in {1,...,\hiddennumB} + { + \draw[->, shorten >=1pt] (Hidden1-\i) -- (Hidden2-\j); + } +} + +% Connect neurons Hidden-Out +\foreach \i in {1,...,\hiddennumB} +{ + \foreach \j in {1,...,\outputnum} + { + \draw[->, shorten >=1pt] (Hidden2-\i) -- (Output-\j); + } +} + +% Inputs +\foreach \i in {1,...,\inputnum} +{ + \draw[<-, shorten <=1pt] (Input-\i) -- ++(-1,0) + node[left]{\LARGE{$x_{\i}$}}; +} + +% Outputs +\foreach \i in {1,...,\outputnum} +{ + \draw[->, shorten <=1pt] (Output-\i) -- ++(1,0) + node[right]{\LARGE{$y_{\i}$}}; +} + +\end{tikzpicture} +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/parcomp.tex b/buch/papers/multiplikation/presentation/slides/parcomp.tex new file mode 100644 index 0000000..1ba39ee --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/parcomp.tex @@ -0,0 +1,66 @@ +% !TEX root = presentation.tex + +\begin{frame} + \frametitle{Vector-Matrix Multiplication} +\center{ + \begin{tikzpicture}[ampersand replacement=\&] + + \matrix (A)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] + { + A_{1,1} \& A_{1,2} \& A_{1,3} \& A_{1,4} \\ + }; + + \matrix (B)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (5,-0.95) + { + B_{1,1} \& B_{1,2} \& B_{1,3} \& B_{1,4} \& B_{1,5} \\ + B_{2,1} \& B_{2,2} \& B_{2,3} \& B_{2,4} \& B_{2,5} \\ + B_{3,1} \& B_{3,2} \& B_{3,3} \& B_{3,4} \& B_{3,5} \\ + B_{4,1} \& B_{4,2} \& B_{4,3} \& B_{4,4} \& B_{4,5} \\ + }; + + \matrix (C)[matrix of math nodes, label skeleton, left delimiter=[,right delimiter={]}] at (5,-3) + { + C_{1,1} \& C_{1,2} \& C_{1,3} \& C_{1,4} \& C_{1,5}\\ + }; + + \foreach \i in {1,...,4} + { + \pgfmathtruncatemacro{\ii}{\i+1} + \onslide<\ii>{ + + \foreach \j in {1,...,5} + { + \draw[thick] (A-1-\i.south) to [out=-90,in=135]node[visible on=<\i->, anchor=north]{} (B-\i-\j.center); + + } + } + } + + + \end{tikzpicture} +} +\end{frame} + + +\begin{frame} + \frametitle{DSP Architecture} +\scalebox{2}{ + \begin{tikzpicture} + \node (mul) at (0,0) [circle,draw=black,inner sep=0pt,minimum size=0.5cm] {X}; + \node (mac) at (2,0) [circle,draw=black,inner sep=0pt,minimum size=0.5cm] {\textbf{+}}; + + \node at (-2,0.3) {$A[n]$}; + \node at (0.4,2) {$B[n]$}; + \node at (4,0.3) {$C[n]$}; + + \draw[thick, ->] (-2,0) --++ (mul); + \draw[thick, ->] (0,2) --++ (mul); + \draw[thick, ->] (mul) -- (mac); + \draw[thick] (mac) --++ (1,0) node (i) {}; + \draw[thick, ->] (i.center) --++ (0,1) --++ (-1,0) -- (mac); + \draw[thick, ->] (i.center) --++ (1,0); + + + \end{tikzpicture} + } +\end{frame} diff --git a/buch/papers/multiplikation/presentation/slides/slides.tex b/buch/papers/multiplikation/presentation/slides/slides.tex new file mode 100644 index 0000000..64edb86 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/slides.tex @@ -0,0 +1,15 @@ +% !TEX root = presentation.tex +\begin{frame} +\titlepage +\end{frame} +% +\section{Big $\mathcal{O}$} +\input{slides/BigO.tex} +\section{Strassen's Algorithm} +\input{slides/strassen.tex} +% \input{slides/nn.tex} +\section{Measurements} +\input{slides/meas.tex} +% \input{slides/parcomp.tex} +\section{How To Matrix Multiply} +\input{slides/blas.tex} diff --git a/buch/papers/multiplikation/presentation/slides/strassen.tex b/buch/papers/multiplikation/presentation/slides/strassen.tex new file mode 100644 index 0000000..c3398d5 --- /dev/null +++ b/buch/papers/multiplikation/presentation/slides/strassen.tex @@ -0,0 +1,429 @@ +\begin{frame} + \frametitle{Strassen's Algorithm} + \includegraphics[page=1,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} + \includegraphics[page=2,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} \includegraphics[page=3,width=\textwidth,height=0.8\textheight,keepaspectratio]{../papers/Strassen_original_1969.pdf} + \end{frame} + +\begin{frame} + \frametitle{Strassen's Algorithm} + \centering + \large +\onslide<1->{ + $ + \mathbf{A B = C} + $ +} + +\onslide<2->{ + + +\medskip + $ + \begin{bmatrix} + A_{11} & A_{12}\\ + A_{21} & A_{22} + \end{bmatrix} + \begin{bmatrix} + B_{11} & B_{12}\\ + B_{21} & B_{22} + \end{bmatrix} + = + \begin{bmatrix} + C_{11} & C_{12}\\ + C_{21} & C_{22} + \end{bmatrix} + $ + } + + + \onslide<3->{ + +\medskip +$ +C_{11} = A_{11} \cdot B_{11} + A_{12} \cdot B_{21} +$ + +$ +C_{12} = A_{11} \cdot B_{12} + A_{12} \cdot B_{22} +$ + +$ +C_{21} = A_{21} \cdot B_{11} + A_{22} \cdot B_{21} +$ + +$ +C_{22} = A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +$ +} +\end{frame} + +\input{slides/algo.tex} + + + +\begin{frame} + \frametitle{Strassen's Algorithm} + \begin{columns} + \begin{column}{0.5\textwidth} + \onslide<1->{ + \large + \begin{math} + \begin{aligned} + \text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ + \text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ + \text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ + \text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ + \text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ + \text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12}) \\ + \text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + \end{aligned} + \end{math} + } + \end{column} + + \begin{column}{0.5\textwidth} + \onslide<2->{ + \large + \begin{math} + \begin{aligned} + C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ + C_{21} &= \text{II} + \text{IV} \\ + C_{12} &= \text{III} + \text{V}\\ + C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ + \end{aligned} + \end{math} + } + \end{column} +\end{columns} + +\onslide<3->{ + +\bigskip +\centering +\tiny +\begin{math} +\begin{aligned} + C_{11} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) + A_{22} \cdot (-B_{11}+B_{21}) - (A_{11} + A_{12}) \cdot B_{22} + (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + C_{11} &= A_{11}B_{11} + A_{11}B_{22} + A_{22}B_{11} + A_{22}B_{22} -A_{22}B_{11}+A_{22}B_{21} - A_{11}B_{22} - A_{12}B_{22}+ A_{12}B_{21} + A_{12}B_{22} - A_{22}B_{21} - A_{22}B_{22} \\ + C_{11} &= A_{11}B_{11} + A_{12}B_{21} +\end{aligned} +\end{math} +} + +\end{frame} + + +\begin{frame} +\begin{adjustbox}{width=\textwidth} +\begin{tikzpicture}[ampersand replacement=\&] + + \foreach \i in {1,...,4} + { + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } + } + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; + } + + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} +\end{adjustbox} +\end{frame} + + +\begin{frame} + \frametitle{Strassen's Algorithm} + \begin{columns} + \begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + \text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ + \text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ + \text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ + \text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ + \text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ + \text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12}) \\ + \text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ + \end{aligned} + \end{math} + + \end{column} + + \begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ + C_{21} &= \text{II} + \text{IV} \\ + C_{12} &= \text{III} + \text{V}\\ + C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ + \end{aligned} + \end{math} + + \end{column} +\end{columns} +\end{frame} + + + +\begin{frame} + \frametitle{Strassen's Algorithm} + +\begin{columns} + \begin{column}{0.5\textwidth} +\large +\begin{math} +\begin{aligned} +\text{\textbf{I}} &= (\mathbf{A_{11}} + \mathbf{A_{22}}) \cdot (\mathbf{B_{11}} + \mathbf{B_{22}}) \\ +\text{\textbf{II}} &= (\mathbf{A_{21}} + \mathbf{A_{22}}) \cdot \mathbf{B_{11}} \\ +\text{\textbf{III}} &= \mathbf{A_{11}} \cdot (\mathbf{B_{12}}-\mathbf{B_{22}}) \\ +\text{\textbf{IV}} &= \mathbf{A_{22}} \cdot (-\mathbf{B_{11}}+\mathbf{B_{21}}) \\ +\text{\textbf{V}} &= (\mathbf{A_{11}} + \mathbf{A_{12}}) \cdot \mathbf{B_{22}} \\ +\text{\textbf{VI}} &= (-\mathbf{A_{11}} + \mathbf{A_{21}}) \cdot (\mathbf{B_{11}} + \mathbf{B_{12}}) \\ +\text{\textbf{VII}} &= (\mathbf{A_{12}} - \mathbf{A_{22}}) \cdot (\mathbf{B_{21}} + \mathbf{B_{22}}) \\ +\end{aligned} +\end{math} + +\end{column} + +\begin{column}{0.5\textwidth} + \large + \begin{math} + \begin{aligned} + \mathbf{C_{11}} &= \text{\textbf{I}} + \text{\textbf{IV}} - \text{\textbf{V}} + \text{\textbf{VII}} \\ + \mathbf{C_{21}} &= \text{\textbf{II}} + \text{\textbf{IV}} \\ + \mathbf{C_{12}} &= \text{\textbf{III}} + \text{\textbf{V}}\\ + \mathbf{C_{22}} &= \text{\textbf{I}} + \text{\textbf{III}} - \text{\textbf{II}} + \text{\textbf{VI}} \\ + \end{aligned} + \end{math} + +\end{column} +\end{columns} + +\end{frame} + +\begin{frame} + \frametitle{Algorithm} + \onslide<1->{ + + \scalebox{0.45}{\parbox{\linewidth}{ + \begin{algorithm}[H]\caption{Strassen Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{strassen}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $P \gets (A[0][0]+A[1][1])\cdot( B[0][0]+B[1][1])$ + \State $Q \gets (A[1][0]+A[1][1])\cdot B[0][0]$ + \State $R \gets A[0][0]\cdot (B[0][1]-B[1][1])$ + \State $S \gets A[1][1]\cdot (B[1][0]-B[0][0])$ + \State $T \gets (A[0][0]+A[0][1])\cdot B[1][1]$ + \State $U \gets (A[1][0]-A[0][0])\cdot (B[0][0]+B[0][1])$ + \State $V \gets (A[0][1]-A[1][1])\cdot (B[1][0]+B[1][1])$ + \State $C[0][0] \gets P+S-T+V$ + \State $C[0][1] \gets R+T$ + \State $C[1][0] \gets Q+S$ + \State $C[1][1] \gets P+R-Q+U$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $ \mathbf{P} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A22}),(\mathbf{B11}+\mathbf{B22}), m)$ + \State $ \mathbf{Q} \gets \text{strassen}((\mathbf{A21}+ \mathbf{A22}), \mathbf{B11},m)$ + \State $ \mathbf{R} \gets \text{strassen}( \mathbf{A11},(\mathbf{B12}- \mathbf{B22}),m)$ + \State $ \mathbf{S} \gets \text{strassen}( \mathbf{A22},(\mathbf{B21}- \mathbf{B11}),m)$ + \State $ \mathbf{T} \gets \text{strassen}((\mathbf{A11}+ \mathbf{A12}), \mathbf{B22},m)$ + \State $ \mathbf{U} \gets \text{strassen}((\mathbf{A21}- \mathbf{A11}),(\mathbf{B11}+\mathbf{B12}),m)$ + \State $ \mathbf{V} \gets \text{strassen}((\mathbf{A12}- \mathbf{A22}),(\mathbf{B21}+\mathbf{B22}),m)$ + + + + \State $\mathbf{C11} \gets \mathbf{P+S-T+V}$ + \State $\mathbf{C12} \gets \mathbf{R+T}$ + \State $\mathbf{C21} \gets \mathbf{Q+S}$ + \State $\mathbf{C22} \gets \mathbf{P+R-Q+U}$ + \State $ C \gets vstack((hstack((C11, C12)), hstack((C21, C22))))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} + \end{algorithm} + }}} +% \[ +% \mathcal{T}(n) = \left\{\begin{array}{lr} +% 1, & \text{if} n \leq 2\\ +% 7 \mathcal{T}(\frac{n}{2}) + n^2, & \text{if} n > 2\\ +% \end{array}\right\} +% \] +\only<2>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 7})$ + +} +\only<3>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{2.81})$ + +} + +\end{frame} + +\begin{frame} + \frametitle{Algorithm} + \onslide<1->{ + + \scalebox{0.45}{\parbox{\linewidth}{ + \begin{algorithm}[H]\caption{Strassen Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, n$} + \If{$n = 2$} + \State $ \mathbf{C} \gets zeros((n, n))$ + \State $C[0, 0] \gets A[0][0]*B[0][0]+A[0][1]*B[1][0]$ + \State $C[0, 1] \gets A[0][0]*B[0][1]+A[0][1]*B[1][1]$ + \State $C[1, 0] \gets A[1][0]*B[0][0]+A[1][1]*B[1][0]$ + \State $C[1, 1] \gets A[1][0]*B[0][1]+A[1][1]*B[1][1]$ + \Else + \State $ m \gets n/2$ + \State $\mathbf{A11}, \mathbf{A12}, \mathbf{A21}, \mathbf{A22} \gets \mathbf{A}[:m][:m], \mathbf{A}[:m][m:], \mathbf{A}[m:][:m], \mathbf{A}[m:][m:]$ + \State $\mathbf{B11}, \mathbf{B12}, \mathbf{B21}, \mathbf{B22} \gets \mathbf{B}[:m][:m], \mathbf{B}[:m][m:], \mathbf{B}[m:][:m], \mathbf{B}[m:][m:]$ + + \State $\mathbf{C11} \gets \text{MM}(\mathbf{A11}, \mathbf{B11}) + \text{MM}(\mathbf{A12}, \mathbf{B21})$ + \State $\mathbf{C12} \gets \text{MM}(\mathbf{A11},\mathbf{B12}) + \text{MM}(\mathbf{A12},\mathbf{B22})$ + \State $\mathbf{C21} \gets \text{MM}(\mathbf{A21}, \mathbf{B11}) + \text{MM}(\mathbf{A22}, \mathbf{B21})$ + \State $\mathbf{C22} \gets \text{MM}(\mathbf{A21}, \mathbf{B12}) + \text{MM}(\mathbf{A22}, \mathbf{B22})$ + \State $ C \gets vstack((hstack((C11, C12)), hstack((C21, C22))))$ + + \EndIf + \State \textbf{return} $\textbf{C}$ + + \EndFunction + \end{algorithmic} + \end{algorithm} + \bigskip + \bigskip + \bigskip + \bigskip + \bigskip + }}} + +\only<2>{ + + + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{\log_2 8})$ + +} +\only<3>{ + $ + \mathcal{T}(n) = + \begin{cases} + 1 & \text{if } n \leq 2\\ + 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 + \end{cases} = \mathcal{O}(n^{3})$ + +} + +\end{frame} diff --git a/buch/papers/multiplikation/presentation/tikz/algo.pdf b/buch/papers/multiplikation/presentation/tikz/algo.pdf new file mode 100644 index 0000000..752f42e Binary files /dev/null and b/buch/papers/multiplikation/presentation/tikz/algo.pdf differ diff --git a/buch/papers/multiplikation/presentation/tikz/algo.tex b/buch/papers/multiplikation/presentation/tikz/algo.tex new file mode 100644 index 0000000..0b2c567 --- /dev/null +++ b/buch/papers/multiplikation/presentation/tikz/algo.tex @@ -0,0 +1,52 @@ +\documentclass[border=10pt]{article} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{algorithm} +\usepackage[noend]{algpseudocode} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{algorithm}[H]\caption{Square Matrix Multiplication} + \setlength{\lineskip}{7pt} + \begin{algorithmic}[1] + \Function{MM}{$\textbf{A}, \textbf{B}, \textbf{C}, n$} + \State $sum \gets 0$ + \For{$i = 0,1,2 \dots,n-1$} + \For{$j = 0,1,2 \dots,n-1$} + \State $sum \gets 0$ + \For{$k = 0,1,2 \dots,n-1$} + \State $sum \gets sum + \textbf{A}[i][k] \cdot \textbf{B}[k][j]$ + \EndFor + \State $\textbf{C}[i][j] \gets sum $ + \EndFor + \EndFor + \EndFunction + \end{algorithmic} +\end{algorithm} +\end{document} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex new file mode 100755 index 0000000..b20a791 --- /dev/null +++ b/buch/papers/multiplikation/problemstellung.tex @@ -0,0 +1,104 @@ +% +% teil1.tex -- Beispiel-File für das Paper +% +% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil +% +\section{Problemstellung} +\rhead{Problemstellung} +Dank der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. +Das Ziel dieses Papers ist verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. +Wobei gezielt auf Algorithmen, welche das Problem schneller als der Standard Algorithmus L\"osen eingegangen wird. + +\subsection{Big $\mathcal{O}$ Notation} +Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus \cite{multiplikation:bigo}. +$f(x) \in \mathcal{O}(g(x))$ besagt das die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. +Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: +\begin{itemize} + \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt + \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear + \item $f \in \mathcal{O}(n^2) \rightarrow f$ w\"achst quadratisch + \item $f \in \mathcal{O}(\log n) \rightarrow f$ w\"achst logarithmisch + \item $f \in \mathcal{O}(n \log n) \rightarrow f$ hat super-lineares Wachstum + \item $f \in \mathcal{O}(e^n) \rightarrow f$ w\"achst exponentiell + \item usw. +\end{itemize} + +In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die Verschiedenen Laufzeiten miteinander verglichen werden. + +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/bigo} + \caption{Verschiedene Laufzeiten} + \label{multiplikation:fig:bigo} +\end{figure} + +\subsubsection{Beispiel Algorithmen} +\paragraph{Beschr\"ankter Algorithmus} + +Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. + +\begin{algorithm}\caption{} + \label{multiplikation:alg:b1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B1}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +Wobei Konstanten nicht beachtet werden, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. + +\begin{algorithm}\caption{} + \label{multiplikation:alg:b2} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B2}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} +\end{algorithm} + +\paragraph{Linearer Algorithmus} + +Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares $\mathcal{O}(n)$ Verhalten. + +\begin{algorithm}\caption{} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \label{multiplikation:alg:l1} + \Function{L}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} +\end{algorithm} + +\paragraph{Quadratischer Algorithmus} + +Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches $\mathcal{O}(n^2)$ Verhalten. + +\begin{algorithm}[H]\caption{} + \label{multiplikation:alg:q1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} +\end{algorithm} + + diff --git a/buch/papers/multiplikation/references.bib b/buch/papers/multiplikation/references.bib old mode 100644 new mode 100755 index 7149fb1..9d76e8e --- a/buch/papers/multiplikation/references.bib +++ b/buch/papers/multiplikation/references.bib @@ -33,3 +33,33 @@ url = {https://doi.org/10.1016/j.acha.2017.11.004} } +@article{multiplikation:winograd_1968, + title={A New Algorithm for Inner Product}, + volume={C-17}, + DOI={10.1109/tc.1968.227420}, + number={7}, + journal={IEEE Transactions on Computers}, + author={Winograd, S.}, + year={1968}, + pages={693–694} +} + +@article{multiplikation:strassen_1969, + title={Gaussian elimination is not optimal}, + volume={13}, + DOI={10.1007/bf02165411}, + number={4}, + journal={Numerische Mathematik}, + author={Strassen, Volker}, + year={1969}, + pages={354–356} +} + +@online{multiplikation:bigo, + title = {Big O notation}, + url = {https://en.wikipedia.org/wiki/Big_O_notation}, + date = {2021-07-27}, + year = {2021}, + month = {7}, + day = {27} +} diff --git a/buch/papers/multiplikation/teil0.tex b/buch/papers/multiplikation/teil0.tex deleted file mode 100644 index 082b7f5..0000000 --- a/buch/papers/multiplikation/teil0.tex +++ /dev/null @@ -1,22 +0,0 @@ -% -% einleitung.tex -- Beispiel-File für die Einleitung -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 0\label{multiplikation:section:teil0}} -\rhead{Teil 0} -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua \cite{multiplikation:bibtex}. -At vero eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum -dolor sit amet. - -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam -erat, sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit -amet. - - diff --git a/buch/papers/multiplikation/teil1.tex b/buch/papers/multiplikation/teil1.tex deleted file mode 100644 index 0a6903a..0000000 --- a/buch/papers/multiplikation/teil1.tex +++ /dev/null @@ -1,55 +0,0 @@ -% -% teil1.tex -- Beispiel-File für das Paper -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 1 -\label{multiplikation:section:teil1}} -\rhead{Problemstellung} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. -Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos qui ratione -voluptatem sequi nesciunt -\begin{equation} -\int_a^b x^2\, dx -= -\left[ \frac13 x^3 \right]_a^b -= -\frac{b^3-a^3}3. -\label{multiplikation:equation1} -\end{equation} -Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, -consectetur, adipisci velit, sed quia non numquam eius modi tempora -incidunt ut labore et dolore magnam aliquam quaerat voluptatem. - -Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis -suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? -Quis autem vel eum iure reprehenderit qui in ea voluptate velit -esse quam nihil molestiae consequatur, vel illum qui dolorem eum -fugiat quo voluptas nulla pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:finibus}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga \eqref{000tempmlate:equation1}. - -Et harum quidem rerum facilis est et expedita distinctio -\ref{multiplikation:section:loesung}. -Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil -impedit quo minus id quod maxime placeat facere possimus, omnis -voluptas assumenda est, omnis dolor repellendus -\ref{multiplikation:section:folgerung}. -Temporibus autem quibusdam et aut officiis debitis aut rerum -necessitatibus saepe eveniet ut et voluptates repudiandae sint et -molestiae non recusandae. -Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis -voluptatibus maiores alias consequatur aut perferendis doloribus -asperiores repellat. - - diff --git a/buch/papers/multiplikation/teil2.tex b/buch/papers/multiplikation/teil2.tex deleted file mode 100644 index efbf31a..0000000 --- a/buch/papers/multiplikation/teil2.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil2.tex -- Beispiel-File für teil2 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 2 -\label{multiplikation:section:teil2}} -\rhead{Teil 2} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:bonorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/multiplikation/teil3.tex b/buch/papers/multiplikation/teil3.tex deleted file mode 100644 index f58508b..0000000 --- a/buch/papers/multiplikation/teil3.tex +++ /dev/null @@ -1,40 +0,0 @@ -% -% teil3.tex -- Beispiel-File für Teil 3 -% -% (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil -% -\section{Teil 3 -\label{multiplikation:section:teil3}} -\rhead{Teil 3} -Sed ut perspiciatis unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam, eaque ipsa -quae ab illo inventore veritatis et quasi architecto beatae vitae -dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam -est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci -velit, sed quia non numquam eius modi tempora incidunt ut labore -et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima -veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, -nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure -reprehenderit qui in ea voluptate velit esse quam nihil molestiae -consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla -pariatur? - -\subsection{De finibus bonorum et malorum -\label{multiplikation:subsection:malorum}} -At vero eos et accusamus et iusto odio dignissimos ducimus qui -blanditiis praesentium voluptatum deleniti atque corrupti quos -dolores et quas molestias excepturi sint occaecati cupiditate non -provident, similique sunt in culpa qui officia deserunt mollitia -animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis -est et expedita distinctio. Nam libero tempore, cum soluta nobis -est eligendi optio cumque nihil impedit quo minus id quod maxime -placeat facere possimus, omnis voluptas assumenda est, omnis dolor -repellendus. Temporibus autem quibusdam et aut officiis debitis aut -rerum necessitatibus saepe eveniet ut et voluptates repudiandae -sint et molestiae non recusandae. Itaque earum rerum hic tenetur a -sapiente delectus, ut aut reiciendis voluptatibus maiores alias -consequatur aut perferendis doloribus asperiores repellat. - - diff --git a/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk b/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk new file mode 100644 index 0000000..5f14129 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.fdb_latexmk @@ -0,0 +1,254 @@ +# Fdb version 3 +["pdflatex"] 1620305767 "algo.tex" "algo.pdf" "algo" 1621586452 + "/dev/null" 1621583990 0 d41d8cd98f00b204e9800998ecf8427e "" + "/etc/texmf/web2c/texmf.cnf" 1619433543 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm" 1229303445 688 37338d6ab346c2f1466b29e195316aa4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm" 1229303445 684 3a51bd4fd9600428d5264cf25f04bb9a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm" 1229303445 692 1b6510779f0f05e9cbf03e0f6c8361e6 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxb.tfm" 1136768653 1020 c53143d3e3747b5c1149bd9a5ecd7b55 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm" 1136768653 1056 e2202af076e43d03fc17f87e104021b0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmb.tfm" 1136768653 4572 2c370d27bbb031f7592de9d41dc8cfca "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm" 1136768653 4452 0fd0a792eaab7113e4d4f1b941ff0367 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm" 1136768653 4640 ce59980bcbe9e6236fab46d0b5212c7e "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm" 1136768653 1004 c0e991f864f31f017ea4ff9e451b76d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xb.tfm" 1136768653 6892 772bf8e6c154137db8568fa8a47a6ceb "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm" 1136768653 6716 6d25a377562601272906e3bfe6b2817a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm" 1136768653 1080 b674b4ba143004461509a754a0984b67 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm" 1136768653 688 f56006d6e56f46e63d9f63252958b828 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm" 1136768653 2584 cf4a6a7c2a518d47468fe29ef0913ba0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm" 1232065820 1944 f854e259cb2839e49d4aa2949544a6e1 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm" 1136768653 1180 72784d0ee5a983fba99a0986b31b0493 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm" 1136768653 972 2c9ffac4bbd20f91c01aaef9bf3f8710 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm" 1136768653 988 098ca7e8cc5647b9ac21b82dbdce1f01 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm" 1136768653 1084 75e807e9e71f7a312e4e1187dce5e93b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm" 1381187214 608 4db60f15ea23b4ec2d796c6d568a63fa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm" 1381187214 844 3393210079fb4ed9347e214b3bfd7c1a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm" 1381187214 984 5c01c46b93e3ba8369f3f8edc6e62aef "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb" 1232065820 13806 49b888f4605a088e66b9eb4fee320a6e "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb" 1136849748 6339 e2b78706efdc360ee6aec9b6e20211a7 "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb" 1136849748 17531 c91f2d6943f51d7c46d6b7b9cedd50ba "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb" 1136849748 20336 69267d8a81bca8b24c9b42694a4a28f9 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1136849748 44729 811d6c62865936705a31c797a1d5dada "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xb.vf" 1136768653 2144 bab2875eda5b2344ea7b1db74ccc03a4 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf" 1136768653 2140 99e5b3a34695df6221a167ffa8b498d6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf" 1232065820 960 cfcc9d587b40b769f64408b3ca115941 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf" 1136768653 904 e582cae2d8ae3f48a0a520440ebcdb51 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty" 1572645307 480 5778104efadad304ced77548ca2184b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1573336935 6902 30fdaf7dc5636b8e3afa306210c45cae "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1557692582 992 fb3cda354707a54fda62787a411c7c22 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1546728038 43820 bc6cf5aa959817914ace33f5c6232161 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1557692582 19324 c9a64402f22bd8d81821141a357af653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1546728038 6038 d639d02574be9a72f3c602c2a3510e02 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1546728038 6948 284bbe3c9a7ca0a826c1c03895e69b9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1546728038 4883 a6f3eb1f71d8c4affaf43a169828b043 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1546728038 2544 3b1b198fd49f01e328adc9162a07b213 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1576793519 44189 1fd6229dad4c898883516c032f2ca5d2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1546728038 17311 3092579be20ef0f229c42ad3f09da85c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1546728038 21302 d6c4b340248adbe650ebf6ca76bdccca "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1562964315 9690 7585efa5a591822837f837bc5bc35621 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1576793519 33335 942ccafe284041918d36e54696b98aa7 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1546728038 2965 502761b60f43ab2de5ecb2f4625163ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1546728038 5196 f8c5c775d4d6e2cb050392127cabda72 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1576793519 20726 ed6ec1d6f0f35e7a93de4e79af83dbce "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1557692582 35249 144a6b9c4df4644618bb3a0a40472608 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1546728038 21989 266e83c51fe41eb8b8d5e6896dc71cc1 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1546728038 8842 5cc856e132fac404805c6da091779283 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex" 1546728038 319 8fc6edce901e074ba09de320a8fc686b "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex" 1546728038 3986 c962be8d57437fcaf853d2babd8ed403 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex" 1546728038 4572 980c82f01c0e3983edadbbc373d304cb "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1546728038 3643 4a4bd51bd85886cc39d4073af8cf77a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1546728038 4202 e655aa2657da1088ec7745ece2876c4c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1546728038 3937 20cd45386ca23052ce976464f0ada984 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1546728038 919 da625675781832f2b61a7048a51ef656 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1576793519 11544 2a5d66a3270abf4ef673e8a0b7734a90 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1576967981 187592 7922ceab1864698dec4c84978d5b182f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex" 1546728038 31874 d843d507175f2bdfa3abf01f0349dac8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1546728038 32995 a4d54c043ae5274ceaaddeb36ad43a6f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1546728038 62281 fd68e6d2c2dc178611c8f4d2d86e79ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1557692582 521 c70cf6ad609de83a27ee7929eb356332 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1557692582 13391 933cab19c6d27039dbfc487330d1005a "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1557692582 104938 15f2d8bdabd6bf9ca70f62cd8e3d4940 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1557692582 10157 218d58ab074e5bd0d027de45ec64cc00 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1576793519 28176 568b081ec39645f2db1a29fbd0c635e2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1562964315 9054 388d21239a1b6df2cc8beaae31c976b0 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1557692582 3865 cddf7ddc80f018587c55afdcc79fc333 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1557692582 10925 df50b8a6e5660a585e3a2bf55726dcc8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1562964315 7787 1750fc3f164703caf31fc8ea9218c67e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1557692582 3379 cbd0948a550bd7a495a160ca6beee9ed "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1557692582 92405 bba89470858d7b0788a9c09331c39653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1576793519 36526 453db1f8626a56b5ebb0fad496d6a39f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1576793519 8471 b18959397c76e1e582402ab9f592ed9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1576793519 21201 46a4dded6619f990ac7347f99fbaac9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1557692582 16121 9e240115374a8d489f2f786115df83a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1576793519 43259 3e05ba63539916af2eaca603c2eda780 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1578520427 465 1f401ab1e7fc6cb7ede39e96c66531fd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1557692582 926 70ff613fabeb70f5d1673dc0c93987bd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1557692582 5546 3586827e6032c95512b2a6682d2979a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1562964315 12603 c02869ea216d842c29d52fae8738264e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1557692582 60269 e86bc0081af83a4ad47e4500ee09a2e4 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1557692582 1896 82c274ff520f9e450ccea4e3ef4edc12 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1557692582 7778 a25a32a10ca820357491d4c7b3ac02ea "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1562964315 23777 cb6c8f02f87d86d621f5cb92c44f4998 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1576793519 36815 f7f1772c398f07af2cb741992963045c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1562964315 37439 bd44d50aef702b03193f731207931834 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1557692582 4494 7e5ace0ccf59408f2cf63219a5d36927 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1557692582 7250 03b2b9fb5fa38e7ca5cc3c45860fb210 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1576793519 28309 488ccc6c701bbdd1bf671f708757aa5c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1562964315 6286 1bd76fc45da9929ab2a64f51cba3ab6f "" + "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex" 1403829539 2725 fc34ef3ccb37ba15a640e8fca6190bca "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1417732693 19231 26434a5656c684f5ffb1f26f98006baa "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1403829539 7677 6f5ce7c1124cad7ec57d05b2562bd8fe "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty" 1312310545 4692 1e1bcf75c622af1eefd9169948208302 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex" 1381187214 115380 413d5f789929a45aab7d12ce0d0aee7d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex" 1312310545 1449 24340b6befc66d28ee1ebb657efb5892 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex" 1312310545 22657 990ce136a3cc15728ba417a2e78b25c8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex" 1312310545 1374 43fb8dc80dd748631d78096701166d76 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex" 1312310545 4586 edd672434f45626662368282c0322160 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex" 1312310545 109670 d412ee1ff259daefee5e927172e2f9a8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex" 1337903317 24249 186931a828664624939ab0b347e3952c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex" 1312310545 9619 b7e4d9a6936ba2ad6119a280abde9641 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex" 1312310545 2907 1ee562fde0b53c9cd16f7a604f33fdf0 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex" 1312310545 10928 c3a572983ccc9fc596b4e9ce454d5652 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex" 1312310545 22583 25b1e7edeee41f181ee9733429da4a9c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex" 1312310545 8442 90cb8a3b00c2081384c1ce988d2ba0a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex" 1312310545 39762 25a964ebb390bcfcd35c040f477eef1d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex" 1312310545 16485 5686b19cc46d046c885428794ed9c114 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex" 1312310545 2619 1a12b316e2132654e44ba2cd21def637 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex" 1312310545 5290 e16fc85c85f64d0a5c04708bf3312d00 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex" 1312310545 18763 e61049d36bdfccb226f22e582d70d368 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex" 1312310545 1391 c8763fc8e281cb6ecf697988b6608e4a "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex" 1312310545 7008 cb768d8d63a12d35607cbb3c4e7ba163 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex" 1381187214 3689 0d51788a4141bc66ab896f7ac63495fd "" + "/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty" 1523134290 5309 0c9ef5db85b924cdbb316f080dfd826e "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex" 1389658833 4047 82a015585c1ef210fb6750d6322afa7f "" + "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1581632200 4947 0c2888dd88121ae675fc6e82213623ba "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1580683321 5050 8933a39ad74377accd18991c5eb90c58 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1580683321 8446 9874cccac5fee462272c582807dbbf56 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty" 1137109962 5327 8b3c95b5f71136add36a4a0bb1507594 "" + "/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty" 1425427964 26218 19edeff8cdc2bcb704e8051dc55eb5a7 "" + "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1526160256 11991 c1669f88e13f8bb6243df144e456b477 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1548974385 11128 a53805799bebfed6358fc1658a18e41f "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty" 1580683321 1753 f80abc75c0e3a4915097779c2649cc98 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty" 1137110241 300 12fa6f636b617656f2810ee82cb05015 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd" 1137110241 548 cc4e3557704bfed27c7002773fad6c90 "" + "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1580854751 25404 9d60f463a00d154207ec0048dee27cf0 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty" 1581719662 4381 04628f3002bdd1d9c43ef984fd60ae18 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1581719662 81717 e93576ac4b24ce6e121ebd6ec6cf2893 "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1546728170 98047 c6fa29828cc60471827afe275c8bd77f "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty" 1546638616 18060 8cf65af2c4529eed91b5d364b50d3ada "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1568236792 1830 bbaba8afaf42cc048ec4d4ff73467521 "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1568236792 80511 830f3f1d3ab7448dd84233e9c2f6462c "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1568236792 77022 32914f01b528131c47be2a1040d3856d "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex" 1565039202 19612 007f8469df07e9ef0f680e346cc01945 "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex" 1565039202 7267 4d597b08b2429acaa1e526052d9509ed "" + "/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty" 1177890616 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty" 1559339157 5486 a1d954b09782ba0acd8a8abfd98e1028 "" + "/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb "" + "/usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1580249532 54071 88f1e37dc9e1f95352061a066ed07263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1580249532 6418 197ed301e61ce5b7f446e70345a43a62 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1546728038 1090 d20f587ea9464d1841bd0d13d3ff9856 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1288312291 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1546728038 21013 e98e1aaaf40d31632787c2bd25d24b57 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1546728038 989 2cf3da8e8ec55131c49389428d565e37 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1203877327 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1393459310 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1393459310 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1393459310 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1203727794 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1203877327 325 2bcd023400636339210573e2b3ee298b "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1156702453 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg" 1522098998 1015 662b4d7ad816b857a598284525f5c75e "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls" 1522098998 28890 df75e6d37f47b7e27bff3f37375336b3 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1580683321 12560 ce3f59ceae9d9a27bfe037d6bf1d903c "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd" 1137111002 1242 cbf8a0d4f750f9833a0bfb05fb39f1cb "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd" 1137111002 334 87436a82076ca2e35cd305f852507afc "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd" 1137111002 310 cee07e4964749ccbc77d84fc49726a79 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd" 1137111002 310 8c5467c8932c259af51b0f116c9734bd "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd" 1137111002 310 4b5d6fe830337242ef847b3bff48ba21 "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty" 1238697683 10894 d359a13923460b2a73d4312d613554c8 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1417732693 4962 9c1069474ff71dbc47d5006555e352d3 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/usr/share/texmf/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1619433582 4770781 1ed1abab22da9c3e2cc82e4db562318b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1619433611 8255863 afe1ed795207f6401d11bafd6327aa55 "" + "algo.aux" 1620305767 767 9191aef204e325cc808d7c85cedac35f "pdflatex" + "algo.out" 1620305767 43 8eacde2f35419fc00651f55d16e47ae8 "pdflatex" + "algo.tex" 1621585209 3156 4070ef1cd3442b3ab588aedcc8a306bd "" + (generated) + "algo.aux" + "algo.log" + "algo.pdf" + "algo.out" diff --git a/buch/papers/multiplikation/tikz_formulas/algo.fls b/buch/papers/multiplikation/tikz_formulas/algo.fls new file mode 100644 index 0000000..16d387b --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.fls @@ -0,0 +1,438 @@ +PWD /home/nunigan/Documents/MSE/FS21/SeminarMatrizen/buch/papers/multiplikation/tikz_formulas +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT algo.tex +OUTPUT algo.log +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /dev/null +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/varwidth/varwidth.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT algo.aux +INPUT algo.aux +OUTPUT algo.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT algo.out +INPUT algo.out +INPUT algo.out +INPUT algo.out +OUTPUT algo.pdf +INPUT ./algo.out +INPUT ./algo.out +OUTPUT algo.out +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xb.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT algo.aux +INPUT ./algo.out +INPUT ./algo.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxmi.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txex.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/txsy.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/buch/papers/multiplikation/tikz_formulas/algo.pdf b/buch/papers/multiplikation/tikz_formulas/algo.pdf new file mode 100644 index 0000000..f711224 Binary files /dev/null and b/buch/papers/multiplikation/tikz_formulas/algo.pdf differ diff --git a/buch/papers/multiplikation/tikz_formulas/algo.tex b/buch/papers/multiplikation/tikz_formulas/algo.tex new file mode 100755 index 0000000..1e437c2 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo.tex @@ -0,0 +1,131 @@ +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +$ +A= +\begin{bmatrix} +A_{11} & A_{12}\\ +A_{21} & A_{22} +\end{bmatrix}, +B= +\begin{bmatrix} +B_{11} & B_{12}\\ +B_{21} & B_{22} +\end{bmatrix}, +C= +\begin{bmatrix} +C_{11} & C_{12}\\ +C_{21} & C_{22} +\end{bmatrix} +$ + +\medskip +$ +A \cdot B = C +$ + +\medskip +$ +C_{11} = A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ +C_{12} = A_{11} \cdot B_{12} + A_{12} \cdot B_{22}\\ +C_{21} = A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ +C_{22} = A_{21} \cdot B_{12} + A_{22} \cdot B_{22} +$ + +\medskip +\begin{math} +\begin{aligned} +\text{I} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) \\ +\text{II} &= (A_{21} + A_{22}) \cdot B_{11} \\ +\text{III} &= A_{11} \cdot (B_{12}-B_{22}) \\ +\text{IV} &= A_{22} \cdot (-B_{11}+B_{21}) \\ +\text{V} &= (A_{11} + A_{12}) \cdot B_{22} \\ +\text{VI} &= (-A_{11} + A_{21}) \cdot (B_{11} + B_{12})) \\ +\text{VII} &= (A_{12} - A_{22}) \cdot (B_{21} + B_{22}) \\ +\end{aligned} +\end{math} + + +\medskip +\begin{math} +\begin{aligned} +C_{11} &= \text{I} + \text{IV} - \text{V} + \text{VII} \\ +C_{21} &= \text{II} + \text{IV} \\ +C_{12} &= \text{III} + \text{V}\\ +C_{22} &= \text{I} + \text{III} - \text{II} + \text{VI} \\ +\end{aligned} +\end{math} + + +\medskip +\begin{math} +\begin{aligned} +C_{11} &= \text{II} + \text{IV} \\ +C_{11} &= (A_{11} + A_{22}) \cdot (B_{11} + B_{22}) + A_{22} \cdot (-B_{11}+B_{21}) - (A_{11} + A_{12}) \cdot B_{22} + (A_{12} - A_{22}) \cdot (B_{21} + B_{22})C_{21} \\ +C_{11} &= A_{11}B_{11} + A_{11}B_{22} + A_{22}B_{11} + A_{22}B_{22} -A_{22}B_{11}+A_{22}B_{21} - A_{11}B_{22} - A_{12}B_{22}+ A_{12}B_{21} + A_{12}B_{22} - A_{22}B_{21} - A_{22}B_{22} \\ +C_{11} &= A_{11}B_{11} + A_{12}B_{21} +\end{aligned} +\end{math} + +\section{Winograd} + +$ +x_1 y_1 + x_2 y_2 = (x_1 +y_2)(y_1 + x_2)-x_1 x_2 - y_1 y_2 +$ + +$ +x = (x_1, \cdots, x_n), y=(y_1, \cdots, y_n) +$ + +\[ +\xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} +\] + +\[ +\eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j} +\] + +\[ +\langle x,y \rangle = +\begin{cases} + \displaystyle \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ +\displaystyle \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd} +\end{cases} +\] + +\end{document} diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk b/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk new file mode 100644 index 0000000..ddfa880 --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.fdb_latexmk @@ -0,0 +1,245 @@ +# Fdb version 3 +["pdflatex"] 1621585121 "algo_graph.tex" "algo_graph.pdf" "algo_graph" 1621585184 + "/dev/null" 1621583990 0 d41d8cd98f00b204e9800998ecf8427e "" + "/etc/texmf/web2c/texmf.cnf" 1619433543 475 c0e671620eb5563b2130f56340a5fde8 "" + "/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc" 1165713224 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "/usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm" 1229303445 688 37338d6ab346c2f1466b29e195316aa4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm" 1229303445 684 3a51bd4fd9600428d5264cf25f04bb9a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm" 1229303445 692 1b6510779f0f05e9cbf03e0f6c8361e6 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm" 1136768653 1056 e2202af076e43d03fc17f87e104021b0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm" 1136768653 4452 0fd0a792eaab7113e4d4f1b941ff0367 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm" 1136768653 4640 ce59980bcbe9e6236fab46d0b5212c7e "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm" 1136768653 1004 c0e991f864f31f017ea4ff9e451b76d4 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm" 1136768653 6716 6d25a377562601272906e3bfe6b2817a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm" 1136768653 1080 b674b4ba143004461509a754a0984b67 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm" 1136768653 688 f56006d6e56f46e63d9f63252958b828 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm" 1136768653 2584 cf4a6a7c2a518d47468fe29ef0913ba0 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm" 1232065820 1944 f854e259cb2839e49d4aa2949544a6e1 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm" 1136768653 1180 72784d0ee5a983fba99a0986b31b0493 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm" 1136768653 2408 aec793a3c45e495f7ad15b227c91f508 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm" 1136768653 1268 1d124f224979493f8fd017a7597ea1cd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm" 1136768653 972 2c9ffac4bbd20f91c01aaef9bf3f8710 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm" 1136768653 988 098ca7e8cc5647b9ac21b82dbdce1f01 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm" 1136768653 1084 75e807e9e71f7a312e4e1187dce5e93b "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm" 1381187214 608 4db60f15ea23b4ec2d796c6d568a63fa "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm" 1381187214 608 50246cc71b0635b0ba0a5c10a0bf4257 "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm" 1381187214 844 3393210079fb4ed9347e214b3bfd7c1a "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm" 1381187214 608 f124f78ed50a1817738d2adb190cf2bd "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm" 1381187214 984 5c01c46b93e3ba8369f3f8edc6e62aef "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm" 1381187214 608 a3a3bc08980c5126ff2a7a68fb5a64ff "" + "/usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb" 1136849748 6339 e2b78706efdc360ee6aec9b6e20211a7 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1136849748 46026 6dab18b61c907687b520c72847215a68 "" + "/usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1136849748 45458 a3faba884469519614ca56ba5f6b1de1 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf" 1136768653 2140 99e5b3a34695df6221a167ffa8b498d6 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf" 1232065820 960 cfcc9d587b40b769f64408b3ca115941 "" + "/usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf" 1136768653 904 e582cae2d8ae3f48a0a520440ebcdb51 "" + "/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii" 1461363279 71627 94eb9990bed73c364d7f53f960cc8c5b "" + "/usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" + "/usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" + "/usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" + "/usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty" 1572645307 480 5778104efadad304ced77548ca2184b1 "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty" 1573336935 6902 30fdaf7dc5636b8e3afa306210c45cae "" + "/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty" 1572645307 1057 525c2192b5febbd8c1f662c9468335bb "" + "/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed "" + "/usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty" 1576625065 31769 002a487f55041f8e805cfbf6385ffd97 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty" 1576878844 5412 d5a2436094cd7be85769db90f29250a6 "" + "/usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty" 1576624944 13807 952b0226d4efca026f0e19dd266dcc22 "" + "/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1576624883 18552 1e1cc7b75da0dfaacce7cdcb27d306bf "" + "/usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex" 1557692582 992 fb3cda354707a54fda62787a411c7c22 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex" 1546728038 43820 bc6cf5aa959817914ace33f5c6232161 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex" 1557692582 19324 c9a64402f22bd8d81821141a357af653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex" 1546728038 6038 d639d02574be9a72f3c602c2a3510e02 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex" 1546728038 6948 284bbe3c9a7ca0a826c1c03895e69b9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex" 1546728038 4883 a6f3eb1f71d8c4affaf43a169828b043 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex" 1546728038 2544 3b1b198fd49f01e328adc9162a07b213 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex" 1576793519 44189 1fd6229dad4c898883516c032f2ca5d2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex" 1546728038 17311 3092579be20ef0f229c42ad3f09da85c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex" 1546728038 21302 d6c4b340248adbe650ebf6ca76bdccca "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex" 1562964315 9690 7585efa5a591822837f837bc5bc35621 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex" 1576793519 33335 942ccafe284041918d36e54696b98aa7 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex" 1546728038 2965 502761b60f43ab2de5ecb2f4625163ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex" 1546728038 5196 f8c5c775d4d6e2cb050392127cabda72 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex" 1576793519 20726 ed6ec1d6f0f35e7a93de4e79af83dbce "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex" 1557692582 35249 144a6b9c4df4644618bb3a0a40472608 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex" 1546728038 21989 266e83c51fe41eb8b8d5e6896dc71cc1 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex" 1546728038 8842 5cc856e132fac404805c6da091779283 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex" 1546728038 319 8fc6edce901e074ba09de320a8fc686b "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex" 1546728038 3986 c962be8d57437fcaf853d2babd8ed403 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex" 1546728038 4572 980c82f01c0e3983edadbbc373d304cb "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex" 1546728038 3643 4a4bd51bd85886cc39d4073af8cf77a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex" 1546728038 4202 e655aa2657da1088ec7745ece2876c4c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex" 1546728038 3937 20cd45386ca23052ce976464f0ada984 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex" 1546728038 919 da625675781832f2b61a7048a51ef656 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex" 1576793519 11544 2a5d66a3270abf4ef673e8a0b7734a90 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex" 1576967981 187592 7922ceab1864698dec4c84978d5b182f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex" 1546728038 31874 d843d507175f2bdfa3abf01f0349dac8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex" 1546728038 32995 a4d54c043ae5274ceaaddeb36ad43a6f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex" 1546728038 62281 fd68e6d2c2dc178611c8f4d2d86e79ae "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex" 1557692582 3063 8c415c68a0f3394e45cfeca0b65f6ee6 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex" 1557692582 521 c70cf6ad609de83a27ee7929eb356332 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex" 1557692582 13391 933cab19c6d27039dbfc487330d1005a "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex" 1557692582 104938 15f2d8bdabd6bf9ca70f62cd8e3d4940 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex" 1557692582 10157 218d58ab074e5bd0d027de45ec64cc00 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex" 1576793519 28176 568b081ec39645f2db1a29fbd0c635e2 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex" 1562964315 9054 388d21239a1b6df2cc8beaae31c976b0 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex" 1557692582 3865 cddf7ddc80f018587c55afdcc79fc333 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex" 1557692582 3177 27d85c44fbfe09ff3b2cf2879e3ea434 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex" 1557692582 10925 df50b8a6e5660a585e3a2bf55726dcc8 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex" 1562964315 7787 1750fc3f164703caf31fc8ea9218c67e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex" 1557692582 3379 cbd0948a550bd7a495a160ca6beee9ed "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex" 1557692582 92405 bba89470858d7b0788a9c09331c39653 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex" 1576793519 36526 453db1f8626a56b5ebb0fad496d6a39f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex" 1576793519 8471 b18959397c76e1e582402ab9f592ed9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex" 1576793519 21201 46a4dded6619f990ac7347f99fbaac9f "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex" 1557692582 16121 9e240115374a8d489f2f786115df83a9 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex" 1576793519 43259 3e05ba63539916af2eaca603c2eda780 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1578520427 465 1f401ab1e7fc6cb7ede39e96c66531fd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1557692582 926 70ff613fabeb70f5d1673dc0c93987bd "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1557692582 5546 3586827e6032c95512b2a6682d2979a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1562964315 12603 c02869ea216d842c29d52fae8738264e "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1557692582 60269 e86bc0081af83a4ad47e4500ee09a2e4 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1557692582 1896 82c274ff520f9e450ccea4e3ef4edc12 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1557692582 7778 a25a32a10ca820357491d4c7b3ac02ea "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex" 1562964315 23777 cb6c8f02f87d86d621f5cb92c44f4998 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1576793519 36815 f7f1772c398f07af2cb741992963045c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex" 1562964315 37439 bd44d50aef702b03193f731207931834 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1557692582 4494 7e5ace0ccf59408f2cf63219a5d36927 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex" 1557692582 7250 03b2b9fb5fa38e7ca5cc3c45860fb210 "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1576793519 28309 488ccc6c701bbdd1bf671f708757aa5c "" + "/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1562964315 6286 1bd76fc45da9929ab2a64f51cba3ab6f "" + "/usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty" 1576624663 7008 f92eaa0a3872ed622bbf538217cd2ab7 "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex" 1403829539 2725 fc34ef3ccb37ba15a640e8fca6190bca "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex" 1417732693 19231 26434a5656c684f5ffb1f26f98006baa "" + "/usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex" 1403829539 7677 6f5ce7c1124cad7ec57d05b2562bd8fe "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty" 1312310545 4692 1e1bcf75c622af1eefd9169948208302 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex" 1381187214 115380 413d5f789929a45aab7d12ce0d0aee7d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex" 1312310545 1449 24340b6befc66d28ee1ebb657efb5892 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex" 1312310545 22657 990ce136a3cc15728ba417a2e78b25c8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex" 1312310545 1374 43fb8dc80dd748631d78096701166d76 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex" 1312310545 4586 edd672434f45626662368282c0322160 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex" 1312310545 109670 d412ee1ff259daefee5e927172e2f9a8 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex" 1337903317 24249 186931a828664624939ab0b347e3952c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex" 1312310545 9619 b7e4d9a6936ba2ad6119a280abde9641 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex" 1312310545 2907 1ee562fde0b53c9cd16f7a604f33fdf0 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex" 1312310545 10928 c3a572983ccc9fc596b4e9ce454d5652 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex" 1312310545 22583 25b1e7edeee41f181ee9733429da4a9c "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex" 1312310545 8442 90cb8a3b00c2081384c1ce988d2ba0a3 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex" 1312310545 39762 25a964ebb390bcfcd35c040f477eef1d "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex" 1312310545 16485 5686b19cc46d046c885428794ed9c114 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex" 1312310545 2619 1a12b316e2132654e44ba2cd21def637 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex" 1312310545 5290 e16fc85c85f64d0a5c04708bf3312d00 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex" 1312310545 18763 e61049d36bdfccb226f22e582d70d368 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex" 1312310545 1391 c8763fc8e281cb6ecf697988b6608e4a "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex" 1312310545 7008 cb768d8d63a12d35607cbb3c4e7ba163 "" + "/usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex" 1381187214 3689 0d51788a4141bc66ab896f7ac63495fd "" + "/usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty" 1513722769 12604 3dec726c041422879dc3268237f09026 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty" 1359763108 5949 3f3fd50a8cc94c3d4cbf4fc66cd3df1c "" + "/usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty" 1359763108 13829 94730e64147574077f8ecfea9bb69af4 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty" 1523134290 2211 ca7ce284ab93c8eecdc6029dc5ccbd73 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty" 1523134290 5309 0c9ef5db85b924cdbb316f080dfd826e "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty" 1523134290 4161 7f6eb9092061a11f87d08ed13515b48d "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty" 1580683321 85660 baee036978c7a91f4e2bba43f05e5945 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty" 1523134290 4116 32e6abd27229755a83a8b7f18e583890 "" + "/usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty" 1523134290 2432 8ff93b1137020e8f21930562a874ae66 "" + "/usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex" 1389658833 4047 82a015585c1ef210fb6750d6322afa7f "" + "/usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty" 1576191570 19336 ce7ae9438967282886b3b036cfad1e4d "" + "/usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/article.cls" 1580683321 20023 e427dd9e17e239bf926ef3aab67fe35e "" + "/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty" 1581632200 4947 0c2888dd88121ae675fc6e82213623ba "" + "/usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty" 1580683321 5159 892429808d9e0e2b3548aaefd9a06ed0 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty" 1580683321 5050 8933a39ad74377accd18991c5eb90c58 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo" 1580683321 8446 9874cccac5fee462272c582807dbbf56 "" + "/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty" 1581112666 2821 2c0928feafd5527387e29a1af774d030 "" + "/usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty" 1137109962 5327 8b3c95b5f71136add36a4a0bb1507594 "" + "/usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty" 1425427964 26218 19edeff8cdc2bcb704e8051dc55eb5a7 "" + "/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty" 1579991033 13886 d1306dcf79a944f6988e688c1785f9ce "" + "/usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty" 1526160256 11991 c1669f88e13f8bb6243df144e456b477 "" + "/usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty" 1548974385 11128 a53805799bebfed6358fc1658a18e41f "" + "/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty" 1578002852 41601 9cf6c5257b1bc7af01a58859749dd37a "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg" 1459978653 1213 620bba36b25224fa9b7e1ccb4ecb76fd "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg" 1465944070 1224 978390e9c2234eab29404bc21b268d1e "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def" 1515537368 17334 520b9b85ad8a2a48eda3f643e27a5179 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty" 1580683321 16932 04729abe63b66ec59ea56edcd722b058 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty" 1580683321 9067 1b996612394a52e1efe89c8bfe8a5892 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty" 1580683321 1753 f80abc75c0e3a4915097779c2649cc98 "" + "/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty" 1580683321 3976 d7fa7d81d2870d509d25b17d0245e735 "" + "/usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty" 1580250785 17914 4c28a13fc3d975e6e81c9bea1d697276 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def" 1579642962 50630 3d9728faf8630190cf601ce2cbe470d9 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty" 1579642962 238752 60dd338d71b6a4ab2192131f73dc908b "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty" 1579642962 13244 0070bcab7b5a88187847128d22faf4d8 "" + "/usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def" 1579642962 14134 32b36577d311ddb6522413c7581ee968 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty" 1137110241 300 12fa6f636b617656f2810ee82cb05015 "" + "/usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd" 1137110241 548 cc4e3557704bfed27c7002773fad6c90 "" + "/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1575152344 22520 c4c2dab203104295e1e618be7e5c0f5b "" + "/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def" 1580854751 25404 9d60f463a00d154207ec0048dee27cf0 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty" 1581719662 4381 04628f3002bdd1d9c43ef984fd60ae18 "" + "/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1581719662 81717 e93576ac4b24ce6e121ebd6ec6cf2893 "" + "/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg" 1279039959 678 4792914a8f45be57bb98413425e4c7af "" + "/usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty" 1575499565 5766 13a9e8766c47f30327caf893ece86ac8 "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex" 1546728170 98047 c6fa29828cc60471827afe275c8bd77f "" + "/usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty" 1546638616 18060 8cf65af2c4529eed91b5d364b50d3ada "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg" 1568236792 1830 bbaba8afaf42cc048ec4d4ff73467521 "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty" 1568236792 80511 830f3f1d3ab7448dd84233e9c2f6462c "" + "/usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty" 1568236792 77022 32914f01b528131c47be2a1040d3856d "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex" 1565039202 19612 007f8469df07e9ef0f680e346cc01945 "" + "/usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex" 1565039202 7267 4d597b08b2429acaa1e526052d9509ed "" + "/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty" 1177890616 3878 6aa7c08ff2621006e0603349e40a30a8 "" + "/usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty" 1559339157 5486 a1d954b09782ba0acd8a8abfd98e1028 "" + "/usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty" 1485124581 14857 82c76ebe8f06becf69ab309565b2a0cb "" + "/usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty" 1575674318 6575 25396d208d8f2b9395d06ef315d5886c "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty" 1580249532 54071 88f1e37dc9e1f95352061a066ed07263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def" 1580249532 6418 197ed301e61ce5b7f446e70345a43a62 "" + "/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty" 1574631863 19963 36fd8e818f9f0f32e2db8413d4970122 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty" 1546728038 1090 d20f587ea9464d1841bd0d13d3ff9856 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty" 1288312291 410 5bf12ea7330e5f12c445332a4fe9a263 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty" 1546728038 21013 e98e1aaaf40d31632787c2bd25d24b57 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty" 1546728038 989 2cf3da8e8ec55131c49389428d565e37 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty" 1203877327 339 592cf35cba3d400082b8a9a5d0199d70 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty" 1393459310 306 0796eafca5e159e6ec2167a6d22d81b1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1393459310 443 0b2e781830192df35c0fd357cf13e26e "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty" 1393459310 348 8927fde343487e003b01a4c2ca34073b "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty" 1203727794 274 4cad6e665cc93ac2ac979039a94fa1e1 "" + "/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1203877327 325 2bcd023400636339210573e2b3ee298b "" + "/usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty" 1156702453 857 6c716f26c5eadfb81029fcd6ce2d45e6 "" + "/usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" + "/usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1575674187 9715 b051d5b493d9fe5f4bc251462d039e5f "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg" 1522098998 1015 662b4d7ad816b857a598284525f5c75e "" + "/usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls" 1522098998 28890 df75e6d37f47b7e27bff3f37375336b3 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty" 1580683321 12560 ce3f59ceae9d9a27bfe037d6bf1d903c "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty" 1580683321 10216 5efd55f2010055e7b7875afd6a75be82 "" + "/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty" 1580683321 4120 d1680a5ff60d0aea9c327e07c030f4e9 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd" 1137111002 492 e7f8afe4428797548d4301de03a1b15f "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd" 1137111002 329 6ac7e19535b9f1d64e4d8e3f77dc30a3 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd" 1137111002 312 11fe1916b0a13a81a05234a6fc7f8738 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd" 1137111002 1271 4e3afbd8e832f2f9c7f064894e6e68e4 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd" 1137111002 1242 cbf8a0d4f750f9833a0bfb05fb39f1cb "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty" 1206746551 50381 d367461010070c7a491b1f6979ab2062 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd" 1137111002 310 1b00b0b05685b816e4c6caccce437e0d "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd" 1137111002 334 87436a82076ca2e35cd305f852507afc "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd" 1137111002 310 cee07e4964749ccbc77d84fc49726a79 "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd" 1137111002 310 8c5467c8932c259af51b0f116c9734bd "" + "/usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd" 1137111002 310 4b5d6fe830337242ef847b3bff48ba21 "" + "/usr/share/texlive/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" + "/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty" 1463002160 55589 34128738f682d033422ca125f82e5d62 "" + "/usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty" 1417732693 4962 9c1069474ff71dbc47d5006555e352d3 "" + "/usr/share/texlive/texmf-dist/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/usr/share/texmf/web2c/texmf.cnf" 1581979058 38841 ce3692aa899bb693b90b87eaa5d4d84e "" + "/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map" 1619433582 4770781 1ed1abab22da9c3e2cc82e4db562318b "" + "/var/lib/texmf/web2c/pdftex/pdflatex.fmt" 1619433611 8255863 afe1ed795207f6401d11bafd6327aa55 "" + "algo_graph.aux" 1621585123 662 b2b94621371df8d9296b8bf5bec1b851 "pdflatex" + "algo_graph.out" 1621585122 0 d41d8cd98f00b204e9800998ecf8427e "pdflatex" + "algo_graph.tex" 1621585144 5895 0e03594e6e25b7f3671b72694de0d3f4 "" + (generated) + "algo_graph.out" + "algo_graph.pdf" + "algo_graph.aux" + "algo_graph.log" diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.fls b/buch/papers/multiplikation/tikz_formulas/algo_graph.fls new file mode 100644 index 0000000..bd1c14e --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.fls @@ -0,0 +1,485 @@ +PWD /home/nunigan/Documents/MSE/FS21/SeminarMatrizen/buch/papers/multiplikation/tikz_formulas +INPUT /etc/texmf/web2c/texmf.cnf +INPUT /usr/share/texmf/web2c/texmf.cnf +INPUT /usr/share/texlive/texmf-dist/web2c/texmf.cnf +INPUT /var/lib/texmf/web2c/pdftex/pdflatex.fmt +INPUT algo_graph.tex +OUTPUT algo_graph.log +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifluatex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xkeyval/xkeyval.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkeyval.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/xkvutils.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xkeyval/keyval.tex +INPUT /dev/null +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/standalone/standalone.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/article.cls +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/size10.clo +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty +INPUT /usr/share/texlive/texmf-dist/fonts/map/fontname/texfonts.map +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/psnfss/times.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amstext.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsgen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsbsy.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amsopn.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amssymb.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsfonts/amsfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/mathrsfs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amscls/amsthm.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/lipsum/lipsum.ltd.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/amsmath/amscd.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/txfonts.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xy.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrecat.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyidioms.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xydash10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyatip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybtip10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xybsql10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycirc10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/iftex/ifpdf.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyall.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycurve.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyframe.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycmtip.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xytips.tex +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xycmbt10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xyluat10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/xypic/xylubt10.tfm +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyline.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyrotate.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xycolor.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xymatrix.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xyarrow.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xygraph.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-co.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-cu.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-fr.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-li.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/xypic/xypdf-ro.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/paralist/paralist.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hyperref.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvsetkeys/kvsetkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/kvdefinekeys/kvdefinekeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pdfescape/pdfescape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hycolor/hycolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/letltxmacro/letltxmacro.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/auxhook/auxhook.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/pd1enc.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/intcalc/intcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/etexcmds/etexcmds.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/url/url.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bitset/bitset.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/atbegshi/atbegshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/hpdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/atveryend/atveryend.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/uniquecounter/uniquecounter.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/array.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarytopaths.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/carlisle/slashed.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pdfpages.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/base/ifthen.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/tools/calc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/eso-pic/eso-pic.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdfpages/pppdftex.def +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/cite/cite.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarymatrix.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarypositioning.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/aobs-tikz/tikzlibraryoverlay-beamer-styles.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/tikzlibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/matrix-skeleton/pgflibrarymatrix.skeleton.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryfit.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrarybackgrounds.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryautomata.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/shapes/pgflibraryshapes.multipart.code.tex +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/lstmisc.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/listings/listings.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/multirow/multirow.sty +INPUT algo_graph.aux +INPUT algo_graph.aux +OUTPUT algo_graph.aux +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omltxmi.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omstxsy.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/omxtxex.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxexa.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/t1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/ot1txr.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsya.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyb.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/jknapltx/ursfs.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs7.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxmia.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/tex/latex/txfonts/utxsyc.fd +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/hyperref/nameref.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/refcount/refcount.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT /usr/share/texlive/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty +INPUT algo_graph.out +INPUT algo_graph.out +INPUT algo_graph.out +INPUT algo_graph.out +INPUT ./algo_graph.out +INPUT ./algo_graph.out +OUTPUT algo_graph.out +OUTPUT algo_graph.pdf +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/pdflscape/pdflscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/tex/latex/graphics/lscape.sty +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs5.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/t1xr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsy.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txex.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsya.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyb.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/rsfs/rsfs10.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txmia.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txsyc.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/txexa.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txmi.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxmi.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmri.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/txr.vf +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxptmr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/tfm/public/txfonts/rtxr.tfm +INPUT /usr/share/texlive/texmf-dist/fonts/vf/public/txfonts/t1xr.vf +INPUT algo_graph.aux +INPUT ./algo_graph.out +INPUT ./algo_graph.out +INPUT /usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT /usr/share/texlive/texmf-dist/fonts/type1/public/txfonts/rtxr.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT /usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf b/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf new file mode 100755 index 0000000..7f5a984 Binary files /dev/null and b/buch/papers/multiplikation/tikz_formulas/algo_graph.pdf differ diff --git a/buch/papers/multiplikation/tikz_formulas/algo_graph.tex b/buch/papers/multiplikation/tikz_formulas/algo_graph.tex new file mode 100755 index 0000000..ad4228b --- /dev/null +++ b/buch/papers/multiplikation/tikz_formulas/algo_graph.tex @@ -0,0 +1,140 @@ +\documentclass[border=10pt]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture}[ampersand replacement=\&] + + \foreach \i in {1,...,4} + { + \small{ + \matrix (X\i)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (0,-\i*5) + { + A_{11}B_{11} \& A_{12}B_{11} \& A_{21}B_{11} \& A_{22}B_{11} \\ + A_{11}B_{21} \& A_{12}B_{21} \& A_{21}B_{21} \& A_{22}B_{21} \\ + A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ + A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ + };} + + \foreach \j in {1,...,7} + { + \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, + nodes = {draw, minimum size=10mm, + anchor=center, + inner sep=0pt, outer sep=0pt}, + column sep=-\pgflinewidth, + row sep=-\pgflinewidth, + ] at (\j*5,-\i*5) + { + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + \& \& \& \\ + }; + } + } + +\huge{ + \node at (-3,-20) {$C_{22}=$}; + \node at (-3,-15) {$C_{21}=$} ; + \node at (-3,-10) {$C_{12}=$} ; + \node at (-3,-5) {$C_{11}=$} ; + + \node at (5,-2) {I}; + \node at (10,-2) {II}; + \node at (15,-2) {III}; + \node at (20,-2) {IV}; + \node at (25,-2) {V}; + \node at (30,-2) {VI}; + \node at (35,-2) {VII}; + } + + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X1-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X2-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X3-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; +\end{tikzpicture} + + + +\end{document} -- cgit v1.2.1 From a4817013b542cd6aa1a0cd955806c82ac337dca6 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Wed, 28 Jul 2021 22:27:27 +0200 Subject: added corrections from prof mueller --- buch/papers/multiplikation/einlteung.tex | 20 +++--- buch/papers/multiplikation/images/bigo.pdf | Bin 24288 -> 26821 bytes buch/papers/multiplikation/images/bigo.tex | 36 ++++++----- buch/papers/multiplikation/images/strassen.pdf | Bin 15850 -> 19970 bytes buch/papers/multiplikation/images/strassen.tex | 14 ++--- buch/papers/multiplikation/loesungsmethoden.tex | 80 ++++++++++++------------ buch/papers/multiplikation/problemstellung.tex | 27 ++++---- buch/papers/multiplikation/references.bib | 20 ++++++ 8 files changed, 113 insertions(+), 84 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index bc4bfcf..ea71d91 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -17,14 +17,8 @@ Koeffizienten c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. \label{multiplikation:eq:MM} \end{equation} -Grafisch kann die Matrizenmultiplikation $AB=C$ wie in \ref{multiplikation:fig:mm_viz} visualisiert werden. -\begin{figure} - \center - \includegraphics[]{papers/multiplikation/images/mm_visualisation} - \caption{Matrizen Multiplikation} - \label{multiplikation:fig:mm_viz} -\end{figure} -Im Fall einer Matrizengr\"osse von $2\times 2$ +Grafisch kann die Matrizenmultiplikation $\mathbf{AB}=\mathbf{C}$ wie in \ref{multiplikation:fig:mm_viz} visualisiert werden. +Im Fall einer Matrizengr\"osse von $2\times 2$ kann die Matrixgleichung \begin{equation} \begin{bmatrix} A_{11} & A_{12}\\ @@ -40,7 +34,7 @@ C_{11} & C_{12}\\ C_{21} & C_{22} \end{bmatrix} \end{equation} -kann die Gleichung der einzelnen Terme +explizt als Gleichung \begin{equation} \label{multiplikation:eq:MM_exp} \begin{split} C_{11} &= A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ @@ -49,4 +43,10 @@ C_{21} &= A_{21} \cdot B_{11} + A_{22} \cdot B_{21}\\ C_{22} &= A_{21} \cdot B_{12} + A_{22} \cdot B_{22} \end{split} \end{equation} -explizit geschrieben werden. +der einzelnen Terme geschrieben werden. +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/mm_visualisation} + \caption{Matrizen Multiplikation} + \label{multiplikation:fig:mm_viz} +\end{figure} \ No newline at end of file diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf index dfa2ba4..a2599fa 100644 Binary files a/buch/papers/multiplikation/images/bigo.pdf and b/buch/papers/multiplikation/images/bigo.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex index e3293e4..71826f5 100644 --- a/buch/papers/multiplikation/images/bigo.tex +++ b/buch/papers/multiplikation/images/bigo.tex @@ -39,67 +39,73 @@ \begin{document} \begin{tikzpicture} + \begin{axis}[ - axis lines = left, + xmode=log, + ymode=log, + log ticks with fixed point, xlabel = $n$ (Data Input), ylabel = {$t$ (time)}, legend pos=north east, very thick, - ymax = 500, + grid=minor, + ymax = 100000, + ymin = 0.5, + xmin = 1, yticklabels=\empty, xticklabels=\empty, scale only axis=true, width=12cm, height=6cm, ] \addplot [ - domain= 1:20, + domain= 1:50, samples=100, color=red, ] {1}; \addlegendentry{$\mathcal{O}(1)$} \addplot [ - domain= 1:20, + domain= 1:50, samples=100, color=green, ] {x}; \addlegendentry{$\mathcal{O}(n)$} \addplot [ - domain= 1:20, + domain= 1:50, samples=100, color=blue, ] {x^2}; -\addlegendentry{$\mathcal{O}(n^2)$} +\addlegendentry{$\mathcal{O}\left(n^2\right)$} \addplot [ - domain= 1:10, + domain= 1:50, samples=100, color=purple, ] {x^3}; -\addlegendentry{$\mathcal{O}(n^3)$} +\addlegendentry{$\mathcal{O}\left(n^3\right)$} \addplot [ - domain= 1:10, + domain= 1:50, samples=100, color=black, ] -{exp(x)}; -\addlegendentry{$\mathcal{O}(e^n)$} +{exp(x) - 1.7}; +\addlegendentry{$\mathcal{O}\left(e^n\right)$} \addplot [ - domain= 1:20, + domain= 1:50, samples=100, color=orange, ] -{log2(x)}; +{log2(x)+1}; \addlegendentry{$\mathcal{O}(\log n)$} \addplot [ - domain= 1:20, + domain= 1:50, samples=100, color=gray, ] -{x*log2(x)}; +{x*log2(x)+1}; \addlegendentry{$\mathcal{O}(n \log n)$} \end{axis} \end{tikzpicture} diff --git a/buch/papers/multiplikation/images/strassen.pdf b/buch/papers/multiplikation/images/strassen.pdf index 9899dcb..a30fdaa 100644 Binary files a/buch/papers/multiplikation/images/strassen.pdf and b/buch/papers/multiplikation/images/strassen.pdf differ diff --git a/buch/papers/multiplikation/images/strassen.tex b/buch/papers/multiplikation/images/strassen.tex index 797772b..5cf39b4 100644 --- a/buch/papers/multiplikation/images/strassen.tex +++ b/buch/papers/multiplikation/images/strassen.tex @@ -81,13 +81,13 @@ \node at (-3,-10) {$C_{12}=$} ; \node at (-3,-5) {$C_{11}=$} ; - \node at (5,-2) {I}; - \node at (10,-2) {II}; - \node at (15,-2) {III}; - \node at (20,-2) {IV}; - \node at (25,-2) {V}; - \node at (30,-2) {VI}; - \node at (35,-2) {VII}; + \node at (5,-2) {P}; + \node at (10,-2) {Q}; + \node at (15,-2) {R}; + \node at (20,-2) {S}; + \node at (25,-2) {T}; + \node at (30,-2) {U}; + \node at (35,-2) {V}; } diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 83be814..8bdbf2c 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -4,16 +4,16 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{L\"osungsmethoden} -\rhead{L\"osungsmethoden} +\section{Algorithmen} +\rhead{Algorithmen} In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Libraries zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. \subsection{Standard Algorithmus} -Der Standard Methode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen werden. +Die Standardmethode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen werden. Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. -Die \texttt{For i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{For j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{For k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. +Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{for j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{for k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. \begin{algorithm}\caption{Matrix Multiplication} \label{multiplikation:alg:smm} @@ -39,16 +39,18 @@ Die \texttt{For i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, \end{algorithmic} \end{algorithm} -Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O}(n^3)$ +Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O}\left(n^3\right)$ \subsubsection{Divide and Conquer Methode} -F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze zu markant besseren Laufzeiten. -Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O}(n^2)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. +F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze \cite{multiplikation:DAC} zu markant besseren Laufzeiten. +Die Grundidee ist, dass ein Problem in mehrere, meist simplere und kleinere Teilprobleme aufgeteilt wird. +Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O}\left(n^2\right)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. -Zur vereinfachten Veranschaulichung kann die Situation, mit $\mathbf{A}$ und $\mathbf{B}$ der gr\"osse $2^n \times 2^n$ verwendet werden. -Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der gr\"osse $2^{n-1} \times 2^{n-1}$ +Zur vereinfachten Veranschaulichung kann die Situation mit $\mathbf{A}$ und $\mathbf{B}$ der Gr\"osse $2^n \times 2^n$ verwendet werden. +Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der Gr\"osse $2^{n-1} \times 2^{n-1}$ aufgeteilt. +Das Matrizen produklt \begin{equation} \mathbf{A}\mathbf{B}= \begin{bmatrix} @@ -64,11 +66,9 @@ Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen \mathbf{C}_{11} & \mathbf{C}_{12}\\ \mathbf{C}_{21} & \mathbf{C}_{22} \end{bmatrix} -\end{equation} -aufgeteilt. -Die Berechnung +\end{equation}, \begin{equation} -\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj} +\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj}. \label{multiplikation:eq:MM_block} \end{equation} ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, wobei hier f\"ur die Multiplikation die Matrizenmultiplikation verwendet wird. @@ -105,15 +105,11 @@ Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ \end{algorithmic} \end{algorithm} -Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} berechnet werden. -Ohne auf diesen vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe der Funktion die Laufzeit. +Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \cite{multiplikation:master_theorem} berechnet werden. Das \textit{Master Theorem} bestimmt die Zeitkomplexit\"at von rekursiven Algortihmen. +Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe der Funktion die Laufzeit. In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt \begin{equation} \label{multiplikation:eq:laufzeitdac} - \mathcal{T}(n) = - \begin{cases} - 1 & \text{if } n \leq 2\\ - 8 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 - \end{cases} = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}(n^{3}) + \mathcal{T}(n) = 8 \cdot \mathcal{T}\left (\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}\left (n^{3} \right ) \end{equation} zu einer kubischen Laufzeit. Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. @@ -122,20 +118,20 @@ In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung \subsection{Strassen's Algorithmus} -Strassen's Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen. -Die Grundlegenden Terme +Strassen's Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen von Blockmatrizen. +Die grundlegenden Terme \begin{equation} \label{multiplikation:eq:strassen} \begin{split} -\text{\textbf{P}} &= (\mathbf{A}_{11} + \mathbf{A}_{22}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{22}) \\ -\text{\textbf{Q}} &= (\mathbf{A}_{21} + \mathbf{A}_{22}) \cdot \mathbf{B}_{11} \\ -\text{\textbf{R}} &= \mathbf{A}_{11} \cdot (\mathbf{B}_{12}-\mathbf{B}_{22}) \\ -\text{\textbf{S}} &= \mathbf{A}_{22} \cdot (-\mathbf{B}_{11}+\mathbf{B}_{21}) \\ -\text{\textbf{T}} &= (\mathbf{A}_{11} + \mathbf{A}_{12}) \cdot \mathbf{B}_{22} \\ -\text{\textbf{U}} &= (-\mathbf{A}_{11} + \mathbf{A}_{21}) \cdot (\mathbf{B}_{11} + \mathbf{B}_{12}) \\ -\text{\textbf{V}} &= (\mathbf{A}_{12} - \mathbf{A}_{22}) \cdot (\mathbf{B}_{21} + \mathbf{B}_{22}) +\text{\textbf{P}} &= \left(\mathbf{A}_{11} + \mathbf{A}_{22}\right ) \cdot \left(\mathbf{B}_{11} + \mathbf{B}_{22}\right ) \\ +\text{\textbf{Q}} &= \left(\mathbf{A}_{21} + \mathbf{A}_{22}\right ) \cdot \mathbf{B}_{11} \\ +\text{\textbf{R}} &= \mathbf{A}_{11} \cdot \left(\mathbf{B}_{12}-\mathbf{B}_{22}\right ) \\ +\text{\textbf{S}} &= \mathbf{A}_{22} \cdot \left(-\mathbf{B}_{11}+\mathbf{B}_{21}\right ) \\ +\text{\textbf{T}} &= \left(\mathbf{A}_{11} + \mathbf{A}_{12}\right ) \cdot \mathbf{B}_{22} \\ +\text{\textbf{U}} &= \left(-\mathbf{A}_{11} + \mathbf{A}_{21}\right ) \cdot \left(\mathbf{B}_{11} + \mathbf{B}_{12}\right ) \\ +\text{\textbf{V}} &= \left(\mathbf{A}_{12} - \mathbf{A}_{22}\right ) \cdot \left(\mathbf{B}_{21} + \mathbf{B}_{22}\right ) \end{split} \end{equation} -aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Matrix $\mathbf{C}$ +aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Bl\"ocke \begin{equation} \label{multiplikation:eq:strassen2} \begin{split} \mathbf{C}_{11} &= \text{\textbf{P}} + \text{\textbf{S}} - \text{\textbf{T}} + \text{\textbf{V}} \\ @@ -144,7 +140,7 @@ aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Matrix $\math \mathbf{C}_{22} &= \text{\textbf{P}} + \text{\textbf{R}} - \text{\textbf{Q}} + \text{\textbf{U}} \end{split} \end{equation} -gebraucht. +der Matrix $\mathbf{C}$ gebraucht. \begin{algorithm}\caption{Strassen Matrix Multiplication} \label{multiplikation:alg:strassen} \setlength{\lineskip}{7pt} @@ -190,7 +186,11 @@ gebraucht. \EndFunction \end{algorithmic} \end{algorithm} -Strassens's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. +Strassen's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. +Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . +Die gr\"unen Felder auf der linken Seite, zeigen die addition welche f\"ur den dazugeh\"origen Term ben\"otigt wird. +Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \dotsb, V}$. +Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} @@ -202,17 +202,14 @@ Die Funktion wird sieben mal rekursiv aufgerufen. Dies f\"uhrt zu einer Laufzeit von \begin{equation} \label{multiplikation:eq:laufzeitstrassen} \mathcal{T}(n) = -\begin{cases} -1 & \text{if } n \leq 2\\ -7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 & \text{if } n > 2 -\end{cases} = \mathcal{O}(n^{\log_2 7}) = \mathcal{O}(n^{2.8074}) +7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 = \mathcal{O}\left(n^{\log_2 7}\right ) = \mathcal{O}\left(n^{2.8074} \right ) \end{equation} -und ist somit schneller als die Standard Methode. +und ist somit schneller als die Standardmethode. \subsection{Winograd's Algorithmus} -Ein weiterer Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. -Er zeigte einen neuen Algorithmus f\"ur das +Einen weiteren Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. +Er beschrieb einen neuen Algorithmus f\"ur das \begin{equation} \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i \end{equation} @@ -236,6 +233,7 @@ Das Skalarprodukt ist nun geben mit Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. + Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. Dies f\"uhrt zu \begin{equation} @@ -243,8 +241,8 @@ Dies f\"uhrt zu \end{equation} Multiplikationen. Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. -Was im Vergleich zu den $mpn$ Multiplikation der Standard Methode nur die H\"alfte ist. -Die Implementation kann im Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. +Was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. +Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. \begin{algorithm}\caption{Winograd Matrix Multiplication} \setlength{\lineskip}{7pt} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index b20a791..fed6a9f 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -6,24 +6,24 @@ \section{Problemstellung} \rhead{Problemstellung} Dank der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. -Das Ziel dieses Papers ist verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. -Wobei gezielt auf Algorithmen, welche das Problem schneller als der Standard Algorithmus L\"osen eingegangen wird. +Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. +Gezielt werden auf Algorithmen, welche das Problem schneller als der Standard Algorithmus L\"osen eingegangen. \subsection{Big $\mathcal{O}$ Notation} Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus \cite{multiplikation:bigo}. -$f(x) \in \mathcal{O}(g(x))$ besagt das die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. +$f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear - \item $f \in \mathcal{O}(n^2) \rightarrow f$ w\"achst quadratisch + \item $f \in \mathcal{O}\left (n^2 \right ) \rightarrow f$ w\"achst quadratisch \item $f \in \mathcal{O}(\log n) \rightarrow f$ w\"achst logarithmisch \item $f \in \mathcal{O}(n \log n) \rightarrow f$ hat super-lineares Wachstum - \item $f \in \mathcal{O}(e^n) \rightarrow f$ w\"achst exponentiell + \item $f \in \mathcal{O}\left (e^n \right ) \rightarrow f$ w\"achst exponentiell \item usw. \end{itemize} -In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die Verschiedenen Laufzeiten miteinander verglichen werden. +In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. \begin{figure} \center @@ -33,9 +33,11 @@ In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die Verschiedenen Laufze \end{figure} \subsubsection{Beispiel Algorithmen} + +Folgend einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklassen geh\"oren. \paragraph{Beschr\"ankter Algorithmus} -Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. +Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen einfluss auf die Laufzeit. \begin{algorithm}\caption{} \label{multiplikation:alg:b1} @@ -47,7 +49,7 @@ Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmu \end{algorithmic} \end{algorithm} -Wobei Konstanten nicht beachtet werden, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. +Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. \begin{algorithm}\caption{} \label{multiplikation:alg:b2} @@ -63,13 +65,14 @@ Wobei Konstanten nicht beachtet werden, der Algorithmus \ref{multiplikation:alg: \paragraph{Linearer Algorithmus} -Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares $\mathcal{O}(n)$ Verhalten. +Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares Verhalten. +Die \texttt{for}-Schleife wird $n$-mal durchgef\"hrt und f\"uhrt deshalb zu $\mathcal{O}(n)$. \begin{algorithm}\caption{} \setlength{\lineskip}{7pt} \begin{algorithmic} \label{multiplikation:alg:l1} - \Function{L}{$\mathbf{A}, \mathbf{B}$,n} + \Function{L}{$\mathbf{a}, \mathbf{b}$,n} \State $ sum \gets 0$ \For{$i = 0,1,2 \dots,n$} \State $ sum \gets sum + A[i] \cdot B[i] $ @@ -83,7 +86,9 @@ Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares $\mathcal{O}( \paragraph{Quadratischer Algorithmus} -Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches $\mathcal{O}(n^2)$ Verhalten. +Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. +Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchgef\"hrt und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. + \begin{algorithm}[H]\caption{} \label{multiplikation:alg:q1} diff --git a/buch/papers/multiplikation/references.bib b/buch/papers/multiplikation/references.bib index 9d76e8e..63cb976 100755 --- a/buch/papers/multiplikation/references.bib +++ b/buch/papers/multiplikation/references.bib @@ -63,3 +63,23 @@ month = {7}, day = {27} } + +@online{multiplikation:master_theorem, + title = {Master theorem (analysis of algorithms)}, + url = {https://en.wikipedia.org/wiki/Master_theorem_(analysis_of_algorithms)}, + date = {2021-07-28}, + year = {2021}, + month = {7}, + day = {28} +} + + +@online{multiplikation:DAC, + title = {Divide-and-conquer algorithm}, + url = {https://en.wikipedia.org/wiki/Divide-and-conquer_algorithm}, + date = {2021-07-28}, + year = {2021}, + month = {7}, + day = {28} +} + -- cgit v1.2.1 From 31b66acba16f525d41c42094601ade8afb3fd549 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Sat, 31 Jul 2021 21:36:30 +0200 Subject: updare --- buch/papers/multiplikation/images/bigo.pdf | Bin 26821 -> 27173 bytes buch/papers/multiplikation/images/bigo.tex | 12 +++++------- buch/papers/multiplikation/loesungsmethoden.tex | 8 ++++---- buch/papers/multiplikation/problemstellung.tex | 6 +++--- 4 files changed, 12 insertions(+), 14 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf index a2599fa..c29a891 100644 Binary files a/buch/papers/multiplikation/images/bigo.pdf and b/buch/papers/multiplikation/images/bigo.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex index 71826f5..a415ccb 100644 --- a/buch/papers/multiplikation/images/bigo.tex +++ b/buch/papers/multiplikation/images/bigo.tex @@ -41,17 +41,15 @@ \begin{tikzpicture} \begin{axis}[ - xmode=log, - ymode=log, - log ticks with fixed point, + xmode=log, ymode=log, + xmin=1e-0, xmax=5e1, + ymin=10e-1, ymax=1e7, + grid=both, + major grid style={black!50}, xlabel = $n$ (Data Input), ylabel = {$t$ (time)}, legend pos=north east, very thick, - grid=minor, - ymax = 100000, - ymin = 0.5, - xmin = 1, yticklabels=\empty, xticklabels=\empty, scale only axis=true, diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 8bdbf2c..7ee0b6e 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -65,13 +65,13 @@ Das Matrizen produklt \begin{bmatrix} \mathbf{C}_{11} & \mathbf{C}_{12}\\ \mathbf{C}_{21} & \mathbf{C}_{22} -\end{bmatrix} -\end{equation}, +\end{bmatrix}, +\end{equation} \begin{equation} -\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj}. +\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj} \label{multiplikation:eq:MM_block} \end{equation} -ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, wobei hier f\"ur die Multiplikation die Matrizenmultiplikation verwendet wird. +ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation wird die Matrizenmultiplikation verwendet. Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index fed6a9f..2688f27 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -34,7 +34,7 @@ In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufze \subsubsection{Beispiel Algorithmen} -Folgend einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklassen geh\"oren. +Folgend einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden kann. \paragraph{Beschr\"ankter Algorithmus} Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen einfluss auf die Laufzeit. @@ -66,7 +66,7 @@ Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\ \paragraph{Linearer Algorithmus} Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares Verhalten. -Die \texttt{for}-Schleife wird $n$-mal durchgef\"hrt und f\"uhrt deshalb zu $\mathcal{O}(n)$. +Die \texttt{for}-Schleife wird $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}(n)$. \begin{algorithm}\caption{} \setlength{\lineskip}{7pt} @@ -87,7 +87,7 @@ Die \texttt{for}-Schleife wird $n$-mal durchgef\"hrt und f\"uhrt deshalb zu $\ma \paragraph{Quadratischer Algorithmus} Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. -Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchgef\"hrt und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. +Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchglaufen und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. \begin{algorithm}[H]\caption{} -- cgit v1.2.1 From 28efadd162ae3d48c04276da8e971155921d5812 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Sun, 1 Aug 2021 22:50:04 +0200 Subject: update --- buch/papers/multiplikation/code/MM.py | 23 +++++----- buch/papers/multiplikation/code/meas_1024.pdf | Bin 17660 -> 17653 bytes buch/papers/multiplikation/code/meas_1024.txt | 10 ++--- buch/papers/multiplikation/code/meas_128.pdf | Bin 17961 -> 18120 bytes buch/papers/multiplikation/code/meas_128.txt | 10 ++--- buch/papers/multiplikation/code/meas_256.pdf | Bin 18067 -> 19428 bytes buch/papers/multiplikation/code/meas_256.txt | 10 ++--- buch/papers/multiplikation/code/meas_32.pdf | Bin 17078 -> 17964 bytes buch/papers/multiplikation/code/meas_32.txt | 10 ++--- buch/papers/multiplikation/code/meas_64.pdf | Bin 17678 -> 17747 bytes buch/papers/multiplikation/code/meas_64.txt | 10 ++--- buch/papers/multiplikation/loesungsmethoden.tex | 53 +++++++++++++++++++++++- buch/papers/multiplikation/main.tex | 22 ++++++++++ buch/papers/multiplikation/references.bib | 17 ++++++++ 14 files changed, 127 insertions(+), 38 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py index 626b82d..352771f 100644 --- a/buch/papers/multiplikation/code/MM.py +++ b/buch/papers/multiplikation/code/MM.py @@ -174,10 +174,11 @@ def test_perfomance(n): plt.plot(n, t_mm_strassen, label='Strassen', lw=5) plt.plot(n, t_wino, label='Winograd', lw=5) plt.plot(n, t_np, label='NumPy A@B', lw=5) + plt.xscale('log', base=2) plt.legend() plt.xlabel("n") plt.ylabel("time (s)") - plt.grid(True) + plt.grid(True, which="both", ls="-") plt.tight_layout() # plt.yscale('log') plt.legend(fontsize=19) @@ -198,7 +199,7 @@ def plot(num): plt.plot(n, t_mm, label='3 For Loops', lw=5) plt.plot(n, t_mm_dc, label='Divide and Conquer', lw=5) plt.plot(n, t_mm_strassen, label='Strassen', lw=5) - # plt.plot(n, t_wino, label='Winograd', lw=5) + plt.plot(n, t_wino, label='Winograd', lw=5) plt.plot(n, t_np, label='NumPy A@B', lw=5) plt.legend() plt.xlabel("n") @@ -275,22 +276,22 @@ def plot_c_res(ave, num): # test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if __name__ == '__main__': - plot_c_res(1, 4096) + # plot_c_res(1, 4096) # plot(8) - # n = np.logspace(1,10,10,base=2,dtype=(np.int)) + n = np.logspace(1,8,8,base=2,dtype=(np.int)) # n = np.arange(1,50,2) - A = np.random.randint(-10, 10, (5,3)) - B = np.random.randint(-10, 10, (3,5)) + # A = np.random.randint(-10, 6, (5,3)) + # B = np.random.randint(-10, 6, (3,5)) - C = winograd2(A, B) - C_test = A@B - print(C) - print(C_test) + # C = winograd2(A, B) + # C_test = A@B + # print(C) + # print(C_test) # print(np.equal(C, C_test)) - # t_np = test_perfomance(n) + t_np = test_perfomance(n) # C = strassen(A, B) # C_test = A@B diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf index fd0a108..7b7a133 100644 Binary files a/buch/papers/multiplikation/code/meas_1024.pdf and b/buch/papers/multiplikation/code/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/meas_1024.txt b/buch/papers/multiplikation/code/meas_1024.txt index c5ce619..ab507a2 100644 --- a/buch/papers/multiplikation/code/meas_1024.txt +++ b/buch/papers/multiplikation/code/meas_1024.txt @@ -1,6 +1,6 @@ 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 5.120000000000000000e+02 1.024000000000000000e+03 -1.502037048339843750e-05 6.628036499023437500e-05 4.780292510986328125e-04 2.713203430175781250e-03 2.115225791931152344e-02 1.758832931518554688e-01 1.338865518569946289e+00 1.009106445312500000e+01 8.192077994346618652e+01 7.835870332717895508e+02 -6.675720214843750000e-06 7.200241088867187500e-05 5.540847778320312500e-04 3.144979476928710938e-03 2.545046806335449219e-02 2.083067893981933594e-01 1.659256219863891602e+00 1.319160294532775879e+01 1.046767003536224365e+02 9.679818902015686035e+02 -1.668930053710937500e-05 1.628398895263671875e-04 7.648468017578125000e-04 4.426956176757812500e-03 2.922415733337402344e-02 1.800994873046875000e-01 1.286747694015502930e+00 9.412034273147583008e+00 6.263725924491882324e+01 4.427414393424987793e+02 -2.408027648925781250e-05 8.463859558105468750e-05 4.761219024658203125e-04 2.339839935302734375e-03 1.682758331298828125e-02 1.299476623535156250e-01 1.048770904541015625e+00 8.114667415618896484e+00 6.373566389083862305e+01 6.489995403289794922e+02 -1.573562622070312500e-05 7.152557373046875000e-06 7.152557373046875000e-06 2.074241638183593750e-05 5.388259887695312500e-05 6.365776062011718750e-05 3.257751464843750000e-03 1.396179199218750000e-03 3.274917602539062500e-03 2.186250686645507812e-02 +1.859664916992187500e-05 8.296966552734375000e-05 5.471706390380859375e-04 3.053665161132812500e-03 2.407431602478027344e-02 1.868948936462402344e-01 1.563691616058349609e+00 1.100623321533203125e+01 8.547679090499877930e+01 7.507572824954986572e+02 +8.106231689453125000e-06 9.012222290039062500e-05 7.290840148925781250e-04 4.970788955688476562e-03 2.718997001647949219e-02 2.652802467346191406e-01 1.777865171432495117e+00 1.327002429962158203e+01 1.053971357345581055e+02 8.473208103179931641e+02 +2.098083496093750000e-05 1.742839813232421875e-04 9.438991546630859375e-04 4.754066467285156250e-03 4.852557182312011719e-02 2.204136848449707031e-01 1.447179555892944336e+00 9.938656568527221680e+00 6.396102952957153320e+01 4.614939928054809570e+02 +2.789497375488281250e-05 1.049041748046875000e-04 5.528926849365234375e-04 4.555702209472656250e-03 1.871442794799804688e-02 1.530685424804687500e-01 1.194762229919433594e+00 8.298985958099365234e+00 6.836994743347167969e+01 5.373736469745635986e+02 +1.835823059082031250e-05 7.867813110351562500e-06 1.001358032226562500e-05 5.412101745605468750e-05 4.267692565917968750e-05 1.184940338134765625e-04 2.441406250000000000e-04 6.957054138183593750e-04 2.217054367065429688e-03 1.880884170532226562e-02 diff --git a/buch/papers/multiplikation/code/meas_128.pdf b/buch/papers/multiplikation/code/meas_128.pdf index ed1ec63..c54648f 100644 Binary files a/buch/papers/multiplikation/code/meas_128.pdf and b/buch/papers/multiplikation/code/meas_128.pdf differ diff --git a/buch/papers/multiplikation/code/meas_128.txt b/buch/papers/multiplikation/code/meas_128.txt index 976bbdf..f3a5beb 100644 --- a/buch/papers/multiplikation/code/meas_128.txt +++ b/buch/papers/multiplikation/code/meas_128.txt @@ -1,6 +1,6 @@ 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 -1.978874206542968750e-05 1.134872436523437500e-04 4.298686981201171875e-04 2.815246582031250000e-03 2.616596221923828125e-02 1.767718791961669922e-01 1.293319463729858398e+00 -6.675720214843750000e-06 1.251697540283203125e-04 4.818439483642578125e-04 3.490447998046875000e-03 2.465796470642089844e-02 2.014584541320800781e-01 1.630620479583740234e+00 -2.408027648925781250e-05 2.126693725585937500e-04 1.172780990600585938e-03 4.364490509033203125e-03 3.148293495178222656e-02 2.010228633880615234e-01 1.429297924041748047e+00 -2.932548522949218750e-05 1.466274261474609375e-04 4.270076751708984375e-04 2.837419509887695312e-03 1.723575592041015625e-02 1.308519840240478516e-01 1.015527009963989258e+00 -3.337860107421875000e-05 1.096725463867187500e-05 9.536743164062500000e-06 3.600120544433593750e-05 2.837181091308593750e-05 5.912780761718750000e-05 1.981019973754882812e-03 +1.239776611328125000e-05 5.507469177246093750e-05 3.888607025146484375e-04 2.762079238891601562e-03 2.097773551940917969e-02 1.672370433807373047e-01 1.410297393798828125e+00 +5.483627319335937500e-06 5.888938903808593750e-05 3.871917724609375000e-04 3.364324569702148438e-03 2.481031417846679688e-02 2.047052383422851562e-01 1.712310314178466797e+00 +1.358985900878906250e-05 1.189708709716796875e-04 6.430149078369140625e-04 5.586385726928710938e-03 3.101944923400878906e-02 1.874091625213623047e-01 1.327976465225219727e+00 +1.978874206542968750e-05 7.224082946777343750e-05 4.618167877197265625e-04 3.294944763183593750e-03 1.755571365356445312e-02 1.360688209533691406e-01 1.028253555297851562e+00 +1.215934753417968750e-05 5.722045898437500000e-06 2.074241638183593750e-05 4.339218139648437500e-05 2.813339233398437500e-05 5.292892456054687500e-05 1.921653747558593750e-04 diff --git a/buch/papers/multiplikation/code/meas_256.pdf b/buch/papers/multiplikation/code/meas_256.pdf index 5f049dc..4ca7102 100644 Binary files a/buch/papers/multiplikation/code/meas_256.pdf and b/buch/papers/multiplikation/code/meas_256.pdf differ diff --git a/buch/papers/multiplikation/code/meas_256.txt b/buch/papers/multiplikation/code/meas_256.txt index 15035c6..2ca4447 100644 --- a/buch/papers/multiplikation/code/meas_256.txt +++ b/buch/papers/multiplikation/code/meas_256.txt @@ -1,6 +1,6 @@ 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 -1.049041748046875000e-05 5.340576171875000000e-05 5.936622619628906250e-04 2.707719802856445312e-03 2.246093750000000000e-02 1.631326675415039062e-01 1.335460901260375977e+00 1.052024245262145996e+01 -4.768371582031250000e-06 5.531311035156250000e-05 8.208751678466796875e-04 3.099203109741210938e-03 2.490711212158203125e-02 2.070860862731933594e-01 1.739669799804687500e+00 1.384817218780517578e+01 -1.478195190429687500e-05 1.132488250732421875e-04 5.970001220703125000e-04 3.906726837158203125e-03 3.041696548461914062e-02 2.000186443328857422e-01 1.392681598663330078e+00 9.388872385025024414e+00 -1.716613769531250000e-05 6.866455078125000000e-05 5.314350128173828125e-04 2.688407897949218750e-03 1.695108413696289062e-02 1.297233104705810547e-01 1.087257385253906250e+00 8.699601650238037109e+00 -2.336502075195312500e-05 4.529953002929687500e-06 8.106231689453125000e-06 4.291534423828125000e-05 6.008148193359375000e-05 8.988380432128906250e-05 1.647472381591796875e-04 4.460811614990234375e-04 +1.096725463867187500e-05 5.531311035156250000e-05 3.712177276611328125e-04 2.662897109985351562e-03 2.111244201660156250e-02 1.660463809967041016e-01 1.280746459960937500e+00 1.149287748336791992e+01 +5.483627319335937500e-06 5.745887756347656250e-05 4.055500030517578125e-04 3.203868865966796875e-03 2.503871917724609375e-02 2.148163318634033203e-01 1.655935287475585938e+00 1.472915720939636230e+01 +1.335144042968750000e-05 1.153945922851562500e-04 6.134510040283203125e-04 3.850460052490234375e-03 2.817606925964355469e-02 1.827111244201660156e-01 1.277473211288452148e+00 9.337273359298706055e+00 +1.907348632812500000e-05 9.274482727050781250e-05 3.526210784912109375e-04 2.403974533081054688e-03 1.725149154663085938e-02 1.314754486083984375e-01 1.121860027313232422e+00 8.884316682815551758e+00 +3.147125244140625000e-05 6.675720214843750000e-06 4.768371582031250000e-06 7.867813110351562500e-06 2.574920654296875000e-05 5.888938903808593750e-05 2.071857452392578125e-04 6.518363952636718750e-04 diff --git a/buch/papers/multiplikation/code/meas_32.pdf b/buch/papers/multiplikation/code/meas_32.pdf index 94c3731..b926095 100644 Binary files a/buch/papers/multiplikation/code/meas_32.pdf and b/buch/papers/multiplikation/code/meas_32.pdf differ diff --git a/buch/papers/multiplikation/code/meas_32.txt b/buch/papers/multiplikation/code/meas_32.txt index afdb6d5..0fdc18d 100644 --- a/buch/papers/multiplikation/code/meas_32.txt +++ b/buch/papers/multiplikation/code/meas_32.txt @@ -1,6 +1,6 @@ 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 -1.215934753417968750e-05 5.459785461425781250e-05 3.700256347656250000e-04 3.249406814575195312e-03 1.996850967407226562e-02 -4.529953002929687500e-06 5.650520324707031250e-05 4.577636718750000000e-04 4.029273986816406250e-03 2.444481849670410156e-02 -1.311302185058593750e-05 1.165866851806640625e-04 6.275177001953125000e-04 4.323244094848632812e-03 2.624726295471191406e-02 -1.835823059082031250e-05 6.890296936035156250e-05 3.914833068847656250e-04 2.423048019409179688e-03 1.761770248413085938e-02 -1.263618469238281250e-05 5.006790161132812500e-06 5.960464477539062500e-06 1.144409179687500000e-05 3.600120544433593750e-05 +1.239776611328125000e-05 5.507469177246093750e-05 3.802776336669921875e-04 2.795457839965820312e-03 2.073740959167480469e-02 +5.006790161132812500e-06 5.841255187988281250e-05 3.988742828369140625e-04 3.505229949951171875e-03 2.511668205261230469e-02 +1.335144042968750000e-05 1.149177551269531250e-04 6.387233734130859375e-04 4.088878631591796875e-03 2.969408035278320312e-02 +1.955032348632812500e-05 8.058547973632812500e-05 3.998279571533203125e-04 2.514839172363281250e-03 1.842117309570312500e-02 +1.215934753417968750e-05 8.583068847656250000e-06 6.675720214843750000e-06 2.694129943847656250e-05 2.789497375488281250e-05 diff --git a/buch/papers/multiplikation/code/meas_64.pdf b/buch/papers/multiplikation/code/meas_64.pdf index 3a90949..92af29b 100644 Binary files a/buch/papers/multiplikation/code/meas_64.pdf and b/buch/papers/multiplikation/code/meas_64.pdf differ diff --git a/buch/papers/multiplikation/code/meas_64.txt b/buch/papers/multiplikation/code/meas_64.txt index ae6ff9b..b4fc7a1 100644 --- a/buch/papers/multiplikation/code/meas_64.txt +++ b/buch/papers/multiplikation/code/meas_64.txt @@ -1,6 +1,6 @@ 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 -1.645088195800781250e-05 7.295608520507812500e-05 3.807544708251953125e-04 2.672195434570312500e-03 2.010774612426757812e-02 1.662156581878662109e-01 -7.390975952148437500e-06 7.843971252441406250e-05 4.265308380126953125e-04 3.107070922851562500e-03 2.457642555236816406e-02 2.122807502746582031e-01 -1.931190490722656250e-05 1.568794250488281250e-04 7.593631744384765625e-04 3.937005996704101562e-03 3.596329689025878906e-02 2.131938934326171875e-01 -2.622604370117187500e-05 9.226799011230468750e-05 3.504753112792968750e-04 2.469539642333984375e-03 1.652932167053222656e-02 1.281068325042724609e-01 -1.788139343261718750e-05 7.152557373046875000e-06 6.914138793945312500e-06 1.120567321777343750e-05 2.884864807128906250e-05 6.914138793945312500e-05 +2.145767211914062500e-05 6.175041198730468750e-05 4.422664642333984375e-04 3.235816955566406250e-03 2.289748191833496094e-02 1.855163574218750000e-01 +1.025199890136718750e-05 6.341934204101562500e-05 5.202293395996093750e-04 3.566026687622070312e-03 3.026723861694335938e-02 2.312932014465332031e-01 +2.384185791015625000e-05 1.807212829589843750e-04 6.821155548095703125e-04 4.796504974365234375e-03 2.968001365661621094e-02 2.291278839111328125e-01 +3.504753112792968750e-05 1.106262207031250000e-04 4.322528839111328125e-04 2.696514129638671875e-03 2.188420295715332031e-02 1.477701663970947266e-01 +3.218650817871093750e-05 1.144409179687500000e-05 7.390975952148437500e-06 4.625320434570312500e-05 3.814697265625000000e-05 5.435943603515625000e-05 diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 7ee0b6e..0f6aa6b 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -295,9 +295,58 @@ Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen \end{algorithmic} \end{algorithm} -\subsection{Weitere Algorithmen} +\subsection{Basic Linear Algebra Subprograms (BLAS)} + +die gebr\"uchlichen Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subrutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. +Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. + +\textit{BLAS} sind dabei in drei unterschiedliche Levels aufgeteilt. + +\begin{itemize} + \item Level 1 + \begin{itemize} + \item Operationen der Art: $\mathbf{y} \leftarrow \alpha \mathbf{x}+\mathbf{y}$ + \item Dieses Level hat $\mathcal{O}(n)$ karakteristik + \end{itemize} + \item Level 2 + \begin{itemize} + \item Operationen der Art: $\mathbf{y} \leftarrow \alpha \mathbf{A}\mathbf{x}+\beta \mathbf{y}$ + \item Dieses Level hat $\mathcal{O}\left(n^2\right)$ karakteristik + \end{itemize} + \item Level 3 + \begin{itemize} + \item Operationen der Art: $\mathbf{C} \leftarrow \alpha \mathbf{A}\mathbf{B}+\beta\mathbf{C}$ + \item Dieses Level hat $\mathcal{O}\left(n^3\right)$ karakteristik + \end{itemize} +\end{itemize} + +Die \textit{BLAS} sind auf die modernen Computer Prozessoren optimiert und k\"onnen dank einer ausgek\"ugelter Verwedung der Speicher Architektur zur erheblichen Leistungoprimierung f\"uhren. + + +\subsubsection{General Matrix Multiplication (GEMM)} + +Die \textit{Double-GEMM} ist in \cite{multiplikation:DGEMM} definiert als: + +\textit{DGEMM performs one of the matrix-matrix operations} +$$ + C := \alpha \cdot op( A )\cdot op( B ) + \beta \cdot C, + $$ + \textit{where op( X ) is one of} +$$ +op( X ) = X \quad \text{ or } \quad op( X ) = X^T, +$$ + \textit{alpha and beta are scalars, and A, B and C are matrices, with op( A ) + an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. + } + +Die Implementaion von $\alpha\mathbf{A}\mathbf{B} + \beta \mathbf{C} = \mathbf{C}$, wobei $\alpha = 1.0$ und $\beta = 0.0$ in der \texttt{C}-Version von \textit{BLAS}, ist als +\begin{lstlisting}[style=multiplikationC] +cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, + m, n, k, 1, A, m , B, k, 0, C, m); +\end{lstlisting} +definiert. + -\textcolor{red}{TODO: BLAS} \section{Implementation} \rhead{Implementation} diff --git a/buch/papers/multiplikation/main.tex b/buch/papers/multiplikation/main.tex index 8d0a8df..fb1908e 100755 --- a/buch/papers/multiplikation/main.tex +++ b/buch/papers/multiplikation/main.tex @@ -4,6 +4,28 @@ % % (c) 2021 Hochschule Rapperswil % +\definecolor{mygreen}{RGB}{28,172,0} % color values Red, Green, Blue +\definecolor{mylilas}{RGB}{170,55,241} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} +\lstdefinestyle{multiplikationC}{ + numbers=left, + belowcaptionskip=1\baselineskip, + breaklines=true, + frame=l, + framerule=0pt, + framesep=-1pt, + xleftmargin=1em, + language=C, + showstringspaces=false, + basicstyle=\ttfamily, + keywordstyle=\bfseries\color{green!40!black}, + commentstyle=\itshape\color{purple!40!black}, + identifierstyle=\color{blue}, + stringstyle=\color{red}, + numberstyle=\ttfamily\tiny, + backgroundcolor=\color{backcolour} +} + \chapter{Schnelle Matrizen Multiplikation\label{chapter:multiplikation}} \lhead{FMM} \begin{refsection} diff --git a/buch/papers/multiplikation/references.bib b/buch/papers/multiplikation/references.bib index 63cb976..8815386 100755 --- a/buch/papers/multiplikation/references.bib +++ b/buch/papers/multiplikation/references.bib @@ -83,3 +83,20 @@ day = {28} } +@online{multiplikation:BLAS, + title = {BLAS (Basic Linear Algebra Subprograms)}, + url = {http://www.netlib.org/blas/}, + date = {2021-08-01}, + year = {2021}, + month = {8}, + day = {01} +} + +@online{multiplikation:DGEMM, + title = {DGEMM}, + url = {http://www.netlib.org/lapack/explore-html/d1/d54/group__double__blas__level3_gaeda3cbd99c8fb834a60a6412878226e1.html#gaeda3cbd99c8fb834a60a6412878226e1}, + date = {2021-08-01}, + year = {2021}, + month = {8}, + day = {01} +} -- cgit v1.2.1 From 11264adfdeba52738aa6ee7a96958936a20d4984 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Mon, 2 Aug 2021 08:14:39 +0200 Subject: update --- buch/papers/multiplikation/loesungsmethoden.tex | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 7ee0b6e..8e3369d 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -131,7 +131,7 @@ Die grundlegenden Terme \text{\textbf{V}} &= \left(\mathbf{A}_{12} - \mathbf{A}_{22}\right ) \cdot \left(\mathbf{B}_{21} + \mathbf{B}_{22}\right ) \end{split} \end{equation} -aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Bl\"ocke +aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Bl\"ocke \begin{equation} \label{multiplikation:eq:strassen2} \begin{split} \mathbf{C}_{11} &= \text{\textbf{P}} + \text{\textbf{S}} - \text{\textbf{T}} + \text{\textbf{V}} \\ @@ -187,10 +187,10 @@ der Matrix $\mathbf{C}$ gebraucht. \end{algorithmic} \end{algorithm} Strassen's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. -Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . +Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . Die gr\"unen Felder auf der linken Seite, zeigen die addition welche f\"ur den dazugeh\"origen Term ben\"otigt wird. Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \dotsb, V}$. -Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. +Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} @@ -303,5 +303,23 @@ Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen \rhead{Implementation} \textcolor{red}{TODO: messresultate} +Folgende Algorithmen wurden jweiles in \texttt{C} und \texttt{Python} implementiert. +\begin{itemize} + \item Standard Matrizenmultiplikation + \item \textit{Devide and Conquer} Matrizenmultiplikation + \item Strassen's Matrizenmultiplikation + \item Winograd's Matrizenmultiplikation + \item \texttt{CBLAS} Matrizenmultiplikation in \texttt{C} + \item \texttt{Numpy} Matrizenmultiplikation in \texttt{Python} +\end{itemize} + \section{Fazit} \rhead{Fazit} + +Wie man in \textcolor{red}{hyperlink Messresultate} gesehen haben, sind die geziegten Algorithmen, trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. +Einen optimierten Speicherzugriff hat einen weitaus grösseren Einfluss auf die Laufzeit als die Zeitkomplexität des Algorithmus. + +Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. +Nicht auf jeden Computersystemen können die \textit{BLAS} angewandt werden. +Denke man an sehr keleine Mikrocontroller ohne Floatingpoint Recheneinhieten oder auch an \textit{Field Programmable Gate Arrays (FPGA's)}. +Sobland sehr grosse Matrizen multipliziert werden müssen und eine Addition in weniger Taktzyklen als eine Multiplikation durcheführt werden kann, können die gezeigten Algorithmen von Vorteil sein. -- cgit v1.2.1 From f96b0b2b66fe215a9e471eec44c58f4de11c7c0b Mon Sep 17 00:00:00 2001 From: Nunigan Date: Mon, 2 Aug 2021 22:49:09 +0200 Subject: update --- buch/papers/multiplikation/code/MM | Bin 26848 -> 26848 bytes buch/papers/multiplikation/code/MM.c | 2 +- buch/papers/multiplikation/code/MM.py | 23 ++--- buch/papers/multiplikation/code/c_matrix.h | 114 +++++++++++----------- buch/papers/multiplikation/code/c_meas_4096.pdf | Bin 15865 -> 17400 bytes buch/papers/multiplikation/code/meas/MM.txt | 20 ++-- buch/papers/multiplikation/code/meas/MM_dc.txt | 24 ++--- buch/papers/multiplikation/code/meas/blas.txt | 16 +-- buch/papers/multiplikation/code/meas/strassen.txt | 18 ++-- buch/papers/multiplikation/code/meas/winograd.txt | 15 +-- buch/papers/multiplikation/code/meas_1024.pdf | Bin 17653 -> 18813 bytes buch/papers/multiplikation/code/meas_256.pdf | Bin 19428 -> 17715 bytes buch/papers/multiplikation/code/meas_256.txt | 10 +- buch/papers/multiplikation/images/c_meas_4096.pdf | Bin 0 -> 15865 bytes buch/papers/multiplikation/images/meas_1024.pdf | Bin 0 -> 18813 bytes buch/papers/multiplikation/loesungsmethoden.tex | 16 +++ 16 files changed, 138 insertions(+), 120 deletions(-) create mode 100644 buch/papers/multiplikation/images/c_meas_4096.pdf create mode 100644 buch/papers/multiplikation/images/meas_1024.pdf (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/code/MM b/buch/papers/multiplikation/code/MM index f07985f..d52dda4 100755 Binary files a/buch/papers/multiplikation/code/MM and b/buch/papers/multiplikation/code/MM differ diff --git a/buch/papers/multiplikation/code/MM.c b/buch/papers/multiplikation/code/MM.c index 04c4dab..a897d4f 100755 --- a/buch/papers/multiplikation/code/MM.c +++ b/buch/papers/multiplikation/code/MM.c @@ -31,7 +31,7 @@ int main() { run_algo(strassen, "strassen",0); run_algo(MM, "MM", 0); - // run_algo(winograd, "winograd", 0); + run_algo(winograd, "winograd", 0); run_algo_cblas(0); return 0; diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py index 352771f..ee6f598 100644 --- a/buch/papers/multiplikation/code/MM.py +++ b/buch/papers/multiplikation/code/MM.py @@ -174,7 +174,7 @@ def test_perfomance(n): plt.plot(n, t_mm_strassen, label='Strassen', lw=5) plt.plot(n, t_wino, label='Winograd', lw=5) plt.plot(n, t_np, label='NumPy A@B', lw=5) - plt.xscale('log', base=2) + # plt.xscale('log', base=2) plt.legend() plt.xlabel("n") plt.ylabel("time (s)") @@ -203,6 +203,7 @@ def plot(num): plt.plot(n, t_np, label='NumPy A@B', lw=5) plt.legend() plt.xlabel("n") + # plt.yscale('log', base=10) plt.ylabel("time (s)") plt.grid(True) plt.tight_layout() @@ -213,7 +214,7 @@ def plot(num): def plot_c_res(ave, num): MM = np.loadtxt("meas/MM.txt", delimiter=',') - # winograd = np.loadtxt("meas/winograd.txt", delimiter=',') + winograd = np.loadtxt("meas/winograd.txt", delimiter=',') blas = np.loadtxt("meas/blas.txt", delimiter=',') MM_dc = np.loadtxt("meas/MM_dc.txt", delimiter=',') strassen = np.loadtxt("meas/strassen.txt", delimiter=',') @@ -233,10 +234,10 @@ def plot_c_res(ave, num): strassen_t = np.mean(strassen_t.reshape(-1,ave),axis=1) strassen_n = np.mean(strassen_n.reshape(-1,ave),axis=1) - # winograd_t = winograd[:,0] - # winograd_n = winograd[:,1] - # winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1) - # winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1) + winograd_t = winograd[:,0] + winograd_n = winograd[:,1] + winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1) + winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1) blas_t = blas[:,0] blas_n = blas[:,1] @@ -256,7 +257,7 @@ def plot_c_res(ave, num): plt.rc('xtick', labelsize=23) plt.rc('ytick', labelsize=23) plt.plot(MM_n, MM_t, label='3 For Loops', lw=5) - # plt.plot(winograd_n, winograd_t, label='Winograd MM', lw=5) + plt.plot(winograd_n, winograd_t, label='Winograd MM', lw=5) plt.plot(blas_n, blas_t, label='Blas', lw=5) plt.plot(strassen_n, strassen_t, label='Strassen', lw=5) plt.plot(MM_dc_n, MM_dc_t, label='Divide and Conquer', lw=5) @@ -276,11 +277,11 @@ def plot_c_res(ave, num): # test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if __name__ == '__main__': - # plot_c_res(1, 4096) + plot_c_res(1, 4096) - # plot(8) - n = np.logspace(1,8,8,base=2,dtype=(np.int)) + # plot(1024) + # n = np.logspace(1,10,10,base=2,dtype=(np.int)) # n = np.arange(1,50,2) # A = np.random.randint(-10, 6, (5,3)) # B = np.random.randint(-10, 6, (3,5)) @@ -291,7 +292,7 @@ if __name__ == '__main__': # print(C_test) # print(np.equal(C, C_test)) - t_np = test_perfomance(n) + # t_np = test_perfomance(n) # C = strassen(A, B) # C_test = A@B diff --git a/buch/papers/multiplikation/code/c_matrix.h b/buch/papers/multiplikation/code/c_matrix.h index 13df55d..14389fc 100644 --- a/buch/papers/multiplikation/code/c_matrix.h +++ b/buch/papers/multiplikation/code/c_matrix.h @@ -1,97 +1,97 @@ -/* Seminar Matrizen, autogenerated File, Michael Schmid, 30/05/2021, 22:00:57 */ +/* Seminar Matrizen, autogenerated File, Michael Schmid, 02/08/2021, 22:48:43 */ #include const int A0[][2] = { - {-15,68}, - {49,86} + {75,47}, + {-41,-24} }; const int B0[][2] = { - {33,73}, - {38,-76} + {-53,-95}, + {-93,30} }; const double dB0[][2] = { - {33,73}, - {38,-76} + {-53,-95}, + {-93,30} }; const double dA0[][2] = { - {-15,68}, - {49,86} + {75,47}, + {-41,-24} }; const int A1[][4] = { - {75,-38,-32,-65}, - {37,74,-31,29}, - {15,-62,-20,-20}, - {-31,-35,-89,47} + {47,11,-66,8}, + {36,98,39,82}, + {-32,12,40,-79}, + {61,-20,-85,-98} }; const int B1[][4] = { - {71,90,78,-98}, - {4,63,12,-47}, - {11,-44,75,-69}, - {95,-15,64,23} + {37,75,-53,9}, + {37,-33,-67,38}, + {70,39,-93,43}, + {43,41,23,-4} }; const double dB1[][4] = { - {71,90,78,-98}, - {4,63,12,-47}, - {11,-44,75,-69}, - {95,-15,64,23} + {37,75,-53,9}, + {37,-33,-67,38}, + {70,39,-93,43}, + {43,41,23,-4} }; const double dA1[][4] = { - {75,-38,-32,-65}, - {37,74,-31,29}, - {15,-62,-20,-20}, - {-31,-35,-89,47} + {47,11,-66,8}, + {36,98,39,82}, + {-32,12,40,-79}, + {61,-20,-85,-98} }; const int A2[][8] = { - {80,42,3,-16,6,55,87,16}, - {-99,-14,21,-1,-94,-56,91,10}, - {-47,-55,-59,62,12,-53,87,-65}, - {-60,94,-67,23,-62,33,-63,-72}, - {12,-75,16,21,22,-37,1,16}, - {-100,-99,82,-66,2,64,-13,44}, - {59,-100,-90,8,36,-24,18,88}, - {73,-58,75,-100,-19,-29,85,-19} + {-54,-87,87,69,52,-21,-86,55}, + {19,-75,-61,-50,-55,-23,66,-92}, + {-73,-67,-36,19,84,-11,24,46}, + {-98,62,-76,57,-100,6,-23,-51}, + {62,46,1,-64,42,-9,85,-12}, + {35,-59,-17,-47,78,86,-50,74}, + {-15,45,33,-59,-9,-81,49,96}, + {-57,22,-43,7,-30,-45,-5,13} }; const int B2[][8] = { - {-61,88,69,49,-53,47,73,45}, - {16,14,-88,-11,-67,-73,-20,43}, - {-60,-63,26,32,-29,18,-44,-69}, - {1,21,21,38,7,-100,-61,-76}, - {-90,95,-99,88,49,-80,27,-36}, - {24,-12,-47,-7,29,15,52,37}, - {-98,-76,29,76,-41,-75,97,79}, - {62,-90,-35,-14,-30,-42,-95,52} + {-71,-82,-80,-78,83,-97,48,-24}, + {15,75,15,-60,-63,-53,1,-50}, + {-84,63,67,-2,78,93,-13,95}, + {61,-26,-88,56,56,27,26,1}, + {2,54,21,36,9,-41,53,53}, + {85,-11,42,-51,-6,3,27,97}, + {10,-2,90,-76,-75,0,8,-37}, + {10,-64,47,-69,66,-50,89,-66} }; const double dB2[][8] = { - {-61,88,69,49,-53,47,73,45}, - {16,14,-88,-11,-67,-73,-20,43}, - {-60,-63,26,32,-29,18,-44,-69}, - {1,21,21,38,7,-100,-61,-76}, - {-90,95,-99,88,49,-80,27,-36}, - {24,-12,-47,-7,29,15,52,37}, - {-98,-76,29,76,-41,-75,97,79}, - {62,-90,-35,-14,-30,-42,-95,52} + {-71,-82,-80,-78,83,-97,48,-24}, + {15,75,15,-60,-63,-53,1,-50}, + {-84,63,67,-2,78,93,-13,95}, + {61,-26,-88,56,56,27,26,1}, + {2,54,21,36,9,-41,53,53}, + {85,-11,42,-51,-6,3,27,97}, + {10,-2,90,-76,-75,0,8,-37}, + {10,-64,47,-69,66,-50,89,-66} }; const double dA2[][8] = { - {80,42,3,-16,6,55,87,16}, - {-99,-14,21,-1,-94,-56,91,10}, - {-47,-55,-59,62,12,-53,87,-65}, - {-60,94,-67,23,-62,33,-63,-72}, - {12,-75,16,21,22,-37,1,16}, - {-100,-99,82,-66,2,64,-13,44}, - {59,-100,-90,8,36,-24,18,88}, - {73,-58,75,-100,-19,-29,85,-19} + {-54,-87,87,69,52,-21,-86,55}, + {19,-75,-61,-50,-55,-23,66,-92}, + {-73,-67,-36,19,84,-11,24,46}, + {-98,62,-76,57,-100,6,-23,-51}, + {62,46,1,-64,42,-9,85,-12}, + {35,-59,-17,-47,78,86,-50,74}, + {-15,45,33,-59,-9,-81,49,96}, + {-57,22,-43,7,-30,-45,-5,13} }; const int *Ap[3] = {(int*) A0,(int*) A1,(int*) A2}; const int *Bp[3] = {(int*) B0,(int*) B1,(int*) B2}; diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf index 547d794..304015a 100644 Binary files a/buch/papers/multiplikation/code/c_meas_4096.pdf and b/buch/papers/multiplikation/code/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/meas/MM.txt b/buch/papers/multiplikation/code/meas/MM.txt index 1a0cd5d..13b6312 100644 --- a/buch/papers/multiplikation/code/meas/MM.txt +++ b/buch/papers/multiplikation/code/meas/MM.txt @@ -1,12 +1,12 @@ 0.000000,2 0.000000,4 -0.000002,8 -0.000011,16 -0.000080,32 -0.000653,64 -0.005397,128 -0.045147,256 -0.487710,512 -3.964180,1024 -128.863544,2048 -996.370209,4096 +0.000001,8 +0.000010,16 +0.000081,32 +0.000654,64 +0.005556,128 +0.054253,256 +0.487317,512 +4.162845,1024 +125.909034,2048 +1111.312696,4096 diff --git a/buch/papers/multiplikation/code/meas/MM_dc.txt b/buch/papers/multiplikation/code/meas/MM_dc.txt index 0d5580a..f6be928 100644 --- a/buch/papers/multiplikation/code/meas/MM_dc.txt +++ b/buch/papers/multiplikation/code/meas/MM_dc.txt @@ -1,12 +1,12 @@ -0.000006,2 -0.000007,4 -0.000035,8 -0.000228,16 -0.001310,32 -0.007204,64 -0.034338,128 -0.267511,256 -2.131212,512 -17.177403,1024 -146.112874,2048 -1156.777565,4096 +0.000003,2 +0.000002,4 +0.000010,8 +0.000068,16 +0.000594,32 +0.004264,64 +0.036289,128 +0.324645,256 +2.612010,512 +19.928951,1024 +159.333884,2048 +1147.106865,4096 diff --git a/buch/papers/multiplikation/code/meas/blas.txt b/buch/papers/multiplikation/code/meas/blas.txt index 6b7cd0b..c3ec7ec 100644 --- a/buch/papers/multiplikation/code/meas/blas.txt +++ b/buch/papers/multiplikation/code/meas/blas.txt @@ -2,11 +2,11 @@ 0.000000,4 0.000001,8 0.000003,16 -0.000021,32 -0.000164,64 -0.001240,128 -0.009657,256 -0.072523,512 -0.735149,1024 -6.895747,2048 -56.812183,4096 +0.000022,32 +0.000179,64 +0.001278,128 +0.010165,256 +0.074739,512 +0.704748,1024 +6.845095,2048 +55.845038,4096 diff --git a/buch/papers/multiplikation/code/meas/strassen.txt b/buch/papers/multiplikation/code/meas/strassen.txt index 89cf41a..69ea472 100644 --- a/buch/papers/multiplikation/code/meas/strassen.txt +++ b/buch/papers/multiplikation/code/meas/strassen.txt @@ -1,12 +1,12 @@ 0.000000,2 0.000003,4 0.000010,8 -0.000086,16 -0.000476,32 -0.003366,64 -0.025547,128 -0.184593,256 -1.248713,512 -9.007700,1024 -61.079879,2048 -424.493037,4096 +0.000066,16 +0.000470,32 +0.003368,64 +0.024232,128 +0.172000,256 +1.209262,512 +8.457472,1024 +59.267256,2048 +414.648901,4096 diff --git a/buch/papers/multiplikation/code/meas/winograd.txt b/buch/papers/multiplikation/code/meas/winograd.txt index 3a4d88b..6e6208a 100644 --- a/buch/papers/multiplikation/code/meas/winograd.txt +++ b/buch/papers/multiplikation/code/meas/winograd.txt @@ -2,10 +2,11 @@ 0.000001,4 0.000002,8 0.000011,16 -0.000091,32 -0.000663,64 -0.005182,128 -0.046038,256 -0.533429,512 -4.257458,1024 -130.378038,2048 +0.000100,32 +0.000654,64 +0.005229,128 +0.057440,256 +0.517850,512 +4.539413,1024 +130.627663,2048 +1179.261048,4096 diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf index 7b7a133..70c7ec1 100644 Binary files a/buch/papers/multiplikation/code/meas_1024.pdf and b/buch/papers/multiplikation/code/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/meas_256.pdf b/buch/papers/multiplikation/code/meas_256.pdf index 4ca7102..2eb177b 100644 Binary files a/buch/papers/multiplikation/code/meas_256.pdf and b/buch/papers/multiplikation/code/meas_256.pdf differ diff --git a/buch/papers/multiplikation/code/meas_256.txt b/buch/papers/multiplikation/code/meas_256.txt index 2ca4447..62e77cb 100644 --- a/buch/papers/multiplikation/code/meas_256.txt +++ b/buch/papers/multiplikation/code/meas_256.txt @@ -1,6 +1,6 @@ 2.000000000000000000e+00 4.000000000000000000e+00 8.000000000000000000e+00 1.600000000000000000e+01 3.200000000000000000e+01 6.400000000000000000e+01 1.280000000000000000e+02 2.560000000000000000e+02 -1.096725463867187500e-05 5.531311035156250000e-05 3.712177276611328125e-04 2.662897109985351562e-03 2.111244201660156250e-02 1.660463809967041016e-01 1.280746459960937500e+00 1.149287748336791992e+01 -5.483627319335937500e-06 5.745887756347656250e-05 4.055500030517578125e-04 3.203868865966796875e-03 2.503871917724609375e-02 2.148163318634033203e-01 1.655935287475585938e+00 1.472915720939636230e+01 -1.335144042968750000e-05 1.153945922851562500e-04 6.134510040283203125e-04 3.850460052490234375e-03 2.817606925964355469e-02 1.827111244201660156e-01 1.277473211288452148e+00 9.337273359298706055e+00 -1.907348632812500000e-05 9.274482727050781250e-05 3.526210784912109375e-04 2.403974533081054688e-03 1.725149154663085938e-02 1.314754486083984375e-01 1.121860027313232422e+00 8.884316682815551758e+00 -3.147125244140625000e-05 6.675720214843750000e-06 4.768371582031250000e-06 7.867813110351562500e-06 2.574920654296875000e-05 5.888938903808593750e-05 2.071857452392578125e-04 6.518363952636718750e-04 +1.144409179687500000e-05 5.507469177246093750e-05 3.774166107177734375e-04 3.177404403686523438e-03 2.508044242858886719e-02 2.120554447174072266e-01 1.431464910507202148e+00 1.076412820816040039e+01 +5.722045898437500000e-06 5.745887756347656250e-05 4.494190216064453125e-04 3.611087799072265625e-03 3.317713737487792969e-02 2.292332649230957031e-01 2.090558290481567383e+00 1.306217479705810547e+01 +1.788139343261718750e-05 1.168251037597656250e-04 5.981922149658203125e-04 4.416465759277343750e-03 3.002405166625976562e-02 2.104022502899169922e-01 1.488269329071044922e+00 9.164114713668823242e+00 +1.955032348632812500e-05 7.224082946777343750e-05 3.829002380371093750e-04 2.558946609497070312e-03 2.043128013610839844e-02 1.361320018768310547e-01 1.089214324951171875e+00 8.553364753723144531e+00 +2.384185791015625000e-05 5.245208740234375000e-06 6.437301635742187500e-06 2.455711364746093750e-05 4.148483276367187500e-05 8.702278137207031250e-05 3.793239593505859375e-04 6.709098815917968750e-04 diff --git a/buch/papers/multiplikation/images/c_meas_4096.pdf b/buch/papers/multiplikation/images/c_meas_4096.pdf new file mode 100644 index 0000000..547d794 Binary files /dev/null and b/buch/papers/multiplikation/images/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/images/meas_1024.pdf b/buch/papers/multiplikation/images/meas_1024.pdf new file mode 100644 index 0000000..70c7ec1 Binary files /dev/null and b/buch/papers/multiplikation/images/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index b25462a..8a95dd5 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -362,6 +362,22 @@ Folgende Algorithmen wurden jweiles in \texttt{C} und \texttt{Python} implementi \item \texttt{Numpy} Matrizenmultiplikation in \texttt{Python} \end{itemize} + +\begin{figure} + \center + \includegraphics[width=\linewidth]{papers/multiplikation/images/c_meas_4096} + \caption{Messresultate mit der Programmiersprache \texttt{C}} + \label{multiplikation:fig:c_meas_4096} +\end{figure} + + +\begin{figure} + \center + \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_1024} + \caption{Messresultate mit der Programmiersprache \texttt{Python}} + \label{multiplikation:fig:c_meas_4096} +\end{figure} + \section{Fazit} \rhead{Fazit} -- cgit v1.2.1 From e5da5157fb61cdb006f3f50a2b3bd3b922644f1f Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 3 Aug 2021 22:08:02 +0200 Subject: update --- buch/papers/multiplikation/code/MM.py | 53 +++++++++------- buch/papers/multiplikation/code/meas_1024.pdf | Bin 18813 -> 18813 bytes buch/papers/multiplikation/code/meas_4096.pdf | Bin 0 -> 12952 bytes buch/papers/multiplikation/code/meas_4096.txt | 0 buch/papers/multiplikation/images/c_meas_4096.pdf | Bin 15865 -> 17400 bytes buch/papers/multiplikation/loesungsmethoden.tex | 73 +++++++++++++++++++++- 6 files changed, 101 insertions(+), 25 deletions(-) create mode 100644 buch/papers/multiplikation/code/meas_4096.pdf create mode 100644 buch/papers/multiplikation/code/meas_4096.txt (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py index ee6f598..47bd6ab 100644 --- a/buch/papers/multiplikation/code/MM.py +++ b/buch/papers/multiplikation/code/MM.py @@ -132,6 +132,10 @@ def winograd2(A, B): return C def test_perfomance(n): + + import mkl + mkl.set_num_threads(1) + t_mm = [] t_mm_dc = [] t_mm_strassen = [] @@ -144,21 +148,21 @@ def test_perfomance(n): # A = np.random.randint(-100, 100,(i, i)) # B = np.random.randint(-100, 100,(i, i)) - start = time.time() - C3 = strassen(A, B) - t_mm_strassen.append(time.time() - start) + # start = time.time() + # C3 = strassen(A, B) + # t_mm_strassen.append(time.time() - start) - start = time.time() - C1 = MM(A, B) - t_mm.append(time.time() - start) + # start = time.time() + # C1 = MM(A, B) + # t_mm.append(time.time() - start) - start = time.time() - C2 = MM_dc(A, B) - t_mm_dc.append(time.time() - start) + # start = time.time() + # C2 = MM_dc(A, B) + # t_mm_dc.append(time.time() - start) - start = time.time() - C4 = winograd2(A, B) - t_wino.append(time.time() - start) + # start = time.time() + # C4 = winograd2(A, B) + # t_wino.append(time.time() - start) start = time.time() C = A@B @@ -169,10 +173,10 @@ def test_perfomance(n): plt.rc('axes', labelsize=23) plt.rc('xtick', labelsize=23) plt.rc('ytick', labelsize=23) - plt.plot(n, t_mm, label='Standard', lw=5) - plt.plot(n, t_mm_dc, label='Divide and conquer', lw=5) - plt.plot(n, t_mm_strassen, label='Strassen', lw=5) - plt.plot(n, t_wino, label='Winograd', lw=5) + # plt.plot(n, t_mm, label='Standard', lw=5) + # plt.plot(n, t_mm_dc, label='Divide and conquer', lw=5) + # plt.plot(n, t_mm_strassen, label='Strassen', lw=5) + # plt.plot(n, t_wino, label='Winograd', lw=5) plt.plot(n, t_np, label='NumPy A@B', lw=5) # plt.xscale('log', base=2) plt.legend() @@ -182,10 +186,10 @@ def test_perfomance(n): plt.tight_layout() # plt.yscale('log') plt.legend(fontsize=19) - plt.savefig('meas_' + str(max(n))+ '.pdf') - arr = np.array([n, t_mm, t_mm_dc, t_mm_strassen, t_wino, t_np]) - np.savetxt('meas_' + str(max(n))+ '.txt',arr) - return arr + # plt.savefig('meas_' + str(max(n))+ '.pdf') + # arr = np.array([n, t_mm, t_mm_dc, t_mm_strassen, t_wino, t_np]) + # np.savetxt('meas_' + str(max(n))+ '.txt',arr) + return t_np def plot(num): @@ -213,6 +217,7 @@ def plot(num): return arr def plot_c_res(ave, num): + MM = np.loadtxt("meas/MM.txt", delimiter=',') winograd = np.loadtxt("meas/winograd.txt", delimiter=',') blas = np.loadtxt("meas/blas.txt", delimiter=',') @@ -277,11 +282,11 @@ def plot_c_res(ave, num): # test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if __name__ == '__main__': - plot_c_res(1, 4096) + # plot_c_res(1, 4096) - # plot(1024) - # n = np.logspace(1,10,10,base=2,dtype=(np.int)) + # arr = plot(1024) + n = np.logspace(1,12,12,base=2,dtype=(np.int)) # n = np.arange(1,50,2) # A = np.random.randint(-10, 6, (5,3)) # B = np.random.randint(-10, 6, (3,5)) @@ -292,7 +297,7 @@ if __name__ == '__main__': # print(C_test) # print(np.equal(C, C_test)) - # t_np = test_perfomance(n) + t_np = test_perfomance(n) # C = strassen(A, B) # C_test = A@B diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf index 70c7ec1..3312420 100644 Binary files a/buch/papers/multiplikation/code/meas_1024.pdf and b/buch/papers/multiplikation/code/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/code/meas_4096.pdf b/buch/papers/multiplikation/code/meas_4096.pdf new file mode 100644 index 0000000..e889d17 Binary files /dev/null and b/buch/papers/multiplikation/code/meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/meas_4096.txt b/buch/papers/multiplikation/code/meas_4096.txt new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/multiplikation/images/c_meas_4096.pdf b/buch/papers/multiplikation/images/c_meas_4096.pdf index 547d794..304015a 100644 Binary files a/buch/papers/multiplikation/images/c_meas_4096.pdf and b/buch/papers/multiplikation/images/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 8a95dd5..780cbf3 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -358,10 +358,81 @@ Folgende Algorithmen wurden jweiles in \texttt{C} und \texttt{Python} implementi \item \textit{Devide and Conquer} Matrizenmultiplikation \item Strassen's Matrizenmultiplikation \item Winograd's Matrizenmultiplikation - \item \texttt{CBLAS} Matrizenmultiplikation in \texttt{C} + \item \texttt{BLAS} Matrizenmultiplikation in \texttt{C} \item \texttt{Numpy} Matrizenmultiplikation in \texttt{Python} \end{itemize} +Der Code kann im dazugeh\"orgien \textit{GitHub} Repository gefunden werden. + +\begin{table} + \begin{center} + \begin{tabular}{l l l l l l} + \hline + \hline + \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{BLAS (\textit{s})} \\ + \hline + \multicolumn{6}{c}{} \\ + \textbf{32} & 0.000081 &0.000594 & 0.00047& 0.00010 & 0.000022 \\ + \textbf{64} & 0.00065 & 0.0042& 0.0033& 0.00065& 0.00017 \\ + \textbf{128} & 0.0055 & 0.036& 0.024& 0.0052 & 0.0012 \\ + \textbf{256} & 0.054 & 0.32 & 0.17 & 0.057& 0.010 \\ + \textbf{512} & 0.48 & 2.61 & 1.20 & 0.51 & 0.074\\ + \textbf{1024} & 4.16 & 19.92& 8.45 & 4.53 & 0.704 \\ + \textbf{2048} & 125.90 & 159.33& 59.26 & 130.62 & 6.84 \\ + \textbf{4096} & 1111.31 & 1147.10& 414.64 & 1179.26 & 55.84\\ + \multicolumn{6}{c}{} \\ + \hline + \hline + \end{tabular} + \end{center} + \caption{Messresultate \texttt{C}} + \label{multiplikation:tab:messung_C} + \end{table} + + + + \begin{table} + \begin{center} + \begin{tabular}{l l l l l l} + \hline + \hline + \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{\texttt{NumPy}(\textit{s})} \\ + \hline + \multicolumn{6}{c}{} \\ + \textbf{32} & 0.0240 &0.0271 & 0.04852& 0.01871 & 4.26e-05 \\ + \textbf{64} & 0.186 & 0.265& 0.2204& 0.1530& 0.000118 \\ + \textbf{128} & 1.563 & 1.777& 1.447& 1.1947 & 0.000244 \\ + \textbf{256} & 11.006 & 13.27 & 9.938 & 8.298& 0.000695 \\ + \textbf{512} & 85.476 & 105.397 & 63.961 & 68.36 & 0.00221\\ + \textbf{1024} & 750.757 & 847.321& 461.494 & 537.374 & 0.0188 \\ + \textbf{4096} & - & - & - & - & 1.633 \\ + \multicolumn{6}{c}{} \\ + \hline + \hline + \end{tabular} + \end{center} + \caption{Messresultate \texttt{Python}} + \label{multiplikation:tab:messung_Python} + \end{table} + + \begin{table} + \begin{center} + \begin{tabular}{c c c c} + \hline + \hline + \textbf{CPU} & \textbf{OS} & \textbf{GPU } & \textbf{Memory } \\ + \hline + \multicolumn{4}{c}{} \\ + Intel® Core™ i7-4770K CPU & Ubuntu 20.04.2 LTS & Radeon RX 570 & 32 GB 1600 MHz \\ + @ 3.50GHz × 8 & 64-bit & & \\ + \multicolumn{4}{c}{} \\ + \hline + \hline + \end{tabular} + \end{center} + \caption{Messsystem} + \label{multiplikation:tab:pc_config} + \end{table} \begin{figure} \center -- cgit v1.2.1 From 1663dd03e22b2ee65a8050f5eb5433c7580028b5 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Wed, 4 Aug 2021 16:14:15 +0200 Subject: update multiplikation --- buch/papers/multiplikation/einlteung.tex | 2 +- buch/papers/multiplikation/loesungsmethoden.tex | 50 +++++++++++++------------ buch/papers/multiplikation/problemstellung.tex | 11 +++--- 3 files changed, 34 insertions(+), 29 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index ea71d91..2d0583d 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -7,7 +7,7 @@ \rhead{Einleitung} Die Multiplikation zweier Matrizen ist eine wichtige Operation die in verschiedensten Teilen der Mathematik Anwendung findet. -Die Beschreibung der Multiplikation aus der Definition 2.10 (\textcolor{blue} {Kein Hyperlink zu einer Definition?)}: +Die Beschreibung der Multiplikation aus der Definition 2.10: Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine $n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 780cbf3..6f1486c 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -7,7 +7,7 @@ \section{Algorithmen} \rhead{Algorithmen} -In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Libraries zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. +In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Bibliotheken zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. \subsection{Standard Algorithmus} @@ -15,7 +15,7 @@ Die Standardmethode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen w Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{for j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{for k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. -\begin{algorithm}\caption{Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Matrix Multiplication} \label{multiplikation:alg:smm} \setlength{\lineskip}{7pt} \begin{algorithmic}[1] @@ -76,7 +76,7 @@ ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplik Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. -\begin{algorithm}\caption{Divide and Conquer Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Divide and Conquer Matrix Multiplication} \setlength{\lineskip}{7pt} \label{multiplikation:alg:devide_mm} \begin{algorithmic} @@ -106,7 +106,7 @@ Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ \end{algorithm} Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \cite{multiplikation:master_theorem} berechnet werden. Das \textit{Master Theorem} bestimmt die Zeitkomplexit\"at von rekursiven Algortihmen. -Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe der Funktion die Laufzeit. +Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe $\mathcal{T} $ der Funktion die Laufzeit. In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt \begin{equation} \label{multiplikation:eq:laufzeitdac} \mathcal{T}(n) = 8 \cdot \mathcal{T}\left (\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}\left (n^{3} \right ) @@ -141,7 +141,7 @@ aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Bl\"ocke \end{split} \end{equation} der Matrix $\mathbf{C}$ gebraucht. -\begin{algorithm}\caption{Strassen Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Strassen Matrix Multiplication} \label{multiplikation:alg:strassen} \setlength{\lineskip}{7pt} \begin{algorithmic} @@ -205,6 +205,7 @@ Dies f\"uhrt zu einer Laufzeit von 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 = \mathcal{O}\left(n^{\log_2 7}\right ) = \mathcal{O}\left(n^{2.8074} \right ) \end{equation} und ist somit schneller als die Standardmethode. +Man beachte, dass die Anzahl von Additionen und Subtraktionen gr\"osser und die Anzahl der Multiplikationen kleiner wurde. \subsection{Winograd's Algorithmus} @@ -244,7 +245,7 @@ Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\fr Was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. -\begin{algorithm}\caption{Winograd Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Winograd Matrix Multiplication} \setlength{\lineskip}{7pt} \label{multiplikation:alg:winograd} \begin{algorithmic} @@ -297,7 +298,7 @@ Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen \subsection{Basic Linear Algebra Subprograms (BLAS)} -die gebr\"uchlichen Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subrutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. +die gebräuchliche Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subroutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. \textit{BLAS} sind dabei in drei unterschiedliche Levels aufgeteilt. @@ -320,12 +321,12 @@ Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{M \end{itemize} \end{itemize} -Die \textit{BLAS} sind auf die modernen Computer Prozessoren optimiert und k\"onnen dank einer ausgek\"ugelter Verwedung der Speicher Architektur zur erheblichen Leistungoprimierung f\"uhren. +Die \textit{BLAS} sind auf die modernen Computer Prozessoren optimiert und k\"onnen dank einer ausgeklügelter Verwendung der Speicherarchitektur zu erheblichen Leistungsoptimierungen f\"uhren. \subsubsection{General Matrix Multiplication (GEMM)} -Die \textit{Double-GEMM} ist in \cite{multiplikation:DGEMM} definiert als: +Die \textit{Double-GEMM} \cite{multiplikation:DGEMM} ist definiert als: \textit{DGEMM performs one of the matrix-matrix operations} $$ @@ -339,20 +340,19 @@ $$ an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. } -Die Implementaion von $\alpha\mathbf{A}\mathbf{B} + \beta \mathbf{C} = \mathbf{C}$, wobei $\alpha = 1.0$ und $\beta = 0.0$ in der \texttt{C}-Version von \textit{BLAS}, ist als -\begin{lstlisting}[style=multiplikationC] -cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, - m, n, k, 1, A, m , B, k, 0, C, m); -\end{lstlisting} -definiert. +%Die Implementation von $\alpha\mathbf{A}\mathbf{B} + \beta \mathbf{C} = \mathbf{C}$, wobei $\alpha = 1.0$ und $\beta = 0.0$ in der \texttt{C}-Version von \textit{BLAS}, ist als +%\begin{lstlisting}[style=multiplikationC] +%cblas_dgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, +% m, n, k, 1, A, m , B, k, 0, C, m); +%\end{lstlisting} +%definiert. -\section{Implementation} +\section{Implementation}\label{multiplikation:section:Implementation} \rhead{Implementation} -\textcolor{red}{TODO: messresultate} -Folgende Algorithmen wurden jweiles in \texttt{C} und \texttt{Python} implementiert. +Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementiert. \begin{itemize} \item Standard Matrizenmultiplikation \item \textit{Devide and Conquer} Matrizenmultiplikation @@ -362,7 +362,11 @@ Folgende Algorithmen wurden jweiles in \texttt{C} und \texttt{Python} implementi \item \texttt{Numpy} Matrizenmultiplikation in \texttt{Python} \end{itemize} -Der Code kann im dazugeh\"orgien \textit{GitHub} Repository gefunden werden. +Der Code kann im dazugehörigen \textit{GitHub} Repository gefunden werden. +Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige Implementation Multiprocessing und Multithreading verwendet, dies f\"uhrt zu den tiefen Messzeiten. +In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. +Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{multiplikation:tab:pc_config} aufgelistet. + \begin{table} \begin{center} @@ -446,16 +450,16 @@ Der Code kann im dazugeh\"orgien \textit{GitHub} Repository gefunden werden. \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_1024} \caption{Messresultate mit der Programmiersprache \texttt{Python}} - \label{multiplikation:fig:c_meas_4096} + \label{multiplikation:fig:python} \end{figure} \section{Fazit} \rhead{Fazit} -Wie man in \textcolor{red}{hyperlink Messresultate} gesehen haben, sind die geziegten Algorithmen, trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. +Wie man im Abschnitt\ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen, trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. Einen optimierten Speicherzugriff hat einen weitaus grösseren Einfluss auf die Laufzeit als die Zeitkomplexität des Algorithmus. Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. Nicht auf jeden Computersystemen können die \textit{BLAS} angewandt werden. -Denke man an sehr keleine Mikrocontroller ohne Floatingpoint Recheneinhieten oder auch an \textit{Field Programmable Gate Arrays (FPGA's)}. -Sobland sehr grosse Matrizen multipliziert werden müssen und eine Addition in weniger Taktzyklen als eine Multiplikation durcheführt werden kann, können die gezeigten Algorithmen von Vorteil sein. +Denke man an sehr kleine Mikrocontroller ohne Floatingpoint Recheneinheiten oder auch an \textit{Field Programmable Gate Arrays (FPGA's)}. +Sobald sehr grosse Matrizen multipliziert werden müssen und eine Addition in weniger Taktzyklen als eine Multiplikation durchführt werden kann, können die gezeigten Algorithmen von Vorteil sein. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index 2688f27..cd5aaaa 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -34,12 +34,12 @@ In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufze \subsubsection{Beispiel Algorithmen} -Folgend einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden kann. +Folgend einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. \paragraph{Beschr\"ankter Algorithmus} Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen einfluss auf die Laufzeit. -\begin{algorithm}\caption{} +\begin{algorithm}\footnotesize\caption{} \label{multiplikation:alg:b1} \setlength{\lineskip}{7pt} \begin{algorithmic} @@ -51,7 +51,8 @@ Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmu Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. -\begin{algorithm}\caption{} + +\begin{algorithm}\footnotesize\caption{} \label{multiplikation:alg:b2} \setlength{\lineskip}{7pt} \begin{algorithmic} @@ -68,7 +69,7 @@ Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\ Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares Verhalten. Die \texttt{for}-Schleife wird $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}(n)$. -\begin{algorithm}\caption{} +\begin{algorithm}\footnotesize\caption{} \setlength{\lineskip}{7pt} \begin{algorithmic} \label{multiplikation:alg:l1} @@ -90,7 +91,7 @@ Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalte Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchglaufen und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. -\begin{algorithm}[H]\caption{} +\begin{algorithm}[H]\footnotesize\caption{} \label{multiplikation:alg:q1} \setlength{\lineskip}{7pt} \begin{algorithmic} -- cgit v1.2.1 From e948351c11835cb6a19abe394ffb61219884b96a Mon Sep 17 00:00:00 2001 From: Nunigan Date: Thu, 5 Aug 2021 18:04:32 +0200 Subject: update paper --- buch/papers/multiplikation/einlteung.tex | 6 +- buch/papers/multiplikation/loesungsmethoden.tex | 72 ++++++++----- buch/papers/multiplikation/problemstellung.tex | 135 +++++++++++++----------- 3 files changed, 122 insertions(+), 91 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index 2d0583d..9f1cb04 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -17,7 +17,7 @@ Koeffizienten c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. \label{multiplikation:eq:MM} \end{equation} -Grafisch kann die Matrizenmultiplikation $\mathbf{AB}=\mathbf{C}$ wie in \ref{multiplikation:fig:mm_viz} visualisiert werden. +Grafisch kann die Matrizenmultiplikation $\mathbf{AB}=\mathbf{C}$ wie in Abbildung \ref{multiplikation:fig:mm_viz} visualisiert werden. Im Fall einer Matrizengr\"osse von $2\times 2$ kann die Matrixgleichung \begin{equation} \begin{bmatrix} @@ -34,7 +34,7 @@ C_{11} & C_{12}\\ C_{21} & C_{22} \end{bmatrix} \end{equation} -explizt als Gleichung +explizt als Gleichung \begin{equation} \label{multiplikation:eq:MM_exp} \begin{split} C_{11} &= A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ @@ -49,4 +49,4 @@ der einzelnen Terme geschrieben werden. \includegraphics[]{papers/multiplikation/images/mm_visualisation} \caption{Matrizen Multiplikation} \label{multiplikation:fig:mm_viz} -\end{figure} \ No newline at end of file +\end{figure} diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 6f1486c..43181d4 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -68,10 +68,10 @@ Das Matrizen produklt \end{bmatrix}, \end{equation} \begin{equation} -\mathbf{C}_{ij} = \sum_{k=1}^n \mathbf{A}_{ik} \mathbf{B}_{kj} +\mathbf{C}_{ij} = \sum_{k=1}2n \mathbf{A}_{ik} \mathbf{B}_{kj} \label{multiplikation:eq:MM_block} \end{equation} -ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation wird die Matrizenmultiplikation verwendet. +ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation der Untermatrize $\mathbf{A}_{ik}$ und $\mathbf{B}_{kj}$ wird die Matrizenmultiplikation verwendet. Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. @@ -116,10 +116,10 @@ Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Lau In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung gef\"uhrt. -\subsection{Strassen's Algorithmus} +\subsection{Strassens Algorithmus} -Strassen's Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen von Blockmatrizen. -Die grundlegenden Terme +Strassens Algorithmus \cite{multiplikation:strassen_1969} beschreibt die Matrizenmultiplikation mit einer Vielzahl von Additionen, Subtraktionen und Multiplikationen von Blockmatrizen. +Die sieben grundlegenden Terme \begin{equation} \label{multiplikation:eq:strassen} \begin{split} \text{\textbf{P}} &= \left(\mathbf{A}_{11} + \mathbf{A}_{22}\right ) \cdot \left(\mathbf{B}_{11} + \mathbf{B}_{22}\right ) \\ @@ -188,7 +188,7 @@ der Matrix $\mathbf{C}$ gebraucht. \end{algorithm} Strassen's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . -Die gr\"unen Felder auf der linken Seite, zeigen die addition welche f\"ur den dazugeh\"origen Term ben\"otigt wird. +Die gr\"unen Felder auf der linken Seite, zeigen die Addition, welche f\"ur den dazugeh\"origen Term ben\"otigt wird. Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \dotsb, V}$. Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \begin{figure} @@ -199,7 +199,7 @@ Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \end{figure} Die Funktion wird sieben mal rekursiv aufgerufen. -Dies f\"uhrt zu einer Laufzeit von +Dies f\"uhrt nach dem \textit{Master Theorem} zu einer Laufzeit von \begin{equation} \label{multiplikation:eq:laufzeitstrassen} \mathcal{T}(n) = 7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 = \mathcal{O}\left(n^{\log_2 7}\right ) = \mathcal{O}\left(n^{2.8074} \right ) @@ -210,31 +210,42 @@ Man beachte, dass die Anzahl von Additionen und Subtraktionen gr\"osser und die \subsection{Winograd's Algorithmus} Einen weiteren Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. -Er beschrieb einen neuen Algorithmus f\"ur das -\begin{equation} - \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i +Er beschrieb einen neuen Algorithmus f\"ur das Skalarprodukt +\begin{equation} \label{multiplikation:eq:skalar} + \langle x,y \rangle = \sum_{i=1}^{n}x_i y_i. \end{equation} -Skalarprodukt. F\"ur jeden Vektor berechne \begin{equation} \xi = \sum_{j=1}^{ \lfloor n/2 \rfloor} x_{2j-1} \cdot x_{2j} \end{equation} und \begin{equation} - \eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j}. + \eta = \sum_{j=1}^{ \lfloor n/2 \rfloor} y_{2j-1} \cdot y_{2j}, \end{equation} +die jeweils nur von $x$ und $y$ abhängen. +Dazu werden $2 \cdot \lfloor n/2 \rfloor \leq n$ Multiplikationen benötigt. Das Skalarprodukt ist nun geben mit \begin{equation} \langle x,y \rangle = \begin{cases} - \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{if $n$ is even}\\ - \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{if $n$ is odd}. + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta & \text{wenn $n$ gerade}\\ + \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{wenn $n$ ungerade}. \end{cases} \end{equation} - +Das Skalarprodukt kann also mit $ \lfloor \frac{n+1}{2} \rfloor$ weiteren Multiplikationen brechnet werden. Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. - +Für die Gleichung \eqref{multiplikation:eq:skalar} benötigt man $Tn$ Multiplikationen. +Im Vergleich mit der neuen Methode +\begin{equation} + \begin{split}\label{multiplikation:eq:eff} + N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor \leq Tn \\ + \approx \frac{Nn}{2} + \frac{Tn}{2} \leq Tn \\ + \frac{Nn}{2} \leq \frac{Tn}{2} \\ + N \leq T +\end{split} +\end{equation} +spart man etwas, falls $N\leq T$. Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. Dies f\"uhrt zu \begin{equation} @@ -243,8 +254,14 @@ Dies f\"uhrt zu Multiplikationen. Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. Was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. +Mit dem glichen Ansatz wie in der Gleichung \ref{multiplikation:eq:eff} aber mit quadratischen Matrizen, muss +\begin{equation} + N=2n \ll T=n^2 +\end{equation} +damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. - +Falls $m=n=p$ werden $\frac{n^3}/{2}$ Multiplikationen benötigt. Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und + somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}\left(n^3 \right)$. \begin{algorithm}\footnotesize\caption{Winograd Matrix Multiplication} \setlength{\lineskip}{7pt} \label{multiplikation:alg:winograd} @@ -296,10 +313,11 @@ Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen \end{algorithmic} \end{algorithm} + \subsection{Basic Linear Algebra Subprograms (BLAS)} -die gebräuchliche Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subroutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. -Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. +Die gebräuchliche Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subroutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. +Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. \textit{BLAS} sind dabei in drei unterschiedliche Levels aufgeteilt. @@ -307,17 +325,17 @@ Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{M \item Level 1 \begin{itemize} \item Operationen der Art: $\mathbf{y} \leftarrow \alpha \mathbf{x}+\mathbf{y}$ - \item Dieses Level hat $\mathcal{O}(n)$ karakteristik + \item Dieses Level hat $\mathcal{O}(n)$ Charakteristik \end{itemize} \item Level 2 \begin{itemize} \item Operationen der Art: $\mathbf{y} \leftarrow \alpha \mathbf{A}\mathbf{x}+\beta \mathbf{y}$ - \item Dieses Level hat $\mathcal{O}\left(n^2\right)$ karakteristik + \item Dieses Level hat $\mathcal{O}\left(n^2\right)$ Charakteristik \end{itemize} \item Level 3 \begin{itemize} \item Operationen der Art: $\mathbf{C} \leftarrow \alpha \mathbf{A}\mathbf{B}+\beta\mathbf{C}$ - \item Dieses Level hat $\mathcal{O}\left(n^3\right)$ karakteristik + \item Dieses Level hat $\mathcal{O}\left(n^3\right)$ Charakteristik \end{itemize} \end{itemize} @@ -362,7 +380,7 @@ Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementi \item \texttt{Numpy} Matrizenmultiplikation in \texttt{Python} \end{itemize} -Der Code kann im dazugehörigen \textit{GitHub} Repository gefunden werden. +Der Code kann im zum Buch gehörigem \textit{GitHub} \footnote{\url{https://github.com/AndreasFMueller/SeminarMatrizen.git}} Repository gefunden werden. Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige Implementation Multiprocessing und Multithreading verwendet, dies f\"uhrt zu den tiefen Messzeiten. In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{multiplikation:tab:pc_config} aufgelistet. @@ -392,8 +410,8 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \caption{Messresultate \texttt{C}} \label{multiplikation:tab:messung_C} \end{table} - - + + \begin{table} \begin{center} @@ -456,8 +474,8 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \section{Fazit} \rhead{Fazit} -Wie man im Abschnitt\ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen, trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. -Einen optimierten Speicherzugriff hat einen weitaus grösseren Einfluss auf die Laufzeit als die Zeitkomplexität des Algorithmus. +Wie man im Abschnit \ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. +Ein optimierter Speicherzugriff hat einen weitaus grösseren Einfluss auf die Laufzeit als die Zeitkomplexität des Algorithmus. Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. Nicht auf jeden Computersystemen können die \textit{BLAS} angewandt werden. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index cd5aaaa..c6fd10e 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -5,13 +5,15 @@ % \section{Problemstellung} \rhead{Problemstellung} -Dank der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. +Wegen der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. -Gezielt werden auf Algorithmen, welche das Problem schneller als der Standard Algorithmus L\"osen eingegangen. +Gezielt wird auf Algorithmen eingegange, welche das Problem schneller als der Standard Algorithmus l\"osen. \subsection{Big $\mathcal{O}$ Notation} -Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus \cite{multiplikation:bigo}. +\label{muliplikation:sec:bigo} +Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhänigkeit zur Inputgrösse \cite{multiplikation:bigo}. $f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. +Als Beispiel: benötigt eine Funktion $g$, $\mathcal{O}\left(n+n^2 \right)$ Multiplikationen so wächst $f$ mit $\mathcal{O}\left(n^2 \right)$ nicht wesentlich schneller als $g$. Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt @@ -23,7 +25,7 @@ Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \item usw. \end{itemize} -In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. +In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. \begin{figure} \center @@ -34,77 +36,88 @@ In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufze \subsubsection{Beispiel Algorithmen} -Folgend einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. +Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. + +\begin{minipage}{0.4\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:b1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B1}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \end{algorithmic} + \end{algorithm} + + \begin{algorithm}[H]\footnotesize\caption{} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \label{multiplikation:alg:linear} + \Function{L}{$\mathbf{a}, \mathbf{b}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \end{algorithmic} + \end{algorithm} +\end{minipage} +\hspace{2cm} +\begin{minipage}{0.4\textwidth} + + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:b2} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B2}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} + \end{algorithm} + + + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:q1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} + \end{algorithm} + +\end{minipage} + \paragraph{Beschr\"ankter Algorithmus} Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen einfluss auf die Laufzeit. -\begin{algorithm}\footnotesize\caption{} - \label{multiplikation:alg:b1} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \Function{B1}{$a, b$} - \State \textbf{return} $a+b$ - \EndFunction - \end{algorithmic} -\end{algorithm} + Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. -\begin{algorithm}\footnotesize\caption{} - \label{multiplikation:alg:b2} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \Function{B2}{$a, b$} - \State $ x \gets a+b $ - \State $ y \gets a \cdot b $ - \State \textbf{return} $x+y$ - \EndFunction - \end{algorithmic} -\end{algorithm} + \paragraph{Linearer Algorithmus} -Folgender Algorithmus \ref{multiplikation:alg:l1} hat ein lineares Verhalten. +Der Algorithmus \ref{multiplikation:alg:linear} hat ein lineares Verhalten. Die \texttt{for}-Schleife wird $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}(n)$. -\begin{algorithm}\footnotesize\caption{} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \label{multiplikation:alg:l1} - \Function{L}{$\mathbf{a}, \mathbf{b}$,n} - \State $ sum \gets 0$ - \For{$i = 0,1,2 \dots,n$} - \State $ sum \gets sum + A[i] \cdot B[i] $ - \EndFor - - \State \textbf{return} $sum$ - - \EndFunction - \end{algorithmic} -\end{algorithm} + \paragraph{Quadratischer Algorithmus} -Folgender Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. +Der Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchglaufen und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. - - -\begin{algorithm}[H]\footnotesize\caption{} - \label{multiplikation:alg:q1} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} - \State $ sum \gets 0$ - \For{$i = 0,1,2 \dots,n$} - \For{$j = 0,1,2 \dots,n$} - \State $ sum \gets sum + A[i] \cdot B[j] $ - \EndFor - \EndFor - \State \textbf{return} $sum$ - \EndFunction - \end{algorithmic} -\end{algorithm} - - -- cgit v1.2.1 From 872595e81de60c85b18408f8de5a49c535518edc Mon Sep 17 00:00:00 2001 From: Nunigan Date: Fri, 6 Aug 2021 17:37:58 +0200 Subject: update multiplikation --- buch/papers/multiplikation/code/MM.py | 46 +++---- buch/papers/multiplikation/code/c_meas_4096.pdf | Bin 17400 -> 17448 bytes buch/papers/multiplikation/code/meas/MM.txt | 4 +- buch/papers/multiplikation/code/meas/blas.txt | 2 +- buch/papers/multiplikation/code/meas/strassen.txt | 2 +- buch/papers/multiplikation/code/meas/winograd.txt | 2 +- buch/papers/multiplikation/code/meas_1024.pdf | Bin 18813 -> 18813 bytes buch/papers/multiplikation/images/bigo.pdf | Bin 27173 -> 28372 bytes buch/papers/multiplikation/images/bigo.tex | 24 ++-- buch/papers/multiplikation/images/meas_c.pdf | Bin 0 -> 23161 bytes buch/papers/multiplikation/images/meas_c.tex | 143 ++++++++++++++++++++++ buch/papers/multiplikation/images/meas_python.pdf | Bin 0 -> 21700 bytes buch/papers/multiplikation/images/meas_python.tex | 137 +++++++++++++++++++++ buch/papers/multiplikation/loesungsmethoden.tex | 44 ++++--- buch/papers/multiplikation/problemstellung.tex | 33 +++-- 15 files changed, 363 insertions(+), 74 deletions(-) create mode 100644 buch/papers/multiplikation/images/meas_c.pdf create mode 100644 buch/papers/multiplikation/images/meas_c.tex create mode 100644 buch/papers/multiplikation/images/meas_python.pdf create mode 100644 buch/papers/multiplikation/images/meas_python.tex (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py index 47bd6ab..7220ae1 100644 --- a/buch/papers/multiplikation/code/MM.py +++ b/buch/papers/multiplikation/code/MM.py @@ -226,28 +226,28 @@ def plot_c_res(ave, num): MM_t = MM[:,0] MM_n = MM[:,1] - MM_t = np.mean(MM_t.reshape(-1,ave),axis=1) - MM_n = np.mean(MM_n.reshape(-1,ave),axis=1) + # MM_t = np.mean(MM_t.reshape(-1,ave),axis=1) + # MM_n = np.mean(MM_n.reshape(-1,ave),axis=1) MM_dc_t = MM_dc[:,0] MM_dc_n = MM_dc[:,1] - MM_dc_t = np.mean(MM_dc_t.reshape(-1,ave),axis=1) - MM_dc_n = np.mean(MM_dc_n.reshape(-1,ave),axis=1) + # MM_dc_t = np.mean(MM_dc_t.reshape(-1,ave),axis=1) + # MM_dc_n = np.mean(MM_dc_n.reshape(-1,ave),axis=1) strassen_t = strassen[:,0] strassen_n = strassen[:,1] - strassen_t = np.mean(strassen_t.reshape(-1,ave),axis=1) - strassen_n = np.mean(strassen_n.reshape(-1,ave),axis=1) + # strassen_t = np.mean(strassen_t.reshape(-1,ave),axis=1) + # strassen_n = np.mean(strassen_n.reshape(-1,ave),axis=1) winograd_t = winograd[:,0] winograd_n = winograd[:,1] - winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1) - winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1) + # winograd_t = np.mean(winograd_t.reshape(-1,ave),axis=1) + # winograd_n = np.mean(winograd_n.reshape(-1,ave),axis=1) blas_t = blas[:,0] blas_n = blas[:,1] - blas_t = np.mean(blas_t.reshape(-1,ave),axis=1) - blas_n = np.mean(blas_n.reshape(-1,ave),axis=1) + # blas_t = np.mean(blas_t.reshape(-1,ave),axis=1) + # blas_n = np.mean(blas_n.reshape(-1,ave),axis=1) def func(x, a,b): return b*x**a @@ -261,14 +261,16 @@ def plot_c_res(ave, num): plt.rc('axes', labelsize=23) plt.rc('xtick', labelsize=23) plt.rc('ytick', labelsize=23) - plt.plot(MM_n, MM_t, label='3 For Loops', lw=5) - plt.plot(winograd_n, winograd_t, label='Winograd MM', lw=5) - plt.plot(blas_n, blas_t, label='Blas', lw=5) - plt.plot(strassen_n, strassen_t, label='Strassen', lw=5) - plt.plot(MM_dc_n, MM_dc_t, label='Divide and Conquer', lw=5) + plt.loglog(MM_n, MM_t, label='3 For Loops', lw=5) + plt.loglog(winograd_n, winograd_t, label='Winograd MM', lw=5) + plt.loglog(blas_n, blas_t, label='Blas', lw=5) + plt.loglog(strassen_n, strassen_t, label='Strassen', lw=5) + plt.loglog(MM_dc_n, MM_dc_t, label='Divide and Conquer', lw=5) plt.xlabel("n") + # plt.yscale('log', base=10) + # plt.xscale('log', base=2) plt.ylabel("time (s)") - plt.grid(True) + plt.grid(True, which="both", ls="-") plt.tight_layout() plt.legend(fontsize=19) plt.savefig('c_meas_' + str(num)+ '.pdf') @@ -278,15 +280,17 @@ def plot_c_res(ave, num): # plt.plot(blas_n, func(blas_n, *popt2), 'r-', label='fit MM: a=%5.5f, b=%5.10f' % tuple(popt2)) plt.legend() - + # return [MM_n,winograd_n,blas_n,strassen_n,MM_dc_n] + return [MM_t,winograd_t,blas_t,strassen_t,MM_dc_t] + # test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if __name__ == '__main__': - # plot_c_res(1, 4096) + # A = plot_c_res(1, 4096) - # arr = plot(1024) - n = np.logspace(1,12,12,base=2,dtype=(np.int)) + arr = plot(1024) + # n = np.logspace(1,12,12,base=2,dtype=(np.int)) # n = np.arange(1,50,2) # A = np.random.randint(-10, 6, (5,3)) # B = np.random.randint(-10, 6, (3,5)) @@ -297,7 +301,7 @@ if __name__ == '__main__': # print(C_test) # print(np.equal(C, C_test)) - t_np = test_perfomance(n) + # t_np = test_perfomance(n) # C = strassen(A, B) # C_test = A@B diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf index 304015a..5236afb 100644 Binary files a/buch/papers/multiplikation/code/c_meas_4096.pdf and b/buch/papers/multiplikation/code/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/meas/MM.txt b/buch/papers/multiplikation/code/meas/MM.txt index 13b6312..e296dd7 100644 --- a/buch/papers/multiplikation/code/meas/MM.txt +++ b/buch/papers/multiplikation/code/meas/MM.txt @@ -1,5 +1,5 @@ -0.000000,2 -0.000000,4 +0.000001,2 +0.000001,4 0.000001,8 0.000010,16 0.000081,32 diff --git a/buch/papers/multiplikation/code/meas/blas.txt b/buch/papers/multiplikation/code/meas/blas.txt index c3ec7ec..92a61b9 100644 --- a/buch/papers/multiplikation/code/meas/blas.txt +++ b/buch/papers/multiplikation/code/meas/blas.txt @@ -1,5 +1,5 @@ 0.000001,2 -0.000000,4 +0.000001,4 0.000001,8 0.000003,16 0.000022,32 diff --git a/buch/papers/multiplikation/code/meas/strassen.txt b/buch/papers/multiplikation/code/meas/strassen.txt index 69ea472..fdfbf2b 100644 --- a/buch/papers/multiplikation/code/meas/strassen.txt +++ b/buch/papers/multiplikation/code/meas/strassen.txt @@ -1,4 +1,4 @@ -0.000000,2 +0.000001,2 0.000003,4 0.000010,8 0.000066,16 diff --git a/buch/papers/multiplikation/code/meas/winograd.txt b/buch/papers/multiplikation/code/meas/winograd.txt index 6e6208a..d185906 100644 --- a/buch/papers/multiplikation/code/meas/winograd.txt +++ b/buch/papers/multiplikation/code/meas/winograd.txt @@ -1,4 +1,4 @@ -0.000000,2 +0.000001,2 0.000001,4 0.000002,8 0.000011,16 diff --git a/buch/papers/multiplikation/code/meas_1024.pdf b/buch/papers/multiplikation/code/meas_1024.pdf index 3312420..f489a7d 100644 Binary files a/buch/papers/multiplikation/code/meas_1024.pdf and b/buch/papers/multiplikation/code/meas_1024.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf index c29a891..8a53398 100644 Binary files a/buch/papers/multiplikation/images/bigo.pdf and b/buch/papers/multiplikation/images/bigo.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex index a415ccb..9ee3a68 100644 --- a/buch/papers/multiplikation/images/bigo.tex +++ b/buch/papers/multiplikation/images/bigo.tex @@ -42,56 +42,56 @@ \begin{axis}[ xmode=log, ymode=log, - xmin=1e-0, xmax=5e1, + xmin=1e-0, xmax=5000, ymin=10e-1, ymax=1e7, grid=both, major grid style={black!50}, - xlabel = $n$ (Data Input), - ylabel = {$t$ (time)}, - legend pos=north east, + xlabel = data input size, + ylabel = {time}, + legend pos=north west, very thick, yticklabels=\empty, xticklabels=\empty, scale only axis=true, - width=12cm, height=6cm, + width=12cm, height=8cm, ] \addplot [ - domain= 1:50, + domain= 1:5000, samples=100, color=red, ] {1}; \addlegendentry{$\mathcal{O}(1)$} \addplot [ - domain= 1:50, + domain= 1:5000, samples=100, color=green, ] {x}; \addlegendentry{$\mathcal{O}(n)$} \addplot [ - domain= 1:50, + domain= 1:50000, samples=100, color=blue, ] {x^2}; \addlegendentry{$\mathcal{O}\left(n^2\right)$} \addplot [ - domain= 1:50, + domain= 1:500, samples=100, color=purple, ] {x^3}; \addlegendentry{$\mathcal{O}\left(n^3\right)$} \addplot [ - domain= 1:50, + domain= 1:500, samples=100, color=black, ] {exp(x) - 1.7}; \addlegendentry{$\mathcal{O}\left(e^n\right)$} \addplot [ - domain= 1:50, + domain= 1:5000, samples=100, color=orange, ] @@ -99,7 +99,7 @@ \addlegendentry{$\mathcal{O}(\log n)$} \addplot [ - domain= 1:50, + domain= 1:5000, samples=100, color=gray, ] diff --git a/buch/papers/multiplikation/images/meas_c.pdf b/buch/papers/multiplikation/images/meas_c.pdf new file mode 100644 index 0000000..3a4cfd8 Binary files /dev/null and b/buch/papers/multiplikation/images/meas_c.pdf differ diff --git a/buch/papers/multiplikation/images/meas_c.tex b/buch/papers/multiplikation/images/meas_c.tex new file mode 100644 index 0000000..818a7e6 --- /dev/null +++ b/buch/papers/multiplikation/images/meas_c.tex @@ -0,0 +1,143 @@ + +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usepackage{pgfplotstable} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture} +\begin{axis}[ +xmode=log, ymode=log, +xmin=60, xmax=5000, +ymin=1e-4, ymax=2e3, +grid=both, +major grid style={black!50}, +xlabel = data Input ($n$), +ylabel = {time ($s$)}, +legend pos=north west, +very thick, +scale only axis=true, +width=12cm, height=8cm, + log basis x={10} +] +\addlegendentry{Winograd} +\addplot[ color=purple, +] coordinates { +% (2, 0.000001) +% (4, 0.000001) +% (8, 0.000002) +% (16, 0.000011) +% (32, 0.000100) +(64, 0.000654) +(128, 0.005229) +(256, 0.057440) +(512, 0.517850) +(1024,4.539413) +(2048,130.627663) +(4096,1179.261048) +}; +\addlegendentry{Strassen} +\addplot [ color=black, +]coordinates { + % (2,0.000001 ) + % (4,0.000003 ) + % (8,0.000010 ) + % (16,0.000066 ) + % (32,0.000470 ) + (64,0.003368 ) + (128,0.024232 ) + (256,0.172000 ) + (512,1.209262 ) +(1024,8.457472 ) +(2048,59.267256) +(4096,414.648901) +}; + +\addlegendentry{MM div and conq} +\addplot[ color=green, +] coordinates { + % (2,0.000003 ) + % (4,0.000002 ) + % (8,0.000010 ) + % (16,0.000068 ) + % (32,0.000594 ) + (64,0.004264 ) + (128,0.036289 ) + (256,0.324645 ) + (512,2.612010 ) +(1024,19.928951 ) +(2048,159.333884 ) +(4096,1147.106865) +}; + +\addlegendentry{MM} +\addplot [ color=red, +]coordinates { + % (2,0.000001 ) + % (4,0.000001 ) + % (8,0.000001 ) + % (16,0.000010 ) + % (32,0.000081 ) + (64,0.000654 ) + (128,0.005556 ) + (256,0.054253 ) + (512,0.487317 ) +(1024,4.162845 ) +(2048,125.909034 ) +(4096,1111.312696) +}; +\addlegendentry{BLAS} +\addplot[ color=blue, +] coordinates { + % (2,0.000001 ) + % (4,0.000001 ) + % (8,0.000001 ) + % (16,0.000003 ) + % (32,0.000022 ) + (64,0.000179 ) + (128,0.001278 ) + (256,0.010165 ) + (512,0.074739 ) +(1024,0.704748 ) +(2048,6.845095 ) +(4096,55.845038) +}; +\end{axis} +\end{tikzpicture} + +\end{document} diff --git a/buch/papers/multiplikation/images/meas_python.pdf b/buch/papers/multiplikation/images/meas_python.pdf new file mode 100644 index 0000000..cea2232 Binary files /dev/null and b/buch/papers/multiplikation/images/meas_python.pdf differ diff --git a/buch/papers/multiplikation/images/meas_python.tex b/buch/papers/multiplikation/images/meas_python.tex new file mode 100644 index 0000000..ee4db43 --- /dev/null +++ b/buch/papers/multiplikation/images/meas_python.tex @@ -0,0 +1,137 @@ + +\documentclass[border=10pt,varwidth]{standalone} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usepackage{pgfplotstable} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + +\begin{tikzpicture} +\begin{axis}[ +xmode=log, ymode=log, +xmin=30, xmax=1050, +ymin=0.01, ymax=900, +grid=both, +major grid style={black!50}, +xlabel = data input ($n$), +ylabel = {time ($s$)}, +legend pos=north west, +very thick, +scale only axis=true, +width=12cm, height=8cm, + log basis x={10} +] +\addlegendentry{Winograd} +\addplot[ color=purple, +] coordinates { +% (2, 2.7895e-05 ) +% (4, 0.000104904) +% (8, 0.000552893) +% (16, 0.0045557 ) +(32, 0.0187144 ) +(64, 0.153069 ) +(128, 1.19476 ) +(256, 8.29899 ) +(512, 68.3699 ) +(1024,537.374 ) + +}; +\addlegendentry{Strassen} +\addplot [ color=black, +]coordinates { + % (2,2.09808e-05 ) + % (4,0.000174284 ) + % (8,0.000943899 ) + % (16,0.00475407 ) + (32,0.0485256 ) + (64,0.220414 ) + (128,1.44718 2 ) + (256,9.93866 0 ) + (512,63.961 2 ) +(1024,461.494 2 ) +}; + +\addlegendentry{MM div and conq} +\addplot[ color=green, +] coordinates { + % (2,8.10623e-06 ) + % (4,9.01222e-05 ) + % (8,0.000729084 ) + % (16,0.00497079 ) + (32,0.02719 ) + (64,0.26528 ) + (128,1.77787 ) + (256,13.27 ) + (512,105.397 ) +(1024,847.321 ) +}; + +\addlegendentry{MM} +\addplot [ color=red, +]coordinates { + % (2,1.85966e-05) + % (4,8.29697e-05 ) + % (8,0.000547171) + % (16,0.00305367 ) + (32, 0.0240743 ) + (64, 0.186895 ) + (128, 1.56369 ) + (256, 11.0062 ) + (512, 85.4768) +(1024,750.757 ) +}; +% \addlegendentry{NumPy} +% \addplot[ color=blue, +% ] coordinates { +% (2,1.83582e-05 ) +% (4,7.86781e-06) +% (8,1.00136e-05) +% (16,5.4121e-05 ) +% (32,4.26769e-05) +% (64,0.000118494) +% (128,0.000244141 ) +% (256,0.000695705 ) +% (512,0.00221705 ) +% (1024,0.0188088 ) +% }; +\end{axis} +\end{tikzpicture} + +\end{document} + + + diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 43181d4..a7612e1 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -15,7 +15,7 @@ Die Standardmethode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen w Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{for j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{for k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. -\begin{algorithm}\footnotesize\caption{Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Matrizenmultiplikation} \label{multiplikation:alg:smm} \setlength{\lineskip}{7pt} \begin{algorithmic}[1] @@ -50,7 +50,7 @@ Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. Zur vereinfachten Veranschaulichung kann die Situation mit $\mathbf{A}$ und $\mathbf{B}$ der Gr\"osse $2^n \times 2^n$ verwendet werden. Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der Gr\"osse $2^{n-1} \times 2^{n-1}$ aufgeteilt. -Das Matrizen produklt +Das Matrizen Produkt \begin{equation} \mathbf{A}\mathbf{B}= \begin{bmatrix} @@ -76,7 +76,7 @@ ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplik Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. -\begin{algorithm}\footnotesize\caption{Divide and Conquer Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Divide and Conquer Matrizenmultiplikation} \setlength{\lineskip}{7pt} \label{multiplikation:alg:devide_mm} \begin{algorithmic} @@ -105,7 +105,7 @@ Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ \end{algorithmic} \end{algorithm} -Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \cite{multiplikation:master_theorem} berechnet werden. Das \textit{Master Theorem} bestimmt die Zeitkomplexit\"at von rekursiven Algortihmen. +Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \cite{multiplikation:master_theorem} berechnet werden. Das \textit{Master Theorem} bestimmt die Zeitkomplexit\"at von rekursiven Algorithmen. Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe $\mathcal{T} $ der Funktion die Laufzeit. In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt \begin{equation} \label{multiplikation:eq:laufzeitdac} @@ -141,7 +141,7 @@ aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Bl\"ocke \end{split} \end{equation} der Matrix $\mathbf{C}$ gebraucht. -\begin{algorithm}\footnotesize\caption{Strassen Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Strassen Matrizenmultiplikation} \label{multiplikation:alg:strassen} \setlength{\lineskip}{7pt} \begin{algorithmic} @@ -186,7 +186,7 @@ der Matrix $\mathbf{C}$ gebraucht. \EndFunction \end{algorithmic} \end{algorithm} -Strassen's Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. +Strassens Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . Die gr\"unen Felder auf der linken Seite, zeigen die Addition, welche f\"ur den dazugeh\"origen Term ben\"otigt wird. Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \dotsb, V}$. @@ -194,7 +194,7 @@ Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} - \caption{Strassen's Algorithmus} + \caption{Strassens Algorithmus} \label{multiplikation:fig:strassen} \end{figure} @@ -207,7 +207,7 @@ Dies f\"uhrt nach dem \textit{Master Theorem} zu einer Laufzeit von und ist somit schneller als die Standardmethode. Man beachte, dass die Anzahl von Additionen und Subtraktionen gr\"osser und die Anzahl der Multiplikationen kleiner wurde. -\subsection{Winograd's Algorithmus} +\subsection{Winograds Algorithmus} Einen weiteren Ansatz lieferte Shmuel Winograd im Jahre 1968 \cite{multiplikation:winograd_1968}. Er beschrieb einen neuen Algorithmus f\"ur das Skalarprodukt @@ -232,9 +232,10 @@ Das Skalarprodukt ist nun geben mit \displaystyle \quad \sum_{j=1}^{ \lfloor n/2 \rfloor} (x_{2j-1} + y_{2j})(x_{2j}+y_{2j-1})-\xi - \eta + x_n y_n & \text{wenn $n$ ungerade}. \end{cases} \end{equation} -Das Skalarprodukt kann also mit $ \lfloor \frac{n+1}{2} \rfloor$ weiteren Multiplikationen brechnet werden. +Das Skalarprodukt kann also mit $ \lfloor \frac{n+1}{2} \rfloor$ weiteren Multiplikationen berechnet werden. Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. +Die Summen f\"ur $\xi$ und $\eta$ m\"ussen nur einmal berechnet werden. Für die Gleichung \eqref{multiplikation:eq:skalar} benötigt man $Tn$ Multiplikationen. Im Vergleich mit der neuen Methode \begin{equation} @@ -254,15 +255,20 @@ Dies f\"uhrt zu Multiplikationen. Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. Was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. -Mit dem glichen Ansatz wie in der Gleichung \ref{multiplikation:eq:eff} aber mit quadratischen Matrizen, muss +Mit dem gleichen Ansatz wie in der Gleichung \ref{multiplikation:eq:eff} aber mit quadratischen Matrizen, muss \begin{equation} - N=2n \ll T=n^2 + \begin{split} +N=2n, \quad T = n^2 \\ + 2n \leq n^2 \\ + 2 \leq n +\end{split} \end{equation} -damit man etwas einspart. +sein, damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. -Falls $m=n=p$ werden $\frac{n^3}/{2}$ Multiplikationen benötigt. Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und +Falls $m=n=p$ werden $\frac{n^3}/{2}$ Multiplikationen benötigt. +Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}\left(n^3 \right)$. -\begin{algorithm}\footnotesize\caption{Winograd Matrix Multiplication} +\begin{algorithm}\footnotesize\caption{Winograds Matrizenmultiplikation} \setlength{\lineskip}{7pt} \label{multiplikation:alg:winograd} \begin{algorithmic} @@ -374,8 +380,8 @@ Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementi \begin{itemize} \item Standard Matrizenmultiplikation \item \textit{Devide and Conquer} Matrizenmultiplikation - \item Strassen's Matrizenmultiplikation - \item Winograd's Matrizenmultiplikation + \item Strassens Matrizenmultiplikation + \item Winograds Matrizenmultiplikation \item \texttt{BLAS} Matrizenmultiplikation in \texttt{C} \item \texttt{Numpy} Matrizenmultiplikation in \texttt{Python} \end{itemize} @@ -458,7 +464,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center - \includegraphics[width=\linewidth]{papers/multiplikation/images/c_meas_4096} + \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_c} \caption{Messresultate mit der Programmiersprache \texttt{C}} \label{multiplikation:fig:c_meas_4096} \end{figure} @@ -466,7 +472,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center - \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_1024} + \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_python} \caption{Messresultate mit der Programmiersprache \texttt{Python}} \label{multiplikation:fig:python} \end{figure} @@ -474,7 +480,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \section{Fazit} \rhead{Fazit} -Wie man im Abschnit \ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. +Wie man im Abschnitt \ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. Ein optimierter Speicherzugriff hat einen weitaus grösseren Einfluss auf die Laufzeit als die Zeitkomplexität des Algorithmus. Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index c6fd10e..e53b0de 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -7,13 +7,14 @@ \rhead{Problemstellung} Wegen der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. -Gezielt wird auf Algorithmen eingegange, welche das Problem schneller als der Standard Algorithmus l\"osen. +Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der Standard Algorithmus l\"osen. \subsection{Big $\mathcal{O}$ Notation} \label{muliplikation:sec:bigo} -Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhänigkeit zur Inputgrösse \cite{multiplikation:bigo}. +Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhängigkeit zur Inputgrösse \cite{multiplikation:bigo}. $f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. -Als Beispiel: benötigt eine Funktion $g$, $\mathcal{O}\left(n+n^2 \right)$ Multiplikationen so wächst $f$ mit $\mathcal{O}\left(n^2 \right)$ nicht wesentlich schneller als $g$. +% Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$ +Als Beispiel: benötigt eine Funktion $g$ $\mathcal{O}\left(n^2 \right)$ Multiplikationen, so wächst $f$ mit $\mathcal{O}\left(n+ n^2 \right)$ nicht wesentlich schneller falls $x\to\infty$. Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt @@ -26,13 +27,9 @@ Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \end{itemize} In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. +Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt. +Sch\"on zu erkennen ist, dass Logarithmische Kurven beschr\"ankt sind. -\begin{figure} - \center - \includegraphics[]{papers/multiplikation/images/bigo} - \caption{Verschiedene Laufzeiten} - \label{multiplikation:fig:bigo} -\end{figure} \subsubsection{Beispiel Algorithmen} @@ -101,23 +98,25 @@ Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomple \paragraph{Beschr\"ankter Algorithmus} -Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen einfluss auf die Laufzeit. - - +Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen Einfluss auf die Laufzeit. Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. - - \paragraph{Linearer Algorithmus} Der Algorithmus \ref{multiplikation:alg:linear} hat ein lineares Verhalten. Die \texttt{for}-Schleife wird $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}(n)$. - - \paragraph{Quadratischer Algorithmus} Der Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. -Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchglaufen und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. +Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. + + +\begin{figure} + \center + \includegraphics[]{papers/multiplikation/images/bigo} + \caption{Verschiedene Laufzeiten} + \label{multiplikation:fig:bigo} +\end{figure} -- cgit v1.2.1 From ce9f4591847c6bd2dc6ebaa30fc5d72714e0280c Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 10 Aug 2021 06:37:20 +0200 Subject: new measurements --- buch/papers/multiplikation/code/MM | Bin 26848 -> 0 bytes buch/papers/multiplikation/code/MM.c | 19 +- buch/papers/multiplikation/code/MM.py | 77 ++++---- buch/papers/multiplikation/code/c_matrix.h | 204 ++++++++++++++------- buch/papers/multiplikation/code/c_meas_4096.pdf | Bin 17448 -> 22360 bytes buch/papers/multiplikation/code/ci.txt | 0 buch/papers/multiplikation/code/helper_class.py | 3 +- buch/papers/multiplikation/code/meas/MM.txt | 118 +++++++++++- buch/papers/multiplikation/code/meas/MM_dc.txt | 118 +++++++++++- buch/papers/multiplikation/code/meas/blas.txt | 114 +++++++++++- buch/papers/multiplikation/code/meas/ci/MM.txt | 11 ++ buch/papers/multiplikation/code/meas/ci/Wino.txt | 11 ++ buch/papers/multiplikation/code/meas/ci/blas.txt | 11 ++ buch/papers/multiplikation/code/meas/ci/dc.txt | 11 ++ .../multiplikation/code/meas/ci/strassen.txt | 11 ++ .../multiplikation/code/meas/old/8196/MM.txt | 1 + .../multiplikation/code/meas/old/8196/MM_dc.txt | 1 + .../multiplikation/code/meas/old/8196/blas.txt | 1 + .../multiplikation/code/meas/old/8196/strassen.txt | 1 + .../multiplikation/code/meas/old/8196/winograd.txt | 1 + buch/papers/multiplikation/code/meas/old/MM.txt | 12 ++ buch/papers/multiplikation/code/meas/old/MM_dc.txt | 12 ++ buch/papers/multiplikation/code/meas/old/blas.txt | 12 ++ .../multiplikation/code/meas/old/strassen.txt | 12 ++ .../multiplikation/code/meas/old/winograd.txt | 12 ++ buch/papers/multiplikation/code/meas/strassen.txt | 122 ++++++++++-- buch/papers/multiplikation/code/meas/winograd.txt | 116 +++++++++++- buch/papers/multiplikation/code/meas_4096.pdf | Bin 12952 -> 17369 bytes buch/papers/multiplikation/code/meas_4096.txt | 6 + buch/papers/multiplikation/images/algo_tab.pdf | Bin 0 -> 34251 bytes buch/papers/multiplikation/images/algo_tab.tex | 122 ++++++++++++ buch/papers/multiplikation/images/meas_c.pdf | Bin 23161 -> 23552 bytes buch/papers/multiplikation/images/meas_c.tex | 9 +- buch/papers/multiplikation/loesungsmethoden.tex | 48 ++--- buch/papers/multiplikation/problemstellung.tex | 145 ++++++++------- 35 files changed, 1096 insertions(+), 245 deletions(-) delete mode 100755 buch/papers/multiplikation/code/MM create mode 100644 buch/papers/multiplikation/code/ci.txt create mode 100644 buch/papers/multiplikation/code/meas/ci/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/ci/Wino.txt create mode 100644 buch/papers/multiplikation/code/meas/ci/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/ci/dc.txt create mode 100644 buch/papers/multiplikation/code/meas/ci/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/old/8196/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/old/8196/MM_dc.txt create mode 100644 buch/papers/multiplikation/code/meas/old/8196/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/old/8196/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/old/8196/winograd.txt create mode 100644 buch/papers/multiplikation/code/meas/old/MM.txt create mode 100644 buch/papers/multiplikation/code/meas/old/MM_dc.txt create mode 100644 buch/papers/multiplikation/code/meas/old/blas.txt create mode 100644 buch/papers/multiplikation/code/meas/old/strassen.txt create mode 100644 buch/papers/multiplikation/code/meas/old/winograd.txt create mode 100644 buch/papers/multiplikation/images/algo_tab.pdf create mode 100644 buch/papers/multiplikation/images/algo_tab.tex (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/code/MM b/buch/papers/multiplikation/code/MM deleted file mode 100755 index d52dda4..0000000 Binary files a/buch/papers/multiplikation/code/MM and /dev/null differ diff --git a/buch/papers/multiplikation/code/MM.c b/buch/papers/multiplikation/code/MM.c index a897d4f..2588262 100755 --- a/buch/papers/multiplikation/code/MM.c +++ b/buch/papers/multiplikation/code/MM.c @@ -28,11 +28,12 @@ int main() { // omp_set_num_threads(4); // run_algo(openMP_MM, "openMP_MM",0); run_algo(MM_dc, "MM_dc",0); + run_algo(strassen, "strassen",0); run_algo(MM, "MM", 0); - run_algo(winograd, "winograd", 0); - run_algo_cblas(0); + run_algo(winograd, "winograd", 0); + run_algo_cblas(0); return 0; } @@ -414,12 +415,12 @@ void run_algo(void (*algo)(), char alog_name[], int print) for(int i=0; i const int A0[][2] = { - {75,47}, - {-41,-24} + {60,-84}, + {-66,-1} }; const int B0[][2] = { - {-53,-95}, - {-93,30} + {-45,87}, + {-38,-73} }; const double dB0[][2] = { - {-53,-95}, - {-93,30} + {-45,87}, + {-38,-73} }; const double dA0[][2] = { - {75,47}, - {-41,-24} + {60,-84}, + {-66,-1} }; const int A1[][4] = { - {47,11,-66,8}, - {36,98,39,82}, - {-32,12,40,-79}, - {61,-20,-85,-98} + {-72,-19,-91,62}, + {-36,-74,-44,-47}, + {-39,-31,50,-93}, + {-81,2,-17,-86} }; const int B1[][4] = { - {37,75,-53,9}, - {37,-33,-67,38}, - {70,39,-93,43}, - {43,41,23,-4} + {-66,39,-23,52}, + {-88,-13,13,-13}, + {-45,-70,28,-20}, + {96,5,88,96} }; const double dB1[][4] = { - {37,75,-53,9}, - {37,-33,-67,38}, - {70,39,-93,43}, - {43,41,23,-4} + {-66,39,-23,52}, + {-88,-13,13,-13}, + {-45,-70,28,-20}, + {96,5,88,96} }; const double dA1[][4] = { - {47,11,-66,8}, - {36,98,39,82}, - {-32,12,40,-79}, - {61,-20,-85,-98} + {-72,-19,-91,62}, + {-36,-74,-44,-47}, + {-39,-31,50,-93}, + {-81,2,-17,-86} }; const int A2[][8] = { - {-54,-87,87,69,52,-21,-86,55}, - {19,-75,-61,-50,-55,-23,66,-92}, - {-73,-67,-36,19,84,-11,24,46}, - {-98,62,-76,57,-100,6,-23,-51}, - {62,46,1,-64,42,-9,85,-12}, - {35,-59,-17,-47,78,86,-50,74}, - {-15,45,33,-59,-9,-81,49,96}, - {-57,22,-43,7,-30,-45,-5,13} + {-36,-2,-58,-32,34,-89,49,-55}, + {-68,-73,52,-3,-51,-37,-31,70}, + {73,-90,-21,-79,-15,96,-99,12}, + {68,-25,38,-73,-60,35,-99,72}, + {-43,-87,48,-84,-100,37,80,53}, + {-27,88,-5,-82,-57,-27,20,10}, + {-91,-47,54,-90,-99,-76,50,-18}, + {69,-36,76,5,-67,-38,-95,91} }; const int B2[][8] = { - {-71,-82,-80,-78,83,-97,48,-24}, - {15,75,15,-60,-63,-53,1,-50}, - {-84,63,67,-2,78,93,-13,95}, - {61,-26,-88,56,56,27,26,1}, - {2,54,21,36,9,-41,53,53}, - {85,-11,42,-51,-6,3,27,97}, - {10,-2,90,-76,-75,0,8,-37}, - {10,-64,47,-69,66,-50,89,-66} + {-84,22,-13,-66,-42,51,66,0}, + {37,-65,66,-85,-10,-23,77,5}, + {1,41,-79,0,63,-37,-10,29}, + {72,66,-99,92,-28,65,25,-40}, + {69,-49,65,-18,64,-97,-47,30}, + {36,86,66,-12,-17,89,1,-37}, + {-100,11,27,23,-75,-23,96,-9}, + {68,90,-87,-99,-70,-28,98,-76} }; const double dB2[][8] = { - {-71,-82,-80,-78,83,-97,48,-24}, - {15,75,15,-60,-63,-53,1,-50}, - {-84,63,67,-2,78,93,-13,95}, - {61,-26,-88,56,56,27,26,1}, - {2,54,21,36,9,-41,53,53}, - {85,-11,42,-51,-6,3,27,97}, - {10,-2,90,-76,-75,0,8,-37}, - {10,-64,47,-69,66,-50,89,-66} + {-84,22,-13,-66,-42,51,66,0}, + {37,-65,66,-85,-10,-23,77,5}, + {1,41,-79,0,63,-37,-10,29}, + {72,66,-99,92,-28,65,25,-40}, + {69,-49,65,-18,64,-97,-47,30}, + {36,86,66,-12,-17,89,1,-37}, + {-100,11,27,23,-75,-23,96,-9}, + {68,90,-87,-99,-70,-28,98,-76} }; const double dA2[][8] = { - {-54,-87,87,69,52,-21,-86,55}, - {19,-75,-61,-50,-55,-23,66,-92}, - {-73,-67,-36,19,84,-11,24,46}, - {-98,62,-76,57,-100,6,-23,-51}, - {62,46,1,-64,42,-9,85,-12}, - {35,-59,-17,-47,78,86,-50,74}, - {-15,45,33,-59,-9,-81,49,96}, - {-57,22,-43,7,-30,-45,-5,13} - }; -const int *Ap[3] = {(int*) A0,(int*) A1,(int*) A2}; -const int *Bp[3] = {(int*) B0,(int*) B1,(int*) B2}; -const double *dAp[3] = {(double*) dA0,(double*) dA1,(double*) dA2}; -const double *dBp[3] = {(double*) dB0,(double*) dB1,(double*) dB2}; -int n[3] = {2,4,8}; -int n_arrays = 3; + {-36,-2,-58,-32,34,-89,49,-55}, + {-68,-73,52,-3,-51,-37,-31,70}, + {73,-90,-21,-79,-15,96,-99,12}, + {68,-25,38,-73,-60,35,-99,72}, + {-43,-87,48,-84,-100,37,80,53}, + {-27,88,-5,-82,-57,-27,20,10}, + {-91,-47,54,-90,-99,-76,50,-18}, + {69,-36,76,5,-67,-38,-95,91} + }; +const int A3[][16] = + { + {-24,65,21,19,94,70,-90,-81,53,-41,-23,-1,58,-80,-54,59}, + {-42,76,-19,98,29,-56,92,14,45,11,82,83,48,-13,81,66}, + {43,-57,-67,95,5,72,11,0,-47,55,-24,36,84,54,-31,-54}, + {-39,-40,19,97,-82,-56,27,95,81,-21,-50,-74,-35,-87,-28,-26}, + {-74,-98,79,92,-24,-48,99,94,55,-83,70,98,-24,18,-67,14}, + {20,76,11,-23,-56,21,0,42,64,86,-74,44,93,-76,-30,97}, + {13,20,-73,-11,-30,80,53,-8,60,21,17,-42,82,-72,-6,-80}, + {36,-93,-64,-21,20,-85,15,24,99,81,-52,64,71,-56,52,63}, + {32,9,-2,-85,17,62,-98,-35,75,-58,-44,-20,-47,89,-95,52}, + {93,-43,86,68,-6,-25,90,57,60,-10,65,-97,43,46,-60,-41}, + {43,-33,0,50,-100,26,-60,95,39,-70,-61,-81,9,-23,-99,-4}, + {20,61,15,43,-96,93,-55,38,-29,-1,-10,26,-87,18,64,6}, + {-98,-84,51,16,-14,86,52,59,44,-39,-2,10,82,-66,54,19}, + {89,-49,-37,-6,-53,40,-11,46,-51,-56,86,34,11,13,-20,-49}, + {-90,14,28,-45,-25,-56,-51,-61,28,-8,51,91,95,-10,-85,58}, + {8,-44,88,-71,-27,11,89,37,86,-78,-44,-56,-87,0,-42,-61} + }; +const int B3[][16] = + { + {62,-30,62,92,29,-93,-95,44,-33,-88,-29,9,-88,-42,-90,-70}, + {60,37,-44,-93,-87,6,-53,2,-29,53,-49,59,6,83,-15,50}, + {-19,85,-49,-14,84,-4,12,88,-83,-81,-24,-16,-12,-42,-63,-71}, + {-42,-78,-58,-61,-29,67,-28,-46,64,7,6,-13,88,-42,95,-24}, + {-90,-56,8,-30,-89,70,37,-29,24,-8,-10,-2,-25,-63,-95,-91}, + {10,-81,42,-28,-13,-68,-72,-20,-22,5,-79,-50,-88,62,57,69}, + {-67,24,-71,-43,11,48,33,-93,-82,-65,-4,5,-15,25,-54,-45}, + {-49,19,-29,90,-97,-87,78,-39,-75,-85,-79,-35,54,3,-73,7}, + {-7,39,70,-42,32,-100,56,4,-24,-57,38,-49,-50,-44,79,-42}, + {37,-65,-55,22,-97,-42,-76,95,97,-27,38,11,0,-81,-23,35}, + {26,-70,10,-29,47,-70,-52,29,-13,-18,5,34,18,32,87,91}, + {-84,41,-19,96,-51,-19,81,75,81,92,2,-40,-42,-69,-10,-61}, + {-30,98,71,-51,91,-59,58,86,86,-22,-84,7,66,-55,-52,23}, + {-71,-44,-9,90,26,18,26,-10,-85,64,-47,3,72,81,74,-8}, + {52,-59,-91,22,8,-63,84,9,-11,-54,-78,-71,-98,42,96,57}, + {18,-39,34,-50,-62,-96,-2,-78,52,94,-33,2,-19,-9,-86,-75} + }; +const double dB3[][16] = + { + {62,-30,62,92,29,-93,-95,44,-33,-88,-29,9,-88,-42,-90,-70}, + {60,37,-44,-93,-87,6,-53,2,-29,53,-49,59,6,83,-15,50}, + {-19,85,-49,-14,84,-4,12,88,-83,-81,-24,-16,-12,-42,-63,-71}, + {-42,-78,-58,-61,-29,67,-28,-46,64,7,6,-13,88,-42,95,-24}, + {-90,-56,8,-30,-89,70,37,-29,24,-8,-10,-2,-25,-63,-95,-91}, + {10,-81,42,-28,-13,-68,-72,-20,-22,5,-79,-50,-88,62,57,69}, + {-67,24,-71,-43,11,48,33,-93,-82,-65,-4,5,-15,25,-54,-45}, + {-49,19,-29,90,-97,-87,78,-39,-75,-85,-79,-35,54,3,-73,7}, + {-7,39,70,-42,32,-100,56,4,-24,-57,38,-49,-50,-44,79,-42}, + {37,-65,-55,22,-97,-42,-76,95,97,-27,38,11,0,-81,-23,35}, + {26,-70,10,-29,47,-70,-52,29,-13,-18,5,34,18,32,87,91}, + {-84,41,-19,96,-51,-19,81,75,81,92,2,-40,-42,-69,-10,-61}, + {-30,98,71,-51,91,-59,58,86,86,-22,-84,7,66,-55,-52,23}, + {-71,-44,-9,90,26,18,26,-10,-85,64,-47,3,72,81,74,-8}, + {52,-59,-91,22,8,-63,84,9,-11,-54,-78,-71,-98,42,96,57}, + {18,-39,34,-50,-62,-96,-2,-78,52,94,-33,2,-19,-9,-86,-75} + }; +const double dA3[][16] = + { + {-24,65,21,19,94,70,-90,-81,53,-41,-23,-1,58,-80,-54,59}, + {-42,76,-19,98,29,-56,92,14,45,11,82,83,48,-13,81,66}, + {43,-57,-67,95,5,72,11,0,-47,55,-24,36,84,54,-31,-54}, + {-39,-40,19,97,-82,-56,27,95,81,-21,-50,-74,-35,-87,-28,-26}, + {-74,-98,79,92,-24,-48,99,94,55,-83,70,98,-24,18,-67,14}, + {20,76,11,-23,-56,21,0,42,64,86,-74,44,93,-76,-30,97}, + {13,20,-73,-11,-30,80,53,-8,60,21,17,-42,82,-72,-6,-80}, + {36,-93,-64,-21,20,-85,15,24,99,81,-52,64,71,-56,52,63}, + {32,9,-2,-85,17,62,-98,-35,75,-58,-44,-20,-47,89,-95,52}, + {93,-43,86,68,-6,-25,90,57,60,-10,65,-97,43,46,-60,-41}, + {43,-33,0,50,-100,26,-60,95,39,-70,-61,-81,9,-23,-99,-4}, + {20,61,15,43,-96,93,-55,38,-29,-1,-10,26,-87,18,64,6}, + {-98,-84,51,16,-14,86,52,59,44,-39,-2,10,82,-66,54,19}, + {89,-49,-37,-6,-53,40,-11,46,-51,-56,86,34,11,13,-20,-49}, + {-90,14,28,-45,-25,-56,-51,-61,28,-8,51,91,95,-10,-85,58}, + {8,-44,88,-71,-27,11,89,37,86,-78,-44,-56,-87,0,-42,-61} + }; +const int *Ap[4] = {(int*) A0,(int*) A1,(int*) A2,(int*) A3}; +const int *Bp[4] = {(int*) B0,(int*) B1,(int*) B2,(int*) B3}; +const double *dAp[4] = {(double*) dA0,(double*) dA1,(double*) dA2,(double*) dA3}; +const double *dBp[4] = {(double*) dB0,(double*) dB1,(double*) dB2,(double*) dB3}; +int n[4] = {2,4,8,16}; +int n_arrays = 4; diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf index 5236afb..b42082f 100644 Binary files a/buch/papers/multiplikation/code/c_meas_4096.pdf and b/buch/papers/multiplikation/code/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/ci.txt b/buch/papers/multiplikation/code/ci.txt new file mode 100644 index 0000000..e69de29 diff --git a/buch/papers/multiplikation/code/helper_class.py b/buch/papers/multiplikation/code/helper_class.py index 485fa76..ad67909 100755 --- a/buch/papers/multiplikation/code/helper_class.py +++ b/buch/papers/multiplikation/code/helper_class.py @@ -101,5 +101,6 @@ if __name__ == '__main__': helper = Helper() # n = np.arange(2,10) - n = np.logspace(1,3,3,base=2,dtype=(np.int)) + n = np.logspace(1,4,4,base=2,dtype=(np.int)) + # n=[8192] C = helper.write_c_matrix(n) diff --git a/buch/papers/multiplikation/code/meas/MM.txt b/buch/papers/multiplikation/code/meas/MM.txt index e296dd7..7bffb6e 100644 --- a/buch/papers/multiplikation/code/meas/MM.txt +++ b/buch/papers/multiplikation/code/meas/MM.txt @@ -1,12 +1,110 @@ -0.000001,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 0.000001,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000001,4 +0.000001,4 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000001,8 0.000001,8 -0.000010,16 -0.000081,32 -0.000654,64 -0.005556,128 -0.054253,256 -0.487317,512 -4.162845,1024 -125.909034,2048 -1111.312696,4096 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000021,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000090,32 +0.000093,32 +0.000083,32 +0.000082,32 +0.000090,32 +0.000080,32 +0.000080,32 +0.000080,32 +0.000089,32 +0.000126,32 +0.000771,64 +0.000651,64 +0.000651,64 +0.000651,64 +0.000731,64 +0.000673,64 +0.000745,64 +0.000672,64 +0.000671,64 +0.000707,64 +0.005642,128 +0.005579,128 +0.005768,128 +0.005745,128 +0.005518,128 +0.005877,128 +0.005513,128 +0.005850,128 +0.005769,128 +0.005581,128 +0.052188,256 +0.051988,256 +0.051888,256 +0.051518,256 +0.051709,256 +0.051543,256 +0.051707,256 +0.051845,256 +0.051495,256 +0.051834,256 +0.507020,512 +0.504111,512 +0.502049,512 +0.529743,512 +0.501028,512 +0.502097,512 +0.503490,512 +0.502079,512 +0.506688,512 +0.504163,512 +4.538722,1024 +4.291473,1024 +4.516302,1024 +4.374630,1024 +4.719557,1024 +4.438999,1024 +4.641680,1024 +4.407959,1024 +4.441451,1024 +4.677313,1024 +129.433279,2048 +129.277802,2048 +129.284817,2048 +129.086884,2048 +129.197444,2048 +129.350999,2048 +129.264250,2048 +129.295723,2048 +129.402601,2048 +129.300820,2048 diff --git a/buch/papers/multiplikation/code/meas/MM_dc.txt b/buch/papers/multiplikation/code/meas/MM_dc.txt index f6be928..b78b925 100644 --- a/buch/papers/multiplikation/code/meas/MM_dc.txt +++ b/buch/papers/multiplikation/code/meas/MM_dc.txt @@ -1,12 +1,110 @@ 0.000003,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 0.000002,4 -0.000010,8 -0.000068,16 -0.000594,32 -0.004264,64 -0.036289,128 -0.324645,256 -2.612010,512 -19.928951,1024 -159.333884,2048 -1147.106865,4096 +0.000001,4 +0.000001,4 +0.000001,4 +0.000001,4 +0.000001,4 +0.000001,4 +0.000001,4 +0.000001,4 +0.000001,4 +0.000008,8 +0.000008,8 +0.000008,8 +0.000008,8 +0.000007,8 +0.000007,8 +0.000007,8 +0.000007,8 +0.000018,8 +0.000008,8 +0.000075,16 +0.000063,16 +0.000088,16 +0.000062,16 +0.000086,16 +0.000092,16 +0.000081,16 +0.000080,16 +0.000070,16 +0.000085,16 +0.000581,32 +0.000659,32 +0.000584,32 +0.000714,32 +0.000666,32 +0.000574,32 +0.000616,32 +0.000534,32 +0.000506,32 +0.000506,32 +0.004567,64 +0.004502,64 +0.004332,64 +0.004578,64 +0.004543,64 +0.004426,64 +0.004497,64 +0.004329,64 +0.004288,64 +0.004277,64 +0.036456,128 +0.034901,128 +0.034545,128 +0.034283,128 +0.035150,128 +0.034663,128 +0.034901,128 +0.034022,128 +0.034368,128 +0.035154,128 +0.296292,256 +0.297592,256 +0.302464,256 +0.299557,256 +0.299367,256 +0.306394,256 +0.287616,256 +0.292630,256 +0.289542,256 +0.277019,256 +2.331956,512 +2.224501,512 +2.203910,512 +2.198937,512 +2.206083,512 +2.199477,512 +2.199847,512 +2.225379,512 +2.202491,512 +2.235926,512 +17.649432,1024 +17.636769,1024 +17.639024,1024 +17.625402,1024 +17.722286,1024 +17.611777,1024 +17.653120,1024 +17.748270,1024 +17.691817,1024 +17.614448,1024 +141.943689,2048 +141.580812,2048 +141.882050,2048 +141.516253,2048 +141.351237,2048 +141.641167,2048 +141.596407,2048 +141.607048,2048 +141.469723,2048 +141.515550,2048 diff --git a/buch/papers/multiplikation/code/meas/blas.txt b/buch/papers/multiplikation/code/meas/blas.txt index 92a61b9..9414d8f 100644 --- a/buch/papers/multiplikation/code/meas/blas.txt +++ b/buch/papers/multiplikation/code/meas/blas.txt @@ -1,12 +1,110 @@ 0.000001,2 -0.000001,4 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 0.000001,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 +0.000000,8 0.000003,16 -0.000022,32 -0.000179,64 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000012,16 +0.000003,16 +0.000003,16 +0.000003,16 +0.000021,32 +0.000019,32 +0.000030,32 +0.000020,32 +0.000020,32 +0.000020,32 +0.000020,32 +0.000020,32 +0.000020,32 +0.000020,32 +0.000180,64 +0.000192,64 +0.000163,64 +0.000153,64 +0.000153,64 +0.000197,64 +0.000163,64 +0.000267,64 +0.000226,64 +0.000164,64 +0.001216,128 +0.001233,128 +0.001364,128 0.001278,128 -0.010165,256 -0.074739,512 -0.704748,1024 -6.845095,2048 -55.845038,4096 +0.001211,128 +0.001295,128 +0.001206,128 +0.001371,128 +0.001225,128 +0.001250,128 +0.009733,256 +0.009497,256 +0.009586,256 +0.009600,256 +0.009768,256 +0.009566,256 +0.009731,256 +0.009550,256 +0.009664,256 +0.009794,256 +0.077453,512 +0.076616,512 +0.088812,512 +0.075990,512 +0.076925,512 +0.076303,512 +0.075915,512 +0.075600,512 +0.075122,512 +0.075029,512 +0.769186,1024 +0.775780,1024 +0.753906,1024 +0.757834,1024 +0.772001,1024 +0.770950,1024 +0.791317,1024 +0.753319,1024 +0.747228,1024 +0.752347,1024 +7.625205,2048 +7.652278,2048 +7.640682,2048 +7.649428,2048 +7.632806,2048 +7.579347,2048 +7.612317,2048 +7.676742,2048 +7.632979,2048 +7.619210,2048 diff --git a/buch/papers/multiplikation/code/meas/ci/MM.txt b/buch/papers/multiplikation/code/meas/ci/MM.txt new file mode 100644 index 0000000..e4ad1ba --- /dev/null +++ b/buch/papers/multiplikation/code/meas/ci/MM.txt @@ -0,0 +1,11 @@ +0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.999999999999999864e-07 -4.555021440490437016e-08 6.455502144049043430e-07 +1.800000000000000130e-06 1.498379044967867836e-06 2.101620955032132425e-06 +1.199999999999999861e-05 9.737842837259007037e-06 1.426215716274099018e-05 +8.930000000000000221e-05 7.942767152586658090e-05 9.917232847413342352e-05 +6.922999999999999684e-04 6.611729768299406300e-04 7.234270231700593067e-04 +5.684200000000000363e-03 5.587928563282692010e-03 5.780471436717308717e-03 +5.177150000000000502e-02 5.161257221154376407e-02 5.193042778845624596e-02 +5.062468000000001078e-01 5.001729723042721565e-01 5.123206276957280592e-01 +4.504808599999999608e+00 4.404751183933223402e+00 4.604866016066775813e+00 +1.292894618999999921e+02 1.292188312556721144e+02 1.293600925443278697e+02 diff --git a/buch/papers/multiplikation/code/meas/ci/Wino.txt b/buch/papers/multiplikation/code/meas/ci/Wino.txt new file mode 100644 index 0000000..4ec0106 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/ci/Wino.txt @@ -0,0 +1,11 @@ +9.999999999999999547e-08 -1.262157162740991459e-07 3.262157162740991104e-07 +0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.000000000000000333e-06 1.999999999999999909e-06 2.000000000000000757e-06 +1.199999999999999861e-05 9.737842837259007037e-06 1.426215716274099018e-05 +8.329999999999999189e-05 7.952898408510092581e-05 8.707101591489905797e-05 +6.478999999999999733e-04 6.173195729945008762e-04 6.784804270054990705e-04 +5.287299999999999986e-03 5.226513788941518357e-03 5.348086211058481615e-03 +5.267459999999999504e-02 5.240389179019239174e-02 5.294530820980759833e-02 +5.249752000000000862e-01 5.233835466989910090e-01 5.265668533010091634e-01 +4.671160999999999675e+00 4.572509907501117965e+00 4.769812092498881384e+00 +1.366769777000000090e+02 1.363957928284978891e+02 1.369581625715021289e+02 diff --git a/buch/papers/multiplikation/code/meas/ci/blas.txt b/buch/papers/multiplikation/code/meas/ci/blas.txt new file mode 100644 index 0000000..5d7ff7b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/ci/blas.txt @@ -0,0 +1,11 @@ +9.999999999999999547e-08 -1.262157162740991459e-07 3.262157162740991104e-07 +0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +9.999999999999999547e-08 -1.262157162740991459e-07 3.262157162740991104e-07 +3.899999999999999929e-06 1.864058553533107683e-06 5.935941446466892176e-06 +2.100000000000000223e-05 1.871284586667546976e-05 2.328715413332453469e-05 +1.858000000000000168e-04 1.595988766828141249e-04 2.120011233171859087e-04 +1.264900000000000009e-03 1.221091632895032926e-03 1.308708367104967091e-03 +9.648900000000000185e-03 9.575266909835235610e-03 9.722533090164764760e-03 +7.737650000000000083e-02 7.445101996220353235e-02 8.030198003779646931e-02 +7.643868000000000329e-01 7.545731380187049586e-01 7.742004619812951072e-01 +7.632099399999999534e+00 7.613379481172315444e+00 7.650819318827683624e+00 diff --git a/buch/papers/multiplikation/code/meas/ci/dc.txt b/buch/papers/multiplikation/code/meas/ci/dc.txt new file mode 100644 index 0000000..df268a9 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/ci/dc.txt @@ -0,0 +1,11 @@ +2.999999999999999864e-07 -3.786471488222973584e-07 9.786471488222972253e-07 +1.100000000000000056e-06 8.737842837259009412e-07 1.326215716274099171e-06 +8.600000000000000670e-06 6.210712693650135778e-06 1.098928730634986641e-05 +7.819999999999998990e-05 7.075203863371232107e-05 8.564796136628765873e-05 +5.940000000000001269e-04 5.439534118129448707e-04 6.440465881870553830e-04 +4.433900000000000167e-03 4.349138038034851966e-03 4.518661961965148369e-03 +3.484430000000000166e-02 3.435947773230259988e-02 3.532912226769740344e-02 +2.948473000000000344e-01 2.887830472415335303e-01 3.009115527584665384e-01 +2.222850699999999957e+00 2.193855611791002858e+00 2.251845788208997057e+00 +1.765923450000000372e+01 1.762601016688562439e+01 1.769245883311438305e+01 +1.416103936000000090e+02 1.414816028568733657e+02 1.417391843431266523e+02 diff --git a/buch/papers/multiplikation/code/meas/ci/strassen.txt b/buch/papers/multiplikation/code/meas/ci/strassen.txt new file mode 100644 index 0000000..983fed9 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/ci/strassen.txt @@ -0,0 +1,11 @@ +0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 +2.099999999999999799e-06 1.572163328693768390e-06 2.627836671306231420e-06 +1.130000000000000023e-05 7.484018077564905836e-06 1.511598192243509547e-05 +7.069999999999999733e-05 6.500652995675561090e-05 7.639347004324438376e-05 +5.040999999999999474e-04 4.766428619697257881e-04 5.315571380302741610e-04 +3.595999999999999804e-03 3.528938496002300557e-03 3.663061503997699052e-03 +2.544810000000000128e-02 2.513634544137222787e-02 2.575985455862777468e-02 +1.781816999999999984e-01 1.773043765864557864e-01 1.790590234135442105e-01 +1.255500000000000060e+00 1.247847949398645628e+00 1.263152050601354492e+00 +8.830237099999999728e+00 8.790366960647805428e+00 8.870107239352194028e+00 +6.190186909999999898e+01 6.183048085945843297e+01 6.197325734054156499e+01 diff --git a/buch/papers/multiplikation/code/meas/old/8196/MM.txt b/buch/papers/multiplikation/code/meas/old/8196/MM.txt new file mode 100644 index 0000000..0edf9f6 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/8196/MM.txt @@ -0,0 +1 @@ +9376.173434,8192 diff --git a/buch/papers/multiplikation/code/meas/old/8196/MM_dc.txt b/buch/papers/multiplikation/code/meas/old/8196/MM_dc.txt new file mode 100644 index 0000000..36f6ff0 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/8196/MM_dc.txt @@ -0,0 +1 @@ +9606.402522,8192 diff --git a/buch/papers/multiplikation/code/meas/old/8196/blas.txt b/buch/papers/multiplikation/code/meas/old/8196/blas.txt new file mode 100644 index 0000000..b5989fb --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/8196/blas.txt @@ -0,0 +1 @@ +478.429957,8192 diff --git a/buch/papers/multiplikation/code/meas/old/8196/strassen.txt b/buch/papers/multiplikation/code/meas/old/8196/strassen.txt new file mode 100644 index 0000000..ca06e97 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/8196/strassen.txt @@ -0,0 +1 @@ +3014.235467,8192 diff --git a/buch/papers/multiplikation/code/meas/old/8196/winograd.txt b/buch/papers/multiplikation/code/meas/old/8196/winograd.txt new file mode 100644 index 0000000..2a529c4 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/8196/winograd.txt @@ -0,0 +1 @@ +10071.512655,8192 diff --git a/buch/papers/multiplikation/code/meas/old/MM.txt b/buch/papers/multiplikation/code/meas/old/MM.txt new file mode 100644 index 0000000..e296dd7 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/MM.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000001,4 +0.000001,8 +0.000010,16 +0.000081,32 +0.000654,64 +0.005556,128 +0.054253,256 +0.487317,512 +4.162845,1024 +125.909034,2048 +1111.312696,4096 diff --git a/buch/papers/multiplikation/code/meas/old/MM_dc.txt b/buch/papers/multiplikation/code/meas/old/MM_dc.txt new file mode 100644 index 0000000..f6be928 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/MM_dc.txt @@ -0,0 +1,12 @@ +0.000003,2 +0.000002,4 +0.000010,8 +0.000068,16 +0.000594,32 +0.004264,64 +0.036289,128 +0.324645,256 +2.612010,512 +19.928951,1024 +159.333884,2048 +1147.106865,4096 diff --git a/buch/papers/multiplikation/code/meas/old/blas.txt b/buch/papers/multiplikation/code/meas/old/blas.txt new file mode 100644 index 0000000..92a61b9 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/blas.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000001,4 +0.000001,8 +0.000003,16 +0.000022,32 +0.000179,64 +0.001278,128 +0.010165,256 +0.074739,512 +0.704748,1024 +6.845095,2048 +55.845038,4096 diff --git a/buch/papers/multiplikation/code/meas/old/strassen.txt b/buch/papers/multiplikation/code/meas/old/strassen.txt new file mode 100644 index 0000000..fdfbf2b --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/strassen.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000003,4 +0.000010,8 +0.000066,16 +0.000470,32 +0.003368,64 +0.024232,128 +0.172000,256 +1.209262,512 +8.457472,1024 +59.267256,2048 +414.648901,4096 diff --git a/buch/papers/multiplikation/code/meas/old/winograd.txt b/buch/papers/multiplikation/code/meas/old/winograd.txt new file mode 100644 index 0000000..d185906 --- /dev/null +++ b/buch/papers/multiplikation/code/meas/old/winograd.txt @@ -0,0 +1,12 @@ +0.000001,2 +0.000001,4 +0.000002,8 +0.000011,16 +0.000100,32 +0.000654,64 +0.005229,128 +0.057440,256 +0.517850,512 +4.539413,1024 +130.627663,2048 +1179.261048,4096 diff --git a/buch/papers/multiplikation/code/meas/strassen.txt b/buch/papers/multiplikation/code/meas/strassen.txt index fdfbf2b..d6e040e 100644 --- a/buch/papers/multiplikation/code/meas/strassen.txt +++ b/buch/papers/multiplikation/code/meas/strassen.txt @@ -1,12 +1,110 @@ -0.000001,2 -0.000003,4 -0.000010,8 -0.000066,16 -0.000470,32 -0.003368,64 -0.024232,128 -0.172000,256 -1.209262,512 -8.457472,1024 -59.267256,2048 -414.648901,4096 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000004,4 +0.000002,4 +0.000002,4 +0.000002,4 +0.000002,4 +0.000002,4 +0.000002,4 +0.000002,4 +0.000002,4 +0.000001,4 +0.000020,8 +0.000018,8 +0.000008,8 +0.000008,8 +0.000008,8 +0.000008,8 +0.000008,8 +0.000008,8 +0.000008,8 +0.000019,8 +0.000080,16 +0.000075,16 +0.000078,16 +0.000085,16 +0.000065,16 +0.000065,16 +0.000065,16 +0.000064,16 +0.000065,16 +0.000065,16 +0.000546,32 +0.000480,32 +0.000563,32 +0.000551,32 +0.000502,32 +0.000504,32 +0.000463,32 +0.000462,32 +0.000508,32 +0.000462,32 +0.003675,64 +0.003665,64 +0.003493,64 +0.003708,64 +0.003465,64 +0.003502,64 +0.003710,64 +0.003537,64 +0.003637,64 +0.003568,64 +0.025342,128 +0.025179,128 +0.026475,128 +0.025758,128 +0.025333,128 +0.024988,128 +0.025727,128 +0.025298,128 +0.025283,128 +0.025098,128 +0.181311,256 +0.178432,256 +0.177075,256 +0.177474,256 +0.177025,256 +0.177805,256 +0.177944,256 +0.178151,256 +0.177858,256 +0.178742,256 +1.283374,512 +1.246682,512 +1.245898,512 +1.251547,512 +1.250288,512 +1.250495,512 +1.257037,512 +1.255247,512 +1.255382,512 +1.259050,512 +8.784102,1024 +8.845725,1024 +8.771100,1024 +8.770184,1024 +8.955977,1024 +8.849161,1024 +8.806902,1024 +8.808937,1024 +8.848900,1024 +8.861383,1024 +61.787123,2048 +61.972599,2048 +61.822434,2048 +62.051331,2048 +61.946171,2048 +61.911404,2048 +61.872671,2048 +61.791260,2048 +61.818110,2048 +62.045588,2048 diff --git a/buch/papers/multiplikation/code/meas/winograd.txt b/buch/papers/multiplikation/code/meas/winograd.txt index d185906..970a3f4 100644 --- a/buch/papers/multiplikation/code/meas/winograd.txt +++ b/buch/papers/multiplikation/code/meas/winograd.txt @@ -1,12 +1,110 @@ 0.000001,2 -0.000001,4 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,2 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 +0.000000,4 0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000002,8 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000011,16 +0.000021,16 +0.000011,16 0.000011,16 -0.000100,32 -0.000654,64 -0.005229,128 -0.057440,256 -0.517850,512 -4.539413,1024 -130.627663,2048 -1179.261048,4096 +0.000092,32 +0.000092,32 +0.000081,32 +0.000081,32 +0.000081,32 +0.000081,32 +0.000088,32 +0.000079,32 +0.000079,32 +0.000079,32 +0.000670,64 +0.000739,64 +0.000609,64 +0.000609,64 +0.000700,64 +0.000648,64 +0.000626,64 +0.000626,64 +0.000626,64 +0.000626,64 +0.005321,128 +0.005286,128 +0.005180,128 +0.005223,128 +0.005249,128 +0.005299,128 +0.005205,128 +0.005268,128 +0.005464,128 +0.005378,128 +0.053123,256 +0.052325,256 +0.052729,256 +0.052930,256 +0.052207,256 +0.053178,256 +0.052122,256 +0.052681,256 +0.052965,256 +0.052486,256 +0.527028,512 +0.525201,512 +0.521822,512 +0.525147,512 +0.525241,512 +0.527725,512 +0.526321,512 +0.526479,512 +0.524020,512 +0.520768,512 +4.732299,1024 +4.617253,1024 +4.647425,1024 +4.519233,1024 +4.917471,1024 +4.564929,1024 +4.870771,1024 +4.555407,1024 +4.727473,1024 +4.559349,1024 +136.409028,2048 +136.390557,2048 +136.541672,2048 +136.598491,2048 +137.720790,2048 +136.825926,2048 +136.367686,2048 +136.650627,2048 +136.642195,2048 +136.622805,2048 diff --git a/buch/papers/multiplikation/code/meas_4096.pdf b/buch/papers/multiplikation/code/meas_4096.pdf index e889d17..9e8fcea 100644 Binary files a/buch/papers/multiplikation/code/meas_4096.pdf and b/buch/papers/multiplikation/code/meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/meas_4096.txt b/buch/papers/multiplikation/code/meas_4096.txt index e69de29..cae1bc6 100644 --- a/buch/papers/multiplikation/code/meas_4096.txt +++ b/buch/papers/multiplikation/code/meas_4096.txt @@ -0,0 +1,6 @@ +2.048000000000000000e+03 4.096000000000000000e+03 +6.154183513402938843e+03 4.681333474493026733e+04 +7.375929301261901855e+03 5.846600176072120667e+04 +3.860573610544204712e+03 2.290433094644546509e+04 +4.884613198995590210e+03 4.359707747149467468e+04 +2.157390117645263672e-01 1.491588830947875977e+00 diff --git a/buch/papers/multiplikation/images/algo_tab.pdf b/buch/papers/multiplikation/images/algo_tab.pdf new file mode 100644 index 0000000..7f2bb4f Binary files /dev/null and b/buch/papers/multiplikation/images/algo_tab.pdf differ diff --git a/buch/papers/multiplikation/images/algo_tab.tex b/buch/papers/multiplikation/images/algo_tab.tex new file mode 100644 index 0000000..50ce392 --- /dev/null +++ b/buch/papers/multiplikation/images/algo_tab.tex @@ -0,0 +1,122 @@ +\documentclass{article} +\usepackage[left=25mm,right=25mm,top=25mm,bottom=25mm]{geometry} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{times} +\usepackage{geometry} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{algorithm} +\usepackage{algpseudocode} +\usepackage{mathrsfs} +\usepackage{amsfonts} +\usepackage{amsthm} +\usepackage{lipsum} +\usepackage{amscd} +\usepackage{graphicx} +\usepackage{fancyhdr} +\usepackage{textcomp} +\usepackage{pgfplots} +\usepackage{txfonts} +\usepackage[all]{xy} +\usepackage{paralist} +\usepackage[colorlinks=true]{hyperref} +\usepackage{array} +\usepackage{tikz} +\usepackage{slashed} +\usepackage{pdfpages} +\usepackage{multicol} +\usepackage{cite} +\usepackage{url} +\usepackage{amsmath,amsfonts,amssymb} +\usepackage{tikz} +\usetikzlibrary{arrows,matrix,positioning} +\usetikzlibrary{overlay-beamer-styles} +\usetikzlibrary{matrix.skeleton} +\usetikzlibrary{automata,positioning} +\usetikzlibrary{decorations.text} +\usepackage{listings} +\usepackage{multirow} +\usepackage{color} + +\begin{document} + + + +\begin{table}[t] + \begin{tabular}{ll} + \begin{minipage}{0.4\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:b1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B1}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \State + \State + \end{algorithmic} + \end{algorithm} + \end{minipage} + & + \begin{minipage}{0.4\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:b2} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B2}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} +\end{algorithm} + + \end{minipage} + \end{tabular} +\end{table} + +\begin{table} + \begin{tabular}[t]{ll} + \begin{minipage}{0.4\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \label{multiplikation:alg:linear} + \Function{L}{$\mathbf{a}, \mathbf{b}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \State + \State + \end{algorithmic} + \end{algorithm} + \end{minipage} + & + \begin{minipage}{0.4\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:q1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} + \end{algorithm} + \end{minipage} + \end{tabular} +\end{table} + +dhdfh +\end{document} diff --git a/buch/papers/multiplikation/images/meas_c.pdf b/buch/papers/multiplikation/images/meas_c.pdf index 3a4cfd8..e6af618 100644 Binary files a/buch/papers/multiplikation/images/meas_c.pdf and b/buch/papers/multiplikation/images/meas_c.pdf differ diff --git a/buch/papers/multiplikation/images/meas_c.tex b/buch/papers/multiplikation/images/meas_c.tex index 818a7e6..647a322 100644 --- a/buch/papers/multiplikation/images/meas_c.tex +++ b/buch/papers/multiplikation/images/meas_c.tex @@ -43,8 +43,8 @@ \begin{tikzpicture} \begin{axis}[ xmode=log, ymode=log, -xmin=60, xmax=5000, -ymin=1e-4, ymax=2e3, +xmin=60, xmax=10000, +ymin=1e-4, ymax=2e4, grid=both, major grid style={black!50}, xlabel = data Input ($n$), @@ -70,6 +70,7 @@ width=12cm, height=8cm, (1024,4.539413) (2048,130.627663) (4096,1179.261048) +(8192,10071.512655) }; \addlegendentry{Strassen} \addplot [ color=black, @@ -86,6 +87,7 @@ width=12cm, height=8cm, (1024,8.457472 ) (2048,59.267256) (4096,414.648901) +(8192,3014.235467) }; \addlegendentry{MM div and conq} @@ -103,6 +105,7 @@ width=12cm, height=8cm, (1024,19.928951 ) (2048,159.333884 ) (4096,1147.106865) +(8192,9606.402522) }; \addlegendentry{MM} @@ -120,6 +123,7 @@ width=12cm, height=8cm, (1024,4.162845 ) (2048,125.909034 ) (4096,1111.312696) +(8192,9376.173434) }; \addlegendentry{BLAS} \addplot[ color=blue, @@ -136,6 +140,7 @@ width=12cm, height=8cm, (1024,0.704748 ) (2048,6.845095 ) (4096,55.845038) +(8192,478.429957) }; \end{axis} \end{tikzpicture} diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index a7612e1..464085d 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -39,13 +39,13 @@ Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, \end{algorithmic} \end{algorithm} -Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O}\left(n^3\right)$ +Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O} (n^3)$ \subsubsection{Divide and Conquer Methode} F\"ur gewisse Algorithmen f\"uhren \textit{Divide and Conquer} Ans\"atze \cite{multiplikation:DAC} zu markant besseren Laufzeiten. Die Grundidee ist, dass ein Problem in mehrere, meist simplere und kleinere Teilprobleme aufgeteilt wird. -Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O}\left(n^2\right)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. +Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Laufzeit von $\mathcal{O} (n^2)$ zu $\mathcal{O}(n \log n)$ verbessert werden kann. Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. Zur vereinfachten Veranschaulichung kann die Situation mit $\mathbf{A}$ und $\mathbf{B}$ der Gr\"osse $2^n \times 2^n$ verwendet werden. @@ -68,7 +68,7 @@ Das Matrizen Produkt \end{bmatrix}, \end{equation} \begin{equation} -\mathbf{C}_{ij} = \sum_{k=1}2n \mathbf{A}_{ik} \mathbf{B}_{kj} +\mathbf{C}_{ij} = \sum_{k=1}^{2n} \mathbf{A}_{ik} \mathbf{B}_{kj} \label{multiplikation:eq:MM_block} \end{equation} ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation der Untermatrize $\mathbf{A}_{ik}$ und $\mathbf{B}_{kj}$ wird die Matrizenmultiplikation verwendet. @@ -109,7 +109,7 @@ Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \ci Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe $\mathcal{T} $ der Funktion die Laufzeit. In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt \begin{equation} \label{multiplikation:eq:laufzeitdac} - \mathcal{T}(n) = 8 \cdot \mathcal{T}\left (\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O}\left (n^{3} \right ) + \mathcal{T}(n) = 8 \cdot \mathcal{T} \left(\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O} (n^{3} ) \end{equation} zu einer kubischen Laufzeit. Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. @@ -202,7 +202,7 @@ Die Funktion wird sieben mal rekursiv aufgerufen. Dies f\"uhrt nach dem \textit{Master Theorem} zu einer Laufzeit von \begin{equation} \label{multiplikation:eq:laufzeitstrassen} \mathcal{T}(n) = -7 \cdot \mathcal{T}(\frac{n}{2}) + n^2 = \mathcal{O}\left(n^{\log_2 7}\right ) = \mathcal{O}\left(n^{2.8074} \right ) +7 \cdot \mathcal{T}\left(\frac{n}{2}\right) + n^2 = \mathcal{O}(n^{\log_2 7} ) = \mathcal{O}(n^{2.8074} ) \end{equation} und ist somit schneller als die Standardmethode. Man beachte, dass die Anzahl von Additionen und Subtraktionen gr\"osser und die Anzahl der Multiplikationen kleiner wurde. @@ -267,7 +267,7 @@ sein, damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. Falls $m=n=p$ werden $\frac{n^3}/{2}$ Multiplikationen benötigt. Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und - somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}\left(n^3 \right)$. + somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}(n^3 )$. \begin{algorithm}\footnotesize\caption{Winograds Matrizenmultiplikation} \setlength{\lineskip}{7pt} \label{multiplikation:alg:winograd} @@ -336,33 +336,33 @@ Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{M \item Level 2 \begin{itemize} \item Operationen der Art: $\mathbf{y} \leftarrow \alpha \mathbf{A}\mathbf{x}+\beta \mathbf{y}$ - \item Dieses Level hat $\mathcal{O}\left(n^2\right)$ Charakteristik + \item Dieses Level hat $\mathcal{O}(n^2)$ Charakteristik \end{itemize} \item Level 3 \begin{itemize} \item Operationen der Art: $\mathbf{C} \leftarrow \alpha \mathbf{A}\mathbf{B}+\beta\mathbf{C}$ - \item Dieses Level hat $\mathcal{O}\left(n^3\right)$ Charakteristik + \item Dieses Level hat $\mathcal{O}(n^3)$ Charakteristik \end{itemize} \end{itemize} Die \textit{BLAS} sind auf die modernen Computer Prozessoren optimiert und k\"onnen dank einer ausgeklügelter Verwendung der Speicherarchitektur zu erheblichen Leistungsoptimierungen f\"uhren. -\subsubsection{General Matrix Multiplication (GEMM)} - -Die \textit{Double-GEMM} \cite{multiplikation:DGEMM} ist definiert als: - -\textit{DGEMM performs one of the matrix-matrix operations} -$$ - C := \alpha \cdot op( A )\cdot op( B ) + \beta \cdot C, - $$ - \textit{where op( X ) is one of} -$$ -op( X ) = X \quad \text{ or } \quad op( X ) = X^T, -$$ - \textit{alpha and beta are scalars, and A, B and C are matrices, with op( A ) - an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. - } +%\subsubsection{General Matrix Multiplication (GEMM)} +% +%Die \textit{Double-GEMM} \cite{multiplikation:DGEMM} ist definiert als: +% +%\textit{DGEMM performs one of the matrix-matrix operations} +%$$ +% C := \alpha \cdot op( A )\cdot op( B ) + \beta \cdot C, +% $$ +% \textit{where op( X ) is one of} +%$$ +%op( X ) = X \quad \text{ or } \quad op( X ) = X^T, +%$$ +% \textit{alpha and beta are scalars, and A, B and C are matrices, with op( A ) +% an m by k matrix, op( B ) a k by n matrix and C an m by n matrix. +% } %Die Implementation von $\alpha\mathbf{A}\mathbf{B} + \beta \mathbf{C} = \mathbf{C}$, wobei $\alpha = 1.0$ und $\beta = 0.0$ in der \texttt{C}-Version von \textit{BLAS}, ist als %\begin{lstlisting}[style=multiplikationC] @@ -379,7 +379,7 @@ $$ Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementiert. \begin{itemize} \item Standard Matrizenmultiplikation - \item \textit{Devide and Conquer} Matrizenmultiplikation + \item \textit{Divide and Conquer} Matrizenmultiplikation \item Strassens Matrizenmultiplikation \item Winograds Matrizenmultiplikation \item \texttt{BLAS} Matrizenmultiplikation in \texttt{C} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index e53b0de..c8ba274 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -14,87 +14,102 @@ Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der S Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhängigkeit zur Inputgrösse \cite{multiplikation:bigo}. $f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. % Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$ -Als Beispiel: benötigt eine Funktion $g$ $\mathcal{O}\left(n^2 \right)$ Multiplikationen, so wächst $f$ mit $\mathcal{O}\left(n+ n^2 \right)$ nicht wesentlich schneller falls $x\to\infty$. +Als Beispiel: benötigt eine Funktion $g$ $\mathcal{O} (n^2 )$ Multiplikationen, so wächst $f$ mit $\mathcal{O} (n+ n^2 )$ nicht wesentlich schneller falls $x\to\infty$. Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear - \item $f \in \mathcal{O}\left (n^2 \right ) \rightarrow f$ w\"achst quadratisch + \item $f \in \mathcal{O} (n^2 ) \rightarrow f$ w\"achst quadratisch \item $f \in \mathcal{O}(\log n) \rightarrow f$ w\"achst logarithmisch \item $f \in \mathcal{O}(n \log n) \rightarrow f$ hat super-lineares Wachstum - \item $f \in \mathcal{O}\left (e^n \right ) \rightarrow f$ w\"achst exponentiell + \item $f \in \mathcal{O} (e^n ) \rightarrow f$ w\"achst exponentiell \item usw. \end{itemize} In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt. -Sch\"on zu erkennen ist, dass Logarithmische Kurven beschr\"ankt sind. + \subsubsection{Beispiel Algorithmen} Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. -\begin{minipage}{0.4\textwidth} - \begin{algorithm}[H]\footnotesize\caption{} - \label{multiplikation:alg:b1} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \Function{B1}{$a, b$} - \State \textbf{return} $a+b$ - \EndFunction - \end{algorithmic} - \end{algorithm} - - \begin{algorithm}[H]\footnotesize\caption{} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \label{multiplikation:alg:linear} - \Function{L}{$\mathbf{a}, \mathbf{b}$,n} - \State $ sum \gets 0$ - \For{$i = 0,1,2 \dots,n$} - \State $ sum \gets sum + A[i] \cdot B[i] $ - \EndFor - - \State \textbf{return} $sum$ - - \EndFunction - \end{algorithmic} - \end{algorithm} -\end{minipage} -\hspace{2cm} -\begin{minipage}{0.4\textwidth} - - \begin{algorithm}[H]\footnotesize\caption{} - \label{multiplikation:alg:b2} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \Function{B2}{$a, b$} - \State $ x \gets a+b $ - \State $ y \gets a \cdot b $ - \State \textbf{return} $x+y$ - \EndFunction - \end{algorithmic} - \end{algorithm} - - - \begin{algorithm}[H]\footnotesize\caption{} - \label{multiplikation:alg:q1} - \setlength{\lineskip}{7pt} - \begin{algorithmic} - \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} - \State $ sum \gets 0$ - \For{$i = 0,1,2 \dots,n$} - \For{$j = 0,1,2 \dots,n$} - \State $ sum \gets sum + A[i] \cdot B[j] $ - \EndFor - \EndFor - \State \textbf{return} $sum$ - \EndFunction - \end{algorithmic} - \end{algorithm} - -\end{minipage} + +\begin{table}[t] + \begin{tabular}{ll} + \begin{minipage}{0.48\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:b1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B1}{$a, b$} + \State \textbf{return} $a+b$ + \EndFunction + \State + \State + \end{algorithmic} + \end{algorithm} + \end{minipage} + & + \begin{minipage}{0.48\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:b2} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{B2}{$a, b$} + \State $ x \gets a+b $ + \State $ y \gets a \cdot b $ + \State \textbf{return} $x+y$ + \EndFunction + \end{algorithmic} + \end{algorithm} + + \end{minipage} + \end{tabular} +\end{table} + +\begin{table} + \begin{tabular}[t]{ll} + \begin{minipage}{0.48\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \label{multiplikation:alg:linear} + \Function{L}{$\mathbf{a}, \mathbf{b}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[i] $ + \EndFor + + \State \textbf{return} $sum$ + + \EndFunction + \State + \State + \end{algorithmic} + \end{algorithm} + \end{minipage} + & + \begin{minipage}{0.48\textwidth} + \begin{algorithm}[H]\footnotesize\caption{} + \label{multiplikation:alg:q1} + \setlength{\lineskip}{7pt} + \begin{algorithmic} + \Function{Q}{$\mathbf{A}, \mathbf{B}$,n} + \State $ sum \gets 0$ + \For{$i = 0,1,2 \dots,n$} + \For{$j = 0,1,2 \dots,n$} + \State $ sum \gets sum + A[i] \cdot B[j] $ + \EndFor + \EndFor + \State \textbf{return} $sum$ + \EndFunction + \end{algorithmic} + \end{algorithm} + \end{minipage} + \end{tabular} +\end{table} \paragraph{Beschr\"ankter Algorithmus} @@ -111,7 +126,7 @@ Die \texttt{for}-Schleife wird $n$-mal durchlaufen und f\"uhrt deshalb zu $\math \paragraph{Quadratischer Algorithmus} Der Algorithmus \ref{multiplikation:alg:q1} hat ein quadratisches Verhalten. -Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O}\left(n^2\right)$. +Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhrt deshalb zu $\mathcal{O} (n^2 )$. \begin{figure} -- cgit v1.2.1 From 3c59b60807e1d1238bf591e238a42574327246ca Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 10 Aug 2021 07:29:49 +0200 Subject: update plots --- buch/papers/multiplikation/code/MM.py | 22 ++-- buch/papers/multiplikation/code/c_meas_4096.pdf | Bin 22360 -> 22207 bytes buch/papers/multiplikation/code/helper_class.py | 4 +- buch/papers/multiplikation/code/meas/ci/MM.txt | 11 -- buch/papers/multiplikation/code/meas/ci/Wino.txt | 11 -- buch/papers/multiplikation/code/meas/ci/blas.txt | 11 -- buch/papers/multiplikation/code/meas/ci/dc.txt | 11 -- .../multiplikation/code/meas/ci/strassen.txt | 11 -- buch/papers/multiplikation/code/meas_4096.pdf | Bin 17369 -> 18300 bytes buch/papers/multiplikation/images/meas_c.pdf | Bin 23552 -> 24028 bytes buch/papers/multiplikation/images/meas_c.tex | 115 +++++++++++---------- buch/papers/multiplikation/images/meas_python.pdf | Bin 21700 -> 26004 bytes buch/papers/multiplikation/images/meas_python.tex | 53 ++++++---- buch/papers/multiplikation/images/x.pdf | Bin 0 -> 23603 bytes 14 files changed, 105 insertions(+), 144 deletions(-) create mode 100644 buch/papers/multiplikation/images/x.pdf (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/code/MM.py b/buch/papers/multiplikation/code/MM.py index 8a6824a..8057850 100644 --- a/buch/papers/multiplikation/code/MM.py +++ b/buch/papers/multiplikation/code/MM.py @@ -291,19 +291,21 @@ def mean_confidence_interval(data, confidence=0.95): n = len(a) m, se = np.mean(a), scipy.stats.sem(a) h = se * scipy.stats.t.ppf((1 + confidence) / 2., n-1) - return m, m-h, m+h + return m, h # test%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if __name__ == '__main__': - A = plot_c_res(10, 4096) - name = ['MM', 'Wino', 'blas', 'strassen', 'dc'] - for i in range(5): - ci_inner = [] - for j in range(11): - ci_inner.append(mean_confidence_interval(A[i][j*10:(j+1)*10])) - np.savetxt('meas/ci/' + name[i]+'.txt',ci_inner) - - # arr = plot(1024) + # A = plot_c_res(10, 4096) + # name = ['MM', 'Wino', 'blas', 'strassen', 'dc'] + # for i in range(5): + # ci_inner = [] + # print(name[i]) + # for j in range(11): + # m,h=mean_confidence_interval(A[i][j*10:(j+1)*10]) + # print("({},{})".format(2**(j+1),m)) + # np.savetxt('meas/ci/' + name[i]+'.txt',ci_inner) + + arr = plot(4096) # n = np.logspace(1,12,12,base=2,dtype=(np.int)) # n=[2048,4096] # n = np.arange(1,50,2) diff --git a/buch/papers/multiplikation/code/c_meas_4096.pdf b/buch/papers/multiplikation/code/c_meas_4096.pdf index b42082f..f637ae4 100644 Binary files a/buch/papers/multiplikation/code/c_meas_4096.pdf and b/buch/papers/multiplikation/code/c_meas_4096.pdf differ diff --git a/buch/papers/multiplikation/code/helper_class.py b/buch/papers/multiplikation/code/helper_class.py index ad67909..3b74f67 100755 --- a/buch/papers/multiplikation/code/helper_class.py +++ b/buch/papers/multiplikation/code/helper_class.py @@ -101,6 +101,6 @@ if __name__ == '__main__': helper = Helper() # n = np.arange(2,10) - n = np.logspace(1,4,4,base=2,dtype=(np.int)) + n = np.logspace(1,11,11,base=2,dtype=(np.int)) # n=[8192] - C = helper.write_c_matrix(n) + # C = helper.write_c_matrix(n) diff --git a/buch/papers/multiplikation/code/meas/ci/MM.txt b/buch/papers/multiplikation/code/meas/ci/MM.txt index e4ad1ba..e69de29 100644 --- a/buch/papers/multiplikation/code/meas/ci/MM.txt +++ b/buch/papers/multiplikation/code/meas/ci/MM.txt @@ -1,11 +0,0 @@ -0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 -2.999999999999999864e-07 -4.555021440490437016e-08 6.455502144049043430e-07 -1.800000000000000130e-06 1.498379044967867836e-06 2.101620955032132425e-06 -1.199999999999999861e-05 9.737842837259007037e-06 1.426215716274099018e-05 -8.930000000000000221e-05 7.942767152586658090e-05 9.917232847413342352e-05 -6.922999999999999684e-04 6.611729768299406300e-04 7.234270231700593067e-04 -5.684200000000000363e-03 5.587928563282692010e-03 5.780471436717308717e-03 -5.177150000000000502e-02 5.161257221154376407e-02 5.193042778845624596e-02 -5.062468000000001078e-01 5.001729723042721565e-01 5.123206276957280592e-01 -4.504808599999999608e+00 4.404751183933223402e+00 4.604866016066775813e+00 -1.292894618999999921e+02 1.292188312556721144e+02 1.293600925443278697e+02 diff --git a/buch/papers/multiplikation/code/meas/ci/Wino.txt b/buch/papers/multiplikation/code/meas/ci/Wino.txt index 4ec0106..e69de29 100644 --- a/buch/papers/multiplikation/code/meas/ci/Wino.txt +++ b/buch/papers/multiplikation/code/meas/ci/Wino.txt @@ -1,11 +0,0 @@ -9.999999999999999547e-08 -1.262157162740991459e-07 3.262157162740991104e-07 -0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 -2.000000000000000333e-06 1.999999999999999909e-06 2.000000000000000757e-06 -1.199999999999999861e-05 9.737842837259007037e-06 1.426215716274099018e-05 -8.329999999999999189e-05 7.952898408510092581e-05 8.707101591489905797e-05 -6.478999999999999733e-04 6.173195729945008762e-04 6.784804270054990705e-04 -5.287299999999999986e-03 5.226513788941518357e-03 5.348086211058481615e-03 -5.267459999999999504e-02 5.240389179019239174e-02 5.294530820980759833e-02 -5.249752000000000862e-01 5.233835466989910090e-01 5.265668533010091634e-01 -4.671160999999999675e+00 4.572509907501117965e+00 4.769812092498881384e+00 -1.366769777000000090e+02 1.363957928284978891e+02 1.369581625715021289e+02 diff --git a/buch/papers/multiplikation/code/meas/ci/blas.txt b/buch/papers/multiplikation/code/meas/ci/blas.txt index 5d7ff7b..e69de29 100644 --- a/buch/papers/multiplikation/code/meas/ci/blas.txt +++ b/buch/papers/multiplikation/code/meas/ci/blas.txt @@ -1,11 +0,0 @@ -9.999999999999999547e-08 -1.262157162740991459e-07 3.262157162740991104e-07 -0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 -9.999999999999999547e-08 -1.262157162740991459e-07 3.262157162740991104e-07 -3.899999999999999929e-06 1.864058553533107683e-06 5.935941446466892176e-06 -2.100000000000000223e-05 1.871284586667546976e-05 2.328715413332453469e-05 -1.858000000000000168e-04 1.595988766828141249e-04 2.120011233171859087e-04 -1.264900000000000009e-03 1.221091632895032926e-03 1.308708367104967091e-03 -9.648900000000000185e-03 9.575266909835235610e-03 9.722533090164764760e-03 -7.737650000000000083e-02 7.445101996220353235e-02 8.030198003779646931e-02 -7.643868000000000329e-01 7.545731380187049586e-01 7.742004619812951072e-01 -7.632099399999999534e+00 7.613379481172315444e+00 7.650819318827683624e+00 diff --git a/buch/papers/multiplikation/code/meas/ci/dc.txt b/buch/papers/multiplikation/code/meas/ci/dc.txt index df268a9..e69de29 100644 --- a/buch/papers/multiplikation/code/meas/ci/dc.txt +++ b/buch/papers/multiplikation/code/meas/ci/dc.txt @@ -1,11 +0,0 @@ -2.999999999999999864e-07 -3.786471488222973584e-07 9.786471488222972253e-07 -1.100000000000000056e-06 8.737842837259009412e-07 1.326215716274099171e-06 -8.600000000000000670e-06 6.210712693650135778e-06 1.098928730634986641e-05 -7.819999999999998990e-05 7.075203863371232107e-05 8.564796136628765873e-05 -5.940000000000001269e-04 5.439534118129448707e-04 6.440465881870553830e-04 -4.433900000000000167e-03 4.349138038034851966e-03 4.518661961965148369e-03 -3.484430000000000166e-02 3.435947773230259988e-02 3.532912226769740344e-02 -2.948473000000000344e-01 2.887830472415335303e-01 3.009115527584665384e-01 -2.222850699999999957e+00 2.193855611791002858e+00 2.251845788208997057e+00 -1.765923450000000372e+01 1.762601016688562439e+01 1.769245883311438305e+01 -1.416103936000000090e+02 1.414816028568733657e+02 1.417391843431266523e+02 diff --git a/buch/papers/multiplikation/code/meas/ci/strassen.txt b/buch/papers/multiplikation/code/meas/ci/strassen.txt index 983fed9..e69de29 100644 --- a/buch/papers/multiplikation/code/meas/ci/strassen.txt +++ b/buch/papers/multiplikation/code/meas/ci/strassen.txt @@ -1,11 +0,0 @@ -0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 -2.099999999999999799e-06 1.572163328693768390e-06 2.627836671306231420e-06 -1.130000000000000023e-05 7.484018077564905836e-06 1.511598192243509547e-05 -7.069999999999999733e-05 6.500652995675561090e-05 7.639347004324438376e-05 -5.040999999999999474e-04 4.766428619697257881e-04 5.315571380302741610e-04 -3.595999999999999804e-03 3.528938496002300557e-03 3.663061503997699052e-03 -2.544810000000000128e-02 2.513634544137222787e-02 2.575985455862777468e-02 -1.781816999999999984e-01 1.773043765864557864e-01 1.790590234135442105e-01 -1.255500000000000060e+00 1.247847949398645628e+00 1.263152050601354492e+00 -8.830237099999999728e+00 8.790366960647805428e+00 8.870107239352194028e+00 -6.190186909999999898e+01 6.183048085945843297e+01 6.197325734054156499e+01 diff --git a/buch/papers/multiplikation/code/meas_4096.pdf b/buch/papers/multiplikation/code/meas_4096.pdf index 9e8fcea..ecf2cff 100644 Binary files a/buch/papers/multiplikation/code/meas_4096.pdf and b/buch/papers/multiplikation/code/meas_4096.pdf differ diff --git a/buch/papers/multiplikation/images/meas_c.pdf b/buch/papers/multiplikation/images/meas_c.pdf index e6af618..faf347e 100644 Binary files a/buch/papers/multiplikation/images/meas_c.pdf and b/buch/papers/multiplikation/images/meas_c.pdf differ diff --git a/buch/papers/multiplikation/images/meas_c.tex b/buch/papers/multiplikation/images/meas_c.tex index 647a322..fe2bd2f 100644 --- a/buch/papers/multiplikation/images/meas_c.tex +++ b/buch/papers/multiplikation/images/meas_c.tex @@ -43,8 +43,8 @@ \begin{tikzpicture} \begin{axis}[ xmode=log, ymode=log, -xmin=60, xmax=10000, -ymin=1e-4, ymax=2e4, +xmin=30, xmax=10000, +ymin=1e-5, ymax=2e4, grid=both, major grid style={black!50}, xlabel = data Input ($n$), @@ -57,35 +57,36 @@ width=12cm, height=8cm, ] \addlegendentry{Winograd} \addplot[ color=purple, + error bars/.cd, y dir=both, y explicit, ] coordinates { -% (2, 0.000001) -% (4, 0.000001) -% (8, 0.000002) -% (16, 0.000011) -% (32, 0.000100) -(64, 0.000654) -(128, 0.005229) -(256, 0.057440) -(512, 0.517850) -(1024,4.539413) -(2048,130.627663) +%(2,1e-07) +%(4,5e-07) +%(8,2.0000000000000003e-06) +%(16,1.1999999999999999e-05) +(32,8.329999999999999e-05) +(64,0.0006479) +(128,0.0052873) +(256,0.052674599999999995) +(512,0.5249752000000001) +(1024,4.671161) +(2048,136.6769777) (4096,1179.261048) (8192,10071.512655) }; \addlegendentry{Strassen} \addplot [ color=black, ]coordinates { - % (2,0.000001 ) - % (4,0.000003 ) - % (8,0.000010 ) - % (16,0.000066 ) - % (32,0.000470 ) - (64,0.003368 ) - (128,0.024232 ) - (256,0.172000 ) - (512,1.209262 ) -(1024,8.457472 ) -(2048,59.267256) +%(2,1e-07) +%(4,2.1e-06) +%(8,1.13e-05) +%(16,7.07e-05) +(32,0.0005041) +(64,0.003596) +(128,0.0254481) +(256,0.1781817) +(512,1.2555) +(1024,8.8302371) +(2048,61.9018691) (4096,414.648901) (8192,3014.235467) }; @@ -93,17 +94,17 @@ width=12cm, height=8cm, \addlegendentry{MM div and conq} \addplot[ color=green, ] coordinates { - % (2,0.000003 ) - % (4,0.000002 ) - % (8,0.000010 ) - % (16,0.000068 ) - % (32,0.000594 ) - (64,0.004264 ) - (128,0.036289 ) - (256,0.324645 ) - (512,2.612010 ) -(1024,19.928951 ) -(2048,159.333884 ) +%(2,3e-07) +%(4,1.1e-06) +%(8,8.6e-06) +%(16,7.819999999999999e-05) +(32,0.0005940000000000001) +(64,0.0044339) +(128,0.0348443) +(256,0.29484730000000003) +(512,2.2228507) +(1024,17.659234500000004) +(2048,141.6103936) (4096,1147.106865) (8192,9606.402522) }; @@ -111,34 +112,34 @@ width=12cm, height=8cm, \addlegendentry{MM} \addplot [ color=red, ]coordinates { - % (2,0.000001 ) - % (4,0.000001 ) - % (8,0.000001 ) - % (16,0.000010 ) - % (32,0.000081 ) - (64,0.000654 ) - (128,0.005556 ) - (256,0.054253 ) - (512,0.487317 ) -(1024,4.162845 ) -(2048,125.909034 ) +%(2,0.0) +%(4,3e-07) +%(8,1.8000000000000001e-06) +%(16,1.1999999999999999e-05) +(32,8.93e-05) +(64,0.0006923) +(128,0.0056842) +(256,0.051771500000000005) +(512,0.5062468000000001) +(1024,4.5048086) +(2048,129.2894619) (4096,1111.312696) (8192,9376.173434) }; \addlegendentry{BLAS} \addplot[ color=blue, ] coordinates { - % (2,0.000001 ) - % (4,0.000001 ) - % (8,0.000001 ) - % (16,0.000003 ) - % (32,0.000022 ) - (64,0.000179 ) - (128,0.001278 ) - (256,0.010165 ) - (512,0.074739 ) -(1024,0.704748 ) -(2048,6.845095 ) +%(2,1e-07) +%(4,0.0) +%(8,1e-07) +%(16,3.9e-06) +(32,2.1000000000000002e-05) +(64,0.00018580000000000002) +(128,0.0012649) +(256,0.0096489) +(512,0.0773765) +(1024,0.7643868) +(2048,7.6320993999999995) (4096,55.845038) (8192,478.429957) }; diff --git a/buch/papers/multiplikation/images/meas_python.pdf b/buch/papers/multiplikation/images/meas_python.pdf index cea2232..cea4f4b 100644 Binary files a/buch/papers/multiplikation/images/meas_python.pdf and b/buch/papers/multiplikation/images/meas_python.pdf differ diff --git a/buch/papers/multiplikation/images/meas_python.tex b/buch/papers/multiplikation/images/meas_python.tex index ee4db43..c8892be 100644 --- a/buch/papers/multiplikation/images/meas_python.tex +++ b/buch/papers/multiplikation/images/meas_python.tex @@ -43,8 +43,8 @@ \begin{tikzpicture} \begin{axis}[ xmode=log, ymode=log, -xmin=30, xmax=1050, -ymin=0.01, ymax=900, +xmin=30, xmax=4100, +ymin=0.00001, ymax=60000, grid=both, major grid style={black!50}, xlabel = data input ($n$), @@ -68,7 +68,8 @@ width=12cm, height=8cm, (256, 8.29899 ) (512, 68.3699 ) (1024,537.374 ) - +(2046,4884.61) +(4096,43597.1) }; \addlegendentry{Strassen} \addplot [ color=black, @@ -79,10 +80,12 @@ width=12cm, height=8cm, % (16,0.00475407 ) (32,0.0485256 ) (64,0.220414 ) - (128,1.44718 2 ) - (256,9.93866 0 ) - (512,63.961 2 ) -(1024,461.494 2 ) + (128,1.44718 ) + (256,9.93866 ) + (512,63.961 ) +(1024,461.494 ) +(2046,3860.57) +(4096,22904.3) }; \addlegendentry{MM div and conq} @@ -98,6 +101,8 @@ width=12cm, height=8cm, (256,13.27 ) (512,105.397 ) (1024,847.321 ) +(2046,7375.93) +(4096,58466) }; \addlegendentry{MM} @@ -113,25 +118,33 @@ width=12cm, height=8cm, (256, 11.0062 ) (512, 85.4768) (1024,750.757 ) +(2046,6154.18) +(4096,46813.3) }; -% \addlegendentry{NumPy} -% \addplot[ color=blue, -% ] coordinates { + \addlegendentry{NumPy} + \addplot[ color=blue, + ] coordinates { % (2,1.83582e-05 ) % (4,7.86781e-06) % (8,1.00136e-05) % (16,5.4121e-05 ) -% (32,4.26769e-05) -% (64,0.000118494) -% (128,0.000244141 ) -% (256,0.000695705 ) -% (512,0.00221705 ) -% (1024,0.0188088 ) -% }; + (32,4.26769e-05) + (64,0.000118494) + (128,0.000244141 ) + (256,0.000695705 ) + (512,0.00221705 ) + (1024,0.0188088 ) +(2046,0.215739) +(4096,1.49159) + }; + \addplot [ + domain= 1:5000, + samples=100, + color=yellow, + ] + {(x-1000)^3}; + \addlegendentry{$\mathcal{O}\left(n^3\right)$} \end{axis} \end{tikzpicture} \end{document} - - - diff --git a/buch/papers/multiplikation/images/x.pdf b/buch/papers/multiplikation/images/x.pdf new file mode 100644 index 0000000..da4956f Binary files /dev/null and b/buch/papers/multiplikation/images/x.pdf differ -- cgit v1.2.1 From 6bab37ba5c4d1875f3c99f338a554537219013f6 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Wed, 11 Aug 2021 21:22:29 +0200 Subject: update multiplikation --- buch/papers/multiplikation/images/meas_python.pdf | Bin 26004 -> 22384 bytes buch/papers/multiplikation/images/meas_python.tex | 44 ++++++++++------------ buch/papers/multiplikation/images/x.pdf | Bin 23603 -> 0 bytes buch/papers/multiplikation/loesungsmethoden.tex | 30 ++++++++++----- 4 files changed, 39 insertions(+), 35 deletions(-) delete mode 100644 buch/papers/multiplikation/images/x.pdf (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/images/meas_python.pdf b/buch/papers/multiplikation/images/meas_python.pdf index cea4f4b..ab3b14b 100644 Binary files a/buch/papers/multiplikation/images/meas_python.pdf and b/buch/papers/multiplikation/images/meas_python.pdf differ diff --git a/buch/papers/multiplikation/images/meas_python.tex b/buch/papers/multiplikation/images/meas_python.tex index c8892be..d942f46 100644 --- a/buch/papers/multiplikation/images/meas_python.tex +++ b/buch/papers/multiplikation/images/meas_python.tex @@ -43,8 +43,8 @@ \begin{tikzpicture} \begin{axis}[ xmode=log, ymode=log, -xmin=30, xmax=4100, -ymin=0.00001, ymax=60000, +xmin=30, xmax=4200, +ymin=0.01, ymax=70000, grid=both, major grid style={black!50}, xlabel = data input ($n$), @@ -121,29 +121,23 @@ width=12cm, height=8cm, (2046,6154.18) (4096,46813.3) }; - \addlegendentry{NumPy} - \addplot[ color=blue, - ] coordinates { -% (2,1.83582e-05 ) -% (4,7.86781e-06) -% (8,1.00136e-05) -% (16,5.4121e-05 ) - (32,4.26769e-05) - (64,0.000118494) - (128,0.000244141 ) - (256,0.000695705 ) - (512,0.00221705 ) - (1024,0.0188088 ) -(2046,0.215739) -(4096,1.49159) - }; - \addplot [ - domain= 1:5000, - samples=100, - color=yellow, - ] - {(x-1000)^3}; - \addlegendentry{$\mathcal{O}\left(n^3\right)$} +% \addlegendentry{NumPy} +% \addplot[ color=blue, +% ] coordinates { +% % (2,1.83582e-05 ) +% % (4,7.86781e-06) +% % (8,1.00136e-05) +% % (16,5.4121e-05 ) +% (32,4.26769e-05) +% (64,0.000118494) +% (128,0.000244141 ) +% (256,0.000695705 ) +% (512,0.00221705 ) +% (1024,0.0188088 ) +% (2046,0.215739) +% (4096,1.49159) +% }; + \end{axis} \end{tikzpicture} diff --git a/buch/papers/multiplikation/images/x.pdf b/buch/papers/multiplikation/images/x.pdf deleted file mode 100644 index da4956f..0000000 Binary files a/buch/papers/multiplikation/images/x.pdf and /dev/null differ diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 464085d..be8c2d4 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -389,6 +389,14 @@ Folgende Algorithmen wurden jeweils in \texttt{C} und \texttt{Python} implementi Der Code kann im zum Buch gehörigem \textit{GitHub} \footnote{\url{https://github.com/AndreasFMueller/SeminarMatrizen.git}} Repository gefunden werden. Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige Implementation Multiprocessing und Multithreading verwendet, dies f\"uhrt zu den tiefen Messzeiten. In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. + +In der Messung mit der Programmiersprache \texttt{C}, kann ein typischer Cache-Effekt beobachtet wer- +den. Bei den Algorithmen von Winograd und der Standardmethode hat bei einer Gr\"osse von +n = 2048 wohl eine Zeile der Matrix nicht an einer Cache Speicherstelle platzt. Diese beiden Al- +Algorithmen sind die Einzigen, welche \texttt{for}-Schleifen über die ganze Breite der Matrizen verwenden. +Dies führt dazu, dass ganze Zeilen zwischengespeichert werden müssen. Bei den anderen Algorith- +men ist dies nicht der Fall. + Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{multiplikation:tab:pc_config} aufgelistet. @@ -400,14 +408,15 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{BLAS (\textit{s})} \\ \hline \multicolumn{6}{c}{} \\ - \textbf{32} & 0.000081 &0.000594 & 0.00047& 0.00010 & 0.000022 \\ - \textbf{64} & 0.00065 & 0.0042& 0.0033& 0.00065& 0.00017 \\ - \textbf{128} & 0.0055 & 0.036& 0.024& 0.0052 & 0.0012 \\ - \textbf{256} & 0.054 & 0.32 & 0.17 & 0.057& 0.010 \\ - \textbf{512} & 0.48 & 2.61 & 1.20 & 0.51 & 0.074\\ - \textbf{1024} & 4.16 & 19.92& 8.45 & 4.53 & 0.704 \\ - \textbf{2048} & 125.90 & 159.33& 59.26 & 130.62 & 6.84 \\ - \textbf{4096} & 1111.31 & 1147.10& 414.64 & 1179.26 & 55.84\\ + \textbf{32} & 0.000089 & 0.000594 & 0.0005 & 0.00008 & 0.000021 \\ + \textbf{64} & 0.00069 & 0.0044 & 0.0036 & 0.00064 & 0.00018 \\ + \textbf{128} & 0.0057 & 0.035 & 0.025 & 0.0052 & 0.0012 \\ + \textbf{256} & 0.052 & 0.29 & 0.178 & 0.053 & 0.0096 \\ + \textbf{512} & 0.51 & 2.22 & 1.25 & 0.55 & 0.077 \\ + \textbf{1024} & 4.50 & 17.65 & 8.83 & 4.67 & 0.764 \\ + \textbf{2048} & 129.28 & 141.61 & 61.901 & 136.67 & 7.63 \\ + \textbf{4096} & 1111.31 & 1147.10 & 414.64 & 1179.26 & 55.84 \\ + \textbf{8192} & 9376.17 & 9606.40 & 3014.23 & 10071.51& 478.42 \\ \multicolumn{6}{c}{} \\ \hline \hline @@ -427,13 +436,14 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{\texttt{NumPy}(\textit{s})} \\ \hline \multicolumn{6}{c}{} \\ - \textbf{32} & 0.0240 &0.0271 & 0.04852& 0.01871 & 4.26e-05 \\ + \textbf{32} & 0.0240 &0.0271 & 0.04852& 0.01871 & 0.0000426 \\ \textbf{64} & 0.186 & 0.265& 0.2204& 0.1530& 0.000118 \\ \textbf{128} & 1.563 & 1.777& 1.447& 1.1947 & 0.000244 \\ \textbf{256} & 11.006 & 13.27 & 9.938 & 8.298& 0.000695 \\ \textbf{512} & 85.476 & 105.397 & 63.961 & 68.36 & 0.00221\\ \textbf{1024} & 750.757 & 847.321& 461.494 & 537.374 & 0.0188 \\ - \textbf{4096} & - & - & - & - & 1.633 \\ + \textbf{2048} & 6154.18 & 7375.93& 3860.57 & 4884.61 & 0.215 \\ + \textbf{4096} & 46813.3 & 58466 & 22904.3 & 43597.1 & 1.49 \\ \multicolumn{6}{c}{} \\ \hline \hline -- cgit v1.2.1 From 2b6637fb99a4aaebadc739b323b0ae440eb805e7 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Wed, 11 Aug 2021 21:31:37 +0200 Subject: typo --- buch/papers/multiplikation/loesungsmethoden.tex | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index be8c2d4..0760719 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -265,7 +265,7 @@ N=2n, \quad T = n^2 \\ \end{equation} sein, damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. -Falls $m=n=p$ werden $\frac{n^3}/{2}$ Multiplikationen benötigt. +Falls $m=n=p$ werden $\frac{n^3}{2}$ Multiplikationen benötigt. Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}(n^3 )$. \begin{algorithm}\footnotesize\caption{Winograds Matrizenmultiplikation} @@ -391,11 +391,11 @@ Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige I In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. In der Messung mit der Programmiersprache \texttt{C}, kann ein typischer Cache-Effekt beobachtet wer- -den. Bei den Algorithmen von Winograd und der Standardmethode hat bei einer Gr\"osse von -n = 2048 wohl eine Zeile der Matrix nicht an einer Cache Speicherstelle platzt. Diese beiden Al- -Algorithmen sind die Einzigen, welche \texttt{for}-Schleifen über die ganze Breite der Matrizen verwenden. -Dies führt dazu, dass ganze Zeilen zwischengespeichert werden müssen. Bei den anderen Algorith- -men ist dies nicht der Fall. +den. +Bei den Algorithmen von Winograd und der Standardmethode hat bei einer Matrizengrösse von $n = 2048$ wohl eine Zeile der Matrize nicht an einer Cache Speicherstelle platzt. +Diese beiden Algorithmen sind die Einzigen, welche \texttt{for}-Schleifen über die ganze Breite der Matrizen verwenden. +Dies führt dazu, dass ganze Zeilen zwischengespeichert werden müssen. +Bei den anderen Algorithmen ist dies nicht der Fall. Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{multiplikation:tab:pc_config} aufgelistet. -- cgit v1.2.1 From 713ef9bbfa79eb2ae2b821da26271cdeea58834c Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 17 Aug 2021 07:41:22 +0200 Subject: update --- buch/papers/multiplikation/loesungsmethoden.tex | 54 ++++++++++++++----------- buch/papers/multiplikation/problemstellung.tex | 30 +++++++------- 2 files changed, 46 insertions(+), 38 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 0760719..ac7cb85 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -11,10 +11,9 @@ In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultip \subsection{Standard Algorithmus} -Die Standardmethode kann im Algorithmus \ref{multiplikation:alg:smm} entnommen werden. +Die Standardmethode kann im Algorithmus \ref{multiplikation:alg:smm} gsehen werden. Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{for j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{for k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. - \begin{algorithm}\footnotesize\caption{Matrizenmultiplikation} \label{multiplikation:alg:smm} \setlength{\lineskip}{7pt} @@ -38,7 +37,6 @@ Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, \EndFunction \end{algorithmic} \end{algorithm} - Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O} (n^3)$ \subsubsection{Divide and Conquer Methode} @@ -131,7 +129,7 @@ Die sieben grundlegenden Terme \text{\textbf{V}} &= \left(\mathbf{A}_{12} - \mathbf{A}_{22}\right ) \cdot \left(\mathbf{B}_{21} + \mathbf{B}_{22}\right ) \end{split} \end{equation} -aus $\mathbf{A}$ und $\mathbf{B}$, werden f\"ur die Berechnung der Bl\"ocke +aus $\mathbf{A}$ und $\mathbf{B}$ werden f\"ur die Berechnung der Bl\"ocke \begin{equation} \label{multiplikation:eq:strassen2} \begin{split} \mathbf{C}_{11} &= \text{\textbf{P}} + \text{\textbf{S}} - \text{\textbf{T}} + \text{\textbf{V}} \\ @@ -233,29 +231,30 @@ Das Skalarprodukt ist nun geben mit \end{cases} \end{equation} Das Skalarprodukt kann also mit $ \lfloor \frac{n+1}{2} \rfloor$ weiteren Multiplikationen berechnet werden. -Angenommen man hat $N$ Vektoren mit welchen man $T$ Skalarprodukte berechnen m\"ochte. +Angenommen man hat $N$ Vektoren, mit welchen man $T$ Skalarprodukte berechnen m\"ochte. Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. Die Summen f\"ur $\xi$ und $\eta$ m\"ussen nur einmal berechnet werden. -Für die Gleichung \eqref{multiplikation:eq:skalar} benötigt man $Tn$ Multiplikationen. -Im Vergleich mit der neuen Methode -\begin{equation} - \begin{split}\label{multiplikation:eq:eff} - N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor \leq Tn \\ - \approx \frac{Nn}{2} + \frac{Tn}{2} \leq Tn \\ - \frac{Nn}{2} \leq \frac{Tn}{2} \\ - N \leq T +Für die ursprüngliche Gleichung \eqref{multiplikation:eq:skalar} für das Skalarprodukt benötigt man $Tn$ Multiplikationen. +Im Vergleich mit der Methode von Winograd, +%\begin{equation}\label{multiplikation:eq:eff} + \begin{align}\label{multiplikation:eq:eff} + \begin{split} + N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor &\leq Tn \\ + \approx \frac{Nn}{2} + \frac{Tn}{2} &\leq Tn \\ + \frac{Nn}{2} &\leq \frac{Tn}{2} \\ + N &\leq T, \end{split} -\end{equation} -spart man etwas, falls $N\leq T$. +\end{align} +%\end{equation} +werden für die berechnung des Skalarproduktes weniger Multiplikationen benötigt, falls $N\leq T$. Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. Dies f\"uhrt zu \begin{equation} (m+p) \left \lfloor \frac{n}{2} \right \rfloor + mp \left \lfloor \frac{n+1}{2} \right \rfloor = \frac{mn}{2} + \frac{pn}{2} + \frac{mpn}{2} + \frac{mp}{2} \end{equation} Multiplikationen. -Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt. -Was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. -Mit dem gleichen Ansatz wie in der Gleichung \ref{multiplikation:eq:eff} aber mit quadratischen Matrizen, muss +Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt, was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. +Mit dem gleichen Ansatz wie in der Gleichung \eqref{multiplikation:eq:eff} aber mit quadratischen Matrizen, muss \begin{equation} \begin{split} N=2n, \quad T = n^2 \\ @@ -265,7 +264,7 @@ N=2n, \quad T = n^2 \\ \end{equation} sein, damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. -Falls $m=n=p$ werden $\frac{n^3}{2}$ Multiplikationen benötigt. +Falls $m=n=p$, werden $\frac{n^3}{2}$ Multiplikationen benötigt. Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}(n^3 )$. \begin{algorithm}\footnotesize\caption{Winograds Matrizenmultiplikation} @@ -390,9 +389,14 @@ Der Code kann im zum Buch gehörigem \textit{GitHub} \footnote{\url{https://gith Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige Implementation Multiprocessing und Multithreading verwendet, dies f\"uhrt zu den tiefen Messzeiten. In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. -In der Messung mit der Programmiersprache \texttt{C}, kann ein typischer Cache-Effekt beobachtet wer- +Die gezeigten Algorithmen haben alle eine Laufzeit der Form $\mathcal{O}(n^k) $. +Bei einer logarithmischen Darstellung unterscheiden sich diese in Geraden mit unterschiedlichen Steigungen. +Bei den grafisch gezeigten Messresultate, können diese Steigungen gut erkannt werden, wobei die tiefere Laufzeit des Strassen Algorithmus eindrücklich zu sehen ist. +Der beötigte Overhead der Algorithmen zeigt sich in unterschiedlichen $y$-Achsenschnittpunkte. + +In der Messung mit der Programmiersprache \texttt{C} kann ein typischer Cache-Effekt beobachtet wer- den. -Bei den Algorithmen von Winograd und der Standardmethode hat bei einer Matrizengrösse von $n = 2048$ wohl eine Zeile der Matrize nicht an einer Cache Speicherstelle platzt. +Bei den Algorithmen von Winograd und der Standardmethode hat bei einer Matrizengrösse von $n = 2048$ wohl eine Zeile der Matrix nicht an einer Cache Speicherstelle Platz. Diese beiden Algorithmen sind die Einzigen, welche \texttt{for}-Schleifen über die ganze Breite der Matrizen verwenden. Dies führt dazu, dass ganze Zeilen zwischengespeichert werden müssen. Bei den anderen Algorithmen ist dies nicht der Fall. @@ -433,7 +437,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{tabular}{l l l l l l} \hline \hline - \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{\texttt{NumPy}(\textit{s})} \\ + \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{NumPy(\textit{s})} \\ \hline \multicolumn{6}{c}{} \\ \textbf{32} & 0.0240 &0.0271 & 0.04852& 0.01871 & 0.0000426 \\ @@ -490,10 +494,12 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \section{Fazit} \rhead{Fazit} -Wie man im Abschnitt \ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen trotz den theoretisch geringeren Zeitkomplexitäten, den Implementationen der numerischen Bibliotheken klar unterlegen. +Wie man im Abschnitt \ref{multiplikation:section:Implementation} sehen kann, sind die gezeigten Algorithmen trotz der theoretisch geringeren Zeitkomplexitäten den Implementationen der numerischen Bibliotheken klar unterlegen. Ein optimierter Speicherzugriff hat einen weitaus grösseren Einfluss auf die Laufzeit als die Zeitkomplexität des Algorithmus. Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. Nicht auf jeden Computersystemen können die \textit{BLAS} angewandt werden. Denke man an sehr kleine Mikrocontroller ohne Floatingpoint Recheneinheiten oder auch an \textit{Field Programmable Gate Arrays (FPGA's)}. -Sobald sehr grosse Matrizen multipliziert werden müssen und eine Addition in weniger Taktzyklen als eine Multiplikation durchführt werden kann, können die gezeigten Algorithmen von Vorteil sein. +Der Overhead der gezeigten Alogorithmen ist in allen Fällen grösser als bei der Standardmethode (z.B. sieben rekursive Aufrufe gegenüber drei \texttt{for}-Schleifen). +Um diesem entegenzuwirken muss der Laufzeitunterschied zwischen Addition und Multiplikation gross genug sein. +Wenn dies gegeben ist und dazu noch grosse Matritzen multipliziert werden, kann die Verwendung der Algortihmen von Strassen oder Winograd zu einer Senkung der Laufzeit führen. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index c8ba274..a98d0e9 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -7,15 +7,15 @@ \rhead{Problemstellung} Wegen der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. -Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der Standard Algorithmus l\"osen. +Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der Standardalgorithmus l\"osen. \subsection{Big $\mathcal{O}$ Notation} \label{muliplikation:sec:bigo} Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhängigkeit zur Inputgrösse \cite{multiplikation:bigo}. $f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. -% Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$ -Als Beispiel: benötigt eine Funktion $g$ $\mathcal{O} (n^2 )$ Multiplikationen, so wächst $f$ mit $\mathcal{O} (n+ n^2 )$ nicht wesentlich schneller falls $x\to\infty$. -Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: +Dies ist gegeben, wenn es für $f \in \mathcal{O}(n^k)$ eine Konstante $C$ gibt, mit $f(n) \leq Cn^k$. +% Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$. +Vereinfacht werden f\"ur Algorithmen die folgende Sprechweise verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear @@ -26,6 +26,8 @@ Vereinfacht werden f\"ur Algorithmen die folgende Notation verwendet: \item usw. \end{itemize} +Konstanten werden nicht beachtet, eine Laufzeit von $\mathcal{O}(4n^2)$ führt, falls $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. + In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt. @@ -50,7 +52,7 @@ Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomple \State \end{algorithmic} \end{algorithm} - \end{minipage} + \end{minipage} & \begin{minipage}{0.48\textwidth} \begin{algorithm}[H]\footnotesize\caption{} @@ -64,13 +66,13 @@ Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomple \EndFunction \end{algorithmic} \end{algorithm} - + \end{minipage} \end{tabular} \end{table} \begin{table} - \begin{tabular}[t]{ll} + \begin{tabular}[t]{ll} \begin{minipage}{0.48\textwidth} \begin{algorithm}[H]\footnotesize\caption{} \setlength{\lineskip}{7pt} @@ -81,15 +83,15 @@ Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomple \For{$i = 0,1,2 \dots,n$} \State $ sum \gets sum + A[i] \cdot B[i] $ \EndFor - + \State \textbf{return} $sum$ - + \EndFunction \State \State \end{algorithmic} \end{algorithm} - \end{minipage} + \end{minipage} & \begin{minipage}{0.48\textwidth} \begin{algorithm}[H]\footnotesize\caption{} @@ -112,10 +114,10 @@ Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomple \end{table} \paragraph{Beschr\"ankter Algorithmus} +Algorithmus \ref{multiplikation:alg:b1} ist ein Beispiel mit beschränkter Laufzeit $\mathcal{O}(1)$ +Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen Einfluss auf die Laufzeit. -Ein Beispiel eines Beschr\"ankter Verhalten $\mathcal{O}(1)$, kann im Algorithmus \ref{multiplikation:alg:b1} entnommen werden. Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen Einfluss auf die Laufzeit. - -Konstanten werden nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. +Wie erwähnt, werden konstanten nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. \paragraph{Linearer Algorithmus} @@ -132,6 +134,6 @@ Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhrt \begin{figure} \center \includegraphics[]{papers/multiplikation/images/bigo} - \caption{Verschiedene Laufzeiten} + \caption{Laufzeiten von verschiedensten Zeitkomplexitäten. Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt.} \label{multiplikation:fig:bigo} \end{figure} -- cgit v1.2.1 From b8b22fc376e14491a556daeacb5e8e5d216a8251 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Thu, 19 Aug 2021 06:08:48 +0200 Subject: update --- buch/papers/multiplikation/einlteung.tex | 2 +- buch/papers/multiplikation/images/meas_c.pdf | Bin 24028 -> 23943 bytes buch/papers/multiplikation/images/meas_c.tex | 6 +++--- buch/papers/multiplikation/images/meas_python.pdf | Bin 22384 -> 22379 bytes buch/papers/multiplikation/images/meas_python.tex | 2 +- buch/papers/multiplikation/problemstellung.tex | 1 - 6 files changed, 5 insertions(+), 6 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index 9f1cb04..fab23ef 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -47,6 +47,6 @@ der einzelnen Terme geschrieben werden. \begin{figure} \center \includegraphics[]{papers/multiplikation/images/mm_visualisation} - \caption{Matrizen Multiplikation} + \caption{Grafische illustration der Matrizenmultiplikation} \label{multiplikation:fig:mm_viz} \end{figure} diff --git a/buch/papers/multiplikation/images/meas_c.pdf b/buch/papers/multiplikation/images/meas_c.pdf index faf347e..6e0e2cc 100644 Binary files a/buch/papers/multiplikation/images/meas_c.pdf and b/buch/papers/multiplikation/images/meas_c.pdf differ diff --git a/buch/papers/multiplikation/images/meas_c.tex b/buch/papers/multiplikation/images/meas_c.tex index fe2bd2f..a2a0505 100644 --- a/buch/papers/multiplikation/images/meas_c.tex +++ b/buch/papers/multiplikation/images/meas_c.tex @@ -47,7 +47,7 @@ xmin=30, xmax=10000, ymin=1e-5, ymax=2e4, grid=both, major grid style={black!50}, -xlabel = data Input ($n$), +xlabel = data input ($n$), ylabel = {time ($s$)}, legend pos=north west, very thick, @@ -56,7 +56,7 @@ width=12cm, height=8cm, log basis x={10} ] \addlegendentry{Winograd} -\addplot[ color=purple, +\addplot[ color=blue, error bars/.cd, y dir=both, y explicit, ] coordinates { %(2,1e-07) @@ -127,7 +127,7 @@ width=12cm, height=8cm, (8192,9376.173434) }; \addlegendentry{BLAS} -\addplot[ color=blue, +\addplot[ color=purple, ] coordinates { %(2,1e-07) %(4,0.0) diff --git a/buch/papers/multiplikation/images/meas_python.pdf b/buch/papers/multiplikation/images/meas_python.pdf index ab3b14b..9d7730d 100644 Binary files a/buch/papers/multiplikation/images/meas_python.pdf and b/buch/papers/multiplikation/images/meas_python.pdf differ diff --git a/buch/papers/multiplikation/images/meas_python.tex b/buch/papers/multiplikation/images/meas_python.tex index d942f46..a30d342 100644 --- a/buch/papers/multiplikation/images/meas_python.tex +++ b/buch/papers/multiplikation/images/meas_python.tex @@ -56,7 +56,7 @@ width=12cm, height=8cm, log basis x={10} ] \addlegendentry{Winograd} -\addplot[ color=purple, +\addplot[ color=blue, ] coordinates { % (2, 2.7895e-05 ) % (4, 0.000104904) diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index a98d0e9..b8c4142 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -27,7 +27,6 @@ Vereinfacht werden f\"ur Algorithmen die folgende Sprechweise verwendet: \end{itemize} Konstanten werden nicht beachtet, eine Laufzeit von $\mathcal{O}(4n^2)$ führt, falls $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. - In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt. -- cgit v1.2.1 From 0c073915585da20db52db82958d50e159559e5c8 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Fri, 20 Aug 2021 08:50:43 +0200 Subject: update --- buch/papers/multiplikation/einlteung.tex | 8 +- buch/papers/multiplikation/images/bigo.pdf | Bin 28372 -> 28312 bytes buch/papers/multiplikation/images/bigo.tex | 1 + buch/papers/multiplikation/images/meas_c.pdf | Bin 23943 -> 23887 bytes buch/papers/multiplikation/images/meas_c.tex | 3 +- buch/papers/multiplikation/images/meas_python.pdf | Bin 22379 -> 22337 bytes buch/papers/multiplikation/images/meas_python.tex | 3 +- buch/papers/multiplikation/images/strassen.pdf | Bin 19970 -> 20700 bytes buch/papers/multiplikation/images/strassen.tex | 127 +++++++++++++++++++--- buch/papers/multiplikation/loesungsmethoden.tex | 62 +++++------ buch/papers/multiplikation/main.tex | 4 +- buch/papers/multiplikation/problemstellung.tex | 11 +- 12 files changed, 156 insertions(+), 63 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index fab23ef..2cfbe21 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -3,10 +3,10 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Einleitung \label{multiplikation:section:einleitung}} -\rhead{Einleitung} +\section{Matrizenmultiplikation \label{multiplikation:section:einleitung}} +\rhead{Matrizenmultiplikation} -Die Multiplikation zweier Matrizen ist eine wichtige Operation die in verschiedensten Teilen der Mathematik Anwendung findet. +Die Multiplikation zweier Matrizen ist eine wichtige Operation, die in verschiedensten Teilen der Mathematik Anwendung findet. Die Beschreibung der Multiplikation aus der Definition 2.10: Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine @@ -34,7 +34,7 @@ C_{11} & C_{12}\\ C_{21} & C_{22} \end{bmatrix} \end{equation} -explizt als Gleichung +explizt als Gleichungen \begin{equation} \label{multiplikation:eq:MM_exp} \begin{split} C_{11} &= A_{11} \cdot B_{11} + A_{12} \cdot B_{21}\\ diff --git a/buch/papers/multiplikation/images/bigo.pdf b/buch/papers/multiplikation/images/bigo.pdf index 8a53398..2519553 100644 Binary files a/buch/papers/multiplikation/images/bigo.pdf and b/buch/papers/multiplikation/images/bigo.pdf differ diff --git a/buch/papers/multiplikation/images/bigo.tex b/buch/papers/multiplikation/images/bigo.tex index 9ee3a68..63fd0fd 100644 --- a/buch/papers/multiplikation/images/bigo.tex +++ b/buch/papers/multiplikation/images/bigo.tex @@ -54,6 +54,7 @@ xticklabels=\empty, scale only axis=true, width=12cm, height=8cm, + legend cell align={left} ] \addplot [ domain= 1:5000, diff --git a/buch/papers/multiplikation/images/meas_c.pdf b/buch/papers/multiplikation/images/meas_c.pdf index 6e0e2cc..521151e 100644 Binary files a/buch/papers/multiplikation/images/meas_c.pdf and b/buch/papers/multiplikation/images/meas_c.pdf differ diff --git a/buch/papers/multiplikation/images/meas_c.tex b/buch/papers/multiplikation/images/meas_c.tex index a2a0505..12d3527 100644 --- a/buch/papers/multiplikation/images/meas_c.tex +++ b/buch/papers/multiplikation/images/meas_c.tex @@ -53,7 +53,8 @@ legend pos=north west, very thick, scale only axis=true, width=12cm, height=8cm, - log basis x={10} + log basis x={10}, + legend cell align={left} ] \addlegendentry{Winograd} \addplot[ color=blue, diff --git a/buch/papers/multiplikation/images/meas_python.pdf b/buch/papers/multiplikation/images/meas_python.pdf index 9d7730d..fe89773 100644 Binary files a/buch/papers/multiplikation/images/meas_python.pdf and b/buch/papers/multiplikation/images/meas_python.pdf differ diff --git a/buch/papers/multiplikation/images/meas_python.tex b/buch/papers/multiplikation/images/meas_python.tex index a30d342..ad43cf6 100644 --- a/buch/papers/multiplikation/images/meas_python.tex +++ b/buch/papers/multiplikation/images/meas_python.tex @@ -53,7 +53,8 @@ legend pos=north west, very thick, scale only axis=true, width=12cm, height=8cm, - log basis x={10} + log basis x={10}, + legend cell align={left} ] \addlegendentry{Winograd} \addplot[ color=blue, diff --git a/buch/papers/multiplikation/images/strassen.pdf b/buch/papers/multiplikation/images/strassen.pdf index a30fdaa..6d81ff5 100644 Binary files a/buch/papers/multiplikation/images/strassen.pdf and b/buch/papers/multiplikation/images/strassen.pdf differ diff --git a/buch/papers/multiplikation/images/strassen.tex b/buch/papers/multiplikation/images/strassen.tex index 5cf39b4..2e3b727 100644 --- a/buch/papers/multiplikation/images/strassen.tex +++ b/buch/papers/multiplikation/images/strassen.tex @@ -56,7 +56,7 @@ A_{11}B_{11} \& A_{12}B_{12} \& A_{21}B_{12} \& A_{22}B_{12} \\ A_{11}B_{22} \& A_{12}B_{22} \& A_{21}B_{22} \& A_{22}B_{22} \\ };} - + \foreach \j in {1,...,7} { \matrix(M\i\j)[matrix of math nodes,nodes in empty cells, @@ -80,7 +80,7 @@ \node at (-3,-15) {$C_{21}=$} ; \node at (-3,-10) {$C_{12}=$} ; \node at (-3,-5) {$C_{11}=$} ; - + \node at (5,-2) {P}; \node at (10,-2) {Q}; \node at (15,-2) {R}; @@ -100,41 +100,132 @@ \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-3-3)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(X4-4-4)] {}; +% P \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-1)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-4)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-4-4)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M11-1-1)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M21-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M21-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M21-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M21-1-1)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; -\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M31-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M31-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M31-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M31-1-1)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-1)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-4)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-4-4)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M41-1-1)] {}; + +% Q +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M12-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M12-1-3)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M22-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M22-1-3)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M32-1-3)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-4)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M42-1-3)] {}; + +% R + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M13-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M13-4-1)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M23-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M23-4-1)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M33-3-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M33-4-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M43-3-1)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M43-4-1)] {}; + +% S + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M14-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M14-2-4)] {}; + + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M24-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M24-2-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M34-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M34-2-4)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M44-1-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M44-2-4)] {}; + +%T + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M15-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M25-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M35-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M35-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M45-4-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M45-4-2)] {}; + +% U + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M16-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M16-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M16-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M16-3-1)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M26-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M26-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M26-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M26-3-1)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M36-1-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M36-1-1)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M36-3-3)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M36-3-1)] {}; + \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-1-3)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-1-1)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M46-3-3)] {}; \node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M46-3-1)] {}; + +%V + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=red, fit=(M17-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=green, fit=(M17-4-2)] {}; + + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M27-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M27-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M27-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M27-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M37-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M37-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M37-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M37-4-2)] {}; + +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M47-2-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M47-4-4)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M47-2-2)] {}; +\node[opacity=0.5, rounded corners=0pt, inner sep=-1pt, fill=gray, fit=(M47-4-2)] {}; + + + + + \end{tikzpicture} \end{document} diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index ac7cb85..90cb9ff 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -7,12 +7,12 @@ \section{Algorithmen} \rhead{Algorithmen} -In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Bibliotheken zur automatisierten Verwendung von vordefinierten Algorithmen gezeigt. +In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Bibliotheken zur unkomplizierten Verwendung von vordefinierten Algorithmen gezeigt. \subsection{Standard Algorithmus} -Die Standardmethode kann im Algorithmus \ref{multiplikation:alg:smm} gsehen werden. -Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt implementiert. +Die Standardmethode ist im Algorithmus \ref{multiplikation:alg:smm} implementiert. +Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt umgesetzt. Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, die \texttt{for j} Schleife iteriert \"uber alle Spalten der $\mathbf{B}$ Matrix und die \texttt{for k} Schleife iteriert \"uber alle Eintr\"age dieser Zeilen bzw. Spalten. \begin{algorithm}\footnotesize\caption{Matrizenmultiplikation} \label{multiplikation:alg:smm} @@ -37,7 +37,7 @@ Die \texttt{for i} Schleife iteriert \"uber alle Zeilen der $\mathbf{A}$ Matrix, \EndFunction \end{algorithmic} \end{algorithm} -Die Laufzeit dieser Struktur mit drei \texttt{For} Schleifen ist $\mathcal{O} (n^3)$ +Die Laufzeit dieser Struktur mit drei \texttt{for} Schleifen ist $\mathcal{O} (n^3)$. \subsubsection{Divide and Conquer Methode} @@ -65,8 +65,8 @@ Das Matrizen Produkt \mathbf{C}_{21} & \mathbf{C}_{22} \end{bmatrix}, \end{equation} -\begin{equation} -\mathbf{C}_{ij} = \sum_{k=1}^{2n} \mathbf{A}_{ik} \mathbf{B}_{kj} +mit \begin{equation} +\mathbf{C}_{ij} = \sum_{k=1}^{2n} \mathbf{A}_{ik} \mathbf{B}_{kj}, \label{multiplikation:eq:MM_block} \end{equation} ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation der Untermatrize $\mathbf{A}_{ik}$ und $\mathbf{B}_{kj}$ wird die Matrizenmultiplikation verwendet. @@ -105,11 +105,11 @@ Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ Die Laufzeit dieser rekursiven Funktion kann mit dem \textit{Master Theorem} \cite{multiplikation:master_theorem} berechnet werden. Das \textit{Master Theorem} bestimmt die Zeitkomplexit\"at von rekursiven Algorithmen. Ohne auf dieses vertieft einzugehen, bestimmt die Anzahl rekursiver Aufrufe $\mathcal{T} $ der Funktion die Laufzeit. -In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt +In diesem Fall wird die Funktion pro Durchlauf acht mal rekursiv aufgerufen, dies f\"uhrt zu \begin{equation} \label{multiplikation:eq:laufzeitdac} - \mathcal{T}(n) = 8 \cdot \mathcal{T} \left(\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O} (n^{3} ) + \mathcal{T}(n) = 8 \cdot \mathcal{T} \left(\frac{n}{2}\right ) + n^2 = \mathcal{O}(n^{\log_2 8}) = \mathcal{O} (n^{3} ), \end{equation} -zu einer kubischen Laufzeit. +also einer kubischen Laufzeit. Die Addition zweier Matrizen $\mathbf{A} + \mathbf{B} = \mathbf{C}$ hat eine Laufzeit von $\mathcal{O}(n^{2})$ und kann neben dem dominierendem Anteil von $\mathcal{O}(n^{3})$ ignoriert werden. In diesem Fall hat der \textit{Divide and Conquer} Ansatz zu keiner Verbesserung gef\"uhrt. @@ -187,7 +187,7 @@ der Matrix $\mathbf{C}$ gebraucht. Strassens Methode wird in der Abbildung \ref{multiplikation:fig:strassen} grafisch dargestellt. Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf{A}$ oder $\mathbf{B}$ . Die gr\"unen Felder auf der linken Seite, zeigen die Addition, welche f\"ur den dazugeh\"origen Term ben\"otigt wird. -Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \dotsb, V}$. +Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \ldots, V}$. Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \begin{figure} \center @@ -246,7 +246,7 @@ Im Vergleich mit der Methode von Winograd, \end{split} \end{align} %\end{equation} -werden für die berechnung des Skalarproduktes weniger Multiplikationen benötigt, falls $N\leq T$. +werden für die Berechnung des Skalarproduktes weniger Multiplikationen benötigt, falls $N\leq T$. Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. Dies f\"uhrt zu \begin{equation} @@ -266,7 +266,7 @@ sein, damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. Falls $m=n=p$, werden $\frac{n^3}{2}$ Multiplikationen benötigt. Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \rightarrow \infty$ können Konstanten vernachlässigt werden und - somit entsteht für diesen Algorithmus wieder die Ursprüngliche Laufzeit von $\mathcal{O}(n^3 )$. + somit entsteht für diesen Algorithmus wieder die ursprüngliche Laufzeit von $\mathcal{O}(n^3 )$. \begin{algorithm}\footnotesize\caption{Winograds Matrizenmultiplikation} \setlength{\lineskip}{7pt} \label{multiplikation:alg:winograd} @@ -406,21 +406,21 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{table} \begin{center} - \begin{tabular}{l l l l l l} + \begin{tabular}{r l l l l l} \hline \hline \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{BLAS (\textit{s})} \\ \hline \multicolumn{6}{c}{} \\ - \textbf{32} & 0.000089 & 0.000594 & 0.0005 & 0.00008 & 0.000021 \\ - \textbf{64} & 0.00069 & 0.0044 & 0.0036 & 0.00064 & 0.00018 \\ - \textbf{128} & 0.0057 & 0.035 & 0.025 & 0.0052 & 0.0012 \\ - \textbf{256} & 0.052 & 0.29 & 0.178 & 0.053 & 0.0096 \\ - \textbf{512} & 0.51 & 2.22 & 1.25 & 0.55 & 0.077 \\ - \textbf{1024} & 4.50 & 17.65 & 8.83 & 4.67 & 0.764 \\ - \textbf{2048} & 129.28 & 141.61 & 61.901 & 136.67 & 7.63 \\ - \textbf{4096} & 1111.31 & 1147.10 & 414.64 & 1179.26 & 55.84 \\ - \textbf{8192} & 9376.17 & 9606.40 & 3014.23 & 10071.51& 478.42 \\ + \textbf{32} & \phantom{000}0.000089 & \phantom{000}0.000594 & \phantom{000}0.0005 & \phantom{0000}0.00008 & \phantom{00}0.000021 \\ + \textbf{64} & \phantom{000}0.00069 & \phantom{000}0.0044 & \phantom{000}0.0036 & \phantom{0000}0.00064 & \phantom{00}0.00018 \\ + \textbf{128} & \phantom{000}0.0057 & \phantom{000}0.035 & \phantom{000}0.025 & \phantom{0000}0.0052 & \phantom{00}0.0012 \\ + \textbf{256} & \phantom{000}0.052 & \phantom{000}0.29 & \phantom{000}0.178 & \phantom{0000}0.053 & \phantom{00}0.0096 \\ + \textbf{512} & \phantom{000}0.51 & \phantom{000}2.22 & \phantom{000}1.25 & \phantom{0000}0.55 & \phantom{00}0.077 \\ + \textbf{1024} & \phantom{000}4.50 & \phantom{00}17.65 & \phantom{000}8.83 & \phantom{0000}4.67 & \phantom{00}0.764 \\ + \textbf{2048} & \phantom{0}129.28 & \phantom{0}141.61 & \phantom{00}61.901 & \phantom{00}136.67 & \phantom{00}7.63 \\ + \textbf{4096} & 1111.31 & 1147.10 & \phantom{0}414.64 & \phantom{0}1179.26 & \phantom{0}55.84 \\ + \textbf{8192} & 9376.17 & 9606.40 & 3014.23 & 10071.51 & 478.42 \\ \multicolumn{6}{c}{} \\ \hline \hline @@ -434,20 +434,20 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{table} \begin{center} - \begin{tabular}{l l l l l l} + \begin{tabular}{r l l l l l} \hline \hline \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{NumPy(\textit{s})} \\ \hline \multicolumn{6}{c}{} \\ - \textbf{32} & 0.0240 &0.0271 & 0.04852& 0.01871 & 0.0000426 \\ - \textbf{64} & 0.186 & 0.265& 0.2204& 0.1530& 0.000118 \\ - \textbf{128} & 1.563 & 1.777& 1.447& 1.1947 & 0.000244 \\ - \textbf{256} & 11.006 & 13.27 & 9.938 & 8.298& 0.000695 \\ - \textbf{512} & 85.476 & 105.397 & 63.961 & 68.36 & 0.00221\\ - \textbf{1024} & 750.757 & 847.321& 461.494 & 537.374 & 0.0188 \\ - \textbf{2048} & 6154.18 & 7375.93& 3860.57 & 4884.61 & 0.215 \\ - \textbf{4096} & 46813.3 & 58466 & 22904.3 & 43597.1 & 1.49 \\ + \textbf{32} & \phantom{000}0.0240 & \phantom{0000}0.0271& \phantom{0000}0.04852 & \phantom{0000}0.01871 & 0.0000426 \\ + \textbf{64} &\phantom{000} 0.186 & \phantom{0000}0.265 & \phantom{0000}0.2204 & \phantom{0000}0.1530& 0.000118 \\ + \textbf{128} &\phantom{000} 1.563 & \phantom{0000}1.777 & \phantom{0000}1.447 & \phantom{0000}1.1947 & 0.000244 \\ + \textbf{256} &\phantom{00} 11.006 & \phantom{000}13.27 & \phantom{0000}9.938 & \phantom{0000}8.298& 0.000695 \\ + \textbf{512} &\phantom{00} 85.476 & \phantom{00}105.397 & \phantom{000}63.961 & \phantom{000}68.360 & 0.00221\\ + \textbf{1024} &\phantom{0} 750.757 & \phantom{00}847.321 & \phantom{00}461.494 & \phantom{00}537.374 & 0.0188 \\ + \textbf{2048} & 6154.18 & \phantom{0}7375.93 & \phantom{0}3860.57 & \phantom{0}4884.61 & 0.215 \\ + \textbf{4096} & 46813.30 & 58466.00 & 22904.30 & 43597.10 & 1.49 \\ \multicolumn{6}{c}{} \\ \hline \hline diff --git a/buch/papers/multiplikation/main.tex b/buch/papers/multiplikation/main.tex index fb1908e..ca93e92 100755 --- a/buch/papers/multiplikation/main.tex +++ b/buch/papers/multiplikation/main.tex @@ -26,8 +26,8 @@ backgroundcolor=\color{backcolour} } -\chapter{Schnelle Matrizen Multiplikation\label{chapter:multiplikation}} -\lhead{FMM} +\chapter{Schnelle Matrizenmultiplikation\label{chapter:multiplikation}} +\lhead{MM} \begin{refsection} \chapterauthor{Michael Schmid} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index b8c4142..a9aeda0 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -3,13 +3,12 @@ % % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % -\section{Problemstellung} +\section{Laufzeiten von Algorithmen} \rhead{Problemstellung} -Wegen der breiten Anwendung der Matrizenmultiplikation ist eine effiziente L\"osung dieser Operation von grosser Bedeutung. +Wegen der breiten Anwendung der Matrizenmultiplikation ist eine effiziente Ausführung dieser Operation von grosser Bedeutung. Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der Standardalgorithmus l\"osen. -\subsection{Big $\mathcal{O}$ Notation} \label{muliplikation:sec:bigo} Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhängigkeit zur Inputgrösse \cite{multiplikation:bigo}. $f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. @@ -26,15 +25,15 @@ Vereinfacht werden f\"ur Algorithmen die folgende Sprechweise verwendet: \item usw. \end{itemize} -Konstanten werden nicht beachtet, eine Laufzeit von $\mathcal{O}(4n^2)$ führt, falls $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. +Konstanten werden nicht beachtet, eine Laufzeit von $4n^2$ führt, falls $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. -Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt. +Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven abbgebildet. \subsubsection{Beispiel Algorithmen} -Es folgen einige Beispiele von Algorithmen welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. +Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. \begin{table}[t] -- cgit v1.2.1 From 27bef650fb02f20f0f0a0980e810363583115cd9 Mon Sep 17 00:00:00 2001 From: Nunigan Date: Sat, 21 Aug 2021 14:54:03 +0200 Subject: update multiplikation --- buch/papers/multiplikation/einlteung.tex | 4 +- buch/papers/multiplikation/images/strassen.pdf | Bin 20700 -> 22262 bytes buch/papers/multiplikation/images/strassen.tex | 24 +++++------ buch/papers/multiplikation/loesungsmethoden.tex | 52 +++++++++++------------- buch/papers/multiplikation/problemstellung.tex | 2 +- 5 files changed, 39 insertions(+), 43 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index 2cfbe21..21fa9df 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -14,7 +14,7 @@ $n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt eine $n\times l$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{n\times l}(\Bbbk)$ mit den Koeffizienten \begin{equation} -c_{ij} = \sum_{k=1}^n a_{ik} b_{kj}. +C_{ij} = \sum_{k=1}^n A_{ik} B_{kj}. \label{multiplikation:eq:MM} \end{equation} Grafisch kann die Matrizenmultiplikation $\mathbf{AB}=\mathbf{C}$ wie in Abbildung \ref{multiplikation:fig:mm_viz} visualisiert werden. @@ -47,6 +47,6 @@ der einzelnen Terme geschrieben werden. \begin{figure} \center \includegraphics[]{papers/multiplikation/images/mm_visualisation} - \caption{Grafische illustration der Matrizenmultiplikation} + \caption{Grafische Illustration der Matrizenmultiplikation} \label{multiplikation:fig:mm_viz} \end{figure} diff --git a/buch/papers/multiplikation/images/strassen.pdf b/buch/papers/multiplikation/images/strassen.pdf index 6d81ff5..d150125 100644 Binary files a/buch/papers/multiplikation/images/strassen.pdf and b/buch/papers/multiplikation/images/strassen.pdf differ diff --git a/buch/papers/multiplikation/images/strassen.tex b/buch/papers/multiplikation/images/strassen.tex index 2e3b727..b51a9d5 100644 --- a/buch/papers/multiplikation/images/strassen.tex +++ b/buch/papers/multiplikation/images/strassen.tex @@ -76,18 +76,18 @@ } \huge{ - \node at (-3,-20) {$C_{22}=$}; - \node at (-3,-15) {$C_{21}=$} ; - \node at (-3,-10) {$C_{12}=$} ; - \node at (-3,-5) {$C_{11}=$} ; - - \node at (5,-2) {P}; - \node at (10,-2) {Q}; - \node at (15,-2) {R}; - \node at (20,-2) {S}; - \node at (25,-2) {T}; - \node at (30,-2) {U}; - \node at (35,-2) {V}; + \node at (-3,-20) {$\mathbf{C}_{22}=$}; + \node at (-3,-15) {$\mathbf{C}_{21}=$} ; + \node at (-3,-10) {$\mathbf{C}_{12}=$} ; + \node at (-3,-5) {$\mathbf{C}_{11}=$} ; + + \node at (5,-2) {$\mathbf{P}$}; + \node at (10,-2) {$\mathbf{Q}$}; + \node at (15,-2) {$\mathbf{R}$}; + \node at (20,-2) {$\mathbf{S}$}; + \node at (25,-2) {$\mathbf{T}$}; + \node at (30,-2) {$\mathbf{U}$}; + \node at (35,-2) {$\mathbf{V}$}; } diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 90cb9ff..51872f5 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -192,7 +192,7 @@ Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} - \caption{Strassens Algorithmus} + \caption{Der Algorithmus von Strassen verwendet Multiplikationen zur Berechnung der sieben Block-Matrizen $\mathbf{P}$ bis $\mathbf{V}$ aus $\mathbf{A}$ und $\mathbf{B}$, aus denen sich die Blöcke es Produktes $\mathbf{C}=\mathbf{AB}$ ausschliesslich durch Addition und Subtraktion bilden lassen. Die einzelnen Felder in den Quadraten stellen alle möglichen Produkte von Matrizen $\mathbf{A}_{ik}$ und $\mathbf{B}_{jl}$ dar. In den grossen Quadraten am linken Rand sind diejenigen Produkte grün markiert, welche zusammen die entsprechenden Blöcke $\mathbf{C}_{il}$ von $\mathbf{C}$ ergeben. In den Spalten $\mathbf{P}$ bis $\mathbf{V}$ sind die Produkte farblich hervorgehoben, die in der Definition der entsprechenden Matrix vorkommen. Grün und rot symbolisieren die Vorzeichen, mit denen die Produkte kombiniert werden müssen} \label{multiplikation:fig:strassen} \end{figure} @@ -235,18 +235,14 @@ Angenommen man hat $N$ Vektoren, mit welchen man $T$ Skalarprodukte berechnen m\ Daf\"ur werden $N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor $ Multiplikationen ben\"otigt. Die Summen f\"ur $\xi$ und $\eta$ m\"ussen nur einmal berechnet werden. Für die ursprüngliche Gleichung \eqref{multiplikation:eq:skalar} für das Skalarprodukt benötigt man $Tn$ Multiplikationen. -Im Vergleich mit der Methode von Winograd, -%\begin{equation}\label{multiplikation:eq:eff} - \begin{align}\label{multiplikation:eq:eff} - \begin{split} - N\lfloor n/2 \rfloor + T\lfloor (n+1)/2 \rfloor &\leq Tn \\ - \approx \frac{Nn}{2} + \frac{Tn}{2} &\leq Tn \\ - \frac{Nn}{2} &\leq \frac{Tn}{2} \\ - N &\leq T, -\end{split} -\end{align} -%\end{equation} -werden für die Berechnung des Skalarproduktes weniger Multiplikationen benötigt, falls $N\leq T$. +Damit können wir die Laufzeit der Methode von Winograd mit der Laufzeit der Standardmethode vergleichen. Sie ist kleiner als die Laufzeit für die Standardmethode, wenn gilt +\begin{equation}\label{multiplikation:eq:eff} +\begin{array}{crcl} + & N\lfloor n/2\rfloor + T\lfloor(n+1)/2\rfloor \approx Nn/2 + Tn/2 & \le & Tn \\ +\Leftrightarrow & Nn/2 & \le & Tn/2 \\ +\Leftrightarrow & N & \le & T. +\end{array} +\end{equation} Eine Matrizenmultiplikation mit $\mathbf{A}$ einer $m \times n$ und $\mathbf{B}$ einer $n \times p$ Matrix, entspricht $N=m+p$ Vektoren mit welchen man $T=mp$ Skalarprodukte berechnet. Dies f\"uhrt zu \begin{equation} @@ -255,13 +251,13 @@ Dies f\"uhrt zu Multiplikationen. Wenn $m,p,n$ gross werden, dominiert der Term $\frac{mpn}{2}$ und es werden $\frac{mpn}{2}$ Multiplikationen ben\"otigt, was im Vergleich zu den $mpn$ Multiplikation der Standardmethode nur die H\"alfte ist. Mit dem gleichen Ansatz wie in der Gleichung \eqref{multiplikation:eq:eff} aber mit quadratischen Matrizen, muss -\begin{equation} +\begin{align} \begin{split} -N=2n, \quad T = n^2 \\ - 2n \leq n^2 \\ - 2 \leq n +N=2n, &\quad T = n^2 \\ + 2n &\leq n^2 \\ + 2 &\leq n \end{split} -\end{equation} +\end{align} sein, damit man etwas einspart. Die Implementation kann Algorithmus \ref{multiplikation:alg:winograd} entnommen werden. Falls $m=n=p$, werden $\frac{n^3}{2}$ Multiplikationen benötigt. @@ -322,7 +318,7 @@ Im Abschnitt \ref{muliplikation:sec:bigo} wurde bereits erläutert: falls $n \ri \subsection{Basic Linear Algebra Subprograms (BLAS)} Die gebräuchliche Methode f\"ur die Anwendung einer optimierten Matrizenmultiplikation ist die Verwendung einer Subroutine aus den \textit{Basic Linear Algebra Subprograms (BLAS)} \cite{multiplikation:BLAS}. -Die meisten Numerischen Bibliotheken von High-Level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. +Die meisten numerischen Bibliotheken von high-level Skriptsprachen wie \texttt{Matlab}, \texttt{NumPy (Python)}, \texttt{GNU Octave} oder \texttt{Mathematica} ben\"utzen eine Form von \textit{BLAS}. \textit{BLAS} sind dabei in drei unterschiedliche Levels aufgeteilt. @@ -390,9 +386,9 @@ Anzumerken ist, dass die Matrizenmultiplikation von \texttt{NumPy} als einzige I In Abbildung \ref{multiplikation:fig:python} und Abbildung \ref{multiplikation:fig:c_meas_4096} sind de Messresultate grafisch dargestellt. Die selben Messresultate sind tabellarisch in Tabelle \ref{multiplikation:tab:messung_Python} und Tabelle \ref{multiplikation:tab:messung_C} ersichtlich. Die gezeigten Algorithmen haben alle eine Laufzeit der Form $\mathcal{O}(n^k) $. -Bei einer logarithmischen Darstellung unterscheiden sich diese in Geraden mit unterschiedlichen Steigungen. +Bei einer doppelt logarithmischen Darstellung unterscheiden sich diese in Geraden mit unterschiedlichen Steigungen. Bei den grafisch gezeigten Messresultate, können diese Steigungen gut erkannt werden, wobei die tiefere Laufzeit des Strassen Algorithmus eindrücklich zu sehen ist. -Der beötigte Overhead der Algorithmen zeigt sich in unterschiedlichen $y$-Achsenschnittpunkte. +Der benötigte Overhead der Algorithmen zeigt sich in unterschiedlichen $y$-Achsenschnittpunkte. In der Messung mit der Programmiersprache \texttt{C} kann ein typischer Cache-Effekt beobachtet wer- den. @@ -426,7 +422,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \hline \end{tabular} \end{center} - \caption{Messresultate \texttt{C}} + \caption{Laufzeiten der verschieden Algorithmen in der Programmiersprache \texttt{C}} \label{multiplikation:tab:messung_C} \end{table} @@ -453,7 +449,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \hline \end{tabular} \end{center} - \caption{Messresultate \texttt{Python}} + \caption{Laufzeiten der verschieden Algorithmen in der Skriptsprache \texttt{Python}} \label{multiplikation:tab:messung_Python} \end{table} @@ -479,7 +475,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_c} - \caption{Messresultate mit der Programmiersprache \texttt{C}} + \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Programmiersprache \texttt{C}} \label{multiplikation:fig:c_meas_4096} \end{figure} @@ -487,7 +483,7 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_python} - \caption{Messresultate mit der Programmiersprache \texttt{Python}} + \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Skriptsprache \texttt{Python}} \label{multiplikation:fig:python} \end{figure} @@ -500,6 +496,6 @@ Ein optimierter Speicherzugriff hat einen weitaus grösseren Einfluss auf die La Doch haben Entdeckungen wie jene von Strassen und Winograd ihre Daseinsberechtigung. Nicht auf jeden Computersystemen können die \textit{BLAS} angewandt werden. Denke man an sehr kleine Mikrocontroller ohne Floatingpoint Recheneinheiten oder auch an \textit{Field Programmable Gate Arrays (FPGA's)}. -Der Overhead der gezeigten Alogorithmen ist in allen Fällen grösser als bei der Standardmethode (z.B. sieben rekursive Aufrufe gegenüber drei \texttt{for}-Schleifen). -Um diesem entegenzuwirken muss der Laufzeitunterschied zwischen Addition und Multiplikation gross genug sein. -Wenn dies gegeben ist und dazu noch grosse Matritzen multipliziert werden, kann die Verwendung der Algortihmen von Strassen oder Winograd zu einer Senkung der Laufzeit führen. +Der Overhead der gezeigten Algorithmen ist in allen Fällen grösser als bei der Standardmethode (z.B. sieben rekursive Aufrufe gegenüber drei \texttt{for}-Schleifen). +Um diesem entgegenzuwirken muss der Laufzeitunterschied zwischen Addition und Multiplikation gross genug sein. +Wenn dies gegeben ist und dazu noch grosse Matritzen multipliziert werden, kann die Verwendung der Algorithmen von Strassen oder Winograd zu einer Senkung der Laufzeit führen. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index a9aeda0..604ea36 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -27,7 +27,7 @@ Vereinfacht werden f\"ur Algorithmen die folgende Sprechweise verwendet: Konstanten werden nicht beachtet, eine Laufzeit von $4n^2$ führt, falls $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. -Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven abbgebildet. +Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven abgebildet. -- cgit v1.2.1 From bf1d8fd6cf8b1a40bb0a621fda1070ddefba277b Mon Sep 17 00:00:00 2001 From: Nunigan Date: Mon, 23 Aug 2021 11:00:26 +0200 Subject: update --- buch/papers/multiplikation/einlteung.tex | 1 - buch/papers/multiplikation/loesungsmethoden.tex | 37 ++++++++++++++----------- buch/papers/multiplikation/main.tex | 2 +- buch/papers/multiplikation/problemstellung.tex | 14 +++++----- 4 files changed, 29 insertions(+), 25 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index 21fa9df..d31e0f7 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -8,7 +8,6 @@ Die Multiplikation zweier Matrizen ist eine wichtige Operation, die in verschiedensten Teilen der Mathematik Anwendung findet. Die Beschreibung der Multiplikation aus der Definition 2.10: - Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine $n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt eine $n\times l$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{n\times l}(\Bbbk)$ mit den diff --git a/buch/papers/multiplikation/loesungsmethoden.tex b/buch/papers/multiplikation/loesungsmethoden.tex index 51872f5..8d0c0a8 100755 --- a/buch/papers/multiplikation/loesungsmethoden.tex +++ b/buch/papers/multiplikation/loesungsmethoden.tex @@ -9,7 +9,7 @@ In diesem Abschnitt werden mehrere Algorithmen zur Berechnung der Matrizenmultiplikation vorgestellt, auch werden Bibliotheken zur unkomplizierten Verwendung von vordefinierten Algorithmen gezeigt. -\subsection{Standard Algorithmus} +\subsection{Standardalgorithmus} Die Standardmethode ist im Algorithmus \ref{multiplikation:alg:smm} implementiert. Hierf\"ur wurde die Gleichung \eqref{multiplikation:eq:MM} direkt umgesetzt. @@ -48,7 +48,7 @@ Das bekannteste Beispiel ist wohl die \textit{Fast Fourier Transform} wobei die Die Matrizenmultiplikation kann ebenfalls mit solch einem Ansatz berechnet werden. Zur vereinfachten Veranschaulichung kann die Situation mit $\mathbf{A}$ und $\mathbf{B}$ der Gr\"osse $2^n \times 2^n$ verwendet werden. Die Matrizen $\mathbf{A}$ und $\mathbf{B}$ werden in jeweils vier Blockmatrizen der Gr\"osse $2^{n-1} \times 2^{n-1}$ aufgeteilt. -Das Matrizen Produkt +Das Matrizenprodukt \begin{equation} \mathbf{A}\mathbf{B}= \begin{bmatrix} @@ -63,16 +63,16 @@ Das Matrizen Produkt \begin{bmatrix} \mathbf{C}_{11} & \mathbf{C}_{12}\\ \mathbf{C}_{21} & \mathbf{C}_{22} -\end{bmatrix}, +\end{bmatrix} \end{equation} mit \begin{equation} \mathbf{C}_{ij} = \sum_{k=1}^{2n} \mathbf{A}_{ik} \mathbf{B}_{kj}, \label{multiplikation:eq:MM_block} \end{equation} -ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation der Untermatrize $\mathbf{A}_{ik}$ und $\mathbf{B}_{kj}$ wird die Matrizenmultiplikation verwendet. +ist identisch zu der Gleichung \eqref{multiplikation:eq:MM}, f\"ur die Multiplikation der Untermatrizen $\mathbf{A}_{ik}$ und $\mathbf{B}_{kj}$ wird die Matrizenmultiplikation verwendet. Der Algorithmus \ref{multiplikation:alg:devide_mm} zeigt den \textit{Divide and Conquer} Ansatz, -Der Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. +Die Grundstruktur dieser Methode besteht aus dem rekursiven Aufruf der Funktion mit den erzeugten Blockmatrizen. Der rekursive Aufruf wird bis zu der Gr\"osse der Matrizen von $N = 2 \times 2$ durchgef\"uhrt. \begin{algorithm}\footnotesize\caption{Divide and Conquer Matrizenmultiplikation} \setlength{\lineskip}{7pt} @@ -189,10 +189,11 @@ Jedes Feld steht f\"ur eine Multiplikation zweier Matrizenelementen von $\mathbf Die gr\"unen Felder auf der linken Seite, zeigen die Addition, welche f\"ur den dazugeh\"origen Term ben\"otigt wird. Die sieben Spalten beschreiben die Matrizen $\mathbf{P,Q,R, \ldots, V}$. Rote Felder stehen f\"ur eine Subtraktion und die gr\"unen f\"ur eine Addition. +Graue Felder bedeuten, dass die dazugehörige Spalte nicht für die Berechnung benötigt wird. \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/strassen.pdf} - \caption{Der Algorithmus von Strassen verwendet Multiplikationen zur Berechnung der sieben Block-Matrizen $\mathbf{P}$ bis $\mathbf{V}$ aus $\mathbf{A}$ und $\mathbf{B}$, aus denen sich die Blöcke es Produktes $\mathbf{C}=\mathbf{AB}$ ausschliesslich durch Addition und Subtraktion bilden lassen. Die einzelnen Felder in den Quadraten stellen alle möglichen Produkte von Matrizen $\mathbf{A}_{ik}$ und $\mathbf{B}_{jl}$ dar. In den grossen Quadraten am linken Rand sind diejenigen Produkte grün markiert, welche zusammen die entsprechenden Blöcke $\mathbf{C}_{il}$ von $\mathbf{C}$ ergeben. In den Spalten $\mathbf{P}$ bis $\mathbf{V}$ sind die Produkte farblich hervorgehoben, die in der Definition der entsprechenden Matrix vorkommen. Grün und rot symbolisieren die Vorzeichen, mit denen die Produkte kombiniert werden müssen} + \caption{Der Algorithmus von Strassen verwendet Multiplikationen zur Berechnung der sieben Blockmatrizen $\mathbf{P}$ bis $\mathbf{V}$ aus $\mathbf{A}$ und $\mathbf{B}$, aus denen sich die Blöcke es Produktes $\mathbf{C}=\mathbf{AB}$ ausschliesslich durch Addition und Subtraktion bilden lassen. Die einzelnen Felder in den Quadraten stellen alle möglichen Produkte von Matrizen $\mathbf{A}_{ik}$ und $\mathbf{B}_{jl}$ dar. In den grossen Quadraten am linken Rand sind diejenigen Produkte grün markiert, welche zusammen die entsprechenden Blöcke $\mathbf{C}_{il}$ von $\mathbf{C}$ ergeben. In den Spalten $\mathbf{P}$ bis $\mathbf{V}$ sind die Produkte farblich hervorgehoben, die in der Definition der entsprechenden Matrix vorkommen. Grün und rot symbolisieren die Vorzeichen, mit denen die Produkte kombiniert werden müssen. Graue Felder werden für die Berechnung von $\mathbf{C}_{il}$ nicht benötigt.} \label{multiplikation:fig:strassen} \end{figure} @@ -340,7 +341,7 @@ Die meisten numerischen Bibliotheken von high-level Skriptsprachen wie \texttt{M \end{itemize} \end{itemize} -Die \textit{BLAS} sind auf die modernen Computer Prozessoren optimiert und k\"onnen dank einer ausgeklügelter Verwendung der Speicherarchitektur zu erheblichen Leistungsoptimierungen f\"uhren. +Die \textit{BLAS} sind auf die modernen Computerprozessoren optimiert und k\"onnen dank einer ausgeklügelter Verwendung der Speicherarchitektur zu erheblichen Leistungsoptimierungen f\"uhren. %\subsubsection{General Matrix Multiplication (GEMM)} @@ -436,13 +437,13 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \textbf{n} & \textbf{MM (\textit{s})} & \textbf{MM DC (\textit{s})} & \textbf{Strassen (\textit{s})} & \textbf{Winograd (\textit{s})} & \textbf{NumPy(\textit{s})} \\ \hline \multicolumn{6}{c}{} \\ - \textbf{32} & \phantom{000}0.0240 & \phantom{0000}0.0271& \phantom{0000}0.04852 & \phantom{0000}0.01871 & 0.0000426 \\ - \textbf{64} &\phantom{000} 0.186 & \phantom{0000}0.265 & \phantom{0000}0.2204 & \phantom{0000}0.1530& 0.000118 \\ - \textbf{128} &\phantom{000} 1.563 & \phantom{0000}1.777 & \phantom{0000}1.447 & \phantom{0000}1.1947 & 0.000244 \\ - \textbf{256} &\phantom{00} 11.006 & \phantom{000}13.27 & \phantom{0000}9.938 & \phantom{0000}8.298& 0.000695 \\ - \textbf{512} &\phantom{00} 85.476 & \phantom{00}105.397 & \phantom{000}63.961 & \phantom{000}68.360 & 0.00221\\ - \textbf{1024} &\phantom{0} 750.757 & \phantom{00}847.321 & \phantom{00}461.494 & \phantom{00}537.374 & 0.0188 \\ - \textbf{2048} & 6154.18 & \phantom{0}7375.93 & \phantom{0}3860.57 & \phantom{0}4884.61 & 0.215 \\ + \textbf{32} &\phantom{0000}0.0240 & \phantom{0000}0.0271& \phantom{0000}0.04852 & \phantom{0000}0.01871 & 0.0000426 \\ + \textbf{64} &\phantom{0000}0.186 & \phantom{0000}0.265 & \phantom{0000}0.2204 & \phantom{0000}0.1530& 0.000118 \\ + \textbf{128} &\phantom{0000}1.563 & \phantom{0000}1.777 & \phantom{0000}1.447 & \phantom{0000}1.1947 & 0.000244 \\ + \textbf{256} &\phantom{000}11.006 & \phantom{000}13.27 & \phantom{0000}9.938 & \phantom{0000}8.298& 0.000695 \\ + \textbf{512} &\phantom{000}85.476 & \phantom{00}105.397 & \phantom{000}63.961 & \phantom{000}68.360 & 0.00221\\ + \textbf{1024} &\phantom{00}750.757 & \phantom{00}847.321 & \phantom{00}461.494 & \phantom{00}537.374 & 0.0188 \\ + \textbf{2048} &\phantom{0}6154.18 & \phantom{0}7375.93 & \phantom{0}3860.57 & \phantom{0}4884.61 & 0.215 \\ \textbf{4096} & 46813.30 & 58466.00 & 22904.30 & 43597.10 & 1.49 \\ \multicolumn{6}{c}{} \\ \hline @@ -475,7 +476,9 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_c} - \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Programmiersprache \texttt{C}} + \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Programmiersprache \texttt{C}. + Die Steigung der Messreihe mit Strassens Algorithmus ist deutlich kleiner als deren der anderen Algorithmen. + Die Messung von Winograd ist beinahe gleich wie die Messung mit der Standardmethode, deshalb ist sie nicht gut sichtbar.} \label{multiplikation:fig:c_meas_4096} \end{figure} @@ -483,7 +486,9 @@ Die Hardwareinformationen des verwendeten Computers sind in der Tabelle \ref{mul \begin{figure} \center \includegraphics[width=\linewidth]{papers/multiplikation/images/meas_python} - \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Skriptsprache \texttt{Python}} + \caption{Doppelt logarithmisch dargestellte Laufzeiten, der verschieden Algorithmen, in der Skriptsprache \texttt{Python}. + Die Steigung der Messreihe mit Strassens Algorithmus ist deutlich kleiner als deren der anderen Algorithmen. +} \label{multiplikation:fig:python} \end{figure} diff --git a/buch/papers/multiplikation/main.tex b/buch/papers/multiplikation/main.tex index ca93e92..4a23109 100755 --- a/buch/papers/multiplikation/main.tex +++ b/buch/papers/multiplikation/main.tex @@ -27,7 +27,7 @@ } \chapter{Schnelle Matrizenmultiplikation\label{chapter:multiplikation}} -\lhead{MM} +\lhead{Schnelle Matrizenmultiplikation} \begin{refsection} \chapterauthor{Michael Schmid} diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index 604ea36..b3e0ab3 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -4,17 +4,17 @@ % (c) 2020 Prof Dr Andreas Müller, Hochschule Rapperswil % \section{Laufzeiten von Algorithmen} -\rhead{Problemstellung} +\rhead{Laufzeiten von Algorithmen} Wegen der breiten Anwendung der Matrizenmultiplikation ist eine effiziente Ausführung dieser Operation von grosser Bedeutung. Das Ziel dieses Papers ist, verschiedenen Algorithmen der Matrizenmultiplikation vorzustellen. Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der Standardalgorithmus l\"osen. \label{muliplikation:sec:bigo} -Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Abhängigkeit zur Inputgrösse \cite{multiplikation:bigo}. +Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Relation zur Inputgrösse \cite{multiplikation:bigo}. $f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. Dies ist gegeben, wenn es für $f \in \mathcal{O}(n^k)$ eine Konstante $C$ gibt, mit $f(n) \leq Cn^k$. % Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$. -Vereinfacht werden f\"ur Algorithmen die folgende Sprechweise verwendet: +Vereinfacht werden f\"ur Algorithmen die folgende Sprechweisen verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear @@ -25,13 +25,13 @@ Vereinfacht werden f\"ur Algorithmen die folgende Sprechweise verwendet: \item usw. \end{itemize} -Konstanten werden nicht beachtet, eine Laufzeit von $4n^2$ führt, falls $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. +Konstanten werden nicht beachtet, eine Laufzeit von $4n^2$ führt, für $n \rightarrow \infty$ zu $\mathcal{O}(n^2)$. In der Abbildung \ref{multiplikation:fig:bigo} k\"onnen die verschiedenen Laufzeiten miteinander verglichen werden. Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven abgebildet. -\subsubsection{Beispiel Algorithmen} +\subsubsection{Beispielalgorithmen} Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkomplexit\"atsklasse zugeteilt werden k\"onnen. @@ -115,7 +115,7 @@ Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkompl Algorithmus \ref{multiplikation:alg:b1} ist ein Beispiel mit beschränkter Laufzeit $\mathcal{O}(1)$ Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen Einfluss auf die Laufzeit. -Wie erwähnt, werden konstanten nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. +Wie erwähnt werden Konstanten nicht beachtet, der Algorithmus \ref{multiplikation:alg:b2} f\"uhrt ebenso zu $\mathcal{O}(1)$ und nicht zu $\mathcal{O}(2)$. \paragraph{Linearer Algorithmus} @@ -132,6 +132,6 @@ Die beiden \texttt{for}-Schleifen werden jeweils $n$-mal durchlaufen und f\"uhrt \begin{figure} \center \includegraphics[]{papers/multiplikation/images/bigo} - \caption{Laufzeiten von verschiedensten Zeitkomplexitäten. Bei einer logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt.} + \caption{Laufzeiten von verschiedensten Zeitkomplexitäten. Bei einer doppelt logarithmischen Darstellung werden Polynome der Form $f(x) = x^k$ als Gerade und Exponentialfunktionen der Form $f(x) = a^x$ als nach oben gekr\"ummte Kurven dargestellt.} \label{multiplikation:fig:bigo} \end{figure} -- cgit v1.2.1 From 583925fe5661c68f4ae90712c9d697618933ee6c Mon Sep 17 00:00:00 2001 From: Nunigan Date: Tue, 24 Aug 2021 15:34:33 +0200 Subject: typos --- buch/papers/multiplikation/einlteung.tex | 4 ++-- buch/papers/multiplikation/problemstellung.tex | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'buch/papers/multiplikation') diff --git a/buch/papers/multiplikation/einlteung.tex b/buch/papers/multiplikation/einlteung.tex index d31e0f7..9b03a4e 100755 --- a/buch/papers/multiplikation/einlteung.tex +++ b/buch/papers/multiplikation/einlteung.tex @@ -9,8 +9,8 @@ Die Multiplikation zweier Matrizen ist eine wichtige Operation, die in verschiedensten Teilen der Mathematik Anwendung findet. Die Beschreibung der Multiplikation aus der Definition 2.10: Eine $m\times n$-Matrix $\mathbf{A}\in M_{m\times n}(\Bbbk)$ und eine -$n\times p$-Matrix $\mathbf{B}\in M_{n\times l}(\Bbbk)$ haben als Produkt -eine $n\times l$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{n\times l}(\Bbbk)$ mit den +$n\times p$-Matrix $\mathbf{B}\in M_{n\times p}(\Bbbk)$ haben als Produkt +eine $m\times p$-Matrix $\mathbf{C}=\mathbf{AB}\in M_{m\times p}(\Bbbk)$ mit den Koeffizienten \begin{equation} C_{ij} = \sum_{k=1}^n A_{ik} B_{kj}. diff --git a/buch/papers/multiplikation/problemstellung.tex b/buch/papers/multiplikation/problemstellung.tex index b3e0ab3..879b210 100755 --- a/buch/papers/multiplikation/problemstellung.tex +++ b/buch/papers/multiplikation/problemstellung.tex @@ -11,10 +11,10 @@ Gezielt wird auf Algorithmen eingegangen, welche das Problem schneller als der S \label{muliplikation:sec:bigo} Die Big $\mathcal{O}$ Notation beschreibt die Laufzeitkomplexit\"at eines Algorithmus in Relation zur Inputgrösse \cite{multiplikation:bigo}. -$f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$ wenn $x \rightarrow \infty$. -Dies ist gegeben, wenn es für $f \in \mathcal{O}(n^k)$ eine Konstante $C$ gibt, mit $f(n) \leq Cn^k$. +$f(x) \in \mathcal{O}(g(x))$ besagt, dass die Funktion $f$ nicht wesentlich schneller w\"achst als $g$, wenn $x \rightarrow \infty$. +Dies ist gegeben, falls es für $f \in \mathcal{O}(n^k)$ eine Konstante $C$ gibt, mit $f(n) \leq Cn^k$. % Es gibt eine Konstante $K$ derart, dass $f(x) \le K g(x)$ für $x\to\infty$. -Vereinfacht werden f\"ur Algorithmen die folgende Sprechweisen verwendet: +Vereinfacht werden f\"ur Algorithmen die folgenden Sprechweisen verwendet: \begin{itemize} \item $f \in \mathcal{O}(1) \rightarrow f$ ist beschr\"ankt \item $f \in \mathcal{O}(n) \rightarrow f$ w\"achst linear @@ -64,13 +64,7 @@ Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkompl \EndFunction \end{algorithmic} \end{algorithm} - - \end{minipage} - \end{tabular} -\end{table} - -\begin{table} - \begin{tabular}[t]{ll} + \end{minipage} \\ \begin{minipage}{0.48\textwidth} \begin{algorithm}[H]\footnotesize\caption{} \setlength{\lineskip}{7pt} @@ -111,6 +105,12 @@ Es folgen einige Beispiele von Algorithmen, welche zu einer bestimmten Zeitkompl \end{tabular} \end{table} +%\begin{table} +% \begin{tabular}[t]{ll} + +% \end{tabular} +%\end{table} + \paragraph{Beschr\"ankter Algorithmus} Algorithmus \ref{multiplikation:alg:b1} ist ein Beispiel mit beschränkter Laufzeit $\mathcal{O}(1)$ Da $a$ und $b$ Skalare sind, hat keine Gr\"osse $n$ einen Einfluss auf die Laufzeit. -- cgit v1.2.1