first comit
This commit is contained in:
commit
5031e5f2b6
18
.VSCodeCounter/details.md
Normal file
18
.VSCodeCounter/details.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Details
|
||||||
|
|
||||||
|
Date : 2020-07-21 11:53:50
|
||||||
|
|
||||||
|
Directory /home/mreenen/projecten/labvoeding front
|
||||||
|
|
||||||
|
Total : 3 files, 116 codes, 20 comments, 34 blanks, all 170 lines
|
||||||
|
|
||||||
|
[summary](results.md)
|
||||||
|
|
||||||
|
## Files
|
||||||
|
| filename | language | code | comment | blank | total |
|
||||||
|
| :--- | :--- | ---: | ---: | ---: | ---: |
|
||||||
|
| [corner radius simulation.html](/corner radius simulation.html) | HTML | 61 | 0 | 8 | 69 |
|
||||||
|
| [dat.gui.min.js](/dat.gui.min.js) | JavaScript | 1 | 12 | 2 | 15 |
|
||||||
|
| [front.py](/front.py) | Python | 54 | 8 | 24 | 86 |
|
||||||
|
|
||||||
|
[summary](results.md)
|
||||||
5
.VSCodeCounter/results.csv
Normal file
5
.VSCodeCounter/results.csv
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
"filename", "language", "HTML", "Python", "JavaScript", "comment", "blank", "total"
|
||||||
|
"/home/mreenen/projecten/labvoeding front/corner radius simulation.html", "HTML", 61, 0, 0, 0, 8, 69
|
||||||
|
"/home/mreenen/projecten/labvoeding front/dat.gui.min.js", "JavaScript", 0, 0, 1, 12, 2, 15
|
||||||
|
"/home/mreenen/projecten/labvoeding front/front.py", "Python", 0, 54, 0, 8, 24, 86
|
||||||
|
"Total", "-", 61, 54, 1, 20, 34, 170
|
||||||
|
23
.VSCodeCounter/results.md
Normal file
23
.VSCodeCounter/results.md
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# Summary
|
||||||
|
|
||||||
|
Date : 2020-07-21 11:53:50
|
||||||
|
|
||||||
|
Directory /home/mreenen/projecten/labvoeding front
|
||||||
|
|
||||||
|
Total : 3 files, 116 codes, 20 comments, 34 blanks, all 170 lines
|
||||||
|
|
||||||
|
[details](details.md)
|
||||||
|
|
||||||
|
## Languages
|
||||||
|
| language | files | code | comment | blank | total |
|
||||||
|
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||||
|
| HTML | 1 | 61 | 0 | 8 | 69 |
|
||||||
|
| Python | 1 | 54 | 8 | 24 | 86 |
|
||||||
|
| JavaScript | 1 | 1 | 12 | 2 | 15 |
|
||||||
|
|
||||||
|
## Directories
|
||||||
|
| path | files | code | comment | blank | total |
|
||||||
|
| :--- | ---: | ---: | ---: | ---: | ---: |
|
||||||
|
| . | 3 | 116 | 20 | 34 | 170 |
|
||||||
|
|
||||||
|
[details](details.md)
|
||||||
29
.VSCodeCounter/results.txt
Normal file
29
.VSCodeCounter/results.txt
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
Date : 2020-07-21 11:53:50
|
||||||
|
Directory : /home/mreenen/projecten/labvoeding front
|
||||||
|
Total : 3 files, 116 codes, 20 comments, 34 blanks, all 170 lines
|
||||||
|
|
||||||
|
Languages
|
||||||
|
+------------+------------+------------+------------+------------+------------+
|
||||||
|
| language | files | code | comment | blank | total |
|
||||||
|
+------------+------------+------------+------------+------------+------------+
|
||||||
|
| HTML | 1 | 61 | 0 | 8 | 69 |
|
||||||
|
| Python | 1 | 54 | 8 | 24 | 86 |
|
||||||
|
| JavaScript | 1 | 1 | 12 | 2 | 15 |
|
||||||
|
+------------+------------+------------+------------+------------+------------+
|
||||||
|
|
||||||
|
Directories
|
||||||
|
+------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||||
|
| path | files | code | comment | blank | total |
|
||||||
|
+------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||||
|
| . | 3 | 116 | 20 | 34 | 170 |
|
||||||
|
+------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||||
|
|
||||||
|
Files
|
||||||
|
+------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||||
|
| filename | language | code | comment | blank | total |
|
||||||
|
+------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||||
|
| /home/mreenen/projecten/labvoeding front/corner radius simulation.html | HTML | 61 | 0 | 8 | 69 |
|
||||||
|
| /home/mreenen/projecten/labvoeding front/dat.gui.min.js | JavaScript | 1 | 12 | 2 | 15 |
|
||||||
|
| /home/mreenen/projecten/labvoeding front/front.py | Python | 54 | 8 | 24 | 86 |
|
||||||
|
| Total | | 116 | 20 | 34 | 170 |
|
||||||
|
+------------------------------------------------------------------------+------------+------------+------------+------------+------------+
|
||||||
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"python.pythonPath": "/bin/python"
|
||||||
|
}
|
||||||
BIN
__pycache__/mathobjects.cpython-37.pyc
Normal file
BIN
__pycache__/mathobjects.cpython-37.pyc
Normal file
Binary file not shown.
467
base64
Normal file
467
base64
Normal file
@ -0,0 +1,467 @@
|
|||||||
|
%!PS-Adobe-3.0
|
||||||
|
%%Creator: (ImageMagick)
|
||||||
|
%%Title: (base64)
|
||||||
|
%%CreationDate: (2020-07-20T17:12:40+00:00)
|
||||||
|
%%BoundingBox: 1043 694 1126 775
|
||||||
|
%%HiResBoundingBox: 1043 694 1126 775
|
||||||
|
%%DocumentData: Clean7Bit
|
||||||
|
%%LanguageLevel: 1
|
||||||
|
%%Orientation: Portrait
|
||||||
|
%%PageOrder: Ascend
|
||||||
|
%%Pages: 1
|
||||||
|
%%EndComments
|
||||||
|
|
||||||
|
%%BeginDefaults
|
||||||
|
%%EndDefaults
|
||||||
|
|
||||||
|
%%BeginProlog
|
||||||
|
%
|
||||||
|
% Display a color image. The image is displayed in color on
|
||||||
|
% Postscript viewers or printers that support color, otherwise
|
||||||
|
% it is displayed as grayscale.
|
||||||
|
%
|
||||||
|
/DirectClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a DirectClass packet.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% red.
|
||||||
|
% green.
|
||||||
|
% blue.
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile color_packet readhexstring pop pop
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 3 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add 3 mul def
|
||||||
|
} ifelse
|
||||||
|
0 3 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch color_packet putinterval
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/DirectClassImage
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Display a DirectClass image.
|
||||||
|
%
|
||||||
|
systemdict /colorimage known
|
||||||
|
{
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ DirectClassPacket } false 3 colorimage
|
||||||
|
}
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% No colorimage operator; convert to grayscale.
|
||||||
|
%
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ GrayDirectClassPacket } image
|
||||||
|
} ifelse
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/GrayDirectClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a DirectClass packet; convert to grayscale.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% red
|
||||||
|
% green
|
||||||
|
% blue
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile color_packet readhexstring pop pop
|
||||||
|
color_packet 0 get 0.299 mul
|
||||||
|
color_packet 1 get 0.587 mul add
|
||||||
|
color_packet 2 get 0.114 mul add
|
||||||
|
cvi
|
||||||
|
/gray_packet exch def
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 1 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add def
|
||||||
|
} ifelse
|
||||||
|
0 1 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch gray_packet put
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/GrayPseudoClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a PseudoClass packet; convert to grayscale.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% index: index into the colormap.
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/offset exch 3 mul def
|
||||||
|
/color_packet colormap offset 3 getinterval def
|
||||||
|
color_packet 0 get 0.299 mul
|
||||||
|
color_packet 1 get 0.587 mul add
|
||||||
|
color_packet 2 get 0.114 mul add
|
||||||
|
cvi
|
||||||
|
/gray_packet exch def
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 1 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add def
|
||||||
|
} ifelse
|
||||||
|
0 1 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch gray_packet put
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/PseudoClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a PseudoClass packet.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% index: index into the colormap.
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/offset exch 3 mul def
|
||||||
|
/color_packet colormap offset 3 getinterval def
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 3 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add 3 mul def
|
||||||
|
} ifelse
|
||||||
|
0 3 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch color_packet putinterval
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/PseudoClassImage
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Display a PseudoClass image.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% class: 0-PseudoClass or 1-Grayscale.
|
||||||
|
%
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /class exch def pop
|
||||||
|
class 0 gt
|
||||||
|
{
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /depth exch def pop
|
||||||
|
/grays columns 8 add depth sub depth mul 8 idiv string def
|
||||||
|
columns rows depth
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ currentfile grays readhexstring pop } image
|
||||||
|
}
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% colors: number of colors in the colormap.
|
||||||
|
% colormap: red, green, blue color packets.
|
||||||
|
%
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /colors exch def pop
|
||||||
|
/colors colors 3 mul def
|
||||||
|
/colormap colors string def
|
||||||
|
currentfile colormap readhexstring pop pop
|
||||||
|
systemdict /colorimage known
|
||||||
|
{
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ PseudoClassPacket } false 3 colorimage
|
||||||
|
}
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% No colorimage operator; convert to grayscale.
|
||||||
|
%
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ GrayPseudoClassPacket } image
|
||||||
|
} ifelse
|
||||||
|
} ifelse
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/DisplayImage
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Display a DirectClass or PseudoClass image.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% x & y translation.
|
||||||
|
% x & y scale.
|
||||||
|
% label pointsize.
|
||||||
|
% image label.
|
||||||
|
% image columns & rows.
|
||||||
|
% class: 0-DirectClass or 1-PseudoClass.
|
||||||
|
% compression: 0-none or 1-RunlengthEncoded.
|
||||||
|
% hex color packets.
|
||||||
|
%
|
||||||
|
gsave
|
||||||
|
/buffer 512 string def
|
||||||
|
/byte 1 string def
|
||||||
|
/color_packet 3 string def
|
||||||
|
/pixels 768 string def
|
||||||
|
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /x exch def
|
||||||
|
token pop /y exch def pop
|
||||||
|
x y translate
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /x exch def
|
||||||
|
token pop /y exch def pop
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /pointsize exch def pop
|
||||||
|
x y scale
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /columns exch def
|
||||||
|
token pop /rows exch def pop
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /class exch def pop
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /compression exch def pop
|
||||||
|
class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
|
||||||
|
grestore
|
||||||
|
showpage
|
||||||
|
} bind def
|
||||||
|
%%EndProlog
|
||||||
|
%%Page: 1 1
|
||||||
|
%%PageBoundingBox: 1043 694 1126 775
|
||||||
|
DisplayImage
|
||||||
|
1043 694
|
||||||
|
83 81
|
||||||
|
12
|
||||||
|
83 81
|
||||||
|
1
|
||||||
|
1
|
||||||
|
1
|
||||||
|
8
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
%%PageTrailer
|
||||||
|
%%Trailer
|
||||||
|
%%EOF
|
||||||
80
corner radius simulation.html
Normal file
80
corner radius simulation.html
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>sqare round inside corner</title>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id='fps'></div>
|
||||||
|
<svg viewbox="0 0 15 15">
|
||||||
|
<rect width="10" height="10" x="0" y="0" stroke="green" stroke-width="0.1" fill="none" />
|
||||||
|
<circle cx='0' cy='0', r='1' />
|
||||||
|
<line y1="0" x1="5" y2="10" x2="5" stroke="red" stroke-width="0.05" />
|
||||||
|
<line y1="0" x1="5" y2="10" x2="10" stroke="red" stroke-width="0.05" />
|
||||||
|
<circle cx="10" cy="0" r="0.05" fill="blue" />
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
|
||||||
|
var drow = function(){
|
||||||
|
a.drow(a)
|
||||||
|
}
|
||||||
|
|
||||||
|
class corner{
|
||||||
|
|
||||||
|
grow = 0.1;
|
||||||
|
fpsSlower = 0;
|
||||||
|
radius = 1;
|
||||||
|
|
||||||
|
constructor(svg){
|
||||||
|
this.last = new Date().getTime();
|
||||||
|
this.svg = svg;
|
||||||
|
this.circle = svg.getElementsByTagName('circle')[0]
|
||||||
|
this.dot = svg.getElementsByTagName('circle')[1]
|
||||||
|
this.line = svg.getElementsByTagName('line')[0]
|
||||||
|
this.line2 = svg.getElementsByTagName('line')[1]
|
||||||
|
this.fps = document.getElementById('fps')
|
||||||
|
this.drow(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
drow(self){
|
||||||
|
if(typeof self != 'object'){
|
||||||
|
self = a
|
||||||
|
}
|
||||||
|
requestAnimationFrame(self.drow)
|
||||||
|
//setTimeout(self.drow, 100)
|
||||||
|
if(self.fpsSlower == 10){
|
||||||
|
var last = new Date().getTime()
|
||||||
|
self.fps.innerHTML = Math.round(10*100*1000/(last - self.last))/100 + " fps"
|
||||||
|
self.last = last
|
||||||
|
self.fpsSlower = 0
|
||||||
|
}
|
||||||
|
self.fpsSlower += 1;
|
||||||
|
self.circle.r.baseVal.value = self.radius;
|
||||||
|
self.circle.cx.baseVal.value = self.circle.cy.baseVal.value = 10 - (Math.SQRT2/2 * self.radius);
|
||||||
|
self.line.x1.baseVal.value = self.line.y1.baseVal.value = 10 - (Math.SQRT2/2 * self.radius);
|
||||||
|
self.line2.x1.baseVal.value = self.line2.y1.baseVal.value = 10 - (Math.SQRT2/2 * self.radius);
|
||||||
|
self.line.x2.baseVal.value = 10 - (self.radius * 1.414);
|
||||||
|
self.dot.cy.baseVal.value = 10 - (self.radius * 1.414);
|
||||||
|
|
||||||
|
self.radius += self.grow
|
||||||
|
if((self.radius >= 7.07 && self.grow > 0)|| (self.radius <= 0.01 && self.grow < 0))
|
||||||
|
self.grow = -self.grow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
a = new corner(document.getElementsByTagName('svg')[0])
|
||||||
|
var gui = new dat.GUI();
|
||||||
|
gui.add(a, 'radius', 0.01, 7.07).step(0.001).listen();
|
||||||
|
gui.add(a, 'grow', 0, 4)
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="dat.gui.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
14
dat.gui.min.js
vendored
Normal file
14
dat.gui.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
94
front.py
Executable file
94
front.py
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
#!/bin/python
|
||||||
|
|
||||||
|
import cadquery as cq
|
||||||
|
import base64
|
||||||
|
import subprocess
|
||||||
|
import math
|
||||||
|
from mathobjects import *
|
||||||
|
|
||||||
|
pannelSize = Vec(400, 300, 5)
|
||||||
|
tool = 4
|
||||||
|
|
||||||
|
def drowOnPos(f, pos, fn):
|
||||||
|
f = f.center(pos.x - f.plane.origin[0], pos.y - f.plane.origin[1], pos.z - f.plane.origin[2])
|
||||||
|
return fn(f)
|
||||||
|
|
||||||
|
def rectWitchInsideRadius(f, w, h, r):
|
||||||
|
cs = math.sqrt(2) * r
|
||||||
|
f = f.center(w/2 - cs, h/2 - cs)
|
||||||
|
f = f.threePointArc((cs, 0), (cs, -cs))
|
||||||
|
f = f.lineTo(cs, -(h - cs))
|
||||||
|
f = f.threePointArc((cs, -h), (0, -h))
|
||||||
|
f = f.lineTo(-(w - 2*cs), -h)
|
||||||
|
f = f.threePointArc((-(w-cs), -h), (-(w-cs), -(h-cs)))
|
||||||
|
f = f.lineTo(-(w-cs), -cs)
|
||||||
|
f = f.threePointArc((-(w-cs), 0), (-(w-2*cs), 0))
|
||||||
|
f = f.close()
|
||||||
|
f = f.center(-w/2 + cs, -h/2 + cs)
|
||||||
|
return f
|
||||||
|
|
||||||
|
def holeWithFlets(f, r, fw):
|
||||||
|
fl = math.sqrt(math.pow(r, 2) - math.pow(fw/2, 2))
|
||||||
|
f = f.center(fw/2, fl/2)
|
||||||
|
f = f.threePointArc((-fw/2, r - fl/2), (-fw, 0))
|
||||||
|
f = f.lineTo(-fw, -fl)
|
||||||
|
f = f.threePointArc((-fw/2, -(fl/2 + r)), (0, -fl))
|
||||||
|
f = f.close()
|
||||||
|
f = f.center(-fw/2, -fl/2)
|
||||||
|
return f
|
||||||
|
|
||||||
|
def femailBananaConnHole(f):
|
||||||
|
return holeWithFlets(f, 6, 10.5)
|
||||||
|
|
||||||
|
def LPSCut(f):
|
||||||
|
global pannelSize, tool
|
||||||
|
displaySize = (77, 39)
|
||||||
|
clearence = 15
|
||||||
|
connPoss = [displaySize[0]/3, displaySize[1]/2 + 30]
|
||||||
|
|
||||||
|
# display
|
||||||
|
f = f.center(0, 10)
|
||||||
|
f = rectWitchInsideRadius(f, displaySize[0], displaySize[1], tool/2)
|
||||||
|
|
||||||
|
# connectors
|
||||||
|
f = f.center(connPoss[0], -connPoss[1])
|
||||||
|
f = femailBananaConnHole(f)
|
||||||
|
f = f.center(-2*connPoss[0], 0)
|
||||||
|
f = femailBananaConnHole(f)
|
||||||
|
|
||||||
|
# f = f.center()
|
||||||
|
return f
|
||||||
|
|
||||||
|
def LPSText(f):
|
||||||
|
f = f.rect(95, 50)
|
||||||
|
|
||||||
|
|
||||||
|
def frontPannle():
|
||||||
|
global pannelSize
|
||||||
|
f = cq.Workplane('XZ')
|
||||||
|
|
||||||
|
LPSPos = Vec(125, 0, 100)
|
||||||
|
|
||||||
|
f = f.rect(pannelSize.x, pannelSize.z)
|
||||||
|
|
||||||
|
f = drowOnPos(f, LPSPos, LPSCut)
|
||||||
|
|
||||||
|
f = f.extrude(pannelSize.y)
|
||||||
|
|
||||||
|
f = drowOnPos(f, LPSPos, LPSText)
|
||||||
|
|
||||||
|
return f
|
||||||
|
|
||||||
|
|
||||||
|
f = frontPannle()
|
||||||
|
|
||||||
|
cq.exporters.exportShape(f, 'STEP', open('front.step', 'w'))
|
||||||
|
|
||||||
|
subprocess.run(["/usr/lib64/freecad/bin/FreeCAD", './front.step'])
|
||||||
|
|
||||||
|
# svg = f.toSvg().encode('ascii')
|
||||||
|
# svg = base64.b64encode(svg)
|
||||||
|
# url = 'data:image/svg+xml;base64,' + svg.decode('ascii')
|
||||||
|
|
||||||
|
# subprocess.run(["firefox", url])
|
||||||
|
|
||||||
1957
front.step
Normal file
1957
front.step
Normal file
File diff suppressed because it is too large
Load Diff
226
front.stl
Normal file
226
front.stl
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
solid
|
||||||
|
facet normal -0.000000e+00 0.000000e+00 -1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -0.000000e+00 -1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.000000e+00 0.000000e+00 1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1.000000e+00 0.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex -2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1.000000e+00 0.000000e+00 -0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 1.000000e+00 0.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 0.000000e+00 -1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
vertex 1.850000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 0.000000e+00 -1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.850000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1.000000e+00 0.000000e+00 -0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.850000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -1.000000e+00 -0.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 0.000000e+00 1.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex -2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 -0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
vertex 1.080000e+02 0.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 -0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 1.080000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.850000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex 2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 1.850000e+02 0.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex -2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex 1.080000e+02 0.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 -0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 -1.500000e+02
|
||||||
|
vertex 1.850000e+02 0.000000e+00 9.600000e+01
|
||||||
|
vertex 2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
vertex 1.080000e+02 0.000000e+00 1.350000e+02
|
||||||
|
vertex -2.000000e+02 0.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal 0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 -1.500000e+02
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 1.850000e+02 -5.000000e+00 9.600000e+01
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
facet normal -0.000000e+00 -1.000000e+00 0.000000e+00
|
||||||
|
outer loop
|
||||||
|
vertex 2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex -2.000000e+02 -5.000000e+00 1.500000e+02
|
||||||
|
vertex 1.080000e+02 -5.000000e+00 1.350000e+02
|
||||||
|
endloop
|
||||||
|
endfacet
|
||||||
|
endsolid
|
||||||
74
lenen en rekenen.html
Normal file
74
lenen en rekenen.html
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>sqare round inside corner</title>
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id=fps></div>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
var drow = function(){
|
||||||
|
a.drow(a)
|
||||||
|
}
|
||||||
|
|
||||||
|
class corner{
|
||||||
|
|
||||||
|
totaal = 21230;
|
||||||
|
zelfBetalen = 5000;
|
||||||
|
termijnen = 4;
|
||||||
|
rente = 6.9;
|
||||||
|
betalen = 500;
|
||||||
|
|
||||||
|
update(self){
|
||||||
|
if(typeof self != 'object'){
|
||||||
|
self = a
|
||||||
|
}
|
||||||
|
requestAnimationFrame(self.update)
|
||||||
|
//setTimeout(self.drow, 100)
|
||||||
|
if(self.fpsSlower == 10){
|
||||||
|
var last = new Date().getTime()
|
||||||
|
self.fps.innerHTML = Math.round(10*100*1000/(last - self.last))/100 + " fps"
|
||||||
|
self.last = last
|
||||||
|
self.fpsSlower = 0
|
||||||
|
}
|
||||||
|
self.fpsSlower += 1;
|
||||||
|
|
||||||
|
self.teLenen = self.totaal - self.zelfBetalen
|
||||||
|
self.renteB = 0
|
||||||
|
nogBetalen = self.teLenen
|
||||||
|
for(var i=0; i<self.termijnen*12; i++){
|
||||||
|
self.renteB += nogBetalen * self.rente / 100
|
||||||
|
nogBetalen
|
||||||
|
}
|
||||||
|
self.bedragPM = (self.teLenen + self.renteB) / (self.termijnen * 12)
|
||||||
|
self.kwijt = (self.betalen) * (self.termijnen * 12)
|
||||||
|
self.verschil = self.kwijt - (self.teLenen + self.renteB)
|
||||||
|
self.werkelijkeRente = ((self.verschil / self.teLenen))*100
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
a = new corner()
|
||||||
|
a.update()
|
||||||
|
var gui = new dat.GUI();
|
||||||
|
gui.add(a, 'totaal', 1000, 30000);
|
||||||
|
gui.add(a, 'zelfBetalen', 0, 10000);
|
||||||
|
gui.add(a, 'termijnen', 1, 10);
|
||||||
|
gui.add(a, 'betalen');
|
||||||
|
gui.add(a, 'teLenen').listen();
|
||||||
|
gui.add(a, 'renteB').listen();
|
||||||
|
gui.add(a, 'bedragPM').listen();
|
||||||
|
gui.add(a, 'kwijt').listen();
|
||||||
|
gui.add(a, 'verschil').listen();
|
||||||
|
gui.add(a, 'werkelijkeRente').listen();
|
||||||
|
};
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<script type="text/javascript" src="dat.gui.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
33
mathTest.py
Executable file
33
mathTest.py
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/python
|
||||||
|
import mathobjects as mo
|
||||||
|
|
||||||
|
# a = mo.Const(5)
|
||||||
|
# b = mo.Const(10)
|
||||||
|
|
||||||
|
# c = mo.Var('c')
|
||||||
|
|
||||||
|
# f = a*(b//(a**(b/a-mo.Sin(5))))-b+2 == c-b
|
||||||
|
# # f = a + b == c + b
|
||||||
|
|
||||||
|
# print(f)
|
||||||
|
|
||||||
|
# # f = f.simplify()
|
||||||
|
|
||||||
|
# print(f)
|
||||||
|
|
||||||
|
# y = f.solve({"c": 2})
|
||||||
|
|
||||||
|
# print(y)
|
||||||
|
|
||||||
|
k = mo.Vec(5, 6, 7)
|
||||||
|
|
||||||
|
print(str(k))
|
||||||
|
|
||||||
|
k[1] = 3
|
||||||
|
|
||||||
|
print(str(k))
|
||||||
|
print(str(k[2]))
|
||||||
|
|
||||||
|
|
||||||
|
# print("a is b: " + str(a is b))
|
||||||
|
# print("a is not b: " + str(a is not b))
|
||||||
728
mathobjects.py
Executable file
728
mathobjects.py
Executable file
@ -0,0 +1,728 @@
|
|||||||
|
import math
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
# value types
|
||||||
|
'Const',
|
||||||
|
'Var',
|
||||||
|
# math functions
|
||||||
|
'Add',
|
||||||
|
'Div',
|
||||||
|
'Round',
|
||||||
|
'Pow',
|
||||||
|
'Mod',
|
||||||
|
'Mul',
|
||||||
|
'Neg',
|
||||||
|
'Sub',
|
||||||
|
'Lt',
|
||||||
|
'Le',
|
||||||
|
'Eql',
|
||||||
|
'NEql',
|
||||||
|
'Ge',
|
||||||
|
'Gt',
|
||||||
|
'Sin',
|
||||||
|
'Sinh',
|
||||||
|
'Cos',
|
||||||
|
'Cosh',
|
||||||
|
'Tan',
|
||||||
|
'Tanh',
|
||||||
|
# other types
|
||||||
|
'Vec'
|
||||||
|
]
|
||||||
|
|
||||||
|
"""
|
||||||
|
bracketLevel:
|
||||||
|
0: never
|
||||||
|
1: add, sub
|
||||||
|
2: mul, div
|
||||||
|
3: always
|
||||||
|
"""
|
||||||
|
def addBrackets(f, bl):
|
||||||
|
s = str(f)
|
||||||
|
if ( (bl >= 1 and isinstance(f, (Add, Sub)))
|
||||||
|
or (bl >= 2 and isinstance(f, (Mul, Div)))
|
||||||
|
or (bl >= 3 and not isinstance(f, (Const, Var)))):
|
||||||
|
s = "(" + s + ")"
|
||||||
|
return s
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == function =====================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Func:
|
||||||
|
def __init__(self, left, right):
|
||||||
|
if isinstance(left, (int, float)):
|
||||||
|
self.left = Const(left)
|
||||||
|
else:
|
||||||
|
self.left = left
|
||||||
|
if isinstance(right, (int, float)):
|
||||||
|
self.right = Const(right)
|
||||||
|
else:
|
||||||
|
self.right = right
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
l = self.left.solve(vars)
|
||||||
|
r = self.right.solve(vars)
|
||||||
|
val = self.fn(l, r)
|
||||||
|
print("solve(): " + str(self.copy()(l, r)) + ' = ' + str(val))
|
||||||
|
return val
|
||||||
|
# return self.fn(self.left.solve(vars), self.right.solve(vars))
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
left = self.left.simplify()
|
||||||
|
right = self.right.simplify()
|
||||||
|
if isinstance(left, Const) and isinstance(right, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return self.copy()(left, right)
|
||||||
|
|
||||||
|
def __add__(self, other): # self + other
|
||||||
|
return Add(self, other)
|
||||||
|
def __truediv__(self, other): # self / other
|
||||||
|
return Div(self, other)
|
||||||
|
def __floordiv__(self, other): # self // other
|
||||||
|
return Round(Div(self, other))
|
||||||
|
def __pow__(self, other): # self ** other
|
||||||
|
return Pow(self, other)
|
||||||
|
def __mod__(self, other): # self % other
|
||||||
|
return Mod(self, other)
|
||||||
|
def __mul__(self, other): # self * other
|
||||||
|
return Mul(self, other)
|
||||||
|
def __neg__(self): # -self
|
||||||
|
return Neg(self)
|
||||||
|
def __sub__(self, other): # self - other
|
||||||
|
return Sub(self, other)
|
||||||
|
def __lt__(self, other): # self < other
|
||||||
|
return Lt(self, other)
|
||||||
|
def __le__(self, other): # self <= other
|
||||||
|
return Le(self, other)
|
||||||
|
def __eq__(self, other): # self == other
|
||||||
|
return Eql(self, other)
|
||||||
|
def __ne__(self, other): # self != other
|
||||||
|
return NEql(self, other)
|
||||||
|
def __ge__(self, other): # self >= other
|
||||||
|
return Ge(self, other)
|
||||||
|
def __gt__(self, other): # self > other
|
||||||
|
return Gt(self, other)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
s = addBrackets(self.left, self.bracketLevel)
|
||||||
|
s += ' ' + self.symbol + ' '
|
||||||
|
s += addBrackets(self.right, self.bracketLevel)
|
||||||
|
return s
|
||||||
|
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Const ========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Const(Func):
|
||||||
|
def __init__(self, value):
|
||||||
|
self.value = value
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return self.value
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Const
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.value)
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Var ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Var(Func):
|
||||||
|
def __init__ (self, name):
|
||||||
|
self.name = name
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return vars[self.name]
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Var
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
return self
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return str(self.name)
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Add ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Add(Func):
|
||||||
|
symbol = '+'
|
||||||
|
bracketLevel = 0
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a + b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Add
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Div ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Div(Func):
|
||||||
|
symbol = '/'
|
||||||
|
bracketLevel = 1
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a / b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Div
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Round ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Round(Func):
|
||||||
|
def __init__(self, function, p=0):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
self.p = 10**p
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
anser = self.function.solve(vars)
|
||||||
|
anser = float(int(anser*self.p + 0.5)) / self.p
|
||||||
|
return anser
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Round
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "round(" + str(self.function) + ")"
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Pow ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Pow(Func):
|
||||||
|
symbol = '^'
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a ** b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Pow
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Mod ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Mod(Func):
|
||||||
|
symbol = '%'
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a % b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Mod
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Mul ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Mul(Func):
|
||||||
|
symbol = '*'
|
||||||
|
bracketLevel = 1
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a * b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Mul
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Neg ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Neg(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return -self.function.solve(vars)
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Neg
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "-" + addBrackets(self.function, 3) + ")"
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Sub ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Sub(Func):
|
||||||
|
symbol = '-'
|
||||||
|
bracketLevel = 2
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a - b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Sub
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
s = addBrackets(self.left, 0)
|
||||||
|
s += ' ' + self.symbol + ' '
|
||||||
|
s += addBrackets(self.right, self.bracketLevel)
|
||||||
|
return s
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Lt ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Lt(Func):
|
||||||
|
symbol = '<'
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a < b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Lt
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Le ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Le(Func):
|
||||||
|
symbol = '<='
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a <= b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Le
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Eql ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Eql(Func):
|
||||||
|
symbol = '='
|
||||||
|
bracketLevel = 0
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a == b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Eql
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
if ( (isinstance(self.left,self.right.copy())) # same opperation
|
||||||
|
and (not isinstance(self.left, (Const, Var, Round))) # not const, var or Round
|
||||||
|
and (self.left.right is self.right.right)): # subthing is the same
|
||||||
|
return self.copy()(self.left.left.simplify(), self.right.left.simplify())
|
||||||
|
return self.copy()(self.left.simplify(), self.right.simplify())
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == NEql ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class NEql(Func):
|
||||||
|
symbol = '!='
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a != b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return NEql
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Ge ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Ge(Func):
|
||||||
|
symbol = '>='
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a >= b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Ge
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Gt ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Gt(Func):
|
||||||
|
symbol = '>'
|
||||||
|
bracketLevel = 3
|
||||||
|
|
||||||
|
def fn(self, a, b):
|
||||||
|
return a > b
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Gt
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Sin ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Sin(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return math.sin(self.function.solve(vars))
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Sin
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
return 'sin(' + str(self.function) + ')'
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Sinh =========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Sinh(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return math.sinh(self.function.solve(vars))
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Sinh
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
return 'sinh(' + str(self.function) + ')'
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Cos ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Cos(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return math.Cos(self.function.solve(vars))
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Cos
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
return 'Cos(' + str(self.function) + ')'
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Cosh =========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Cosh(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return math.Cosh(self.function.solve(vars))
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return Cosh
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
return 'Cosh(' + str(self.function) + ')'
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Tan ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Tan(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return math.tan(self.function.solve(vars))
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return tan
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
return 'tan(' + str(self.function) + ')'
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Tanh =========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Tanh(Func):
|
||||||
|
def __init__(self, function):
|
||||||
|
if isinstance(function, (int, float)):
|
||||||
|
self.function = Const(function)
|
||||||
|
else:
|
||||||
|
self.function = function
|
||||||
|
|
||||||
|
def solve(self, vars):
|
||||||
|
return math.tanh(self.function.solve(vars))
|
||||||
|
|
||||||
|
def copy(self):
|
||||||
|
return tanh
|
||||||
|
|
||||||
|
def simplify(self):
|
||||||
|
f = self.function.simplify()
|
||||||
|
if isinstance(f, Const):
|
||||||
|
return Const(self.solve({}))
|
||||||
|
else:
|
||||||
|
return Round(f)
|
||||||
|
|
||||||
|
def __str__ (self):
|
||||||
|
return 'tanh(' + str(self.function) + ')'
|
||||||
|
|
||||||
|
# =================================================================
|
||||||
|
# == Vec ==========================================================
|
||||||
|
# =================================================================
|
||||||
|
|
||||||
|
class Vec:
|
||||||
|
def __init__ (self, x: float, y: float, z: float) -> None:
|
||||||
|
...
|
||||||
|
def __init__ (self, x: float, y: float) -> None:
|
||||||
|
...
|
||||||
|
def __init__ (self, x: float) -> None:
|
||||||
|
...
|
||||||
|
def __init__ (self, x: "Vec") -> None:
|
||||||
|
...
|
||||||
|
def __init__ (self) -> None:
|
||||||
|
...
|
||||||
|
def __init__ (self, *args) -> None:
|
||||||
|
if len(args) == 3:
|
||||||
|
self.cartesian(*args)
|
||||||
|
elif len(args) == 2:
|
||||||
|
self.cartesian(*args, 0.0)
|
||||||
|
elif len(args) == 1:
|
||||||
|
if(isinstance(args[0], Vec)):
|
||||||
|
self.cartesian(args[0].getCartasian())
|
||||||
|
self.cartesian(*args, 0.0, 0.0)
|
||||||
|
|
||||||
|
|
||||||
|
def cartesian(self, x: float, y: float, z: float) -> tuple:
|
||||||
|
...
|
||||||
|
def cartesian(self, corts: tuple) -> tuple:
|
||||||
|
...
|
||||||
|
def cartesian(self, *args) -> tuple:
|
||||||
|
if len(args) == 3:
|
||||||
|
self.x = args[0]
|
||||||
|
self.y = args[1]
|
||||||
|
self.z = args[2]
|
||||||
|
elif len(args) == 1:
|
||||||
|
self.x = args[0][0]
|
||||||
|
self.y = args[0][1]
|
||||||
|
self.z = args[0][2]
|
||||||
|
return (self.x, self.y, self.z)
|
||||||
|
|
||||||
|
|
||||||
|
def polar(self, a: tuple, l: float) -> None:
|
||||||
|
...
|
||||||
|
def polar(self) -> tuple:
|
||||||
|
...
|
||||||
|
def polar(self, *args):
|
||||||
|
if len(args) == 2:
|
||||||
|
# xy angle xz angle yz angle
|
||||||
|
self.x = math.sin(args[0][0]) * math.sin(args[0][1])
|
||||||
|
self.y = math.cos(args[0][0]) * math.sin(args[0][2])
|
||||||
|
self.z = math.cos(args[0][1]) * math.cos(args[0][2])
|
||||||
|
self = self * l
|
||||||
|
elif len(args) == 0:
|
||||||
|
return (
|
||||||
|
(
|
||||||
|
math.tanh(self.y, self.x),
|
||||||
|
math.tanh(self.z, self.x),
|
||||||
|
0.0
|
||||||
|
),
|
||||||
|
self.length(),
|
||||||
|
)
|
||||||
|
|
||||||
|
def rotate(self, angle):
|
||||||
|
p = self.polar()
|
||||||
|
a = [p[0][0] + angle[0], p[0][1] + angle[1], p[0][2] + angle[2]]
|
||||||
|
self.polar(a, p[1])
|
||||||
|
|
||||||
|
def length(self, l: float):
|
||||||
|
...
|
||||||
|
def length(self):
|
||||||
|
...
|
||||||
|
def length(self, *args):
|
||||||
|
if(len(args) == 0):
|
||||||
|
l = self.x**2 + self.y**2 + self.z**2
|
||||||
|
return math.sqrt(l)
|
||||||
|
else:
|
||||||
|
m = args[0] / self.length()
|
||||||
|
return self * m
|
||||||
|
|
||||||
|
def __rmul__ (self, other):
|
||||||
|
return self.mul(other, self)
|
||||||
|
def __mul__(self, other):
|
||||||
|
return self.mul(self, other)
|
||||||
|
def mul(self, a, b=None):
|
||||||
|
if not isinstance(a, Vec):
|
||||||
|
# flip a and b
|
||||||
|
b = a
|
||||||
|
a = self
|
||||||
|
if(isinstance(b, Vec)):
|
||||||
|
result = a.x * b.x
|
||||||
|
result += a.y * b.y
|
||||||
|
result += a.z * b.z
|
||||||
|
return result
|
||||||
|
elif(isinstance(b, (int, float))):
|
||||||
|
n = Vec()
|
||||||
|
n.x = a.x * b
|
||||||
|
n.y = a.y * b
|
||||||
|
n.z = a.z * b
|
||||||
|
return n
|
||||||
|
else:
|
||||||
|
print('WARNING: tried to multiply Vec with ' + str(type(b)))
|
||||||
|
return b
|
||||||
|
|
||||||
|
def __neg__(self):
|
||||||
|
return ~self
|
||||||
|
def __inv__(self):
|
||||||
|
return Vec(-self.x, -self.y, -self.z)
|
||||||
|
|
||||||
|
#TODO: alow scaler
|
||||||
|
def __pow__(self, other):
|
||||||
|
n = Vec()
|
||||||
|
n.x = self.y * other.z - self.z * other.y
|
||||||
|
n.y = self.z * other.x - self.x * other.z
|
||||||
|
n.z = self.x * other.y - self.y * other.x
|
||||||
|
return n
|
||||||
|
|
||||||
|
def __add__(self, other):
|
||||||
|
if isinstance(other, Vec):
|
||||||
|
n = Vec()
|
||||||
|
n.x = self.y + other.z
|
||||||
|
n.y = self.z + other.x
|
||||||
|
n.z = self.x + other.y
|
||||||
|
return n
|
||||||
|
elif isinstance(other, (tuple, list)):
|
||||||
|
n = Vec()
|
||||||
|
n.x = self.y + other[0]
|
||||||
|
n.y = self.z + other[1]
|
||||||
|
n.z = self.x + other[2]
|
||||||
|
return n
|
||||||
|
elif isinstance(other, (float, int)):
|
||||||
|
n = Vec(self.cartesian())
|
||||||
|
n.length(self.length() + other)
|
||||||
|
return n
|
||||||
|
else:
|
||||||
|
print('WARNING: tried to add Vec with ' + str(type(other)))
|
||||||
|
return other
|
||||||
|
|
||||||
|
def setitem(self, index, value):
|
||||||
|
if(index == 0):
|
||||||
|
self.x = value
|
||||||
|
elif(index == 1):
|
||||||
|
self.y = value
|
||||||
|
elif(index == 2):
|
||||||
|
self.z = value
|
||||||
|
else:
|
||||||
|
print('ERROR: tried to set index ' + str(index) + ' of a Vec')
|
||||||
|
def getitem(self, index):
|
||||||
|
if(index == 0):
|
||||||
|
return self.x
|
||||||
|
elif(index == 1):
|
||||||
|
return self.y
|
||||||
|
elif(index == 2):
|
||||||
|
return self.z
|
||||||
|
else:
|
||||||
|
print('ERROR: tried to get index ' + str(index) + ' of a Vec')
|
||||||
|
return None
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return "Vec" + str(self.cartesian())
|
||||||
|
|
||||||
|
def __lt__(self, other):
|
||||||
|
return self.length() < other.length()
|
||||||
|
def __le__(self, other):
|
||||||
|
return self.length() <= other.length()
|
||||||
|
def __eq__(self, other):
|
||||||
|
return self.length() == other.length()
|
||||||
|
def __ne__(self, other):
|
||||||
|
return self.length() != other.length()
|
||||||
|
def __ge__(self, other):
|
||||||
|
return self.length() >= other.length()
|
||||||
|
def __gt__(self, other):
|
||||||
|
return self.length() > other.length()
|
||||||
|
|
||||||
|
|
||||||
404
subprocess
Normal file
404
subprocess
Normal file
@ -0,0 +1,404 @@
|
|||||||
|
%!PS-Adobe-3.0
|
||||||
|
%%Creator: (ImageMagick)
|
||||||
|
%%Title: (subprocess)
|
||||||
|
%%CreationDate: (2020-07-20T17:12:41+00:00)
|
||||||
|
%%BoundingBox: 1122 681 1175 765
|
||||||
|
%%HiResBoundingBox: 1122 681 1175 765
|
||||||
|
%%DocumentData: Clean7Bit
|
||||||
|
%%LanguageLevel: 1
|
||||||
|
%%Orientation: Portrait
|
||||||
|
%%PageOrder: Ascend
|
||||||
|
%%Pages: 1
|
||||||
|
%%EndComments
|
||||||
|
|
||||||
|
%%BeginDefaults
|
||||||
|
%%EndDefaults
|
||||||
|
|
||||||
|
%%BeginProlog
|
||||||
|
%
|
||||||
|
% Display a color image. The image is displayed in color on
|
||||||
|
% Postscript viewers or printers that support color, otherwise
|
||||||
|
% it is displayed as grayscale.
|
||||||
|
%
|
||||||
|
/DirectClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a DirectClass packet.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% red.
|
||||||
|
% green.
|
||||||
|
% blue.
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile color_packet readhexstring pop pop
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 3 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add 3 mul def
|
||||||
|
} ifelse
|
||||||
|
0 3 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch color_packet putinterval
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/DirectClassImage
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Display a DirectClass image.
|
||||||
|
%
|
||||||
|
systemdict /colorimage known
|
||||||
|
{
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ DirectClassPacket } false 3 colorimage
|
||||||
|
}
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% No colorimage operator; convert to grayscale.
|
||||||
|
%
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ GrayDirectClassPacket } image
|
||||||
|
} ifelse
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/GrayDirectClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a DirectClass packet; convert to grayscale.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% red
|
||||||
|
% green
|
||||||
|
% blue
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile color_packet readhexstring pop pop
|
||||||
|
color_packet 0 get 0.299 mul
|
||||||
|
color_packet 1 get 0.587 mul add
|
||||||
|
color_packet 2 get 0.114 mul add
|
||||||
|
cvi
|
||||||
|
/gray_packet exch def
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 1 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add def
|
||||||
|
} ifelse
|
||||||
|
0 1 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch gray_packet put
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/GrayPseudoClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a PseudoClass packet; convert to grayscale.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% index: index into the colormap.
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/offset exch 3 mul def
|
||||||
|
/color_packet colormap offset 3 getinterval def
|
||||||
|
color_packet 0 get 0.299 mul
|
||||||
|
color_packet 1 get 0.587 mul add
|
||||||
|
color_packet 2 get 0.114 mul add
|
||||||
|
cvi
|
||||||
|
/gray_packet exch def
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 1 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add def
|
||||||
|
} ifelse
|
||||||
|
0 1 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch gray_packet put
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/PseudoClassPacket
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Get a PseudoClass packet.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% index: index into the colormap.
|
||||||
|
% length: number of pixels minus one of this color (optional).
|
||||||
|
%
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/offset exch 3 mul def
|
||||||
|
/color_packet colormap offset 3 getinterval def
|
||||||
|
compression 0 eq
|
||||||
|
{
|
||||||
|
/number_pixels 3 def
|
||||||
|
}
|
||||||
|
{
|
||||||
|
currentfile byte readhexstring pop 0 get
|
||||||
|
/number_pixels exch 1 add 3 mul def
|
||||||
|
} ifelse
|
||||||
|
0 3 number_pixels 1 sub
|
||||||
|
{
|
||||||
|
pixels exch color_packet putinterval
|
||||||
|
} for
|
||||||
|
pixels 0 number_pixels getinterval
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/PseudoClassImage
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Display a PseudoClass image.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% class: 0-PseudoClass or 1-Grayscale.
|
||||||
|
%
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /class exch def pop
|
||||||
|
class 0 gt
|
||||||
|
{
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /depth exch def pop
|
||||||
|
/grays columns 8 add depth sub depth mul 8 idiv string def
|
||||||
|
columns rows depth
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ currentfile grays readhexstring pop } image
|
||||||
|
}
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% colors: number of colors in the colormap.
|
||||||
|
% colormap: red, green, blue color packets.
|
||||||
|
%
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /colors exch def pop
|
||||||
|
/colors colors 3 mul def
|
||||||
|
/colormap colors string def
|
||||||
|
currentfile colormap readhexstring pop pop
|
||||||
|
systemdict /colorimage known
|
||||||
|
{
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ PseudoClassPacket } false 3 colorimage
|
||||||
|
}
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% No colorimage operator; convert to grayscale.
|
||||||
|
%
|
||||||
|
columns rows 8
|
||||||
|
[
|
||||||
|
columns 0 0
|
||||||
|
rows neg 0 rows
|
||||||
|
]
|
||||||
|
{ GrayPseudoClassPacket } image
|
||||||
|
} ifelse
|
||||||
|
} ifelse
|
||||||
|
} bind def
|
||||||
|
|
||||||
|
/DisplayImage
|
||||||
|
{
|
||||||
|
%
|
||||||
|
% Display a DirectClass or PseudoClass image.
|
||||||
|
%
|
||||||
|
% Parameters:
|
||||||
|
% x & y translation.
|
||||||
|
% x & y scale.
|
||||||
|
% label pointsize.
|
||||||
|
% image label.
|
||||||
|
% image columns & rows.
|
||||||
|
% class: 0-DirectClass or 1-PseudoClass.
|
||||||
|
% compression: 0-none or 1-RunlengthEncoded.
|
||||||
|
% hex color packets.
|
||||||
|
%
|
||||||
|
gsave
|
||||||
|
/buffer 512 string def
|
||||||
|
/byte 1 string def
|
||||||
|
/color_packet 3 string def
|
||||||
|
/pixels 768 string def
|
||||||
|
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /x exch def
|
||||||
|
token pop /y exch def pop
|
||||||
|
x y translate
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /x exch def
|
||||||
|
token pop /y exch def pop
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /pointsize exch def pop
|
||||||
|
x y scale
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /columns exch def
|
||||||
|
token pop /rows exch def pop
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /class exch def pop
|
||||||
|
currentfile buffer readline pop
|
||||||
|
token pop /compression exch def pop
|
||||||
|
class 0 gt { PseudoClassImage } { DirectClassImage } ifelse
|
||||||
|
grestore
|
||||||
|
showpage
|
||||||
|
} bind def
|
||||||
|
%%EndProlog
|
||||||
|
%%Page: 1 1
|
||||||
|
%%PageBoundingBox: 1122 681 1175 765
|
||||||
|
DisplayImage
|
||||||
|
1122 681
|
||||||
|
53 84
|
||||||
|
12
|
||||||
|
53 84
|
||||||
|
1
|
||||||
|
1
|
||||||
|
1
|
||||||
|
8
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
|
||||||
|
%%PageTrailer
|
||||||
|
%%Trailer
|
||||||
|
%%EOF
|
||||||
Reference in New Issue
Block a user