From 46dee0a18e8c1ee4cefbbae0e23c5a64cdb9c8c5 Mon Sep 17 00:00:00 2001
From: joon2974 <vnfmsdyd4@naver.com>
Date: Wed, 19 Aug 2020 22:07:50 +0900
Subject: [PATCH] add README

---
 Makefile                                      |  25 +--
 README.md                                     | 182 ++++++++++++++++--
 fx_s1516.zip                                  | Bin 1324 -> 0 bytes
 fx_s1516_double.c                             |  24 +--
 fx_s1516_double.h                             |  29 ++-
 ...fx_s1516_longlong.c => fx_s1516_longlong.c |  41 ++--
 ...fx_s1516_longlong.h => fx_s1516_longlong.h |   5 +-
 fx_s1516_longlong/fx_s1516_longlong.c         |  37 ----
 fx_s1516_longlong/fx_s1516_longlong.h         |  38 ----
 gprof/fx_s1516_double.c                       |  51 -----
 gprof/fx_s1516_double.h                       |  26 ---
 images/image-20200819214427030.png            | Bin 0 -> 23884 bytes
 images/image-20200819214731886.png            | Bin 0 -> 20278 bytes
 images/image-20200819214809542.png            | Bin 0 -> 10956 bytes
 images/image-20200819214821430.png            | Bin 0 -> 10928 bytes
 longtest.c                                    |  14 +-
 test.c                                        | 143 +++++++++++---
 17 files changed, 354 insertions(+), 261 deletions(-)
 delete mode 100644 fx_s1516.zip
 rename gprof/fx_s1516_longlong.c => fx_s1516_longlong.c (89%)
 rename gprof/fx_s1516_longlong.h => fx_s1516_longlong.h (91%)
 delete mode 100644 fx_s1516_longlong/fx_s1516_longlong.c
 delete mode 100644 fx_s1516_longlong/fx_s1516_longlong.h
 delete mode 100644 gprof/fx_s1516_double.c
 delete mode 100644 gprof/fx_s1516_double.h
 create mode 100644 images/image-20200819214427030.png
 create mode 100644 images/image-20200819214731886.png
 create mode 100644 images/image-20200819214809542.png
 create mode 100644 images/image-20200819214821430.png

diff --git a/Makefile b/Makefile
index 96c6c65..784a7f4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,18 +1,19 @@
-SRCS := test.c fx_s1516_double.c
+SRCS := test.c fx_s1516_double.c fx_s1516_longlong.c
 OBJS = $(SRCS:.c=.o)
 CC = gcc
-CFLAGS = -c -Wall -g
-# CFLAGS = -c -Wall -O2
+CFLAGS = -Wall
 
-fx_x1516_double: $(OBJS)
-	$(CC) -o $@ $^
+fx_test: $(OBJS)
+	$(CC) -o $@ $^ -lm
 
-.c.o: 
-	$(CC) ${CFLAGS} $<
+test.o: test.c
+	$(CC) $(CFLAGS) -c $^
 
-clean:
-	-rm $(OBJS)
-	rm fx_x1516_double
+fx_s1516_double.o: fx_s1516_double.c
+	$(CC) -c $^
+
+fx_s1516_longlong.o: fx_s1516_longlong.c
+	$(CC) -c $^
 
-dep:
-	$(CC) -M $(SRCS)
\ No newline at end of file
+clean:
+	rm $(OBJS) fx_test
\ No newline at end of file
diff --git a/README.md b/README.md
index d402b00..0767b2b 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@
 
 
 
-## fx_s1516 Library
+## fx_s1516 Library - Step 1(double)
 
 ### macros
 
@@ -50,20 +50,20 @@
 
 ### functions
 
-| Name             | Return type | Parameters            | Description                                       |
-| ---------------- | ----------- | --------------------- | ------------------------------------------------- |
-| double_to_fx     | double      | double a              | double형 a값을 fx_s1516형으로 형 변환             |
-| fx_to_double     | double      | fx_s1516 a            | fx_s1516형 a값을 double형으로 형 변환             |
-| fx_s1516_add     | double      | double a, double b    | fx_s1516 연산으로 a + b값을 계산                  |
-| fx_s1516_sub     | double      | double a, double b    | fx_s1516 연산으로 a - b값을 계산                  |
-| fx_s1516_mul     | double      | double a, double b    | fx_s1516 연산으로 a * b값을 계산                  |
-| fx_s1516_div     | double      | double a, double b    | fx_s1516 연산으로 a / b값을 계산                  |
-| degree_to_radian | double      | fx_s1516 a            | fx_s1516형 a값을 radian 값으로 변환               |
-| fx_s1516_sin     | double      | double a              | 라디안 값을 받아 fx_s1516 연산으로 sin값을 계산   |
-| fx_s1516_sqrt    | double      | double a              | fx_s1516 연산으로 a의  제곱근 계산                |
-| fx_s1516_pow     | double      | double a, double b    | fx_s1516 연산으로 a의 b거듭제곱을 계산            |
-| fx_s1516_log     | double      | double a, double b    | fx_s1516 연산으로 b를 밑으로 하는 a의 로그를 계산 |
-| baselog          | double      | double a, double base | base를 밑으로 하는 a의 로그를 계산                |
+| Name                 | Return type | Parameters            | Description                                       |
+| -------------------- | ----------- | --------------------- | ------------------------------------------------- |
+| double_to_fx         | double      | double a              | double형 a값을 fx_s1516형으로 형 변환             |
+| fx_to_double         | double      | fx_s1516 a            | fx_s1516형 a값을 double형으로 형 변환             |
+| fx_s1516_double_add  | double      | double a, double b    | fx_s1516 연산으로 a + b값을 계산                  |
+| fx_s1516_double_sub  | double      | double a, double b    | fx_s1516 연산으로 a - b값을 계산                  |
+| fx_s1516_double_mul  | double      | double a, double b    | fx_s1516 연산으로 a * b값을 계산                  |
+| fx_s1516_double_div  | double      | double a, double b    | fx_s1516 연산으로 a / b값을 계산                  |
+| degree_to_radian     | double      | fx_s1516 a            | fx_s1516형 a값을 radian 값으로 변환               |
+| fx_s1516_double_sin  | double      | double a              | 라디안 값을 받아 fx_s1516 연산으로 sin값을 계산   |
+| fx_s1516_double_sqrt | double      | double a              | fx_s1516 연산으로 a의  제곱근 계산                |
+| fx_s1516_double_pow  | double      | double a, double b    | fx_s1516 연산으로 a의 b거듭제곱을 계산            |
+| fx_s1516_double_log  | double      | double a, double b    | fx_s1516 연산으로 b를 밑으로 하는 a의 로그를 계산 |
+| baselog              | double      | double a, double base | base를 밑으로 하는 a의 로그를 계산                |
 
 
 
@@ -138,6 +138,158 @@
 
 ### 
 
+## fx_s1516 Library - Step 2(long long)
+
+### macros
+
+| Macro  | Description                                           |
+| ------ | ----------------------------------------------------- |
+| P2_16  | 고정 소수점 표현을 위해 필요한 2^16을 정수형으로 정의 |
+| fP2_16 | 고정 소수점 표현을 위해 필요한 2^16을 실수형으로 정의 |
+
+### functions
+
+| Name                   | Return type | Parameters             |
+| ---------------------- | ----------- | ---------------------- |
+| longlong_to_fx         | fx_s1516    | long long a            |
+| fx_to_longlong         | long long   | fx_s1516 a             |
+| fx_s1516_longlong_mul0 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_mul1 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_mul2 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_mul3 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_mul4 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_div0 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_div1 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_div2 | fx_s1516    | fx_s1516 a, fx_s1516 b |
+| fx_s1516_longlong_sin  | fx_s1516    | fx_s1516 fa            |
+| fx_s1516_longlong_sqrt | fx_s1516    | fx_s1516 fa            |
+
+## Function Descriptions
+
+### 1. Type conversion
+
+- **longlong_to_fx**
+  long long 형 변수를 fx_s1516형으로 형 변환
+- **fx_to_longlong**
+  fx_s1516형 변수를 long long 형으로 형 변환
+
+### 2. Multiplication
+
+- **fx_s1516_longlong_mul0**
+  - 두 수 a, b를 받아 a를 fixed64(long long)으로 형 변환 한 후 b와 곱하여 16 만큼 오른쪽으로 shift하여 연산한다.
+- **fx_s1516_longlong_mul1**
+  - 두 수 a, b를 받아 먼저 a와 b를 곱한 뒤 소수부의 크기 즉, 16 만큼 오른쪽으로 shift 연산한다. a, b가 큰 수일 경우 overflow가 발생할 수 있다.
+- **fx_s1516_longlong_mul2**
+  - 두 수 a, b를 받아 a와 b 각각 오른쪽으로 8 만큼 shift연산한 뒤 곱한다. 
+  - mul1과 달리 overflow의 위험은 줄지만 작은 수의 경우에는 shift 연산에 의해 underflow가 발생활 확률이 있으므로 정확도가 낮아진다.
+- **fx_s1516_longlong_mul3**
+  - 두 수 a, b를 받아 a는 10만큼, b는 6 만큼 오른쪽으로 shift연산한 뒤 곱한다. 
+  - mul2와 비슷하지만 a를 더 많이 shift하므로 a에서 underflow가 발생할 확률이 높고 비교적 정확도가 떨어진다. 
+  - a와 b중 큰 수가 왼쪽에 있을 때 그 반대보다 더 정확한 연산을 한다.
+- **fx_s1516_longlong_mul4**
+  - 두 수 a, b를 받아 a와 b 각각 오른쪽으로 4 만큼 shift연산하여 곱한 후 다시 오른쪽으로 8만큼 shift연산한다. 
+  - a와 b를 그대로 곱하지 않고 4비트씩 shift하여 overflow 확률을 낮추면서 4 비트씩 밖에 shift하지 않으므로 underflow가 발생할 확률도 낮은 방법이다. 
+
+### 3. Division
+
+- **fx_s1516_longlong_div0**
+  - 두 수 중에서 나누어 지는 수 a를 fixed64(long long)으로 캐스팅 한 후 소수부 크기 16만큼 왼쪽으로 shift 연산을 하고난 후 나누는 수 b로 나누어 연산한다.
+  - a, b가 비슷한 범위의 숫자이거나 실수형 계산 시 소수점이 나오는 경우 오차범위가 커지므로 그것을 방지하는 방법이다.
+  - 캐스팅 작업이 있어 다른 함수보다 비교적 속도가 느리다.
+- **fx_s1516_longlong_div1**
+  - div0과 다르게 별도의 캐스팅 없이 나누어지는 수 a를 8비트 왼쪽으로 shift한 후 나누는 수 b로 나누어 다시 왼쪽으로 8비트 shift 하여 연산한다.
+  - 캐스팅 작업이 없으므로 속도가 비교적 빠르며 a가 큰 수일 경우 overflow의 가능성이 있다.
+- **fx_s1516_longlong_div2**
+  - 앞의 두 함수와 다르게 나누는 수 b를 오른쪽으로 16비트 shift한 후 나누어지는 수 a를 나누어 연산한다.
+  - div1과 마찬가지로 캐스팅이 없어서 비교적 연산 속도가 빠르며 overflow 발생 확률은 작지만 b가 작은 수일 경우 underflow가 발생할 수 있다.
+
+### 4. Exponent 
+
+- **fx_s1516_longlong_sin**
+
+  - Sin Table
+
+    ```bash
+    const fixed32 fx32_SinTable[92] = {            0,1143,2287,3429,4571,5711,6850,7986,9120,10252,11380,12504,13625,14742,15854,16961,18064,19160,20251,21336,22414,23486,24550,25606,26655,27696,28729,29752,30767,31772,32768,33753,34728,35693,36647,37589,38521,39440,40347,41243,42125,42995,43852,44695,45525,46340,47142,47929,48702,49460,50203,50931,51643,52339,53019,53683,54331,54963,55577,56175,56755,57319,57864,58393,58903,59395,59870,60326,60763,61183,61583,61965,62328,62672,62997,63302,63589,63856,64103,64331,64540,64729,64898,65047,65176,65286,65376,65446,65496,65526,65536,65526
+    };
+    ```
+
+    - 0 ~ 91도 까지의 sin 값을 저장하는 table이며 math 등 외부 라이브러리의 잦은 호출을 방지하여 성능상 이점을 준다.
+
+  - 제일 먼저, 입력으로 받은 라디안 값 fa가 음수인지를 체크하여 만약 음수라면 부호를 -로 바꾸어 주고 계산을 위해 fa를 양수로 바꾼다. 이후 fa가 360보다 클 수도 있으므로 fa를 360으로 나눈 후 계산을 진행한다.
+
+  - sin함수는 180 ~ 360 사이에서는 음수이기 때문에 fa를 미리 define해 둔 FX32_180과 비교하여 그것보다 크거나 같다면 부호를 반전하고 fa에서 그 값을 빼준다.
+
+  - 이후 미리 구해둔 sin table을 이용하여 ret0과 diff를 구한 후 shift연산하여 sin 값을 계산한다.
+
+## Functions Accuracy Comparison
+
+### 1. Multiplication
+
+```
+fx_s1516_double_mul: 22888.183594
+fx_s1516_longlong_mul0: 22888
+fx_s1516_longlong_mul1: 22888
+fx_s1516_longlong_mul2: 22815
+fx_s1516_longlong_mul3: 22649
+fx_s1516_longlong_mul4: 22888
+```
+
+- mul0, mul1, mul4는 높은 정확도를 보이는 것으로 보아 overflow가 발생하지 않았고, mul4에서는 shift로 인한 비트 손실이 발생하지 않았음을 알 수 있다.
+- mul2, mul3은 다른 함수에 비해 비교적 낮은 정확도를 보였는데 많은 수의 비트를 shift하다 보니 비트 손실이 발생하여 정확도가 낮아졌음을 예측해 볼 수 있다. 
+
+### 2. Division
+
+```
+fx_s1516_double_div: 131072.000000
+fx_s1516_longlong_div0: 131072
+fx_s1516_longlong_div1: 131072
+fx_s1516_longlong_div2: 142857
+```
+
+- div0, div1은 높은 정확도를 보이며 shift로 인해 a의 값이 손실되지 않았음을 알 수 있다.
+- div2는 비교적 낮은 정확도를 보이는데 b를 shift하며 어느 정도의 데이터가 손실되었음을 예측해 볼 수 있다.
+
+
+
+## Functions Speed Comparison
+
+### 1. Multiplication
+
+![image-20200819214427030](./images/image-20200819214427030.png)
+
+- time이 적을수록 빠른 함수이므로 mul2 > mul1 > mul3 > mul0 > mul4 순서로 속도가 빠른 것을 알 수 있다.
+-  shift 연산 3번, 곱셈 연산 1번을 실행하는 mul4가 가장 느렸고, fixed64로 캐스팅하는 작업이 있는 mul0도 비교적 느린 것을 확인할 수 있었다.
+- 나머지 mul2, mul1, mul3 세 연산은 속도가 같거나 거의 차이가 없는 것을 확인할 수 있다.
+- 위 결과로 미루어 보아 캐스팅, shift 연산의 횟수 등이 실행 속도에 영향을 주는 것으로 예상해볼 수 있다.
+
+### 2. Division
+
+![image-20200819214731886](./images/image-20200819214731886.png)
+
+- div 연산은 div2 > div1 > div0 순서로 속도가 빠른 것을 확인할 수 있다.
+- mul에서 확인한 것과 같이 캐스팅 연산이 있는 div0이 상대적으로 느렸으며 shift 횟수가 1회 더 많은 div1이 div2보다 느린 것을 확인할 수 있다.
+- div의 결과로도 캐스팅, shift 연산의 횟수가 실행 속도에 영향을 주는 것으로 예상이 가능하다.
+
+
+
+## Test method
+
+### Test file change
+
+- ```ifdef``` 구문을 사용해 매크로에 따라 실행되는 구문이 다르게 수정하였다.
+- 매크로 종류
+  - fx_mul: double, long long 곱셈 함수 테스트
+  - fx_div: double, long long 나눗셈 함수 테스트
+  - fx_sin: double, long long sin 함수 테스트
+  - fx_sqrt: double, long long 제곱근 함수 테스트
+
+### Run make
+
+- make 사용시 테스트 하고 싶은 함수의 종류에 따라 다른 매크로를 정의하여 실행 파일을 만든 후 해당 실행파일을 실행한다.
+  - ```make CFLAGS=-D[MACRO]```
+  - ```./fx_test.exe```
+
 ## References
 
 ###### Randy Yates, Fixed-Point Arithmetic: An Introudction. pp6-pp11
diff --git a/fx_s1516.zip b/fx_s1516.zip
deleted file mode 100644
index 70ef6a774dcd41ddffca313134466ff6361c5187..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1324
zcmWIWW@Zs#U|`^25Qq~BbSqB1P{qW+5X#EHAk4tPkX8|2Y-nm|7N3)!mkz>u$*m!=
z-qDT%wc>yHyO*klo1Z;*=G+^-l}^7O$Zz0pRhl#_rrL4c0zsxn_3v-iNM*lm<(a(q
z`5a5*nP)Su=&kcOxi0Vhui3wT*1Wy-uB@!$!@}3=^W~Qtm$RHWZ1?QD;64BJ-0SD>
z{N#VQTIi0oe?-fIc;<QGCa2zi)Os6T)2#MQUMe!~A|Jn-^7jj0^Xz_x&fc}}wfwV;
z0>jx{yUQ3icCY&%7ynPE=B3|UYnv5H{@yD?_lbOU3A8Epi&GMpH=TIAeNQT{-PD|Y
z0?gtOk{KsYL^^*_Ird6(Sx52NE@5pqxx3PzoWyLJUFUfo2~Y|8q9Zs-M)cJhu?e$R
zRvqWe;a4s=sJigRxn(UW1|FIl#Thn>dunZ%Be65eF;A?~b5{5CH9m1(JqM37OzA)J
z!q{ky^0cN1M?1IGJF{%fSN?FxIB_)Ol|>O3!_<yAlLCPwN;3o`pG<K*#XVcAu`7II
zPkEr0o|yBxS(CySFX`aCn>DG+M{@EdoeliAL-%sL$#9I!cf27WEHX#X@ruE7sqU5L
zVqfxdW^^uG{KS_f&G!`x&)r5D&PCg{Y}%X|cu{>>E1T{!Cec6h9%!o;OeyZ&bjEPL
zly~o`(;Ba9RDam4d%a_?cf_fKW&G-AFLPb_TD<19Z@=r3k7bPJJAU7^sW5+gt87nm
z`Q@V(y|1Ip8)p1|)Rb-3y(c?e*JjDbcRVj1KfNgRZ_hdlMuCTqza84UuCQ#^?nD1q
zmHsK;_^{9H-s&A!@BUk8lGp!p(LI6t=E5`drum&ecfw5U^^8{!@4aRFP{h1KxQ4sH
zY5HL=x%^VO_tiI|OpPNr=kGYUfJ=t|*2(1?ERJ6`*;?~>*0QjQf6R!a`Zr1_Fk|L~
z@B&5#hKWqLl4?fjgu7XX90Xe5v))fUFgqtxda+W_!San#t`}V1@V|}K(rnSXDi$mn
z612r5Q$LA!ZIl0$xqF<=?Jv1~$(nBYd9J1L#wz9bbx$3qaV41u^~T)0c63oh(<+^*
z3qy7acAs=9TmEPH(%?w(F2j{dodLU79ozZGaE>s;1EyIF$63#|oEElV>U+6Uh9gtR
zsdeuQK1Lh<NpJl5FLwSd(VPB}_YQxfz$BX%j*q&N)gJb&boR*dUb1J2<fD77&n27w
z>aAM5V7`Onv~@?1xw=kcC_Q_T{mb1ZV~4lQ>an*&9=I_4T5GY2lc_dU#&6!6^=6LF
z+w0xVZD8MGeL$RBU8>JaFGpXzV*SG#OuNip%yy0599+=;JA9GsR7t+V1qO^O@^<tu
zjxNc(>3#V1;cF*et~_^`YeRn0<u4PSHDtBj7uj)=cfovZ|2g(mpRIDU&is?S`E0ZH
z;&qQom~|}sL^p`1Z3qY`f9Dgn`Fidg?FX$v%X5_PKNk=1W@Hj!z*U;4FhGC;gu+&~
za4|q685txP-t|u9<0`$z2%}{Zjw}!>y2glX31&J#wq!LEwgM~z*^)~?Wf!oOUSovO
bx3*p04zYxl4dhHF1}2763=9lDEFc~L>0vOb

diff --git a/fx_s1516_double.c b/fx_s1516_double.c
index 1acdb27..71584b1 100644
--- a/fx_s1516_double.c
+++ b/fx_s1516_double.c
@@ -1,47 +1,47 @@
 // fx_s1516_double.c file
 #include "fx_s1516_double.h"
 
-double double_to_fx(double a) {
-    return ((a) * P2_16);
+fx_s1516 double_to_fx(double a) {
+    return (int)(((a) * P2_16));
 }
 
 double fx_to_double(fx_s1516 a) {
     return ((double)(a) / P2_16);
 }
 
-double fx_s1516_add(double a, double b){
+double fx_s1516_double_add(double a, double b){
     return double_to_fx((a) + (b));
 }
 
-double fx_s1516_sub(double a, double b){
+double fx_s1516_double_sub(double a, double b){
     return double_to_fx((a) - (b));
 }
 
-double fx_s1516_mul(double a, double b) {
+double fx_s1516_double_mul(double a, double b) {
     return double_to_fx((a) * (b) * P2_16);
 }
 
-double fx_s1516_div(double a, double b) {
+double fx_s1516_double_div(double a, double b) {
     return double_to_fx((a) / (b) / P2_16);
 }
 
-double degree_to_radian(fx_s1516 a) {
-    return ((a) * M_PI / 180);
+double degree_to_radian(double a) {
+    return ((a) * fx_s1516_PI / 180);
 }
 
-double fx_s1516_sin(double a) {
+double fx_s1516_double_sin(double a) {
     return double_to_fx(sin(a * P2_16) / (P2_16));
 }
 
-double fx_s1516_sqrt(double a) {
+double fx_s1516_double_sqrt(double a) {
     return double_to_fx(sqrt(a) / sqrt(P2_16));
 }
 
-double fx_s1516_pow(double a, double b) {
+double fx_s1516_double_pow(double a, double b) {
     return double_to_fx(pow(a, (double)b) * pow(P2_16, (double)b - 1));
 }
 
-double fx_s1516_log(double a, double b) {
+double fx_s1516_double_log(double a, double b) {
     return double_to_fx(baselog(a * P2_16, b) / (P2_16));
 }
 
diff --git a/fx_s1516_double.h b/fx_s1516_double.h
index b65a885..ecd0b36 100644
--- a/fx_s1516_double.h
+++ b/fx_s1516_double.h
@@ -1,26 +1,25 @@
-#pragma once
 #define __FX_S1516_DOUBLE_H
 
 typedef int fx_s1516;
 
-#include <stdio.h>
 #define _USE_MATH_DEFINES
 #include <math.h>
-#define P2_16 65536.0f
+#include <stdio.h>
+#define P2_16 65536
+#define fP2_16 65536.0
 #define e M_E
 #define fx_s1516_PI M_PI
 #define fx_s1516_INVERSE_PI 1/M_PI
 
-
-extern double double_to_fx(double a);
-extern double baselog(double a, double base);
-extern double fx_s1516_add(double a, double b);
-extern double fx_s1516_sub(double a, double b);
-extern double fx_s1516_mul(double a, double b);
-extern double fx_s1516_div(double a, double b);
-extern double fx_s1516_sqrt(double a);
-extern double fx_s1516_pow(double a, double b);
-extern double fx_s1516_log(double a, double b);
-extern double degree_to_radian(fx_s1516 a);
+extern fx_s1516 double_to_fx(double a);
 extern double fx_to_double(fx_s1516 a);
-extern double fx_s1516_sin(double a);
\ No newline at end of file
+extern double baselog(double a, double base);
+extern double fx_s1516_double_add(double a, double b);
+extern double fx_s1516_double_sub(double a, double b);
+extern double fx_s1516_double_mul(double a, double b);
+extern double fx_s1516_double_div(double a, double b);
+extern double fx_s1516_double_sqrt(double a);
+extern double fx_s1516_double_pow(double a, double b);
+extern double fx_s1516_double_log(double a, double b);
+extern double degree_to_radian(double a);
+extern double fx_s1516_double_sin(double a);
diff --git a/gprof/fx_s1516_longlong.c b/fx_s1516_longlong.c
similarity index 89%
rename from gprof/fx_s1516_longlong.c
rename to fx_s1516_longlong.c
index cb8813e..8d59263 100644
--- a/gprof/fx_s1516_longlong.c
+++ b/fx_s1516_longlong.c
@@ -62,7 +62,7 @@ int sqrt_lut[1025] =
 
 fx_s1516 longlong_to_fx(long long a)
 {
-	return (a * 65536);
+	return (int)(((a) * fP2_16));
 }
 
 long long fx_to_longlong(fx_s1516 a)
@@ -72,7 +72,7 @@ long long fx_to_longlong(fx_s1516 a)
 
 fx_s1516 fx_s1516_longlong_mul0(fx_s1516 a, fx_s1516 b)
 {
-	return (fixed32)(((fixed64)a * b) >> 16);
+	return (fx_s1516)(((fixed64)a * b) >> 16);
 }
 
 fx_s1516 fx_s1516_longlong_mul1(fx_s1516 a, fx_s1516 b)
@@ -95,33 +95,36 @@ fx_s1516 fx_s1516_longlong_mul4(fx_s1516 a, fx_s1516 b)
 	return (fixed32)((a >> 4) * (b >> 4) >> 8);
 }
 
-//mul���� (fixed) conversion ���ϸ� : ���ڰ� -1 ���� 1�� (�۰�)����ȭ �Ǿ������� ������ ������. 
-// fixed�� �ٿ��� ���� �غ���
-// ����Ʈ ���굵 �������� 
-// for ���� ���� ��������
-// ���� ���� ���� �ź��� ���� ū�ű��� �� �־��
+// mul에서 (fixed) conversion 안하면 : 숫자가 -1 부터 1로 (작게)정규화 되어있으면 곱셈이 빠르다. 
+// fixed도 붙였다 땠다 해보고
+// 시프트 연산도 나눠보고 
+// for 문도 많이 돌려보고
+// 값도 아주 작은 거부터 아주 큰거까지 다 넣어보고
 
-// ������ ���� : shift �������� ������ ���� 0�� �Ǿ� ������ �� �����Ƿ� �����ؾ� �Ѵ�.
+// 나눗셈 연산 : shift 과정에서 나누는 수가 0이 되어 나눠질 수 있으므로 조심해야 한다.
 fx_s1516 fx_s1516_longlong_div0(fx_s1516 a, fx_s1516 b)
 {
 	return (fixed32)(((fixed64)a << 16) / b);
 }
 
-/*
-* a(�������� ��)�� long long���� ij����, 16bit shift ���� �� b(������ ��)�� ����
-* long long ij����: int(32bit)�� a�� long long(64bit)�� ij���������ν� �ӵ��� ���������� 16bit shift ������ �� �� �������� �ս��� ���� �� �ִ�.
-* fx_s1516_longlong�� ������ ��Ģ�����̹Ƿ� a�� b�� ����� ������ �����̰ų� �Ǽ������� ������� �� �Ҽ����� ������ �������� ��� ���������� Ŀ���� ������ �̰��� �����ϰ��� �̸� a�� 16bit shift ��Ų �� b�� ������.
+/* <div0>
+* a(나눠지는 수)를 long long으로 캐스팅, 16bit shift 연산 후 b(나누는 수)로 나눔
+* long long 캐스팅: int(32bit)인 a를 long long(64bit)로 캐스팅함으로써 속도가 느려지지만 
+* 16bit shift 연산을 할 때 데이터의 손실을 줄일 수 있다.
+* fx_s1516_longlong은 정수형 사칙연산이므로 a와 b가 비슷한 범위의 숫자이거나 
+* 실수형으로 계산했을 때 소수점이 나오는 나눗셈인 경우 오차범위가 커지기 때문에 
+* 이것을 방지하고자 미리 a를 16bit shift 시킨 후 b로 나눴다.
 */
 
 fx_s1516 fx_s1516_longlong_div1(fx_s1516 a, fx_s1516 b)
 {
-	return (fixed32)(((a << 8) / b) << 8); // ������ �ս�, ū ���ڿ� ���ؼ��� ������ ŭ
+	return (fixed32)(((a << 8) / b) << 8); // ������ �ս�, ū ���ڿ� ���ؼ��� ������ ŭ
 }
 
 /*
-* long long���� ij�������� �ʰ� int������ ������� ������ ���� �ӵ��� ������.
-* ū ���� ��� �������� �ս��� ���� �� �ִ�.
-* Overflow ���ɼ��� �۾�����.
+* long long으로 캐스팅하지 않고 int형으로 나눠줬기 때문에 연산 속도가 빠르다.
+* 큰 수일 경우 데이터의 손실이 있을 수 있다.
+* Overflow 가능성은 작아진다.
 */
 
 fx_s1516 fx_s1516_longlong_div2(fx_s1516 a, fx_s1516 b)
@@ -130,9 +133,9 @@ fx_s1516 fx_s1516_longlong_div2(fx_s1516 a, fx_s1516 b)
 }
 
 /*
-* div1�� ���� long long���� ij�������� �ʾұ� ������ ���� �ӵ��� ������.
-* Overflow�� �߻�Ȯ���� ����.
-* b(������ ��)�� ���� ���� ��� �������� �ս��� ũ��.
+* div1과 같이 long long으로 캐스팅하지 않았기 때문에 연산 속도가 빠르다.
+* Overflow 발생확률이 높다.
+* b(나누는 수)가 작은 수일 경우 데이터의 손실이 크다.
 */
 
 fx_s1516 fx_s1516_longlong_sin(fx_s1516 fa)
diff --git a/gprof/fx_s1516_longlong.h b/fx_s1516_longlong.h
similarity index 91%
rename from gprof/fx_s1516_longlong.h
rename to fx_s1516_longlong.h
index eb2f2bf..c07d910 100644
--- a/gprof/fx_s1516_longlong.h
+++ b/fx_s1516_longlong.h
@@ -1,8 +1,11 @@
 //fx_1516_longlong.h file
-#pragma once
+#define __FX_S1516_LONGLONG_H
 
 #include <stdio.h>
 
+#define P2_16 65536
+#define fP2_16 65536.0
+
 typedef int fx_s1516;
 typedef long fixed32;
 typedef long long fixed64;
diff --git a/fx_s1516_longlong/fx_s1516_longlong.c b/fx_s1516_longlong/fx_s1516_longlong.c
deleted file mode 100644
index c8069f2..0000000
--- a/fx_s1516_longlong/fx_s1516_longlong.c
+++ /dev/null
@@ -1,37 +0,0 @@
-//fx_1516_longlong.c file
-#include "fx_s1516_longlong.h"
-#define FX32_90                            0x005A0000
-#define FX32_180                           0x00B40000
-#define FX32_360                           0x01680000
-
-// sin table
-const fixed32 fx32_SinTable[92] =  
-    {     
-        0,1143,2287,3429,4571,5711,6850,7986,9120,10252,11380,12504,13625,14742,15854,16961,18064,19160,20251,21336,22414,23486,24550,25606,26655, 27696,28729,29752,
-        30767,31772,32768,33753,34728,35693,36647,37589,38521,39440,40347,41243,42125,42995,43852,44695,45525,46340,47142, 47929,48702,49460,50203,50931,51643,52339,
-        53019,53683,54331,54963,55577,56175,56755,57319,57864,58393,58903,59395,59870,60326,60763, 61183,61583,61965,62328,62672,62997,63302,63589,63856,64103,64331,
-        64540,64729,64898,65047,65176,65286,65376,65446,65496,65526,65536,65526
-    };
-
-fx_s1516_sin(fixed32 fa){
-    int sign = 1;   
-    fixed32 ret0, diff;
-    int idx; 
-    if ( fa < 0 ) 
-    {
-        sign = -1;
-        fa *= -1; 
-    }
-    fa = fa % FX32_360; 
-    if ( fa >= FX32_180 ) 
-    {
-        sign *= -1;
-        fa -= FX32_180;
-    }
-    if ( fa > FX32_90 ) 
-        fa = FX32_180 - fa;
-    idx = fa>>16; 
-    ret0 = fx32_SinTable[idx]; 
-    diff = fx32_SinTable[idx+1]-ret0;
-    return ( sign *( ret0 + ((diff*(fa&0xFFFF))>>16) )); 
-}
\ No newline at end of file
diff --git a/fx_s1516_longlong/fx_s1516_longlong.h b/fx_s1516_longlong/fx_s1516_longlong.h
deleted file mode 100644
index af4313e..0000000
--- a/fx_s1516_longlong/fx_s1516_longlong.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#pragma once
-
-typedef long fixed32;
-typedef long long fixed64;
-
-#define mul0(a, b)   (fixed32) ((fixed64)(a) * (b) >> 16)
-#define mul1(a, b)   (fixed32) ((a) * (b) >> 16) // no fixed
-#define mul2(a, b)   (fixed32) ((a>>8) * (b>>8)) 
-#define mul3(a, b)   (fixed32) ((a>>10) * (b>>6))
-#define mul4(a, b)   (fixed32) ((a>>4) * (b>>4) >> 8)
-
-// mul에서 (fixed) conversion 안하면 : 숫자가 -1 부터 1로 (작게)정규화 되어있으면 곱셈이 빠르다. 
-// fixed도 붙였다 땠다 해보고
-// 시프트 연산도 나눠보고 
-// for 문도 많이 돌려보고
-// 값도 아주 작은 거부터 아주 큰거까지 다 넣어보고
-
-#define div0(a, b) (fixed32)(((fixed64)(a) << 16) / (b))
-#define div1(a, b) ((((a) << 8) / (b)) << 8)
-#define div2(a, b) ((a) / ((b) >> 16))
-
-// 나눗셈 연산 : shift 과정에서 나누는 수가 0이 되어 나눠질 수 있으므로 조심해야 한다.
-
-/* <div0>
-* a(나눠지는 수)를 long long으로 캐스팅, 16bit shift 연산 후 b(나누는 수)로 나눔
-* long long 캐스팅: int(32bit)인 a를 long long(64bit)로 캐스팅함으로써 속도가 느려지지만 16bit shift 연산을 할 때 데이터의 손실을 줄일 수 있다.
-* fx_s1516_longlong은 정수형 사칙연산이므로 a와 b가 비슷한 범위의 숫자이거나 실수형으로 계산했을 때 소수점이 나오는 나눗셈인 경우 오차범위가 커지기 때문에 이것을 방지하고자 미리 a를 16bit shift 시킨 후 b로 나눴다.
-
-   <div1>
-* long long으로 캐스팅하지 않고 int형으로 나눠줬기 때문에 연산 속도가 빠르다.
-* 큰 수일 경우 데이터의 손실이 있을 수 있다.
-* Overflow 가능성은 작아진다.
-
-   <div2>
-* div1과 같이 long long으로 캐스팅하지 않았기 때문에 연산 속도가 빠르다.
-* Overflow 발생확률이 높다.
-* b(나누는 수)가 작은 수일 경우 데이터의 손실이 크다.
-*/
\ No newline at end of file
diff --git a/gprof/fx_s1516_double.c b/gprof/fx_s1516_double.c
deleted file mode 100644
index 4ebe7a9..0000000
--- a/gprof/fx_s1516_double.c
+++ /dev/null
@@ -1,51 +0,0 @@
-// fx_s1516_double.c file
-#include "fx_s1516_double.h"
-
-double double_to_fx(double a) {
-    return ((a) * P2_16);
-}
-
-double fx_to_double(fx_s1516 a) {
-    return ((double)(a) / P2_16);
-}
-
-double fx_s1516_double_add(double a, double b){
-    return double_to_fx((a) + (b));
-}
-
-double fx_s1516_double_sub(double a, double b){
-    return double_to_fx((a) - (b));
-}
-
-double fx_s1516_double_mul(double a, double b) {
-    return double_to_fx((a) * (b) * P2_16);
-}
-
-double fx_s1516_double_div(double a, double b) {
-    return double_to_fx((a) / (b) / P2_16);
-}
-
-double degree_to_radian(double a) {
-    return ((a) * fx_s1516_PI / 180);
-}
-
-double fx_s1516_double_sin(double a) {
-    return double_to_fx(sin(a * P2_16) / (P2_16));
-}
-
-double fx_s1516_double_sqrt(double a) {
-    return double_to_fx(sqrt(a) / sqrt(P2_16));
-}
-
-double fx_s1516_double_pow(double a, double b) {
-    return double_to_fx(pow(a, (double)b) * pow(P2_16, (double)b - 1));
-}
-
-double fx_s1516_double_log(double a, double b) {
-    return double_to_fx(baselog(a * P2_16, b) / (P2_16));
-}
-
-double baselog(double a, double base)
-{
-	return log(a) / log(base);
-}
\ No newline at end of file
diff --git a/gprof/fx_s1516_double.h b/gprof/fx_s1516_double.h
deleted file mode 100644
index 7dc9671..0000000
--- a/gprof/fx_s1516_double.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#pragma once
-#define __FX_S1516_DOUBLE_H
-
-typedef int fx_s1516;
-
-#define _USE_MATH_DEFINES
-#include <math.h>
-#include <stdio.h>
-#define P2_16 65536
-#define fP2_16 65536.0
-#define e M_E
-#define fx_s1516_PI M_PI
-#define fx_s1516_INVERSE_PI 1/M_PI
-
-extern double double_to_fx(double a);
-extern double fx_to_double(fx_s1516 a);
-extern double baselog(double a, double base);
-extern double fx_s1516_double_add(double a, double b);
-extern double fx_s1516_double_sub(double a, double b);
-extern double fx_s1516_double_mul(double a, double b);
-extern double fx_s1516_double_div(double a, double b);
-extern double fx_s1516_double_sqrt(double a);
-extern double fx_s1516_double_pow(double a, double b);
-extern double fx_s1516_double_log(double a, double b);
-extern double degree_to_radian(double a);
-extern double fx_s1516_double_sin(double a);
diff --git a/images/image-20200819214427030.png b/images/image-20200819214427030.png
new file mode 100644
index 0000000000000000000000000000000000000000..452eada3fa2954e6d6594c1ab9d74ede3bdae52f
GIT binary patch
literal 23884
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
aAG?UnbjBDTc0L9M1_n=8KbLh*2~7YD0d{Nv

literal 0
HcmV?d00001

diff --git a/images/image-20200819214731886.png b/images/image-20200819214731886.png
new file mode 100644
index 0000000000000000000000000000000000000000..0744c710e2c64866534819d644f595b1ce0dfd69
GIT binary patch
literal 20278
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

literal 0
HcmV?d00001

diff --git a/images/image-20200819214809542.png b/images/image-20200819214809542.png
new file mode 100644
index 0000000000000000000000000000000000000000..34215be3e01a1f6059a27f82839d05e946e2e6c8
GIT binary patch
literal 10956
zcmeAS@N?(olHy`uVBq!ia0y~yVDeyKU?}EbV_;xNw)y*lfkA=6)5S5QV$R#Sd$S*(
zx_*5B_lMUdgJ$r~Xw6AndedZ`&nniV(Gpi86(`s`+*2z|zrwXuZSI_B$LbvpthvOy
zB*J~dsU1a+bCt}wy%oH<nqU7GsoH3=E%oH4Wb10X4R>C9NcBGZdd4#S*`LoZFE9V^
zAi&}%z~cDh&;4b_5cbC02@Nh_(SwdmLLf;2mgCY~9!g)L*%tpQ%a4&%mCZeNK!Q1$
zZHn*nc7;nprU&v$J7%9_cN91>?UVgKey_=n=i2|9y)!FV7M(wJ`P;>dAFg3`4_K9M
zK6m!jAkzc;_AM%0mpDBu;>xXne&cug(#t}ewZC2F;!$%hs6U%^KknDJxh=QOW_|Jz
zU~zoIXKd>6IFEUf%FqA*vL1Hauv^7;<#GCqyx%76Oiymy5)k~gwr9@uW9zF9Y?Qi?
zV>Rm>H&4R)x6B+(3LUxWUd>x(e0U}8EPN@o;H{q1{?NcXpX)xa{{7%HXZXKR<~5J@
zS7tqxzoyl5ako|TwZi$@dlr3P*zxF|#NOSEeOj(5Zno~lL8b?|YE9x!{rh}!OWGZC
z|EVXHb{KvAB>Fl^a{ayXLl+sQ#oyWEUK{S|zB{hvb2y_`asXq?Yn4}b4ZTw1YAwRW
zw@lu-(&@ie!kye7-?yESJM~q0&J>2#!aofHY+Vb_x4pcY>wb9e83l0>2HlQZtefmr
z=G@gVh%kIMoh>pTZK2tj=_eOGS6+8C<M6{@3<g!ad&+PAQs8K+n6Dx>VM-cft*6u3
zpRCO%4OZ!1=XuDtsouxq`R4Ypg+Xrby`0uQz7u`TWlIvL5?7BG-(Ky`*#R+LR(^%N
zo<*00wwhhZw>r{i-T0*Y#63>~Zk{4l?qH+9gw*sP)`mSiqG~EDpK|ewU+}*6rrdX`
z=ZD#I-)Cj}8?x#w=PAC+wq)gR=39JsKV1%+&9!C+Q^beetJor*ig4*{vDuv1(&?Ld
z?sPbh*p>Dbu`b&t|CCYMZGP;*#nY3S4vT)-#MHq0RkiL6<KgQ1N8($zB?rmLI<O?X
zOke5KJ25rv(nY>)4_7gUnJ*|g#Psq~Zem<4GvnImv;WWTV+)GkWyjH^a8KRXH)m$@
z)l!eLf2^{rqo*GXP38WpIN|pTDf2y7D~~+My<e%F#?5bk{KOl1wG(-4?(xqgf~=&n
z8a<Cz$t3KV-a7x+iuU*G^iS^iU0aoE^J?M4r@KEl9MpL1vx7S@-~{{rn@!&iyFL5t
zsWZ8M#Z<+fsvYx87w&pm`96O0g1@&9Tf}#~*O2?OZnj;{lY)S*-v&wb$3?ndF*8i6
zIWE$t*<&cVV{!u9?L?VXY!b-<_WT!iyz+gn%li40&z~ZelJ)9N-_MqRabx1j`|ovE
z?Af)gi%U1Z7t3e~x(dofzmt}+X<piMWadtWgg=k|g#Ver?8a=f)}&ib_sTlH3+q-V
z_#EBB*<dcn;PKM+k<Sk9FPux6pC~va@DzP`ulV_B4c~X;1M}lQ-#4m?4X)H%R(kWm
z!L_eu-=Acu<9@w;>HLQqPAcqvI_=DonT{LR9ojcp;pZ&x2Rr3I|J=j#ZDD&`$mg@c
zuewfIt~$f_-T1_lz2B@4YESju)>`t_QGn&+KaaE|?UxzhEf*H7H<3K`F7@?y<16P^
zpH1L6ufuXZ<uK0y(MeO5btzS4c&uBQ!D@YOUj6a83e&z{uc(q_{w-*}V-~Nyx|7(<
zj@#kgtZ(ns7JItyK9`^{Z-U5jyQt|w2evF(v{v!hl0Pli1t<Kz$?@c{;qJZ1CbX};
ze?EY52IJ&KKMdLbyj-6l9$zxkl~ZnZ9`|WTn5A?UPhb)byviZZS#Y_1Z}^ecZT~KZ
zuDO5ya{ZU^`$}K(k1kc`58Ulgc;3yvZ`+d34F^3M?!=t4NVMfMICpyU`Sx8e54SaJ
zik~;Hx#)t6g(2&&e<q$A;tlT=%gj-J`R7oNP`_GPt%Z}nP0ZytA6ZMx&-Z0!HMB4I
zKe4<_bpP(Nx|cm`H7#t<9eB6?;P*D|&0+WXp3YXUjh@lo8eh+_@Il??-4|w_pYyBW
z?4+EN+x!GrHhQ1AqF`y~A#B{R|JB#BKUX9pWDl%pzZY;|VtqQdDW^fiho7Qv+h!WQ
zwX|+HWIZ$GxH@aY-M5J~a~zttgwNSLIlJn6e{$Q0cN-VXW&XAH)qZJ@ghekhESeW*
zCWwB||MzZ*<Wox%X1+bTSKe_Yh<?Ahkh56hx76N<5|fzvOy{q!uKd@_J3i&Ruc2?w
z#jl2k|A_rsm!b2Q=K@ou-<I9yv@bi{Yg*>KZ|=@i>GOMbEI5;wH6fwlXDV;Yt*BMo
zHau9Z?<?{re_LYQ*MNV|VtvEqSsVr4Ppr4A{q^PkGUJVfWnVV9G%0X2DO_VdnxxDD
zVm?q{>;#E$G&TF=uz+h8nI(=&5IGJ`kDoP{Y#%|y-}7Hm5Ck&|Fl!_CO%XZV0kh8V
zmI_+P{?NB*F)X?C?Lte*&Q}{m-*KMp^y|5otCp+zD&*6LlUGF&zUnVovN-npp&Kr9
zZpm9I-nDFve|=`x#E$FVIUfDpY{eVo>28^Sc#6slXZ^G(Op7NuzrX+8c4hQ0Nfl40
z#ny3pjjIf0jo;`mFV%FMq%!01&+i((l7}v|s91i#<nT}Y(!~Nb&k5_QX59ZRB9S*C
zclp{kZ3RnAByXKQwpHh4hB5PLm$TiMzjHjwPgp9Y(i8WQ<-vu&D@{_L?BcyrmSAuz
zFKUHnHpjAEmpd$eFx;?T5!1msg>OQ0@9!CfESyaW4WV2fc?!`}4H?YN{L_4L-qu9#
zeo^RoR_?F9L4F43-t>DO2n@`2zPrD@<R{DDZ%jXa_B`77fTgCD$I_lNz-s69xjo)i
zx4!DUOJ;xg^wZOs51pPdCZ=t;qw#s}imeOl<XX<;1=rtRklD!pNt*A+DOL~PoLM$5
zW%(atkLVe!zrSlq?qMgfnMccWc^B4Ae%>V9er&;`C%gY-KipKpl+9eTv-P*yOc~B3
zG3~1gTlG}K69g9Ck6Z9P|1Ga?_PGNSUYkwpaGK}%@w2v6`1&0yPHU7)XY7e_(A9A8
z5!5hBKg;xMQcIM=e7CKww|d()^C|t^qVtzW%to<y_cx0JM?VVsc{M!c%WMBF*;8+4
z@p4MZ7H!Kf>r~P|td>eBW%g2EmoU9)QeXGu=R55by@Fjo_H(}6!|ETAmF?esHs#Ne
zfR9S|-G9s%i0)mUIqznE@Rr0lhwrVeTYqq_<6D1T+qdo0X&re5R=2$!>GcO6_GtS3
zFWh=IuzSa(zTg<=NpnhE*YbXy&A0LMzF0*LCC%)cN7b^#HU90azbx7bsS@HY@gM#7
zkeAQwUHF^Rmv-^+1?hficX;=h%cjpt>Rr2}Ozp=@K>;WHKk3(5GVQuPxoXGHzIz@H
z3upbi`f<j0J@xs^>^&nd)ZI8yV;A|R{prs+9%?xX55k=eUDPvP|L*dZ#Pj9>yEZ@M
zxR4ipGwGoQ-@S<McdsAY7O=bfW<A4##S6tG9<Mphc&s||zG;&JNBh-Z3XH;M4_;-w
z)nlps*F0jQ?7Q>^`~BOBSw)NlEqda^CYP+vcm7w!Bq+8fi}BEg_gSmv7@cGZ{i63R
zD^Awe{qW3$hDxb<3vMncX^>&z*!Syx>X%<)mde|DuB9@wZ(o(4#5XI+{8rocnIXxt
z>G#+iRJ{Z)uZeIFT3BBkvVVf)g<OYA{D~Ww!jjj_I)C}J#Etlx`?G^DT`ViVP|>{a
zQi{fUt-rJF-grr>t3KGEaNyl_r|IUqe7`Sa)BJGu)mpwe{wAd<Ldr5a8PD^ibzf#&
zm*nyJ#hq(9|6n_F$AKf?KP2-x>|t%Y6cXsd&+9pR#-rCazdo6)P&Q-gtQ#_yXGs<u
zX<e-wVSnv0!{a?X%1&S3&EC4o?S#3a*t>=&H~&wzwLP|ayTfX!f0D{}-?Wca_vr@~
zMZMrRKEcJsCEt`)?!J49<-Ue}A-h&TeW|*E6Vw{;Xt)!TCT#R^-OE3RiXS{T+xl?(
zvzMthmvf%YIMQYD^|%%5^5ZibW;5I=>M?NrC8d!bxZB(B4a>(cNZWdk{LdP>!w)C5
z$A9o^WK6$h9?kfPZ;#?;zX!Kguz!9om{Ko3d-vh9^J)$UXFQJzP_=b?pVzRs>-*Zx
zSFUo*6m4c-pLoUjy}zLQoX@E@7GAl$PRGys$K4sB=YpT@-G1@T2fj_0-_QNG&C~i}
znW=AVdp*CC_2Z7a$-CAqKi1u0W^?!4q3i1Bli5wD30m9k+?e-F!aD!E{P#6?-zt{B
z=}j;ECFl4@c8#9{qyVl^5703KmC_0vd_ohzWwL^W2UHTN<YrMJtSDKRY0`?V2PL|B
zemm;4UrNcy-k4M-tXJ<oQ`10#Ihm(t>vHGfDJ5I}zGf>kJK^o=UY+{0UO!dMX@Bh9
ziq$52^XFa77n>sKxJP-Kz=W{dlAKKuth!fJI47l?>pOi9THs2Y-?dL!qe$>YU3}n)
z3FSd)SA#_a`wq`&yS9|Yb5g=No>dzboZ)yR`*DA%O4iHt1uJY>9M_1kw(jZu?JX7C
zq`}JgtzW8lC(FhpAx@8l3s#G=g%$oQFPm`Dp}^$;=bVTN*Z0nXM{V^VWDCwraER0k
zcr=^M;|WvJr}y(@eaxPHt`WHFaKSS$`!Un?9rwfkZrbY17?I9WTFbd_2DhH1)_GIs
z)NO2wJ{_yQ?)CZX^qZ@iq`EKU>o?TDpSZUA{?X;K>+M|D@+4OD-@0OL7MiBHLMoxv
zPD(#@e}Btw|1-ZdUTQqgy%YaQe9?UV@4k6!?n!X*ggN|wCHmAM;bTJW*|Xobo!39&
zH_5{xE7q&7<>#CJ$iOSnD?D{AcsJV2b=cSOW-iO-0}A1r3{-_#!;X1!Zm?4N5-qti
zk9m@Q&Psz-*Q8yt!xKV^Uc`ECX760Z`1OaSjN_lM<CCv{T*Y?d&T~<TuS)a&a^88l
zB=_yf_j6_@i$2X`zO?k|lE0zt6_1y!H3=2@KV!nVxeI+Wjaa<HGTBbQ(Oqa1ZF{c#
z-09gX<}&^Fnqbvn&KQ@Wv_`b1eMM}`shq7T0c)mT+&wAawZ%`pY^A8YeUGoUH(gF%
zP=54zesSuwS<o)WxAtI-4R`(tt+$hzoZKutC+1<sz0az$%XhS?>{MEEt?id@`;D7S
z2L+j)SS5G~MdjU{7smLSt^4!dt)IC!uHN%jZ`;Kqes<6Pa(Jm*IPqWqci`%w@9!j>
z9<Gg1Hn#X>bbDgBCdY>NYOD3V_qXpYZ<#E_&~afumqhvcbS|z%VQmInzu30~?A|=_
zXART;T<6R4f2;+Uu`*2mUR~JJBd6k=xmPnJZS|4g?_OI@-oErY)6>+451&iS{CoIn
zszQ9kY~@Y0&oedBo>wQ<hHwkGG20ZpO?{j?tu2tBcm3RZUlNtun-^UEeCSs|z=?jt
ziYNQ_R&_m!bCG|Mv4ZuK_LX|Ga}s;C^Y3IVv}Y-jzdLQC#{Fp9{Q|pBMAb}~=5#`7
zv${hnPu7R`#<Hy8zT8_^GjDmVB@rwb=H6}bgMou_@}k2M>lqrHQ@%Gmzb}}*-hThJ
zZARI#W(5VSe?1j5GhHjJwK=qS$NbKJdH3FMtXWeZ@k^3#Hjh#Agpb>vwIBWZkmJhc
zKRITRX|GlMYJaG?$7MizA7_1QZ?W{wE!gQd@qO<({Uhr(*)j=ji2UEs*JfP4Kya&B
zNE!p<?7x3Jzi_TsR*;_h4P0jT{WE0WvB;@PC*!%}epxo=e3OU4GuKX8KHYGG{rgqP
zWiAJ%sAT1?D1PtXm+Vx2|7ge-(>)U>Y*}FErEYO+bD{m>I<wfc*DAa0T;|lAJMhnN
zt?H&ad*{D4_OVM>F6xkznq+-#TFI8z6ZaNsd(3^G`_W#xtWDJ?N38De!B?S^&1-K|
zyT;@ktTes${`muan?EwnE6!N6tNz-xm`(4|6?-wqgD(r&zV%DUZvD)CULc@gzUbC(
zM?CA^{hi%-O2-ylk;qiGw5>1Ie!0Wq+?oA`qJ0dz1=Fs$U%B@0t>)%Zqs4ZMwtYJ;
z>0P^aHpgG-<%ze`rk(vRc2@t$yA4y=R+eTiI*?+Z#>}yzerK$w)7-|ZcjvNo2fO+*
z@jRQEBXjS_pMy_t-<CD}INy?ai&;qcU0#JPQZq~M>QC-#Gqza$=)$`F5%;e+y<Nxf
zZ04#qHL1HsdVgNuc{kT3b9u|DoUdnoyz`v7^~2uiwpX)tbHD6L7O~Cs2)Y0I!|wVA
zv+`^<zu>ui^g@lY`Zw3F4}aa9QT%DsMx$u;?$^$m91{Qk*rgvd$kv(rWOwSffOY=I
z@^{}p{Nu*uBL!b4mS5^HJ+{75Jf>uyxZU2JKU;4^{`>jm<>mT&{WW&|4=40&VsXr2
z@AG_f&;C(kLw?k*_}vTK1nSLIU@i854N-*ah-QKnNrk$GfdupJtB#JY9a~iRO@*wo
z>V9=p{;T+RB=Df~#qH_xiR(=ypZxi4sb&|GcG5|*BGphaCN1;QJ)MUW*gbCv-e+T6
zx3)m=-hFRtP#qWM?!@TX7|7^zveQU6D|baHv)A#tC9B!4oM+a%^@;V%BvE}o|EmnE
zpIq2I>Dm2wQ-%5siTy2>=5HiInO}X}tiMCUm+fcR@!+Nvmy6Xa^l}5UoqcC~OA}al
z|I~@fz#HCHw@O9bu6F63I3vDd4#)fRaWkiuY<Zpg;@huePeGQApoaeLjVvnL=C`PA
z6U$=cZTV_(K*CaH%AEU;j>jn6G7@t05?@$<R+pn{#eo$Z8|rJ0XK(7s*Hrqlp6OVl
z$5Y+S?H}(6`gyJPzkTU_;(C?0roo`$qhov3AC#Ef;b&a9V2NMUl~V$4jT$dxdA}d#
z>DxEKX`X^v=ZdWtuaz8kImV+A%G_hPVVTgbcEe}?vYqu4zim~s57RK1!MJqE;<tC5
z(=3u0wZA%Ul4F;6p1Q?!`Atn<$wL_p?H1afFLCyLo7bq{=yuLDVX3CG#H{xxWQsc8
z+>>Z__g_-7MOrdtLhQt*H$Te*x<9pCzxe7>ocN>TG6rvcH_ctKRo3`Xd-GME3`a$|
z1D8*O3d+zWJ_0UWM#tSN_GT?G7gDINb$z_5y>K4`D+6S7YLbGdkW}n~AGt>E5x-{s
z{{C^!71k49b>69RPD(j+Py5l9UuO4R->7M_s0jYru4HuhcjvL?iy!)AC47ivP3AH3
z@hCiN=_Dq}Ve!e@f!S7MVU>2{q`sniZ9nxES9M>=mz0>?XwCUd;6!bYJ{O1RGw!ML
z3b-OFept4BC^c&6xW(F4t$qH_uY&Liubwv=2fRxa4DUH9v)VX(a-Tr_yfrr7R(clo
zs!a-JE(vxU>kEqA-JNw4%(lz1cOGLoZhv`m!<GyF7UzWO<xkGt5(^m(VPO@!{`2ck
zzorspr~RP^BNX=~e^}9;y`MSaLfxFETH6K=LG}A{O773Em;xP@xy#VEfyL(g<4Vr0
zdd;be4kT#Zk}6mhz2QstoI9%mB%8Ss?wDSbp2}FQE59k~lhKWKIjNwtk}9j&u3Xff
zmt>RmGQF|!YHqu)!>$}gS>EgMw*p@Ctl>+z(tJ~Pv5a<VlY&|M<>`mJ_ryw^>4;6$
zWITD(GWGD3LqhwM#3z3AO%U5s?65yH@S4jOv9}JJ;tkhXtZrOs?X7Nci`ht&EsXQe
z-a`lWeY<d@YWd?zn}?+=PwLE=(wvXK`L-)$fBr)IDHA`}M_)MSY|7GXyLkW8b0@C7
zPhY`s#$m73zudp7uWlYXe4bn6J99lJXMkUIpY{YHmW`5sTq`q#1IjMnRJv!_>6;_`
zFrzO_<AwSoE;B`YiSwR)<r7}pBp3(<eDif#H~Hgv_6S+t^mTV{n(yzOb2oaUZ$)%x
zGTUjH_#bNW$2(_yzC9~E%_fw&$nM2uks~+F`ghCTcvgS8otJS_zEp5Q)ttt={Lk(f
zd$-A&E-&!Sc$luP;d@-<Pu-te9FJrl|K{JNCntT5@8dqtWsX`eHJ&p%G@Ox0dH)_X
zl+3;MG#ek2nykV}Nn^1spPeOqSd-6P?mQoG%Mmnya!76d52=kGA|20Jx~B^>X1qGH
zs^hWnwl1+Op#+1QA5S|?Dm$|J;m`N;?BYGEp6B)`++)_=++JjBpjJ{XAzv+}vhV)x
z?>mcy9d!=d&$p}nb^iCn^Un=s_{?X@gUi*9Ugw2wl(o>|rElNT=Bq+1jsi!l1h$%8
zN!Fj>;gYd>e?vgzo{uLV_+=PA|6i`Zsa4ukF|ee|;3Vskl^;aYgCA-;iOy0f=DgG=
zUzKEDAob`?ew>G=`|fuvTzsW+@892hFT(ru?MyySq3y+O?BVS*-yY4*_vW$s{5sol
zpZJ!KFFG5!mmhd;9eS&APkyNN!^1BV{H(v7QcINgicOoXXi;c+=3n0XeJPJqcbUzZ
zHL0&VIY-6h(w(2J^4^Uv|C#5@JiEj;Aw%a|Q+9Wh^s9e|Zijol4szo5v)0=GcJ=nA
z7Bw?gH&%nY3pV!Z1+0+{Xeu|6ymFq|WY2+3o{zd*m%U|C-+O?;n|0UyC=rRCg&!^*
zuIOCux|a7Fuf&-yfy1mnP5+B5G@B}Eo+k}yGao+rJCxrdEHUKqa)WR4O8@)%^MQub
zzZqn%biaDNsb)H4VB*=9kD!M1&G*dD0vcpE0@i>V$?wc(Zuo3;E3V-Al+49h4I7!_
zcAwsIs5JTa&w1v{Kt)aco0MedTSm7HzQr0eeCJVIn&t2>;jo;lr)jEm9IKO<q+P=I
zTb+jcd#WZ^`c86k3V34CWAa&PqmAyBplPK}j4NBC5?E7h`3&6n*yBvTPU`#Ao*F*?
zVrDmFF5%^Vq2+tdYMeESTd#6OZhFOzC6AN-%U#;pX0i0smrcEs@AIr$uJP{Xj_+Y>
zWqH3lJ7}!QlL(t-)bh}F-+q-^y+!-Po<vXVKEd<;Z|9jy?-QLJ7IHBtf$F5Y@9X3<
zX4>|A?<)vulGdo|nfEgO==XOLGta9FTwcb@dhB|*$r35KNutNg9%Ra#satgX($t&V
z7Q^bcNyme>KD??>cjoLb?Jv=6W~x^<vv8}Y7arbI-?$~{tbX^ghasOICAqA%{i(Lj
z#$|2qHZ`ZrbNlQ<)p{B?nthp(Tk~(X>x=EVFP0|!nxhbV>EgVq@|wizi{-zsS1fh7
z%8;$Ku=-D{+HtSBTaN0xpZLS*mv{4!xcbpc=kHDRJiEAbrjza6iv?o0O;jE|DP}9H
zm*!!)*dbqhV8eTVpGDWo&Tz`}g>9}{FE!z_*%{TGpMhUR=jIEt%L{1Kr!UoGI8iIY
z2%XcAb^>*lj7}(MCsc*Tn#z>^jT39nyzIukb#Cm%t_%A`8{d^4s++Ry%r@zC#soDv
z<I7tgZmBGL#<M(Dd|}%&0q$EnIjh%qaQn9CGpHHJYMpIJ>$$A6WLCUb&*9f|#4B}|
zm!vzdXkndmW@FbU@55Jr^eWcyW-Xmt_9&D4IK!LWGm0-ADo+nsW6ka5393y4zU{yL
zdOPp`$m226ms?^l6$;jvr>k!GV*I~4ebV%W@9zJ8e@<rpIgv9#93JP`*}{d}e@iOV
zv;5K4&6S!t-E5=EJFRX*QP(dYYNxmOn7@DZoKY&=w&(jMi=Lku&m!h-ZYnTg{&rWY
z)>G`s?U@`QGJkUxT$EMbEWhW~x+ybx?syus-+A(Q?Jlhb&6yjTrS5FW%-3alQn~u}
zE6uJK53O21zgRbIX24A2hto=?Opjssu_Wv8>5IFjs7;PKFvs*`eb&OVtIU1=3$vdt
zWpVI-yi0^}p>F50<kHVd=eJA~HaDFCYS^&sE6VtlnqkYwRJwA(1b&V^bJ=;^3U8P1
zDfe&D<>t3%e!HZkY4HQ5C(HP)KR!}!eO7eE`S5Fb^S>(#uOw$OdS+S)=QY1>dHlfZ
zT<Cc<*??zDeRU4{=59**HL-Qpg5>-udw9Nmy(+14-Za8VY$mumeYI9@PCf4zyA%5+
zJo&LoMLr^YYW~7Qf3Dt{nfI{3zWHN!xoLA!tn0V-?Mg*qZ_e+(>zJ~hW9z)5dsQ4K
zWo1m|n{e2;t~6}Iw`-4n3I14pC0*q8ya`W!O#J#UHtzS<)v3=oh3DDd`n>TKm*=@h
zpDfQZDTGSL8O!oszbn&q{Cp?tforMEwmvO$T$s3?pTGIynS#26cetVcx#XYUezaT<
zJW$#w9(C>KyL0+B$_hTA+yV)U<;!E<WmxRqtlr&X`jbshRl(9)IcLV4sDCe2|9U0G
z-8#b6F=5Jf&ez|K8w#Wa?4LE*@1K?-eD2gyUsm<`#^+cLFunS-XU>Ut`(pO#{`u8>
zA?uv+XN%?@<A~nfy$v6p&8UpaW%#CjY!BD1`8$G^?e)I%Mcr@9RVJ2{fHl>tt13TL
zKTK=+9+IZ}#rF9FQ1h|rmTLO-#Q~k>olCM0=Q~_&_*KcUd3N-n#CuI;b{8K#(c)}f
zlHk?fd}DT2n4!L#pxBl<zdG8Z=ijS{@XuQn_wTOX|4*iWr>buG)p&IO&*dDYyiP$$
zj3>nt(sIhTf|{(SCwCqz)#3GAGOsh?*m0Mof5U|X(>w*X8nu|;m)*o-UVB48;rHY@
zO_!7J)t@r1)e*??veNsL&dj_-B;Yy!*_*o?!sfgWyU+INQ%XRYY|`A&$*Y^}_I=o|
z9uf~qUXmjFD{~Ko7XGhkm}>S`)+zJU<Qn#^i|?JY>zOMX_UGGc$-mF<PKmtQ@TPb3
zoMneU{w*lq(<(N%_?Q1Gvpsn>$BTJ&|4P|b{PXa>@U!*#($5cfHhf7w8@%z^(WM`5
zWgMt)E8o<A$oMGRE$=_YeXDcRFEcQ3wS(3I1ns+R+RI+fy6obs_1Vlpn~EoRS)Hmp
z@R@VM-u>0j?Mh7MaI!_rZM@p(lAfaDWnJ=(t)c62`^MML6+fnb6M4<EMsE9^AI3>3
z$HSB2X69b~X%@I8U@}AV&il<OU(d`Hed0G`^{3SCb?aGw?px{D#Q1Dm?7tXUZ+lRe
zbp8L9SErlG_+D(+3OTl*$$Gw8=&hQWmT4TN(zm$px3#M+`7EkCKWOSrwTHj=@&;Q)
zUtDAqD;+2Q&Ya)ZV;#flzZR^kS7c;&7;f~RzufelS;4c~>rFpf-+u>9=>I>*`nX_L
zW#Ov)w#(mcudq+I$~?ZRzpt%&X6y54mgA!Dc7M{62>$ze<-OX^vU}H0-grj&orQhv
zwYj{(v&`oeex29=o^6`{U3vcbWQ#e)6PUqMO7EK|^_AIn|6b4#ed*#l`NR#c4%=6*
zYJ2=#ET$lYxBT<TZxItT#H2xL|KxJq{BZI?LB9$|&YuYJ&F6LnaWM%LE1!#YlmZQN
zCbiEL>{B}-eO%xBP|1lI3a`!M{r3M~>$7Z+B+ouhX=5i>-w5Z7*&K*rQem*U0xayD
z9^lz40U3C&7;_#AqUcDNVpgtwoYL*747c-JE~VrpJlbOMFm2JJi<-XAt{=|2H<M?*
ztd6v?zV1n<-ij$DTVA`Sq|MPceC_e=#>dz_C3oj9Og_Fd`*!i0|5*j+7JJkkJN(5`
z?4gO%_3~9`4yDgl$#k!o=_4C2fA!p>XL)(Gx+lstmK^-@`Qg9A^F0sEl|A%*e@G_#
zr+vO}RowRbUp*E){bpLkmG{BDhc#~(WO-TX^=-T);8^(aRPMzYj0wB`yPoMjxP|e}
znTR{Prd(*ceDBokb7$B*);J1nHM?P+VDNf}iut8Y@(u4+v9mPUx-CAiLi}Tmc+WN&
zjwL5p6HWe$EY$0{v6oxJK*IUqQgLf5lm1$99zRKmHLKWCW=vi%^~O{qVNj2{RJyTj
z$+0-sEqcsP4{l%V`Zh-~@atBE`>L{Uz0Pqi)AGzHX-u-+V6{#vpnv|~2NRzKaJcG(
z&(i9uKjWEjZI4al)uletq0Bv^A8y6^UpT%r^1^%9wY)zMtGq~ERH&FcGk3;{y8VAF
z=4|3!&!pIWW;Q!(*%nQ4i39V>Pix4;m};=Np6f1P=?R$orlDX9Z^W<2R}R}UJ=7GY
zmc+cd?`(DbL-w)MkI8&LK4%Ag<Wy3#p17&{$2(CM_rre;niuPDZeLvL`o1=MN}A;Q
zaG|XJY>z+7#9kcn`;uB?abp%^onB4Ii@vtsiV7mrB-(bG&Db*cqsz7HO*Ps@f-@iP
zwVxRI%QlBYBZSeR<zMK59l!5h57=@>?pU?Eh33J2hI__;SO2&ttNi&VOVX_^3lIGG
z)zubq*m+IR4Vi~^@7-qoH=LOhmB#<LM)6w9+;wNRO*eU5u*+=Ep+ElrMStls&lY+$
zc}D!4qrLgNxR<DAiJ$m4p<vnhSvSQtB*eLRy8m>R>Ye!eZQj10leZs!cA}uNBT8Cl
zM}o%74F8!r%}*x<+$ep0;OF#|g(vq<Uw!++)|Vx&ptf0?Ps3}2!>Ym)tfbB<_2q1r
zW0znL+v*kEHX%h-;LVi+w!>%sJ?xQo1r6lA%WvLfExY#gc5AcRa8T8gcz^y3m$h$s
zxK4AFUp-VJ-E;Tcvd&fOU(|G4{Ah5PT^ja^so{>h-~q)=)yX_^%z}qryQWNV3_I{;
z)vhdySHJe^@LgWkE0$%wananX?~hmT>ix9d|Di{QPmJ$M=INYjPh-C2*@s_#P_qU%
zxoYBdGM=lw*{h^yBG|yRSV_gGUmM)$dKB^N=BKDG*3XN6Jmr{af8gZXqJK7tXE(AK
zuUPtM%bZJdc@-zR$p~njTXg>VB)yf5Q{T-K&J<q!iaBH9v&>V^ZRT5s1=eNmn03am
zW&P^w@77)O+zlO+C{>A_u`#sMZ@Heo*0v>&oBEGG@?Ndg#gW1Iuc*bVr|<c+^n$H>
zzwY?DwoYzA;nl+x`rQ>tJ_$!d1)c88te(5p^8PuO1&>~&GxzH0&#A1O-e{d}z~gHN
zT8VXM#dWnDKM9Yi-?kZTzrX#0d|JR1b>~f&dOA*;w#Vvj-uc(=sKuMft9bR>)1~rD
zjw=>lJMw>J>#b0J3%k~JQx$p69&zejUKrceaABIu<)R()89%un*ncT!bE=4{?9)BG
z#mgAX);>Mr%bUj3Yr$}%e6nl&>U?HH(+!WND=(<FjWoDd<DNgoXZDO$c5Tb<o2@zS
z*z{A;ZnfwHFRNQVuHV{UfBxjycYlJF)Vkdc8{e57$Ujh9-t*C0VcUD(T&3K9C!Chv
z<xQ-YK6&KxMk{BJqOkoh%*@hG`})MO{r>feXVP;i9mQ^+Hy-E3wiK`Tk*fGBHN)Z2
zmd&QmqE{HyUoBo1ZE@#3%e}dd8{d7E=iDlte)Qj;+jAAZbp^bRyyGpTva&7gCBsgK
zCvQVC^Nj`n?kj!yBdM~<X<_~$KY`ww@Y6b*?k|^YZ=8}_akj)Hro31~&i=fh)U(UG
zO8y#5H#}Leub?-Nuc*mLmYtRJdd^NQ$LghTFV^+G<*wc_-|<-l?~EHe9&G0J2$j!2
z;>D_R-0rRCSFtUh*{YNopU!yYa$fOt@b*M|<NcrVe+92jU)1_<%H##Rl~omT^R2JF
zPiHVYb6{2Zsr5>ASrtDd;~uJIrE8zw-Wp#o5cRbpP44+!{|Z@4>ozr~HObE^w?5>H
zN&d2qY4?gho!Y6lb{`4Z|2^d6I)P+)1##~Qb^fVh@4jaqdsveDgSSBT!r8n$&i0=N
z4!vB}9+Udh^JbOI5iylXGd@gL)XA{?y3wRlY?0sp2`ZXj^#3W<lz!c)7go;~bip6g
zY_?tZxk9apwKqD`YSqKa*0&b7_kHzi=M~(1CcsqTx#fP&aEn=6-<D+We0kXIg4jE&
z$89zKHkXepRsUX-&KxejWpn7W+kx??Cp#V}?RdLe_~zmBhDMEd-4>eNt2~e}#qs0p
z>ufP!f1PKK$h>?{QR#CmxR(B)pYAv7a{WEunZ94Eb>!Ngf1MwaTXA<sox8osmM_^~
z9{g0+brd@ORnz6g{jL)%HCq?WNWG^2`K##6^PM+OedjC=D!ct6GvT@F^AvuTTTRd1
z#XrV28m0=a-6#7>ex*mK{OiZ_{pZ{Leg5~v^Uo4|&))>I9GKt#@Uj1aJC?c~7R_m|
zWI9yR^Apm~O^jfvkLzSE-{x_~=<)f?nRCAtJ^#1I_F?|)bDOVU`%xSrw)NoC^WjX7
zu3T@bX}|UH%TB9{=}TMo>+b4T@vPo;CT)K`v(Ag}8_#LZx?TU{%j9dvmvy}RzVX<@
zoqyA<{w~S2&|P$`tY&^%Z|T9K^Je!~)K*lz<FY-z-B|qn?ZxM(Mw#e;dZ}(>t@Y#0
z1((N5d$?nMzvq9hn`I-jxZM0eplWyZ%C>7gWkSz)FFLK8R~@m;PVK&0R_==5-zR?p
zO`7k0A0^Al3TnMHDRg}2Z<SI6j}$$K(7VC`YV+i<7W>4=MZamblr>U2@vUW>=dpL!
q*!gGP04r0lIB~=ceevgi=B%A{ldm1`7i3^yVDNPHb6Mw<&;$TpKhQt`

literal 0
HcmV?d00001

diff --git a/images/image-20200819214821430.png b/images/image-20200819214821430.png
new file mode 100644
index 0000000000000000000000000000000000000000..08ec9843ad4a990f261fcea165cf961d911d327e
GIT binary patch
literal 10928
zcmeAS@N?(olHy`uVBq!ia0y~yU<zPhU?}BaV_;xtl)3+sfkA=6)5S5QV$R#Sw%Lz;
zt{?w@{qSAMpc%X~T5}SY-ZWX)vzqm2w8WK2#SQWf_tXm0uW)Tuo4e<%XnjLN<Wk`!
z5yv-7Eqr?Hwo9JaG>0bc=GU(^zdV|_Cj4~g+c!TC9<5DJ?M*w^lXh-SvB~rK{PK2x
z*qanMniM#c4F7L`%O$|#D8S<QMtX^ZAegnJMMMKE-!WwZlPg$u;-v791r;mI*|r>e
zZCjWe68eRQxh?U4fr-cMb^MMgOBWv85qL0vw;YS3K=rBrfBq|!@^rYq->=)2J7;zC
z^;MVOT?{X{*S^$a>!;i6&ZcE%7}%Y^@NZGV{Hht@RTH!=f9nhHy5M5|@ve}GGfVn^
zQImahKb?(cJp20Wm6-}0O%>KGQ47Qlo3S_+{Qtdrs(RA*jEo7|{TJSTT<LGw(YaRB
z=8Ci+YkE(7Z$sCa2sd5tm#k_A@oN}a90iW-+nm(cb$oaA@sRd{lkfgkt}r(`#eVL7
z-D`&Gdau)t&dq`4^Y<iKeuz>PlZc(`{POnqsc8~>wHMcHIPjvZX>yh1&YveX?J+Tt
zSZa97-}L*xk}&i5+2JWd?f%RB_6o(WPJFgScpB@*Zz<PpSH*^k?hTW?w!dfsFS8Lt
z{(Ki(>&B2nzYgz`GWK)wZv8d$aMF#k`rB9CS8Vkwh+<{?dt!FuG09WxY9-6_e{;Qa
zVNUX7y1=?VM&ZBnfuCDh&T6RVXnOaYu}Qw6KY7P*<#nnOhwuGkFqm(6K6bl3N0Y)o
zzaZ^^pye$a6&7UvWj!mf&~(?f*@x$~%rE7LZ(1I=F7EIPFNe+ff443B@IoypL?z=Z
zlUsOG{=tnaS6Li3=V%HQTmMC&KJ?)Cx2($|-2R0%#2G1E`+R{_R&{Zj?k<J^5k=>A
zg_7K-kC?Jb1^%oNow*@*+pVj?aza`O(|EWKo3%{6Z+uOt^uaXUauuFQS{XUJrKEa(
zNviN%D7`aDP|s$iaM*g5BVX9p$GG%OF6f(RACd6s^2*69XTw-N%QVdR_vpTO!^^p=
zB|dnaFN!?he}GwH#q*glGbb9YUiD&Q@{WZEGcqUqifb)>yHViUb%x}v*}Lkc=g+)!
z{T+XkLdX8e4&rg^lx{O#zE+>}p#1x!yHm>y=P|W@-}d>)&AaY8@1CvQ{8;Y6zw1mp
z4?h;UdiLRy;Eu)1)-O1zW7RxgScmUZf%p9W4|n@gBYF0(f4Anj@|L+(-`^X~e7=U&
zQjBw{((PxAQ{>f(<o$(rPN`VRmS=Zp`vTVM)1J?*&SiLdUr_95&?kqoZL!yrXJ|ZF
zG3!g3O5Sm<!oQ3RnYT7JJ<T%a5!@lVVDn=GPF~)&M2CMCj=!_EL~ZA3Iob2Sgo$Ur
z?$l4O-%Fgeobu+o_U8zWx7nw&((fIMm}2ym-BIAkeb)u7T9;~{7B6Nz@aW{P_<yyG
zGyFenxTs}Sa&eE9(|Xmz1}STHN&L~{V31rKv4++1m|UQ(6Qhj9;f53cb|1GDI`=V=
zui~HVzbQZ8v_6sa|GuervGmQ-_e;4~^u6nEtm=E*$9QpCwAJ)XzNgc8K8H0th_Y)u
zUU=wtw^C2J@|M<Rum4RlS9z{6Q&#@j1Z}Iw<(<k?bNgCz{yGY<eEdG~Tx)pf#nr|0
zTpeFYthhOyy<SeS{!R|7two;t4LwC?<{VY8S0^-*Tec<aUS#&+=$*&&mvEo>^-+o6
zpZkHqBlc~nN7iyqch`ILe0D0s)9$}dR&~XlZfHyK3YqlpMI2YpYcDr{$0pa`jGHY3
zeq2p^mALb38t0d%2j{z=U?@43dUC%$!}-U&wXG7mn>CK6+)hs1`%i(R>4$aXV;POK
zg;^Q*l=;^kH{d_DBOvZy$;^ZEk6*1XDSvNsW&P8w;^J{T9ey4-V$r#EX?_36In6gB
z&;K<1VR>+o2HX7pQrk98KGX1dehj9sn__lJ-L05sGQ(JhZw<p6k6-%*6+UJNeQ#eX
zqI$UOZ<yYKTcz7#;)U;Q{^)=1X6(Q9pL1sF{q{Z-smfmbhiRj|-OSSC%a-4(+tlA`
z!1m)WPl4+0v)|k_=1lmv;qJU+vy$g3a6Hl#%xK({v|w5uTlw`jH5;!OC2V0h<1XQA
zIcLZIH;XhGW*xk@f8qMdu$cC1;y(BEH@ax6u{BuABnEmWHd<-4*K}_C^>xzIX9ab}
z4WC#8@>9Owbl?*Ah(Bnl<J}s#{r}m&yR;nU1<&O)c(<rBx+!q``?;?!EMJr@=;IQ9
zaJ#?l3BUQf-hQh6_;icrLT>$C_DpxG=asn{2b^bYU0J+pJ+tggqtfKq$^Qz|PMgjA
zZRD1A-IwD+!j4UBHp#k|BRVp_F72CiJ5Bi4RgSIe&s~Ki4)agv+xg}H-7Ztzc5a@W
znkT6CI8wGCrUG2E2xuy@c0p<$)hCCPK~+$b2WR90Fhe2eQQ(5Eqg(DD5C$v$Q#%2!
z7)#Z(<aDce^A*E4AxdXno~l2nICb9SQ_HPdPWvur-RQr=uk_Kky3I1)fy;MQ`~O?U
zvZG!xRCMpO$!Z!(uN$AYRBCrOUgH0yIPuM0Wsam`u@$SjqAs@Raa>sLcTSHpYH!2E
z{rS}w<ySlxU}1dwFljH7)UB*@+xE|Sx0JzAV1fVPdgW4=f?(OEgum0&e(j&Iuc_Fv
zp}^GX$8B}T&65{IC#Tv^QD2$7V0&KN#Z_JN7ADSJ)9QK8wn@P(r}0ot8#}}CZ}WrP
zT@r7&74xgDzPqe@*$1YRdEcev+}|^NW<S~5v9PLz$>)yhna3UiEE8MKY6g@oO1x>n
zFyq4UbOHOm3;Sw(S2yU-T>bjfrb$bm)$0f!`sBs`>7i`PY4#Q7;s@5dPtl$;b%MCk
zkw-?2Z$54RmJ}O$G5cxZbPLZ->*M-npMPBUfN8R%`%d=CrR+Z+A9;K&`sa4tU3z~!
zXYA#ytmVuJ-fh=E(Z1uq=tlmQz1z(qj~h&P*ZUW4-TZv7=C4Wa)z21u+7$cFbiK~n
zBhMS+^X`>Tj+w=>kxzQ7L#aM%^uh-V@5Lm1$^R@GTYl|Gpv1Q8CzR$p|9s5zcD1Bl
zlv37Vvs?b+6TF2c1h{ssi3C?)C$9u&mt5QvR&dWfWzG!;+v5y<LeF=9D{ksO#p$>D
zz=3&x`uK|@{_NU*YUQdISGgr(Ij=praUo%giO1h1UGZ$IwDh$47aD2?xx4+0Z2z#7
z+kNIMP5zI07XJ?gnkQUoJn=(3X?dZ})yDU^ZH8~cAH=3Ua(yIX-v0TVw=DD4<qITK
zIHOkgxR*O8oz=YdJ2`swVzbIn(exi|jvG!rohtWaz1EL^xB0dzbohQ&ihua=6zi$;
z<?DAXemGTX$4`#?*Ls=_>n$d?ckbpreyK$NrstaOk0Kg-?mHX_jz4(Uq<yl#U!;)N
z(bT^`{nZbAxV=e!-Tq{g=K)zM^(97!=A~W@E*IYjt!o}XJ}_s7xMMq~L80yvo43Y^
zwewSXtT%QZTFdEuaNF@yeA@n=1<!W9UuU|#`&sUx@9Ye}xMrP^G5=wC@R7p%wm1Qn
zi9KhJIWT&kK73WMsx2{+D=zVPdCd&wdG+s~@tu0yv?0PKciD?~H(GxD6tQ8GF!6e@
zEcy1O)RQX5cQNFgIcsAzYhP2bU-QF=j)?6(UpZI{9>jcaI$QHi%2c_m=Uu9_yZNTq
zhtgvAM#~=F?Xzs>x#xE54nnFOUveTEA1$og>T_CvH{nLx0y$@6uNytaI&<2WvldAF
z-yObu)uQxz#wR*lLB}0(gP+FtCtl08Sj%)=mG9Y(mpk`dJwIXnY=IeOr_HrKq-MTU
zo-Une*zoD7++t9sW#m2mz140h|AV`N6$z5Rf9zvWxXI=MsbLoA#Qt6T=k%4y3ik}8
zOCLtAv!2T-(w3WBQORbn9wFkIA-JsedhWFgHX8*yH>m5V|5Lbom;1~d-Z<yt^AUxH
z=@Bv!8+~5BOtLwvc-~WEZ}Qn+(@M3%cQ)(_+d2E`!_J>4_CTwN=gQfSd@uj+b$@m~
zR_gHjvxhG$UC>S6dFPZx@pCKA^r<q!Z4A+Ug6sUQH>KuQeb+oOPob=}-md1yhxwn~
zH%1&O+4bz9{J#aRYB#=LEt~L<A-Vr{$4)bO$N!~F7yojd|L1f*X4}JqpP$NRe~L>e
zu|DW|H#2*JrHtHm)oKITXUaYEPFs9rZLeaElYQ+|b2DeRpvrU6?+;%`)cs-Hv-*5&
z?(L#EKlYu9+R69b{6o!6_c!vZYxf$(yYxJ~TKH`5zCH5Q86SIo1YI@1&U$WRV!ZyZ
zcc$&iB3kEaraif<%)xYH3ACaAak|6K576S+iA%&0RDQd7c{D14#XLAQ1Hff7azVZX
zU$;R#a6!dV_QM8BmsbhARxIWDGR4L6I_K>D&S^p>hZ_<l40`Tmy_&qLYhHEi;d^Qq
zSFU=IyXIfMYnsiK*=Nsg4?3P%e4$!c*|_OPcZ74}tv9E=1dgb^Sft4zz#^M=;VHD-
zJ*4#F*F1&J)Px_k&YF?;I?hO?YaE`<Zp?kxo3Tm3f#1hV5NyPc``#i}0p}efCv!C2
z&=K--6)vA{vU`JvD&MnywX-`}KAu_<w7|x*@HJb{uCMjYlMfi3)MnJ)n3~ykaktSa
zc0Z?kMnyS?;^UQ0hx;bH^p1E{UskZ`e#`gYlVyxO9V?f%bJrZcyYS7aYhP4O@Otd}
zeZ=m@^goxC&x^OEd}DICdiMId-fOq@H~Xs2eYWsk48#9>iua3dJ=M34tpDJ}d*=(^
z*{SI{-f5B<83ta-TjpoIvwl=tFZ9hl)OBsfqj#6;6@S&e-~Dp->g{bTXEhRQOr3i@
z|D5|4p0T&QwpQ_;%1V(H@0K>K`<wKvegpTk-`pmxdTSb^qIDObHSOCjYZ<)w9FXrK
z(w57y&PdHUn}=!M=1fTM!0Cg^r3(t-a(g8o<cHW;=%+b13s&uCSsQw6@$LiB`i1_L
z1@ZS{T-|bSv=vxxIQ4H$)BbIzrdb)CI&amYf9;BTDbI#UQ?1sVi4&f5^V!B*l40g?
zmdyV|6}~X0H|`0j;4!<v7q|1niJZ+(0`jgJ>=L^0Ci?3-O`Bb1dnbQwZ`sUcu<O(H
z{A#1qK7lPfvP~DZ-fuVdkht;Qd(*!SF|%^#C#7opCw>nPo%2wd<zSd0v}oqjnD#(n
z8$+zXg{{B8tzqO@Cm8>JZftzV_EWFxTFv8sy%hgv(e_Hy&)|@GdD81gzY7@GeTiB)
z+j33~7oW*AFPSs9pT5goaPOdv#lcKbhKd#QEp^)NGl_D>t!$jV`6FknNxttByLpFd
zZ-tbLHXl6CDaKwY!~E`D(EgrzF1D$AwNy6yKHBm-`otr<fZ08J*mnHi>hSJEMX{*H
zv^brBTYE}%WDb7qd)x2Ed8ekS`hLaDU1v5K$S-``bNRKQk4V80w$$U_+FODO8&CSj
z-<D3-kayX`T+8a~7B}yE`fDA7T}97&^^OHE_;627vheG@mtR{ey7zeST!|{Ee8OjO
zqK$Fp-|q(;j`?18{rrk!?=+sn6CRqDf3~P%FX%aaDXCGC;eo_Y<_91BkKB9v^LzK(
zH@l|i%G^D%?#`ZdYo@oPY|HH9FTVKp+iugw-o5h7UuBNVGA~MWIP!Xz`J>;5gLX7O
zs@bNwdAf>c{SH0f{XswXF`QAa;LxqTdbD>h2j}^K_iNYbABj#a7tu)A{gJbl_4zlK
zBignn+Sm*XnICq)VNNSnkPrQ~TlvF*Oa1@%G2B??QpOgrZ$qIoo5`L@P7X%5HNd@s
zH>;jrV|l#l(Nwu77w#`VUUc#Hd83psB6}tYiC&h!8azj4#t!Zm^K(zXQSE%kFSlI2
z*r0w*)J!%|&x1!l98wn~oZkxSfIqptLpWvK_jO113+A_(##Au>sXO+}cmDO{8SJSs
zZw^%2Hrw~ViQn;mD?>QHHM`ocU8!k$kI&eCa|E^BKf5=H@BA;_{~%z~`=?Xy8Fkoy
z`F^`GW!hX&w7VL9>JYe|6&_j`c(V1sf$+4Z-J(ptlwZAQx;ycvx6lRoKzDJKnclIh
zW%<9ZKJT>s^qT1RvQhCJ+Yd*Ht$4SzZ<6960~dy#%A4OqMXwtrY<Z)v`pDZgn8D<5
zA!p>CuIi)V`OjbXrT#f*x!{Y!?Pnzn^X~dwC=FMuWqrP(?CQMrV!~Tjc0bGIY<tW#
z`&9;i_Kt$}zxUaBg_gN_q|H`eaMycg>BriL<~O@seS6xtr^se|UD<v8d;MOP+on%;
z#4^Vy2mhVg^ycxe!+oDGI=|XvI&-he$G?hGEp+N?`ELfWoLzdls{E^9*4n3ka{1gN
zLS(%A*4uZ5Np?Q_A^xvRf7iW@<@x!wiuZK>*ZlbK(EfRU(#DRLQ|26EaeTuz?eyDo
zwuhP;UhmpfUFh1U(4m2-GgO7u$g4esf?z!ZNLBRFZNdUcwjOEGDO*}AGOzioy^(oo
zfAwx~)6zb{8Ra@33xEDQ^D^ht@fF$CedehyyFvt48>L^?TC?or4f&mwujQun+VRwL
z@g1;cTb$|!s@XoSS?S<;;T7wQ%dP2!acTV9SFU=o)z83Kc-l>?gHOCRh#P6kUuiv*
z{NRauvY5rnWQTVi5^t)z+S}N6etMzh8+5#(V(}xz)=9!^7wmI;x6b#l^IpL~iEV5D
z#Dm%`JZlX-=4{vUd$>p@g5{&w%SD=RuIISF(a+Wl2y$mJzk0E5m7^Wcf7$;pS$4jR
z-88rMD+jAh(wl!}4foF*`8n17`>=&UY2IG>4*~YY5j?loH6^Q_u{oG2D)DEn*hI*<
zkvron?H$6r9jcr+j6)|VbfkRn;uoLsU}F#)yYMevg<pGQ;$CmMUi4<?u{+6%j>cXR
z@n-{yZ6vFcd)3RPelZN-<xRTSBA5MhVnG<ATh$@f_2Aadiy!NxrH(venmpg}@a*F+
zkIS6-xKDrC@e}eJa;GfVdg_E?yN!6|<JoQX@eIq7!$TiUo%gh;y4<CZm*r#I$xuIo
z-C4;d&lT$CEvz*?v?!v9g#pr*7Es_|y5+p!PpRZ<lYsMY>*HIdoO8^1TBr`H&7V0+
zruSaY6#r=ExzZt0O!%|eJ=G)HrUjmB{TUh<r|2`?+V7_z&DLYJfP3GLDQ#?r4H6`b
zPDwocJ-hJWhk$$@i8hWqTo;x*JghAWZCowAEr#cd$p2aym%}^nHAmgeIU6ssd;imZ
z;cO+_6OSz(uHD)7=G2iF9@^JIDd9+1!Zn`H?dPqogkMOx^Qn3M<dEW~)Qv^g*6AJ7
zd>+~KVe+Zg<J#gH_OAt!M8!dky)(B>#FVt3t^BjbSzy;R%WDP!Ny(w>W}i+sH<4&-
zd%U;%{m049J5>+w5q-1mV?chx@j|1+o6O(&G^L$*p}FC4ea%M(US7A=?4s2I2C*WE
zd!!fYnymHQve0qf`41BwTx+a4=d<V94kN1q-(MGvlsS^jH(u{x{&ru8^@h-q?g@vO
zQg@yW5V<>dcTC~GZ&7BT;i-9-oSq!nd!ze~gROh@4u<cRPl~UAtCubQVpB!s3}#0&
zo<H4?c6#k}oe%f=x31=TTD3>~^4SOHl^KMsgy$as4XW(F-VrYG;9vL*Px+3il8yq_
zjaN3>@aNucRgdWv_?jks#Cx(+<EEILzW+DBn);V=$c4|&t^G7RUUrpM)xzf`8@MK}
z-O#EtYuY5UgMZgW2Pth7`yTW3P^bg*ZBb3*wi7!Ht$)<Zr<8$4Sr)yn+I)P9`m?iz
z)yH<IuGZ2EdzacV5oBk}Zn+Nu`;Cs@5;!6j@n2?zz#7-8ma<zvmb_NG^}c#SG+WQK
zzxi*bi=5jT%$NU!yQ{H^Ps3+-@Yd7y=O%N;TEy>K{>NzcD}jA)nh$U8UdE8omT|OI
z@$5$CI^+LL%HK116vEP29N(y16F+rkj)6>K;K|$Jf8X!@yL;;Tj~q$Ge?C7v-2Q)#
zeb-T?Wx=1)L4^d1ql@Fp7;p)u5CkcR90e$76GKY1j=4?YRe9$^4_{C?djHdP1yIxY
z#F9A9jh7NLdtanm{@pM$eV^{7<wYNtutz489DR0hGuytH$TW>8p4%rk-T8gF&!S~n
zab)eceUGNj<c!Tw^Vbauy_juixv*ws!nJq(YajdWoV4s-(D8<dn1645nT4mkQvGYO
zX`Wz7zR%v^z4re$K3Kim-q&^6rkT6m2hCbC<D=}1bsD~}`py{LHuC#>v+VduooPAA
z7RI5X;-Wu-4EFN*)vsUD_vy4qglzV?e5Ydz(skZmvKDjv9^@c?ttR|-S!$3{DbJO8
zab<hGGaDx@xXO6fSB+;%^qF@H7CQd3_?U8<ZL)^>q}R*T12-ycF`UKRy`24ZRjBLw
zxC1Y=p4|NH<=h-oS(3WS-?F37vpH5JW38~yI*FMJd$`k=PgrWdjf?-Qn@i%2v{$<B
z@1{iTntsM&m(;?5bYZ^VlalV+Et7E<GCAz<Qd2{?#%J&2V+Cg-CRiDrI=?HnTsAE*
z<{g*uwB9zh!y1WZcQ*d{R?GVQ%$^1I(-q5S-1~G!I=AOu=gIO@k*V8CL9O63E7zZY
zlp^MN%y19q4x6I&^S<2KbSx%;$@q=>=Zi&pqAdNBj%eFT#5a0+sF|!xu6X{)Heg;y
zMUYlNtjSE-8xNkdaElbA===To%`{n8+Tp*s-1W7QUq#f})!ya24HP<k!uS0h*^>@?
zn>qQGwsgPBJLLTLOrqhRcc-?j?%!ZxaWGRzb$L|_libJKb2Hd}{5>;e-^qU!zEbHL
z#<l(Xns#d*n0jr-vd6b_&M}EBELh^lyIGs@?0iP?<X5t`ZOO-+LS5JHIN(vf{?YG(
z#yiJ@KSZ8xV|n|TCwF1zZ;?$m*!cYe_db>VUzjra=C_GfN;_W4?z4COuNReOXVm-f
z?1BCIEPu7HNHZVnx+MR$=~Gf}UCecbU@^#~#Li#VwXLhQ^!VN@)C3Atl!v;$jTP&j
ze79`(y)~t>A9h>s{q$g}98Xx~x>YaM?r@3Rxg@0Rt=)!yub1AL)BgQ<*3EspOif;Y
z4;8h2zU!`^yIhjsiO?rc|8|-Sp1hgCa|IM~Y2iAhE(O`|R8%(d?3gUxzqq`?vTT`A
z_Vgo+8hh@~{hLq)okyr#tCF$SsOW^E{DZSG3qkePO;K}`j-#oSv)}YzZvod$<qscC
zooAZ4$J%TE@BArBx6jmDIrdeC$=p3%Q0`g+NhTlOpOT*Sl+WVCV~gyYFBa_-w@w1J
zFMX{4dT5B=EOVPa)i*7A*+NI1Sr?M;PAxS0{MYKT#JM)%{N&!(Mk)Sp&N7@5mwncl
zoH%{K)t#Z?(J4QBQqQKdO09U_c{+08`Uf_P<bU|9pRi?KZvOhHaHZ~frjl!?o^GDR
zwOwsTm6dDT>gd@{*H6s~x%eSc`Eu0f#lMo5zFE!C{ohftNW0(qdDTX?tyy1}Dlcb^
zu9Lc6=VYW2U~^^ty}KQ$R(Z*vE?)ZO^5XSOt<_ptu4&>&685GT`PFT`D5p2U+9qy4
zr*-q@!vc-bs~=DH^_XV8>hJ3#vvOWF=*`LBXTPm=FY`ouzYF`M5(_7|Z@QOOmQ%|2
zjK6;NbZhyYOvhGzw))y9ci1rb;LXCTjIkFIjl>?DNqw*N&M(AGQn}{4Zpmrc9jOx|
z)#v5zPf3eBe&%*Z#Ttp3M<-?StZ#o@mCr9OSANr|ZE5$js~julIEH3DSXPy_^!Uab
z>sS|GS-SCxjQq2PN1Pwl3%n8QJru{?Ec!H5TXWs)3(GC%)Og+V`dqd%t>m~`fR1XG
z^#7ME5_Qr0@~_`FoV9$jTie(6REM8ppY`+&c5S-f_|I1D^Y#08)~t2#lzn|P=Xdi9
z9?75brz=`Y_bu3P=E&+W#&vnDt(N*%KPKi$DsSEXBp}byNch5@ZDp1H^^@K%x+=~5
z>ET@4k0J`2)b8+pJszgfWng!Hjpvu{CdTRRd3Mg5?xj7Rb8ANJxA#AGW$fC>Q+{Im
zr5%i$u3A^|9PeQ*JFaSS@$1e4<EeX3Zz%M$|1_aC`NqvcuBL`>!MRsO1rFMs>Iv5i
zsOt-qOG***TxR&^&==7fX|aHHHfkI8RlbaiGF;RrH09OY??<Ob7Uvet)Qd<xP}ZI2
zC3ycug^%E+f|?nhcb(w*_IOT((N}hc3LEZgbM|i&E%dz>v|x??1fLgn*=<XISm=La
zI5pkOt(b4C$$a~DN2(%H|JJb?T%CFMM4nID&58p#c{3%a%jWOoOItXxho@{$lkr5J
zE5%#dxeMlps_CgE*XJ}IobS$X@8edX^HcYj-1*;iOR?PW-h~vg*!MdOWsJqnNQ%Ab
z<KA$$%Gf4Fw|f2#x%CluBiQWKId!N0)-pb=+P>(8UQE%^pVmi8g_Vt`<s|<Q-C*By
zvAxxl>DSEOt5-Q%fBlkH*ZyZN$?vcKTJz(%*s%IFzN>myop)8UknUZ=e><i=r~3-m
zl+`w^wdYPBTN&bCSoENJr;NDEi3i`=HLW6+xfW_BL|01e-*jwe<eQ^&e;W0LXRS80
zo@kV;?p9rtD%!i_-woGw#|;ktdZaoh^iQEoU$*MG`|>6F&1*NPch5c<_WlLPCpp5U
zKUW*G<$V6TzM5y#w7u>}u3BHHlKu4W&GIuf@e{4|*01Dq<mfxky{`Pk@5z}w`%TL3
zT;^wu{W|-5_v0-ozZM+hjQ13?&OEy4+O#4+<L6)MA5Y}GRGxfk&7`-6RmWJuf7>xJ
z%rHIB`M5hn+<5tsi?XxleODIV_phQN%HZAJ9aZd)bswkxcz(E@|G#CuNVluca>e_J
zOb62w8FqOWu3=!{$_A|kI8!O{&$#SQ`UitlmbuLrFC<*ye)znr;+*`=gT|59RKC?r
z;F$UIeC4NkzLOT%mx;ZPG+F(%?A9~;cC~e9?-gC1m%Lf&{Zyl*SF*-!i;p*L&%OBk
z^AgSK(6oc+?=$@?o|kmalG}z|tL$9lcKb5sxR;T6e-3>9BoOp|!*})*R&C~&=JgB5
z&wXpfI){74n;wh*)$gn8oz5wi+>)!EcQ5NEgIRf-V)gqF_unhqxNC~%zh4`DrDg|Y
z#$2x4N%(HVcRSDBi=Iv^u{rX^J!S9P=XLXr?&&vt{w%kl1UjsEBpcjd;kwf20B>GR
zvYW~c8gqQZqo`-nE?#gqhpYaUrv7iKWt;Z@ohVlHP!K%)xTFQkgc81SNFl3Z4GJ7h
zH#GMw&wl^<`JdSbmAk|3m>O);6mNFEuNQx<8Q_=I(s8bYWxhqJ$BDpSZyGx7{Ob2_
zd@}V@NBwKR^E0J4x_^A1VbvA7=+@Lnb@kQ4J)2#Ywtoxv*_#|><)SZRxRTRo>e(x`
z?8iHT%iq@sO=?o}UDb2O=(dvL=YktIolai1NR>W3bLFZXD;O4QCvJYKrcg0Q(V}<e
z|G(Xl;@5q-O#;pv7QD0fxxY-OM4z=Jv3KRI*LGFARlGzuw{iD}R~hVMn!MuiA}OgO
z<!WatyPDR|-nZslZqKs=k6s?s4gP207#)$8e{7kMWS%JJti%OhOuXjYt>y$Znhu`q
zs5NEM+N8gDE9cy)ulsa+4yt5^v+(k^1s=+gP`J3GP|Q1|{^*t6s}_apCzL!@X=FX6
z+v~})%5j~|uD?tDE&Y#Gu2f$9XU*-e*Am5CzsyNlC3(7U%FVEilkUYOFcm+&m6a6x
z@EXg9j{BZs_tqHQRto%F@cokd<kf;=5eeJ04lJ0ox%Z*(fu|Fzzb-i&`1nkkUDP`J
zrU!wO9$j-?nOt#w{oWbvofelg142c`+sg&^Y5b7=rL3O(t^CZUD{HE{gw<A?{NKl5
z^FNMnm(R^D<?Jhi55Mtp`21YT{I_xbchNh(jO(^seEH_<$t!xCx1LMhauWXTIq#`-
z`o^X1U&DR&s&4GL^X1&#Q2r~{GxC;|S_}XBusi$Vi&x4ze0~K{t+Nl-F4-Oav3AE9
zvw17uY%!{Kt$51xQ=aME)en;Gu3DA1C4b)bF}khP`Rt+UpXI{-*2*VM+RT~%?-Tg4
z9@O#F_S!$OCOI{~j_0}kvNc;CpK*?<4+*_;Z||JY>ETtU&3-;PsBQa2L@r4E$FD9Q
z9_F@--Z?Wk>dpASE@R(%YTEnYEvvPvw9osk>v7+DTUP%}>G`zF7Zf(;mLF>hUT(!M
zGez<E745l9SHlbB9zUC46?W`R%CbitMMsPd_{4!$GR%<Oens%$-d}pDpG)+wo7aDS
z&wZfe&8d#?s%bC(-M#4dX3}-l=-s<Amd#l4=dsSVFCG87)|o@vRqLJhZoH$?`rW1>
z`3b++j6W%N)`Oc==MziA?_JO-Kj0{LJo2=k=H}}u3+AcM_g<xyb#%$8g0Pvn6Inig
z5aLW1HRvigxp}O>Y>w+asq3eYo}TrYJz(Dp@Z@{N4(YE)@;tN87U*W%X$Pz-e5St4
z9@Z3M?5+%}2@867jV1iMmc!1jo?F4Uw@K(7s7+gY>sr;`Eg?+La*Mu~f7x8Dv3(8i
z^3<2l1B!2-b^aU0Hs{|C)5M+4!n;na*3!F?&V8@&!PaZs7s7R#Wn2!goNc=9oYaP2
zmsa*4e<TsJ{%l=qx_?5|HHGa9IybC;5R;MoDX=Y3LSW%!$twr%b)J-0&xr5cU~%H{
zjlCxvW0KQ13cGB}W?m9i5G)X!pS^HG;iuKT-wGP<C{|y+Y1w&T?bk=uV(R7XEH9e)
zgjr=m%|pJ;n;a%t_P+YC(c`I7JC<BipXQTXVJmYzxq8P3ow(CKR_o0QS6)!W7P@ln
z*1&R|ZP^nKC<z|<n8>FwkKsSp!MuxGBeza^w2QNL*5Q-t%cch3o%-;>^Ol$1oJ*A!
z3xJlRsLS3zId5;sF}5B5kM>M{rRjHr_taO3v{z?6JDwUZl-sl>TKuu;{nxx&0n^-m
zR?N0Namh%yfA3S!3N6W>^4rXQ`}vr5+}Clv$W>Nc77`=3^CwT3i@&(9f6WQyQ)_Jl
z7b)G|D#>&_GA!xU*{i(e<`wJs3TkE~KU!a;v3-uA-h#^9w?E|n-<W&`(jHBB53zM>
z?EHQ*<lDaF-4@fu7N_jVo#|<@`iVq$pp#MWL-A$nAKc#1Q1sOBtJ~h{o5wi3RW+tE
zJ&sUgaX+c;;Ir|cPTT!yUTfZp-JPPe?_WjDft+(KZa=2ZnqE`(-(2pXMs%-`#S97c
z(2n0+=kk3EzJ`|P80|U#Dvm3=cEUDG)>TzqlbLm-QzGJz7kr)48{PSJ!v-<y^y8q}
z!hE4Wza{=uvLraA>lA8lOwzgj_yfa9S*6n5*A!Fcq$=*Z$NZ<RE#3UZj)`kLPs}<a
zcGzt5>TP#CjD;I44<E{ZR3^TyCv`vLpN*Cu_teh(=*4@drscin8k3vHK4>S@`z+z-
z&Sv>yEH4|=8?a(|$f6sQ>imT2zkL3%MUp#KBF^>9tNxT5e<MZKn(hu|i*SAKIzM-B
z{LZeYfkv-n&TKg*{;XNy?@pddZuyEFzs66QFV0=}eYW;}H}i2;!AmzzbWZ4P+$g&3
z?@it`1)sF*$uk}(l+CFP_|jLL|LB;|*3*S+*Q5t}?|-1Cu<YL5jhrG!pDxK|f7AEY
z_u$|4tVL(0FTKW;@jd*%+~i8Wr|Zv2Z18=t|DEB9sBim(m-DpmvCofA`*!2Epx85k
zPybS+4(s=RZk*J#?ia7J#m9i`2``mZPT!t%r7HL6`)kvR;x0!?1#Gf)J3m9;y;h#l
z<>8K9GfJ&@imE-{ES;`#_;+aXv>h+o)!pX4{eMjP@x9{5KQ1Ml6RI_UEd40{ry<ro
z!*B69bq<Sg4h~D_<5r7R|0_SS>0MB4ASKmPrT8Rf;#K4LODqEKwEk^gt5cJ{+U4Y#
z>*{hdf1J0edg^>*li)=?hSMJ(*te@a$x#R^oA_8~){lQ(E4MHA4?8c~Wv6}Y_O=(F
zD=$r%>yUO^>B*gSOJm;dvUl%!d&4sQ?!OyiA3txnVyNI&_fz!Szcth5m+_>xhF68X
znY#R4+1wkJXV$rIGJX`6`fR6u+8o#Ujx!QsV}8F`Gojr0ON~qZ&1*LU%THH@gno&t
zymPZwtR(Hmrrd*XlWxoXdvo>c{pjfr%2Z=7hd)oeZ;|rU_Ub}sm$xU^ZTDw8IZx2$
zT(A~ocJz&{W0y;)>-y5Blgs$szY3QGq&jc5@4NXYacj`=2(19=7Dz+p$bGiy?f0jh
ztG9C0d+E4ElEdn?w^reSHhYn(Obu~4M*)_N$6Iz>kSVh$QPg?cca(cM->y6-eMtdc
z=11AKm(v#19e&x%bJIY<`hUjm6AQm2tZDJI*yHeO0nY^PevD-{Sf+0O^ZRlhy76qM
SX*L4`1B0ilpUXO@geCwB%-1;p

literal 0
HcmV?d00001

diff --git a/longtest.c b/longtest.c
index 01b019a..c237d94 100644
--- a/longtest.c
+++ b/longtest.c
@@ -1,15 +1,17 @@
 #include "fx_s1516_longlong.h"
-#include <stdio.h>
 
 int main()
 {
     long long a = 3000000;
     long long b = 5000000;
 
-    printf("mul0 : %d\n", mul1(a, b));
-    printf("mul1 : %d\n", mul1(a, b));
-    printf("mul2 : %d\n", mul2(a, b));
-    printf("mul3 : %d\n", mul3(a, b));
-    printf("mul4 : %d\n", mul4(a, b));
+    fx_s1516 fa = longlong_to_fx(a);
+    fx_s1516 fb = longlong_to_fx(b);
+
+    printf("exact value: %lld, mul0 : %d, error: %lld\n", (a * b), fx_s1516_longlong_mul0(fa, fb), (a * b) - fx_to_longlong(fx_s1516_longlong_mul0(fa, fb)));
+    printf("mul1 : %d\n", fx_s1516_longlong_mul1(a, b));
+    printf("mul2 : %d\n", fx_s1516_longlong_mul2(a, b));
+    printf("mul3 : %d\n", fx_s1516_longlong_mul3(a, b));
+    printf("mul4 : %d\n", fx_s1516_longlong_mul4(a, b));
 
 }
\ No newline at end of file
diff --git a/test.c b/test.c
index 54f23b3..6f4798c 100644
--- a/test.c
+++ b/test.c
@@ -1,33 +1,118 @@
-#include "fx_s1516_double.h"
-
-#define fx_mul(a, b) ((a)*(b))
-
-/*
-Make first prototype fx_sXXYY_double.c with double and math.h
-define macro fx_sXXYY_double.h program test.c
-*/
+#include "fx_s1516_double.h"
+#include "fx_s1516_longlong.h"
 
 int main()
 {
-    fx_s1516 a = 131072;
-	fx_s1516 b = 65536;
-
-    double fa = fx_to_double(a);
-    double fb = fx_to_double(b);
-
-    printf("a : %d b : %d\nfa : %lf fb : %lf\noriginal a : %lf original b : %lf\n\n", a, b, fa, fb, double_to_fx(fa), double_to_fx(fb));
-    
-	printf("Add  : %-15d %lf\n", a + b, fx_s1516_add(fa, fb));
-    printf("Sub  : %-15d %lf\n", a - b, fx_s1516_sub(fa, fb));
-    printf("Mul  : %-15lld %lf\n", (long long)a * b, fx_s1516_mul(fa, fb));
-    printf("Div  : %-15lf %lf\n\n", (double)a / b, fx_s1516_div(fa, fb));
-    
-    printf("Sin  : %-15lf %lf\n", sin(degree_to_radian(a)), fx_s1516_sin(degree_to_radian(fa)));
-    printf("Sqrt : %-15lf %lf\n", sqrt(a), fx_s1516_sqrt(fa));
-    printf("Sqrt : %-15lf %lf\n", sqrt(b), fx_s1516_sqrt(fb));
-    printf("Pow  : %-15lld %lf\n", (long long)pow(a, 2), fx_s1516_pow(fa, 2));
-    printf("Log  : %-15lf %lf\n\n", baselog(a, e), fx_s1516_log(fa, e));
-
-    printf("PI : %f\n", fx_s1516_PI);
-    printf("INVERSE PI : %f\n", fx_s1516_INVERSE_PI);
+	double sum = 0;
+	int i;
+
+#ifdef fx_mul
+	fx_s1516 a = 30000;
+	fx_s1516 b = 50000;
+
+	double fa = fx_to_double(a);
+	double fb = fx_to_double(b);
+
+	printf("fx_s1516_double_mul: %lf\n", fx_s1516_double_mul(fa, fb) / P2_16);
+	printf("fx_s1516_longlong_mul0: %d\n", fx_s1516_longlong_mul0(a, b));
+	printf("fx_s1516_longlong_mul1: %d\n", fx_s1516_longlong_mul1(a, b));
+	printf("fx_s1516_longlong_mul2: %d\n", fx_s1516_longlong_mul2(a, b));
+	printf("fx_s1516_longlong_mul3: %d\n", fx_s1516_longlong_mul3(a, b));
+	printf("fx_s1516_longlong_mul4: %d\n", fx_s1516_longlong_mul4(a, b));
+
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_double_mul(fa, fb);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_mul0(a, b);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_mul1(a, b);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_mul2(a, b);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_mul3(a, b);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_mul4(a, b);
+	}
+#endif
+
+#ifdef fx_div
+	fx_s1516 a = 1000000;
+	fx_s1516 b = 500000;
+
+	double fa = fx_to_double(a);
+	double fb = fx_to_double(b);
+
+	printf("fx_s1516_double_div: %lf\n", fx_s1516_double_div(fa, fb) * P2_16);
+	printf("fx_s1516_longlong_div0: %d\n", fx_s1516_longlong_div0(a, b));
+	printf("fx_s1516_longlong_div1: %d\n", fx_s1516_longlong_div1(a, b));
+	printf("fx_s1516_longlong_div2: %d\n", fx_s1516_longlong_div2(a, b));
+
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_double_div(fa, fb);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_div0(a, b);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_div1(a, b);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_longlong_div2(a, b);
+	}
+#endif
+
+#ifdef fx_sin
+	fx_s1516 a = 30;
+
+	double fa = fx_to_double(a);
+
+	printf("fx_s1516_double_sin: %lf\n", fx_s1516_double_sin(degree_to_radian(fa)));
+	printf("fx_s1516_longlong_sin: %lf\n", fx_s1516_longlong_sin(a * P2_16) / fP2_16);
+
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_double_sin(degree_to_radian(fa));
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += (fx_s1516_longlong_sin(a * P2_16) / fP2_16);
+	}
+#endif
+
+#ifdef fx_sqrt
+	fx_s1516 a = 123;
+
+	double fa = fx_to_double(a);
+
+	printf("fx_s1516_double_sqrt: %lf\n", fx_s1516_double_sqrt(fa));
+	printf("fx_s1516_longlong_sqrt: %lf\n", fx_s1516_longlong_sqrt(a) / 256.0);
+
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += fx_s1516_double_sqrt(fa);
+	}
+	for (i = 0; i < 10000000; i++)
+	{
+		sum += (fx_s1516_longlong_sqrt(a) / 256.0);
+	}
+#endif
+
+	printf("sum: %lf", sum);
+
+	return 0;
 }
-- 
GitLab