From 40711574b46b167f7b6a6071a434a61189419d45 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Fri, 18 Oct 2024 18:43:18 +0200 Subject: [PATCH 01/30] Starting to add examples --- assets/mesh1.geo | 9 + assets/mesh1.msh | 6366 ++++++++++++++++++++++++++++++++++++++++++ docs/Project.toml | 4 + docs/make.jl | 11 +- docs/src/examples.jl | 66 + 5 files changed, 6455 insertions(+), 1 deletion(-) create mode 100644 assets/mesh1.geo create mode 100644 assets/mesh1.msh create mode 100644 docs/src/examples.jl diff --git a/assets/mesh1.geo b/assets/mesh1.geo new file mode 100644 index 00000000..8d151ac4 --- /dev/null +++ b/assets/mesh1.geo @@ -0,0 +1,9 @@ +SetFactory("OpenCASCADE"); +Box(1) = {0, 0, 0, 1, 1, 1}; +Cylinder(2) = {0, 0.5, 0.5, 1, 0, 0, 0.4, 2*Pi}; +Cylinder(3) = {0.5, 0.0, 0.5, 0, 1, 0, 0.4, 2*Pi}; +BooleanUnion{ Volume{3}; Delete; }{ Volume{2}; Delete; } +BooleanDifference{ Volume{1}; Delete; }{ Volume{2}; Delete; } +Physical Surface("top") = {14}; +Physical Surface("bottom") = {15}; +Physical Volume("volume") = {1}; diff --git a/assets/mesh1.msh b/assets/mesh1.msh new file mode 100644 index 00000000..319f153f --- /dev/null +++ b/assets/mesh1.msh @@ -0,0 +1,6366 @@ +$MeshFormat +4.1 0 8 +$EndMeshFormat +$PhysicalNames +3 +2 1 "top" +2 2 "bottom" +3 3 "volume" +$EndPhysicalNames +$Entities +16 26 10 1 +9 0.4999999999999999 0.5000000000000001 0.9 0 +10 0.4999999999999999 1 0.9 0 +11 0.09999999999999998 0.9 0.5 0 +12 0.5 0.5 0.09999999999999998 0 +13 0.9 0.9 0.5 0 +14 0 0.5000000000000001 0.9 0 +15 1 0.5000000000000001 0.9 0 +16 0.4999999999999999 0 0.9 0 +17 0 0 1 0 +18 0 0 0 0 +19 0 1 1 0 +20 0 1 0 0 +21 1 0 0 0 +22 1 0 1 0 +23 1 1 1 0 +24 1 1 0 0 +13 0.4999998999999999 0.4999999000000001 0.8999999000000001 0.5000000999999998 1.0000001 0.9000001 0 2 9 -10 +14 0.09999989999999997 0.4999999 0.4999999 0.5000000999999999 0.9000001 0.9000001 0 2 11 -9 +15 0.09999989999999997 0.4999998999999999 0.09999989999999997 0.5000001000000001 0.9000001 0.5000000999999998 0 2 12 -11 +16 0.4999999 0.4999999 0.09999989999999997 0.9000001 0.9000001 0.5000000999999999 0 2 13 -12 +17 0.4999998999999999 0.4999998999999999 0.4999999000000001 0.9000001 0.9000001 0.9000001 0 2 9 -13 +18 0.09999989999999997 0.9999999000000001 0.09999989999999997 0.9000001 1.0000001 0.9000001 0 2 10 -10 +19 0.09999989999999997 0.09999989999999997 0.09999989999999997 0.5000000999999999 0.5000000999999999 0.9000001 0 2 12 -9 +20 -9.999999997511999e-08 0.4999999000000001 0.8999999000000001 0.5000000999999998 0.5000001000000001 0.9000001 0 2 14 -9 +21 -1e-07 0.09999989999999997 0.09999989999999997 1e-07 0.9000001 0.9000001 0 2 14 -14 +22 0.4999998999999999 0.4999999000000001 0.8999999000000001 1.0000001 0.5000001000000001 0.9000001 0 2 9 -15 +23 0.4999999 0.09999989999999997 0.09999989999999997 0.9000001 0.5000000999999999 0.9000001 0 2 9 -12 +24 0.9999999000000001 0.09999989999999997 0.09999989999999997 1.0000001 0.9000001 0.9000001 0 2 15 -15 +25 0.4999998999999999 -1.000000000028756e-07 0.8999999000000001 0.5000000999999998 0.5000001000000001 0.9000001 0 2 16 -9 +26 0.09999989999999997 -1e-07 0.09999989999999997 0.9000001 1e-07 0.9000001 0 2 16 -16 +27 -1e-07 -1e-07 -9.999999994736442e-08 1e-07 1e-07 1.0000001 0 2 18 -17 +28 -1e-07 -9.999999994736442e-08 0.9999999000000001 1e-07 1.0000001 1.0000001 0 2 17 -19 +29 -1e-07 -9.999999994736442e-08 -1e-07 1e-07 1.0000001 1e-07 0 2 18 -20 +30 -1e-07 0.9999999000000001 -9.999999994736442e-08 1e-07 1.0000001 1.0000001 0 2 20 -19 +31 -9.999999994736442e-08 -1e-07 -1e-07 1.0000001 1e-07 1e-07 0 2 18 -21 +32 0.9999999000000001 -1e-07 -9.999999994736442e-08 1.0000001 1e-07 1.0000001 0 2 21 -22 +33 -9.999999994736442e-08 -1e-07 0.9999999000000001 1.0000001 1e-07 1.0000001 0 2 17 -22 +34 -9.999999994736442e-08 0.9999999000000001 0.9999999000000001 1.0000001 1.0000001 1.0000001 0 2 19 -23 +35 0.9999999000000001 -9.999999994736442e-08 0.9999999000000001 1.0000001 1.0000001 1.0000001 0 2 22 -23 +36 -9.999999994736442e-08 0.9999999000000001 -1e-07 1.0000001 1.0000001 1e-07 0 2 20 -24 +37 0.9999999000000001 -9.999999994736442e-08 -1e-07 1.0000001 1.0000001 1e-07 0 2 21 -24 +38 0.9999999000000001 0.9999999000000001 -9.999999994736442e-08 1.0000001 1.0000001 1.0000001 0 2 24 -23 +7 0.09999989999999997 0.4999998999999999 0.09999989999999997 0.9000001 1.0000001 0.9000001 0 7 13 18 -13 -14 -15 -16 -17 +8 -1.000000000028756e-07 0.09999989999999997 0.09999989999999997 0.5000001000000001 0.9000001 0.9000001 0 6 19 -20 21 20 -14 -15 +9 0.4999998999999999 0.09999989999999997 0.09999989999999997 1.0000001 0.9000001 0.9000001 0 6 22 24 -22 17 16 -23 +11 0.09999989999999997 -1.000000000028756e-07 0.09999989999999997 0.9000001 0.5000001000000001 0.9000001 0 5 23 19 -25 26 25 +12 -1e-07 -9.999999994736442e-08 -9.999999994736442e-08 1e-07 1.0000001 1.0000001 0 5 27 28 -30 -29 21 +13 -9.999999994736442e-08 -1e-07 -9.999999994736442e-08 1.0000001 1e-07 1.0000001 0 5 31 32 -33 -27 26 +14 -9.999999994736442e-08 -9.999999994736442e-08 0.9999999000000001 1.0000001 1.0000001 1.0000001 1 1 4 28 34 -35 -33 +15 -9.999999994736442e-08 -9.999999994736442e-08 -1e-07 1.0000001 1.0000001 1e-07 1 2 4 29 36 -37 -31 +16 -9.999999994736442e-08 0.9999999000000001 -9.999999994736442e-08 1.0000001 1.0000001 1.0000001 0 5 36 38 -34 -30 18 +17 0.9999999000000001 -9.999999994736442e-08 -9.999999994736442e-08 1.0000001 1.0000001 1.0000001 0 5 32 35 -38 -37 24 +1 -9.999999994736442e-08 -9.999999994736442e-08 -9.999999994736442e-08 1.0000001 1.0000001 1.0000001 1 3 10 12 13 14 15 16 8 17 11 7 9 +$EndEntities +$Nodes +53 1151 1 1151 +0 9 0 1 +1 +0.4999999999999999 0.5000000000000001 0.9 +0 10 0 1 +2 +0.4999999999999999 1 0.9 +0 11 0 1 +3 +0.09999999999999998 0.9 0.5 +0 12 0 1 +4 +0.5 0.5 0.09999999999999998 +0 13 0 1 +5 +0.9 0.9 0.5 +0 14 0 1 +6 +0 0.5000000000000001 0.9 +0 15 0 1 +7 +1 0.5000000000000001 0.9 +0 16 0 1 +8 +0.4999999999999999 0 0.9 +0 17 0 1 +9 +0 0 1 +0 18 0 1 +10 +0 0 0 +0 19 0 1 +11 +0 1 1 +0 20 0 1 +12 +0 1 0 +0 21 0 1 +13 +1 0 0 +0 22 0 1 +14 +1 0 1 +0 23 0 1 +15 +1 1 1 +0 24 0 1 +16 +1 1 0 +1 13 0 5 +17 +18 +19 +20 +21 +0.4999999999999999 0.5833333333333333 0.9 +0.4999999999999999 0.6666666666666663 0.9 +0.4999999999999999 0.7499999999999993 0.9 +0.4999999999999999 0.8333333333333324 0.9 +0.4999999999999999 0.9166666666666662 0.9 +1 14 0 8 +22 +23 +24 +25 +26 +27 +28 +29 +0.1088459347770961 0.891154065222904 0.583657021579759 +0.1336885446865833 0.8663114553134168 0.6606733260568373 +0.1707878491728263 0.8292121508271737 0.7271989431043777 +0.2164487583114175 0.7835512416885826 0.7821324039114669 +0.2678776722659601 0.7321223277340398 0.8257594587534351 +0.3231343378253927 0.6768656621746072 0.858773657817206 +0.3808668824367097 0.6191331175632903 0.8818472211495735 +0.4400847441853629 0.5599152558146371 0.8954872464703085 +1 15 0 8 +30 +31 +32 +33 +34 +35 +36 +37 +0.4400847441853629 0.5599152558146372 0.1045127535296914 +0.3808668824367101 0.6191331175632899 0.1181527788504264 +0.323134337825393 0.676865662174607 0.1412263421827937 +0.2678776722659605 0.7321223277340395 0.1742405412465646 +0.2164487583114177 0.7835512416885823 0.2178675960885329 +0.1707878491728266 0.8292121508271734 0.2728010568956218 +0.1336885446865835 0.8663114553134165 0.3393266739431622 +0.1088459347770963 0.8911540652229037 0.4163429784202405 +1 16 0 8 +38 +39 +40 +41 +42 +43 +44 +45 +0.891154065222904 0.891154065222904 0.416342978420241 +0.8663114553134168 0.8663114553134168 0.3393266739431627 +0.8292121508271737 0.8292121508271737 0.2728010568956223 +0.7835512416885826 0.7835512416885826 0.2178675960885331 +0.7321223277340398 0.7321223277340398 0.1742405412465649 +0.6768656621746072 0.6768656621746072 0.1412263421827939 +0.6191331175632903 0.6191331175632903 0.1181527788504265 +0.5599152558146371 0.5599152558146371 0.1045127535296914 +1 17 0 8 +46 +47 +48 +49 +50 +51 +52 +53 +0.5599152558146372 0.5599152558146372 0.8954872464703085 +0.6191331175632899 0.6191331175632899 0.8818472211495736 +0.676865662174607 0.676865662174607 0.8587736578172063 +0.7321223277340395 0.7321223277340395 0.8257594587534354 +0.7835512416885823 0.7835512416885823 0.7821324039114671 +0.8292121508271734 0.8292121508271734 0.7271989431043782 +0.8663114553134165 0.8663114553134165 0.6606733260568378 +0.8911540652229037 0.8911540652229037 0.5836570215797595 +1 18 0 29 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +0.5831646763271039 1 0.8912590402935223 +0.6626946572303203 1 0.8654181830570402 +0.7351141009169896 1 0.8236067977499788 +0.7972579301909581 1 0.7676522425435429 +0.8464101615137758 1 0.6999999999999995 +0.8804226065180616 1 0.6236067977499783 +0.8978087581473094 1 0.5418113853070606 +0.8978087581473093 1 0.4581886146929378 +0.8804226065180611 1 0.3763932022500202 +0.8464101615137749 1 0.299999999999999 +0.7972579301909568 1 0.2323477574564556 +0.7351141009169877 1 0.1763932022500199 +0.6626946572303181 1 0.1345818169429587 +0.5831646763271013 1 0.1087409597064772 +0.4999999999999972 1 0.09999999999999998 +0.4168353236728931 1 0.1087409597064784 +0.3373053427696767 1 0.1345818169429611 +0.2648858990830082 1 0.1763932022500229 +0.20274206980904 1 0.2323477574564592 +0.153589838486223 1 0.3000000000000026 +0.1195773934819377 1 0.3763932022500237 +0.1021912418526904 1 0.4581886146929408 +0.1021912418526909 1 0.5418113853070636 +0.1195773934819392 1 0.623606797749981 +0.1535898384862253 1 0.7000000000000013 +0.2027420698090431 1 0.7676522425435441 +0.2648858990830112 1 0.8236067977499794 +0.3373053427696806 1 0.8654181830570407 +0.4168353236728964 1 0.8912590402935223 +1 19 0 17 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +0.4400847441853627 0.4400847441853627 0.1045127535296915 +0.3808668824367098 0.3808668824367098 0.1181527788504265 +0.3231343378253928 0.3231343378253928 0.1412263421827938 +0.2678776722659603 0.2678776722659603 0.1742405412465647 +0.2164487583114177 0.2164487583114177 0.2178675960885329 +0.1707878491728265 0.1707878491728265 0.272801056895622 +0.1336885446865834 0.1336885446865834 0.3393266739431624 +0.1088459347770963 0.1088459347770963 0.4163429784202402 +0.09999999999999998 0.09999999999999998 0.4999999999999994 +0.1088459347770959 0.1088459347770959 0.5836570215797583 +0.1336885446865833 0.1336885446865833 0.6606733260568372 +0.1707878491728278 0.1707878491728278 0.7271989431043798 +0.2164487583114199 0.2164487583114199 0.7821324039114692 +0.2678776722659618 0.2678776722659618 0.8257594587534363 +0.3231343378253941 0.3231343378253941 0.8587736578172068 +0.38086688243671 0.38086688243671 0.8818472211495736 +0.4400847441853624 0.4400847441853624 0.8954872464703085 +1 20 0 5 +100 +101 +102 +103 +104 +0.08333333333333311 0.5000000000000001 0.9 +0.1666666666666662 0.5000000000000001 0.9 +0.2499999999999992 0.5000000000000001 0.9 +0.3333333333333323 0.5000000000000001 0.9 +0.416666666666666 0.5000000000000001 0.9 +1 21 0 29 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +0 0.4168353236728961 0.8912590402935223 +0 0.3373053427696797 0.8654181830570402 +0 0.2648858990830104 0.8236067977499788 +0 0.2027420698090419 0.7676522425435429 +0 0.1535898384862242 0.6999999999999995 +0 0.1195773934819384 0.6236067977499783 +0 0.1021912418526906 0.5418113853070606 +0 0.1021912418526907 0.4581886146929378 +0 0.1195773934819389 0.3763932022500202 +0 0.1535898384862251 0.299999999999999 +0 0.2027420698090432 0.2323477574564556 +0 0.2648858990830123 0.1763932022500199 +0 0.3373053427696819 0.1345818169429587 +0 0.4168353236728987 0.1087409597064772 +0 0.5000000000000028 0.09999999999999998 +0 0.5831646763271069 0.1087409597064784 +0 0.6626946572303234 0.1345818169429611 +0 0.7351141009169918 0.1763932022500229 +0 0.79725793019096 0.2323477574564592 +0 0.8464101615137769 0.3000000000000026 +0 0.8804226065180623 0.3763932022500237 +0 0.8978087581473095 0.4581886146929408 +0 0.8978087581473091 0.5418113853070636 +0 0.8804226065180608 0.623606797749981 +0 0.8464101615137747 0.7000000000000013 +0 0.7972579301909569 0.7676522425435441 +0 0.7351141009169888 0.8236067977499794 +0 0.6626946572303194 0.8654181830570407 +0 0.5831646763271036 0.8912590402935223 +1 22 0 5 +134 +135 +136 +137 +138 +0.583333333333333 0.5000000000000001 0.9 +0.6666666666666661 0.5000000000000001 0.9 +0.7499999999999992 0.5000000000000001 0.9 +0.8333333333333324 0.5000000000000001 0.9 +0.9166666666666661 0.5000000000000001 0.9 +1 23 0 17 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +0.5599152558146373 0.4400847441853627 0.8954872464703085 +0.6191331175632903 0.3808668824367098 0.8818472211495735 +0.6768656621746072 0.3231343378253928 0.8587736578172062 +0.7321223277340397 0.2678776722659603 0.8257594587534353 +0.7835512416885824 0.2164487583114177 0.7821324039114671 +0.8292121508271735 0.1707878491728265 0.7271989431043779 +0.8663114553134166 0.1336885446865834 0.6606733260568376 +0.8911540652229037 0.1088459347770963 0.5836570215797598 +0.9 0.09999999999999998 0.5000000000000006 +0.8911540652229041 0.1088459347770959 0.4163429784202416 +0.8663114553134168 0.1336885446865833 0.3393266739431628 +0.8292121508271721 0.1707878491728278 0.2728010568956202 +0.7835512416885801 0.2164487583114199 0.2178675960885307 +0.7321223277340382 0.2678776722659618 0.1742405412465637 +0.6768656621746059 0.3231343378253941 0.1412263421827932 +0.61913311756329 0.38086688243671 0.1181527788504265 +0.5599152558146376 0.4400847441853624 0.1045127535296915 +1 24 0 29 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +1 0.4168353236728961 0.8912590402935223 +1 0.3373053427696797 0.8654181830570402 +1 0.2648858990830104 0.8236067977499788 +1 0.2027420698090419 0.7676522425435429 +1 0.1535898384862242 0.6999999999999995 +1 0.1195773934819384 0.6236067977499783 +1 0.1021912418526906 0.5418113853070606 +1 0.1021912418526907 0.4581886146929378 +1 0.1195773934819389 0.3763932022500202 +1 0.1535898384862251 0.299999999999999 +1 0.2027420698090432 0.2323477574564556 +1 0.2648858990830123 0.1763932022500199 +1 0.3373053427696819 0.1345818169429587 +1 0.4168353236728987 0.1087409597064772 +1 0.5000000000000028 0.09999999999999998 +1 0.5831646763271069 0.1087409597064784 +1 0.6626946572303234 0.1345818169429611 +1 0.7351141009169918 0.1763932022500229 +1 0.79725793019096 0.2323477574564592 +1 0.8464101615137769 0.3000000000000026 +1 0.8804226065180623 0.3763932022500237 +1 0.8978087581473095 0.4581886146929408 +1 0.8978087581473091 0.5418113853070636 +1 0.8804226065180608 0.623606797749981 +1 0.8464101615137747 0.7000000000000013 +1 0.7972579301909569 0.7676522425435441 +1 0.7351141009169888 0.8236067977499794 +1 0.6626946572303194 0.8654181830570407 +1 0.5831646763271036 0.8912590402935223 +1 25 0 5 +185 +186 +187 +188 +189 +0.4999999999999999 0.08333333333333313 0.9 +0.4999999999999999 0.1666666666666662 0.9 +0.4999999999999999 0.2499999999999993 0.9 +0.4999999999999999 0.3333333333333324 0.9 +0.4999999999999999 0.4166666666666662 0.9 +1 26 0 29 +190 +191 +192 +193 +194 +195 +196 +197 +198 +199 +200 +201 +202 +203 +204 +205 +206 +207 +208 +209 +210 +211 +212 +213 +214 +215 +216 +217 +218 +0.5831646763271039 0 0.8912590402935223 +0.6626946572303203 0 0.8654181830570402 +0.7351141009169896 0 0.8236067977499788 +0.7972579301909581 0 0.7676522425435429 +0.8464101615137758 0 0.6999999999999995 +0.8804226065180616 0 0.6236067977499783 +0.8978087581473094 0 0.5418113853070606 +0.8978087581473093 0 0.4581886146929378 +0.8804226065180611 0 0.3763932022500202 +0.8464101615137749 0 0.299999999999999 +0.7972579301909568 0 0.2323477574564556 +0.7351141009169877 0 0.1763932022500199 +0.6626946572303181 0 0.1345818169429587 +0.5831646763271013 0 0.1087409597064772 +0.4999999999999972 0 0.09999999999999998 +0.4168353236728931 0 0.1087409597064784 +0.3373053427696767 0 0.1345818169429611 +0.2648858990830082 0 0.1763932022500229 +0.20274206980904 0 0.2323477574564592 +0.153589838486223 0 0.3000000000000026 +0.1195773934819377 0 0.3763932022500237 +0.1021912418526904 0 0.4581886146929408 +0.1021912418526909 0 0.5418113853070636 +0.1195773934819392 0 0.623606797749981 +0.1535898384862253 0 0.7000000000000013 +0.2027420698090431 0 0.7676522425435441 +0.2648858990830112 0 0.8236067977499794 +0.3373053427696806 0 0.8654181830570407 +0.4168353236728964 0 0.8912590402935223 +1 27 0 11 +219 +220 +221 +222 +223 +224 +225 +226 +227 +228 +229 +0 0 0.08333333333333316 +0 0 0.1666666666666662 +0 0 0.2499999999999993 +0 0 0.3333333333333324 +0 0 0.4166666666666654 +0 0 0.4999999999999986 +0 0 0.5833333333333316 +0 0 0.6666666666666646 +0 0 0.7499999999999983 +0 0 0.8333333333333321 +0 0 0.9166666666666662 +1 28 0 11 +230 +231 +232 +233 +234 +235 +236 +237 +238 +239 +240 +0 0.08333333333333316 1 +0 0.1666666666666662 1 +0 0.2499999999999993 1 +0 0.3333333333333324 1 +0 0.4166666666666654 1 +0 0.4999999999999986 1 +0 0.5833333333333316 1 +0 0.6666666666666646 1 +0 0.7499999999999983 1 +0 0.8333333333333321 1 +0 0.9166666666666662 1 +1 29 0 11 +241 +242 +243 +244 +245 +246 +247 +248 +249 +250 +251 +0 0.08333333333333316 0 +0 0.1666666666666662 0 +0 0.2499999999999993 0 +0 0.3333333333333324 0 +0 0.4166666666666654 0 +0 0.4999999999999986 0 +0 0.5833333333333316 0 +0 0.6666666666666646 0 +0 0.7499999999999983 0 +0 0.8333333333333321 0 +0 0.9166666666666662 0 +1 30 0 11 +252 +253 +254 +255 +256 +257 +258 +259 +260 +261 +262 +0 1 0.08333333333333316 +0 1 0.1666666666666662 +0 1 0.2499999999999993 +0 1 0.3333333333333324 +0 1 0.4166666666666654 +0 1 0.4999999999999986 +0 1 0.5833333333333316 +0 1 0.6666666666666646 +0 1 0.7499999999999983 +0 1 0.8333333333333321 +0 1 0.9166666666666662 +1 31 0 11 +263 +264 +265 +266 +267 +268 +269 +270 +271 +272 +273 +0.08333333333333316 0 0 +0.1666666666666662 0 0 +0.2499999999999993 0 0 +0.3333333333333324 0 0 +0.4166666666666654 0 0 +0.4999999999999986 0 0 +0.5833333333333316 0 0 +0.6666666666666646 0 0 +0.7499999999999983 0 0 +0.8333333333333321 0 0 +0.9166666666666662 0 0 +1 32 0 11 +274 +275 +276 +277 +278 +279 +280 +281 +282 +283 +284 +1 0 0.08333333333333316 +1 0 0.1666666666666662 +1 0 0.2499999999999993 +1 0 0.3333333333333324 +1 0 0.4166666666666654 +1 0 0.4999999999999986 +1 0 0.5833333333333316 +1 0 0.6666666666666646 +1 0 0.7499999999999983 +1 0 0.8333333333333321 +1 0 0.9166666666666662 +1 33 0 11 +285 +286 +287 +288 +289 +290 +291 +292 +293 +294 +295 +0.08333333333333316 0 1 +0.1666666666666662 0 1 +0.2499999999999993 0 1 +0.3333333333333324 0 1 +0.4166666666666654 0 1 +0.4999999999999986 0 1 +0.5833333333333316 0 1 +0.6666666666666646 0 1 +0.7499999999999983 0 1 +0.8333333333333321 0 1 +0.9166666666666662 0 1 +1 34 0 11 +296 +297 +298 +299 +300 +301 +302 +303 +304 +305 +306 +0.08333333333333316 1 1 +0.1666666666666662 1 1 +0.2499999999999993 1 1 +0.3333333333333324 1 1 +0.4166666666666654 1 1 +0.4999999999999986 1 1 +0.5833333333333316 1 1 +0.6666666666666646 1 1 +0.7499999999999983 1 1 +0.8333333333333321 1 1 +0.9166666666666662 1 1 +1 35 0 11 +307 +308 +309 +310 +311 +312 +313 +314 +315 +316 +317 +1 0.08333333333333316 1 +1 0.1666666666666662 1 +1 0.2499999999999993 1 +1 0.3333333333333324 1 +1 0.4166666666666654 1 +1 0.4999999999999986 1 +1 0.5833333333333316 1 +1 0.6666666666666646 1 +1 0.7499999999999983 1 +1 0.8333333333333321 1 +1 0.9166666666666662 1 +1 36 0 11 +318 +319 +320 +321 +322 +323 +324 +325 +326 +327 +328 +0.08333333333333316 1 0 +0.1666666666666662 1 0 +0.2499999999999993 1 0 +0.3333333333333324 1 0 +0.4166666666666654 1 0 +0.4999999999999986 1 0 +0.5833333333333316 1 0 +0.6666666666666646 1 0 +0.7499999999999983 1 0 +0.8333333333333321 1 0 +0.9166666666666662 1 0 +1 37 0 11 +329 +330 +331 +332 +333 +334 +335 +336 +337 +338 +339 +1 0.08333333333333316 0 +1 0.1666666666666662 0 +1 0.2499999999999993 0 +1 0.3333333333333324 0 +1 0.4166666666666654 0 +1 0.4999999999999986 0 +1 0.5833333333333316 0 +1 0.6666666666666646 0 +1 0.7499999999999983 0 +1 0.8333333333333321 0 +1 0.9166666666666662 0 +1 38 0 11 +340 +341 +342 +343 +344 +345 +346 +347 +348 +349 +350 +1 1 0.08333333333333316 +1 1 0.1666666666666662 +1 1 0.2499999999999993 +1 1 0.3333333333333324 +1 1 0.4166666666666654 +1 1 0.4999999999999986 +1 1 0.5833333333333316 +1 1 0.6666666666666646 +1 1 0.7499999999999983 +1 1 0.8333333333333321 +1 1 0.9166666666666662 +2 7 0 61 +351 +352 +353 +354 +355 +356 +357 +358 +359 +360 +361 +362 +363 +364 +365 +366 +367 +368 +369 +370 +371 +372 +373 +374 +375 +376 +377 +378 +379 +380 +381 +382 +383 +384 +385 +386 +387 +388 +389 +390 +391 +392 +393 +394 +395 +396 +397 +398 +399 +400 +401 +402 +403 +404 +405 +406 +407 +408 +409 +410 +411 +0.6628314766449059 0.9233692235792842 0.8653572364325626 +0.7279004468381963 0.8962666521420274 0.8287269175637286 +0.773131220759556 0.9274162264283581 0.7922316482628031 +0.134307092756868 0.9347685476493579 0.3379237907894372 +0.8650475437990206 0.9348908569731835 0.6635245876506104 +0.4288848116724625 0.7697703774648732 0.1063724730292114 +0.3630548931091137 0.823692430523554 0.1241728619449578 +0.359793986657639 0.7284504599230843 0.1253771579005871 +0.447369994928341 0.6602723574851015 0.8965224868354342 +0.6666317953429924 0.8430427403122938 0.8636397183762674 +0.2855827828591714 0.90795564637639 0.8376762606307746 +0.2313957288706077 0.9383701215114066 0.7963979512936078 +0.7075819435195428 0.9405268147539454 0.1580793414772232 +0.6334398462763108 0.9500333237925718 0.1229140583026801 +0.6781807632417095 0.8838456252169092 0.1418776527349879 +0.7829489115288859 0.855952709364933 0.7827364735307751 +0.726824447957918 0.8127119114879705 0.8294702866854395 +0.3114948218179499 0.912662145010772 0.1472028942882984 +0.2764960230162949 0.8299211980228673 0.1682682223957622 +0.3957147414141879 0.9167200884221385 0.1138334752445646 +0.3504325369161631 0.9105948763663994 0.8709846007406037 +0.3352330112017673 0.8428370322146025 0.864488462646437 +0.5462316226573122 0.6335653207511818 0.1026806862654775 +0.5018708284286505 0.5754438236294076 0.1000043750226878 +0.4105982382270333 0.8535809764946378 0.8898811677830691 +0.65140264169322 0.828186307851573 0.1297605638396763 +0.7243394844985301 0.8196283752777985 0.1688326771933352 +0.6639053326907165 0.7572016082728462 0.1351232510620257 +0.2423724346350643 0.9197847755261211 0.1940130107927205 +0.2169698215579018 0.8538749970299987 0.2173448778262915 +0.49701388367695 0.9301122870538262 0.1000111462686676 +0.2190597133290865 0.8589114356505523 0.7847324275969721 +0.1751173315866634 0.9165033052980646 0.7333479199920796 +0.5182627943672437 0.6981259591412835 0.1004171295689719 +0.4539932573951703 0.6346157267243139 0.1026545839764941 +0.4398307404280029 0.703323379148289 0.1045513178646847 +0.5955972384853494 0.7189410510116209 0.1115914934067803 +0.1337341108614304 0.9352152375631624 0.6607771701876017 +0.5252354002678817 0.8464314078526257 0.1007968254468412 +0.5964484633908504 0.8934723267415722 0.1118019913632429 +0.8663682627090914 0.935293941153162 0.3394562487060857 +0.5837529286131424 0.9438164848978847 0.8911335410684207 +0.738081895316465 0.8812596244718789 0.1785703636524476 +0.7651391792540773 0.9375949760606372 0.2004983879434464 +0.7870196323968044 0.8651680051363783 0.2213968223102916 +0.5067922087319949 0.7729152340843169 0.1000576717818668 +0.4534797716438128 0.853938707912976 0.102714374342982 +0.568350802254487 0.6707302911795729 0.8941169468966896 +0.5928038117826375 0.8041070831045256 0.1109145948270318 +0.825339066316357 0.9169777681942775 0.2672888229405363 +0.3202485503095694 0.7793862612514261 0.1426634410892322 +0.1776862814838331 0.9138928442769175 0.2631163432056126 +0.429788082140231 0.7572312304467126 0.893789647642562 +0.8250565256315741 0.916283916808675 0.7331056737712101 +0.6436905090814591 0.7583355129256651 0.8733001976960515 +0.4163748959657416 0.9422081418210509 0.891160890140182 +0.5857418384216665 0.8549851832152204 0.8907023638833951 +0.3827639732848022 0.6887586849772316 0.882433934216138 +0.2781072616186776 0.8124059585732391 0.8328116774598482 +0.3448767268708653 0.765592575403278 0.8686960403010913 +0.5593095849509606 0.7756854850815346 0.8955785296662913 +2 8 0 60 +412 +413 +414 +415 +416 +417 +418 +419 +420 +421 +422 +423 +424 +425 +426 +427 +428 +429 +430 +431 +432 +433 +434 +435 +436 +437 +438 +439 +440 +441 +442 +443 +444 +445 +446 +447 +448 +449 +450 +451 +452 +453 +454 +455 +456 +457 +458 +459 +460 +461 +462 +463 +464 +465 +466 +467 +468 +469 +470 +471 +0.06477505852227856 0.1339556357148611 0.3387191165231025 +0.06742608800510373 0.865010126531407 0.3363919087284302 +0.06510914302639956 0.8650475437990481 0.6635245876505489 +0.3068076181362769 0.5831701136716955 0.1087421154892374 +0.2401718190133965 0.6647215955484735 0.1354910207416488 +0.07663077642048238 0.6628314766448815 0.8653572364325735 +0.1037333478574327 0.7279004468382344 0.8287269175637022 +0.1569572596871461 0.6666317953430131 0.863639718376258 +0.339727640808667 0.4473699946736181 0.8965224868016253 +0.2390610000836343 0.4594664505506831 0.1020590101924159 +0.2879460892043619 0.392913666426634 0.1146008339892083 +0.3339275801739889 0.4709586413160496 0.1010556436220834 +0.06478475266160608 0.1337341099685587 0.6607771681535539 +0.1265990178782653 0.3773755246391705 0.1192596185817936 +0.0645970300206459 0.3112078703063894 0.1473563671838793 +0.1296917440051991 0.2902172983307036 0.1594251652274775 +0.144047290634128 0.7829489115289998 0.7827364735306612 +0.1872880885110398 0.7268244479580113 0.8294702866853754 +0.09204435510356193 0.285582783618494 0.8376762611129283 +0.0616298728283978 0.2313957305660651 0.7963979528300796 +0.1405837447446842 0.2247339889447083 0.2097783206621048 +0.0602451367971786 0.2379885605060835 0.1977583655842138 +0.09000369682482279 0.7172671473472315 0.1641503510741802 +0.1525475339234494 0.6641568840721059 0.1352363540431459 +0.1895396126007044 0.7262527159254912 0.1701368336168178 +0.05880621757822571 0.7774519596667775 0.211867374153733 +0.1410885520046093 0.2190597155750211 0.7847324298129947 +0.08766551400532969 0.472150117408375 0.1009706977681555 +0.05836491758043368 0.3869909004196168 0.1162957604977096 +0.08940512668852869 0.3504325362884329 0.8709846004875257 +0.1571629756466741 0.3352330095229968 0.8644884618875488 +0.146419027421251 0.4105982363705472 0.8898811673573673 +0.2001653769251925 0.2749860069794523 0.1692906065063333 +0.1764050465463195 0.3368273601840673 0.1347950032988323 +0.2409006226250965 0.3296523869311218 0.1380860727718043 +0.1333852844326333 0.7818507891002187 0.2161688306693854 +0.05618351510202726 0.5837529286131322 0.8911335410684229 +0.2072263337632944 0.5854197767117533 0.1092270969648558 +0.168636414332416 0.4481457254931629 0.1033753232395019 +0.1819435383004522 0.5084494574121351 0.1000892516205141 +0.2557570243088774 0.5252470241978039 0.1007975604168287 +0.3292697088201842 0.5683508022545074 0.8941169468966861 +0.4026272205978484 0.5276643268884623 0.1009577904308764 +0.2011795103520606 0.3957826183183352 0.1138151513129778 +0.07214600075455299 0.6320194462885194 0.1224144258559753 +0.06241803625836372 0.5514142284376868 0.1033180403469836 +0.1295494249506225 0.5705534943074152 0.1062714076409823 +0.07258377357111437 0.7731312207595876 0.7922316482627736 +0.08371608319065946 0.8250565256316562 0.7331056737710955 +0.2427687731773537 0.4297880809530947 0.8937896474308978 +0.08349667612811554 0.1751173325765002 0.733347921370197 +0.08233146798087959 0.826123171376963 0.2683889530030313 +0.08279905984386834 0.1763253751859839 0.2649792833567519 +0.2416644870737116 0.6436905090815057 0.8733001976960335 +0.05779185941488747 0.4163748952626801 0.8911608899898765 +0.1450148167845262 0.5857418384216626 0.890702363883396 +0.3112413241619723 0.382763970835989 0.8824339334654486 +0.1875940506793613 0.2781072611226644 0.8328116771291454 +0.2344074403489109 0.3448767248602395 0.8686960394551508 +0.2243145149182808 0.5593095849509663 0.8955785296662904 +2 9 0 59 +472 +473 +474 +475 +476 +477 +478 +479 +480 +481 +482 +483 +484 +485 +486 +487 +488 +489 +490 +491 +492 +493 +494 +495 +496 +497 +498 +499 +500 +501 +502 +503 +504 +505 +506 +507 +508 +509 +510 +511 +512 +513 +514 +515 +516 +517 +518 +519 +520 +521 +522 +523 +524 +525 +526 +527 +528 +529 +530 +0.9352253422658811 0.1339552861845356 0.3387199098222141 +0.9175287685346589 0.8638262825881091 0.3337759460904728 +0.9233692222723379 0.3371685235841602 0.8653572365346522 +0.8962666532176088 0.2720995538398251 0.8287269180337887 +0.9348908676265552 0.1349524552893656 0.6635245856155501 +0.843042736958741 0.3333682035246447 0.8636397178573811 +0.9274162387198186 0.2268687813777978 0.7922316502604583 +0.6660723780078294 0.4709588756052803 0.101055626566948 +0.712066681435106 0.3929110835008291 0.1146015516857474 +0.7576731428884591 0.4602766476499605 0.1019773181361712 +0.9165033052977057 0.8248826684133422 0.7333479199920718 +0.8703574594380906 0.2901960371210776 0.1594382623366216 +0.9356048019776393 0.3111437989102789 0.1473906760876014 +0.8737717805703771 0.3771459048717196 0.1193336483083756 +0.8559527226780259 0.2170510905448608 0.78273647560608 +0.8127119056924711 0.2731755522722029 0.8294702868438668 +0.8510039775449422 0.7724281849204474 0.2071128475659089 +0.8130668728867719 0.7272739866246895 0.1708396515317793 +0.9076612871968216 0.7113201664881836 0.1603769924822431 +0.8445780632561746 0.6646123861067601 0.1354416886968026 +0.9079556463761894 0.7144172171408352 0.8376762606307704 +0.9383701215111936 0.7686042711293968 0.7963979512936037 +0.9397723503023426 0.2379802351569101 0.1977655829797476 +0.8594305818584613 0.2247289979283489 0.2097830545635402 +0.9285131539176826 0.7864921028210506 0.2208543838403108 +0.8589114356500591 0.7809402866709052 0.7847324275969804 +0.9419251859065542 0.3866490245740443 0.1163966157996199 +0.915883331281608 0.4772497672383137 0.1006474904181907 +0.9105948763662777 0.6495674630838504 0.8709846007405981 +0.8428370322143746 0.664766988798245 0.8644884626464314 +0.8535809764945272 0.589401761772984 0.8898811677830651 +0.8235796678019625 0.3368189050045265 0.1347987811684108 +0.7998569803442689 0.2749841608247328 0.1692918626337563 +0.7590934265984165 0.3296512761949827 0.1380865955812054 +0.7545135485182541 0.6647440094793975 0.1355011504261609 +0.9352152375629079 0.8662658891385708 0.6607771701875989 +0.9438164839950031 0.4162470710647462 0.8911335409994473 +0.6915437920121722 0.5851466015755575 0.1091674831335892 +0.7719879659893611 0.5970484742917279 0.1119515576147124 +0.8321712577738817 0.45337191643387 0.1027270185087463 +0.8132843691978049 0.5138711859651565 0.1002405846012879 +0.7389784430153922 0.522825523445407 0.1006517866830463 +0.6707302899918217 0.4316491987735949 0.8941169470749875 +0.5970737774612602 0.5257745798243275 0.1008312749790142 +0.7988472838157437 0.3957548288245378 0.1138226517691663 +0.9162839383253196 0.1749434746099798 0.7331056741080473 +0.9172038172878386 0.1763239737632523 0.264981213432653 +0.6602723574850365 0.5526300050716675 0.8965224868354331 +0.8660392937117646 0.574061418626675 0.1069161587256424 +0.9356634601513141 0.5548732548679618 0.1037817193765591 +0.9280641255614132 0.632005912860375 0.1224096942850637 +0.7572312304466119 0.5702119178597826 0.8937896476425595 +0.6887586849770374 0.6172360267152434 0.8824339342161241 +0.7583355019950502 0.3563094878252132 0.8733001965053695 +0.9422081418210096 0.5836251040342688 0.8911608901401797 +0.8549851800594165 0.4142581604846868 0.8907023636433882 +0.8124059585728027 0.7218927383813238 0.8328116774598472 +0.7655925754029925 0.6551232731291556 0.8686960403010824 +0.7756854818446279 0.4406904135475531 0.8955785294411714 +2 11 0 59 +531 +532 +533 +534 +535 +536 +537 +538 +539 +540 +541 +542 +543 +544 +545 +546 +547 +548 +549 +550 +551 +552 +553 +554 +555 +556 +557 +558 +559 +560 +561 +562 +563 +564 +565 +566 +567 +568 +569 +570 +571 +572 +573 +574 +575 +576 +577 +578 +579 +580 +581 +582 +583 +584 +585 +586 +587 +588 +589 +0.3371685235839884 0.07663077772765382 0.8653572365345756 +0.2720995538394123 0.1037333467822325 0.8287269180335025 +0.2268687813773155 0.07258376127986725 0.7922316502600075 +0.2922618338608992 0.1863935672474532 0.1581742339595165 +0.3555723508530245 0.2524085033655546 0.1269843781262262 +0.3712810121844703 0.1609767619197453 0.1212765888200922 +0.4286038804354669 0.21535902634796 0.1064233313430191 +0.1349524552886798 0.06510913237318965 0.6635245856140192 +0.3333682035242331 0.1569572630411772 0.8636397178571926 +0.7144172163814421 0.09204435510358044 0.8376762611129688 +0.7686042694338591 0.06162987282841795 0.7963979528301484 +0.6782800887192539 0.1162098177410599 0.1419270884774234 +0.6334423879846715 0.04996750320735246 0.1229149577496498 +0.7075833121745597 0.05949688674123324 0.1580801723990852 +0.2170510905439663 0.1440472773218494 0.7827364756051848 +0.2731755522715826 0.1872880943073762 0.8294702868434398 +0.3110812794695168 0.0892080175161864 0.1474241683933438 +0.3956558833440537 0.08298618865175474 0.1138493748298596 +0.6495674637115399 0.08940512668854012 0.8709846004875367 +0.6647669904769556 0.1571629756466744 0.8644884618875703 +0.5016155828931372 0.4234727134649959 0.1000032626484118 +0.5460596617230641 0.3654824558181879 0.1026607148016233 +0.5894017636294344 0.1464190274212555 0.8898811673573715 +0.724361582250343 0.180313431924318 0.1688476477357852 +0.6516824071264782 0.1719690459184677 0.1298750922076206 +0.6640255163147873 0.242696563094278 0.1351772622249712 +0.8662658900313105 0.06478475266160448 0.660777168153852 +0.4968446032651335 0.07004896017905246 0.1000124458543171 +0.7809402844248351 0.1410885520046202 0.7847324298131366 +0.8248826674233509 0.08349667612815329 0.7333479213704043 +0.4537379812624543 0.3645931738054096 0.1026842242971883 +0.5182193600788144 0.3004969942090591 0.1004151467856689 +0.4391700368419175 0.2809846321578532 0.1046524116904387 +0.5955193195172567 0.280203015365655 0.1115723238504235 +0.4316491987735015 0.3292697100081725 0.8941169470749712 +0.8663658906126042 0.06470729807301294 0.3394508355810176 +0.3843242489512008 0.3207278265418221 0.1170912372127059 +0.5966448721701025 0.1064539972941627 0.1118508422227036 +0.5252338856571207 0.1535508259547338 0.1007967297044733 +0.4162470710646785 0.05618351600498585 0.8911335409994328 +0.764996417841706 0.06249573959726305 0.2003720665040324 +0.7380852473932845 0.1187354898998047 0.1785728465520087 +0.7870284576394053 0.1348174326279538 0.2214059144469429 +0.452548983756658 0.1466725602174329 0.1028244707217297 +0.5066719129009394 0.22686847154147 0.1000556468979187 +0.5928944562656293 0.1955957621559675 0.1109362263135861 +0.8253277854604513 0.08302767081350172 0.2672730526831958 +0.6172360291640009 0.311241324161965 0.8824339334654517 +0.5526300053263788 0.3397276408086633 0.8965224868016256 +0.1624814802957484 0.07309322973700508 0.2853345652960153 +0.228936783419641 0.10559559421557 0.2058491328975734 +0.1749434746091711 0.08371606167434696 0.7331056741069197 +0.3563094878248608 0.2416644980049047 0.8733001965052338 +0.583625104737312 0.05779185941489091 0.8911608899898782 +0.414258160484521 0.1450148199405528 0.8907023636433518 +0.6551232751397202 0.2344074403489082 0.8686960394551678 +0.5702119190468926 0.2427687731773521 0.8937896474309002 +0.7218927388772306 0.1875940506793758 0.8328116771292156 +0.4406904135474264 0.2243145181554085 0.8955785294411525 +2 12 0 52 +590 +591 +592 +593 +594 +595 +596 +597 +598 +599 +600 +601 +602 +603 +604 +605 +606 +607 +608 +609 +610 +611 +612 +613 +614 +615 +616 +617 +618 +619 +620 +621 +622 +623 +624 +625 +626 +627 +628 +629 +630 +631 +632 +633 +634 +635 +636 +637 +638 +639 +640 +641 +0 0.8746157944464382 0.1253842055535616 +0 0.1253842055535613 0.1253842055535613 +0 0.8746157944464389 0.8746157944464387 +0 0.1253842055535612 0.8746157944464384 +0 0.9052750212695059 0.2199225011856953 +0 0.9052750212695074 0.7800774988143055 +0 0.09472497873049289 0.7800774988143049 +0 0.09472497873049336 0.2199225011856944 +0 0.7831954893376136 0.09162609666298578 +0 0.7831954893376142 0.9083739033370146 +0 0.216804510662386 0.9083739033370136 +0 0.2168045106623858 0.09162609666298614 +0 0.9299283896947272 0.6908918272051581 +0 0.07007161030527241 0.6908918272051572 +0 0.07007161030527276 0.3091081727948407 +0 0.9299283896947276 0.309108172794842 +0 0.7065930391287492 0.9281174275370297 +0 0.7065930391287497 0.07188257246297027 +0 0.2934069608712504 0.07188257246297097 +0 0.2934069608712501 0.928117427537029 +0 0.9268434252670499 0.0731565747329502 +0 0.0731565747329499 0.0731565747329499 +0 0.07315657473294973 0.9268434252670501 +0 0.9268434252670504 0.9268434252670504 +0 0.8098821160360815 0.1600227448109691 +0 0.8098821160360822 0.8399772551890321 +0 0.1901178839639173 0.8399772551890314 +0 0.1901178839639171 0.160022744810968 +0 0.3691800892290105 0.06259894873269402 +0 0.3691800892290092 0.9374010512673059 +0 0.63081991077099 0.9374010512673054 +0 0.6308199107709914 0.0625989487326945 +0 0.941346848196599 0.1336926562944413 +0 0.05865315180340092 0.133692656294441 +0 0.9413468481965994 0.8663073437055586 +0 0.05865315180340078 0.8663073437055584 +0 0.9442597421970746 0.6079961128214771 +0 0.05574025780292522 0.3920038871785214 +0 0.05574025780292506 0.6079961128214761 +0 0.9442597421970751 0.3920038871785226 +0 0.1330690581897793 0.9419666246101004 +0 0.1330690581897793 0.05803337538989947 +0 0.8669309418102205 0.9419666246101008 +0 0.86693094181022 0.05803337538989951 +0 0.4582542606990377 0.05427565390083178 +0 0.4582542606990361 0.9457243460991683 +0 0.5425953635217433 0.9457307396099993 +0 0.5425953635217448 0.05426926039000077 +0 0.949545992885674 0.5249437965813573 +0 0.9580588415535373 0.4583528045408784 +0 0.04010656016665301 0.4617051670409576 +0 0.05003821694582656 0.5255057688659603 +2 13 0 52 +642 +643 +644 +645 +646 +647 +648 +649 +650 +651 +652 +653 +654 +655 +656 +657 +658 +659 +660 +661 +662 +663 +664 +665 +666 +667 +668 +669 +670 +671 +672 +673 +674 +675 +676 +677 +678 +679 +680 +681 +682 +683 +684 +685 +686 +687 +688 +689 +690 +691 +692 +693 +0.1253842055535618 0 0.1253842055535618 +0.1253842055535611 0 0.8746157944464386 +0.8746157944464387 0 0.8746157944464387 +0.8746157944464387 0 0.1253842055535611 +0.09472497873049407 0 0.2199225011856955 +0.09472497873049256 0 0.7800774988143051 +0.905275021269507 0 0.7800774988143053 +0.9052750212695065 0 0.2199225011856943 +0.2168045106623862 0 0.09162609666298638 +0.2168045106623858 0 0.9083739033370138 +0.783195489337614 0 0.09162609666298563 +0.7831954893376136 0 0.9083739033370141 +0.07007161030527273 0 0.6908918272051581 +0.9299283896947275 0 0.6908918272051574 +0.9299283896947271 0 0.3091081727948407 +0.07007161030527223 0 0.309108172794842 +0.2934069608712501 0 0.928117427537029 +0.7065930391287487 0 0.07188257246297036 +0.7065930391287492 0 0.9281174275370296 +0.2934069608712496 0 0.07188257246297088 +0.07315657473295022 0 0.07315657473295022 +0.0731565747329498 0 0.92684342526705 +0.9268434252670501 0 0.07315657473294981 +0.9268434252670501 0 0.9268434252670501 +0.1901178839639182 0 0.1600227448109696 +0.8098821160360826 0 0.8399772551890318 +0.190117883963917 0 0.8399772551890322 +0.8098821160360828 0 0.1600227448109677 +0.3691800892290095 0 0.9374010512673061 +0.6308199107709888 0 0.0625989487326942 +0.63081991077099 0 0.9374010512673057 +0.369180089229008 0 0.06259894873269403 +0.05865315180340122 0 0.1336926562944414 +0.9413468481965991 0 0.1336926562944409 +0.05865315180340069 0 0.8663073437055584 +0.9413468481965993 0 0.8663073437055586 +0.05574025780292533 0 0.6079961128214773 +0.9442597421970748 0 0.3920038871785214 +0.9442597421970748 0 0.6079961128214763 +0.05574025780292485 0 0.3920038871785227 +0.1330690581897795 0 0.05803337538989968 +0.1330690581897792 0 0.9419666246101004 +0.8669309418102202 0 0.9419666246101006 +0.8669309418102202 0 0.05803337538989931 +0.4582542606990361 0 0.9457243460991684 +0.541745739300961 0 0.05427565390083165 +0.5425953635217433 0 0.9457307396099993 +0.4574046364782539 0 0.05426926039000067 +0.05045400711432591 0 0.5249437965813573 +0.04194115844646269 0 0.4583528045408783 +0.959893439833347 0 0.4617051670409576 +0.9499617830541733 0 0.5255057688659603 +2 14 0 165 +694 +695 +696 +697 +698 +699 +700 +701 +702 +703 +704 +705 +706 +707 +708 +709 +710 +711 +712 +713 +714 +715 +716 +717 +718 +719 +720 +721 +722 +723 +724 +725 +726 +727 +728 +729 +730 +731 +732 +733 +734 +735 +736 +737 +738 +739 +740 +741 +742 +743 +744 +745 +746 +747 +748 +749 +750 +751 +752 +753 +754 +755 +756 +757 +758 +759 +760 +761 +762 +763 +764 +765 +766 +767 +768 +769 +770 +771 +772 +773 +774 +775 +776 +777 +778 +779 +780 +781 +782 +783 +784 +785 +786 +787 +788 +789 +790 +791 +792 +793 +794 +795 +796 +797 +798 +799 +800 +801 +802 +803 +804 +805 +806 +807 +808 +809 +810 +811 +812 +813 +814 +815 +816 +817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832 +833 +834 +835 +836 +837 +838 +839 +840 +841 +842 +843 +844 +845 +846 +847 +848 +849 +850 +851 +852 +853 +854 +855 +856 +857 +858 +0.4950214680165088 0.5028316402469923 1 +0.2747926532381271 0.6981084215724686 1 +0.2864942263234178 0.296001977566404 1 +0.6980998339872941 0.2726407597316737 1 +0.7051799462579924 0.6979879217494163 1 +0.5 0.2202380952380956 1 +0.777769250497095 0.4950038349862156 1 +0.2146623136494239 0.5001085136954586 1 +0.4999999999999997 0.7797619047619057 1 +0.1732843951678632 0.8433187416918508 1 +0.1566812583081485 0.1732843951678622 1 +0.8433187416918511 0.8267156048321369 1 +0.8433187416918516 0.1732843951678625 1 +0.3480133884657132 0.435603402932928 1 +0.5684523809523819 0.3601190476190478 1 +0.5664984563798696 0.6423739072263199 1 +0.1441805034830725 0.6433766910808152 1 +0.8574000552737945 0.6334273263476071 1 +0.3688017261659701 0.8569593110241607 1 +0.3628946821626096 0.1584092347432174 1 +0.8501871189056607 0.3695910621282928 1 +0.1576587922662361 0.368827840183277 1 +0.6435444840699809 0.1438926258343906 1 +0.6421401800949403 0.836353242161658 1 +0.3729045998290267 0.5780197964817502 1 +0.6513004763974513 0.51739034863059 1 +0.4182179907063222 0.317715027584187 1 +0.4130696887381372 0.6968037468129863 1 +0.7015864691802174 0.4073379837536945 1 +0.8897811292618623 0.5352270753485349 1 +0.1101190476190474 0.5328363531229332 1 +0.532365467779089 0.1133632415842201 1 +0.4671636468770655 0.8898809523809528 1 +0.7052527003942605 0.6026658673206788 1 +0.2655959475854965 0.6078982235868243 1 +0.2568918020241328 0.3909304723331747 1 +0.6039922064040897 0.7528510455829669 1 +0.6136971367254023 0.2730160149451121 1 +0.2847898812930724 0.1211942804147247 1 +0.1086464858892478 0.2605441713048679 1 +0.8913535141107523 0.2605441713048685 1 +0.7394558286951317 0.1086464858892482 1 +0.1086464858892479 0.7394558286951317 1 +0.7160492624165183 0.8779327990694209 1 +0.2527844737600701 0.8906315747009197 1 +0.8906315747009195 0.7472155262399298 1 +0.4950931836465303 0.5973622684691656 1 +0.4741848065550128 0.3757132505428719 1 +0.110286051811511 0.8924811376651078 1 +0.1075188623348916 0.1102860518115106 1 +0.8924811376651078 0.8897139481884887 1 +0.8924811376651079 0.1102860518115108 1 +0.09436874295422017 0.437489691369603 1 +0.903311007504194 0.4388407762081473 1 +0.5625103086303959 0.9056312570457795 1 +0.4345017317519946 0.09477306810993272 1 +0.2456922707754351 0.7894756782586894 1 +0.7916557174330069 0.7527838742006814 1 +0.2049394891028866 0.2498820466241255 1 +0.7932431340063995 0.2528382601825572 1 +0.3303507820746571 0.5147195485305909 1 +0.1969855064845306 0.7182633823590512 1 +0.2850613947166046 0.2044634610816124 1 +0.7198483863163436 0.1994685227792494 1 +0.7198483863163427 0.8005314772207504 1 +0.5774877289775278 0.4512300639271995 1 +0.4103778997831046 0.2274376066085964 1 +0.412027548088201 0.5026217599108598 1 +0.4910641106508287 0.6912327081625124 1 +0.4931081411416672 0.3008938871469078 1 +0.3578465774721929 0.7620945697606183 1 +0.765238699361978 0.3526257877644682 1 +0.5655365608704358 0.5531409464060552 1 +0.652544317306449 0.6451889416532794 1 +0.2017200093080754 0.08278951137533433 1 +0.06684857020038834 0.1967782788025102 1 +0.9331514297996115 0.1967782788025103 1 +0.8145931860271801 0.08556816537414007 1 +0.1801281230915251 0.9267504149363113 1 +0.08556816537414012 0.81459318602718 1 +0.7983848836556223 0.9171013735601834 1 +0.9267504149363112 0.8198718769084744 1 +0.9395725075791845 0.6086003758055494 1 +0.06067428169377814 0.6098601495568171 1 +0.3921695866509783 0.9395156873907609 1 +0.6098096341643707 0.06116700107985991 1 +0.6629327649192062 0.3461046644908082 1 +0.3444452903609256 0.3525282925589378 1 +0.7965259082018166 0.5656491060701133 1 +0.7832965200874424 0.658883800236017 1 +0.9196893278037385 0.3442648529400525 1 +0.08110005242916279 0.3439628091138295 1 +0.3575712436882514 0.07228992503239301 1 +0.6426741684162992 0.9272248608132474 1 +0.8267311571331845 0.4365972272682599 1 +0.1782659420050125 0.4380469088839923 1 +0.5623106045622353 0.8219973484171981 1 +0.4410456214297042 0.8125815454478511 1 +0.1918634159647886 0.5676914421760701 1 +0.5816474359771661 0.2048174724282664 1 +0.3451744922061717 0.6491904319642567 1 +0.7085052777111437 0.4726942834895174 1 +0.2183495685797688 0.3285441319191087 1 +0.4487540351039242 0.1638401628807443 1 +0.3405127286422334 0.237513333711903 1 +0.2173663444160172 0.6504703914259963 1 +0.4028533291090572 0.3849354864497785 1 +0.6257647765338226 0.5860030069553337 1 +0.7559661707767238 0.4328518234524312 1 +0.9377845479596904 0.691281186470494 1 +0.06270025421321972 0.6818718671998854 1 +0.6818953227192293 0.06274122256069974 1 +0.3087188135295044 0.937784547959691 1 +0.645044183022988 0.4258127319851429 1 +0.6644658415155497 0.7587350180551642 1 +0.2702350455218598 0.4622810148718627 1 +0.6513674554152374 0.2187670791437385 1 +0.7147549962310206 0.9444518066885703 1 +0.05079113885821861 0.2916666666666659 1 +0.2854828935245462 0.05525474336449041 1 +0.9492088611417815 0.2916666666666658 1 +0.4244079235641572 0.628766327635212 1 +0.5417411920811679 0.04625762768561744 1 +0.9545191482154082 0.5420716619232928 1 +0.4585604750131312 0.9545277488015412 1 +0.04551024501536657 0.5418454722284259 1 +0.05559618254592708 0.9444038174540726 1 +0.05559618254592665 0.05559618254592665 1 +0.9444038174540731 0.05559618254592667 1 +0.9444038174540729 0.9444038174540729 1 +0.4416949944017 0.4407453589162105 1 +0.4406051996581726 0.7484948949891748 1 +0.5491528705077259 0.7322236488049192 1 +0.8438295035592354 0.3053197245171668 1 +0.1541388776534604 0.3103521998290417 1 +0.30117856782202 0.8447082392822534 1 +0.8437647929637835 0.7007887057276054 1 +0.5066060362998801 0.8419706016107376 1 +0.1591389150613617 0.4961637590074373 1 +0.8388236905196306 0.4942636039762542 1 +0.2289886102924034 0.1644297951639555 1 +0.7754656049591981 0.1632249109526696 1 +0.7723405018747175 0.8357355959152684 1 +0.1622423593504408 0.7749194356015444 1 +0.04857927025085754 0.8787825915923368 1 +0.8787825915923371 0.04857927025085744 1 +0.1249999999999997 0.9556977539877877 1 +0.9556977539877877 0.8749999999999994 1 +0.1242591147367996 0.04628187543434836 1 +0.04430224601221194 0.1249999999999997 1 +0.8757485305229443 0.9537101715726133 1 +0.9556977539877879 0.1249999999999997 1 +0.5492608635834968 0.2690645522060588 1 +0.4554260079077734 0.2665711541444467 1 +0.5132828901792208 0.430881798297141 1 +0.3605399926213405 0.290485753942076 1 +0.4368196651104175 0.5613685457978832 1 +0.6191288691778717 0.6990475735605917 1 +0.7278707226403534 0.5306806880994229 1 +0.3152065716101874 0.5705214844457619 1 +0.2632939513799519 0.5395885832033277 1 +0.515895433289256 0.9457078066447615 1 +0.05429496258387589 0.4841341547021092 1 +0.4836810441124768 0.0552275156390454 1 +0.9455307896442657 0.4844233672938742 1 +2 15 0 163 +859 +860 +861 +862 +863 +864 +865 +866 +867 +868 +869 +870 +871 +872 +873 +874 +875 +876 +877 +878 +879 +880 +881 +882 +883 +884 +885 +886 +887 +888 +889 +890 +891 +892 +893 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +0.4951835737492154 0.496180293370474 0 +0.7081997079589544 0.2889201776952001 0 +0.2942712652186252 0.2849835067439983 0 +0.2885571881976799 0.7314905765853289 0 +0.7129659747399164 0.7064537958666866 0 +0.2217802471705035 0.4968927121249278 0 +0.4999999999999993 0.2202380952380951 0 +0.7797619047619048 0.5000000000000014 0 +0.514779023269942 0.7678865043098436 0 +0.8267156048321367 0.1566812583081495 0 +0.1732843951678622 0.1566812583081485 0 +0.8433187416918511 0.8267156048321371 0 +0.1732843951678624 0.8433187416918516 0 +0.4315476190476181 0.3601190476190478 0 +0.3439234791045909 0.5613394011835489 0 +0.5684523809523796 0.6398809523809531 0 +0.6488217451029924 0.4152975844568104 0 +0.8516005275569392 0.3567886029147055 0 +0.6321238377683467 0.1502257431188299 0 +0.1526798487635395 0.3604256080114453 0 +0.84977425688117 0.6321238377683482 0 +0.3688278401832771 0.1576587922662361 0 +0.1532642139835868 0.6422225170032163 0 +0.3640171762583615 0.8511705050627626 0 +0.6422225170032152 0.8467357860164133 0 +0.5566855060608318 0.3346672739892424 0 +0.6722500918475163 0.5639560244985335 0 +0.3227288551063878 0.4222838597764703 0 +0.4222838597764698 0.6772711448936125 0 +0.8898809523809528 0.5328363531229353 0 +0.5328363531229332 0.1101190476190474 0 +0.1101190476190476 0.5328363531229328 0 +0.5328363531229316 0.8898809523809527 0 +0.3955395462906188 0.2565527283874922 0 +0.7411888656196091 0.4143956062378963 0 +0.256246167995095 0.6035663192315552 0 +0.600189526419822 0.7661347228320921 0 +0.120239382751445 0.284378368934545 0 +0.880474013301968 0.283772201418422 0 +0.260544171304868 0.1086464858892478 0 +0.1086464858892482 0.7394558286951317 0 +0.7394558286951312 0.8913535141107517 0 +0.747215526239929 0.1093684252990806 0 +0.2736640923651389 0.8755019108708504 0 +0.8906315747009197 0.7472155262399303 0 +0.3927867403437492 0.4787745570455246 0 +0.4795349980051409 0.6030797472847572 0 +0.6157987282600705 0.2521225007019275 0 +0.748651651054451 0.6149803966237035 0 +0.8897139481884887 0.1075188623348921 0 +0.1102860518115105 0.1075188623348916 0 +0.8924811376651078 0.8897139481884888 0 +0.1102860518115106 0.8924811376651084 0 +0.9056312570457796 0.4374896913696045 0 +0.4374896913696031 0.09436874295422017 0 +0.09436874295421986 0.437489691369603 0 +0.4374896913696019 0.9056312570457801 0 +0.7561943019043976 0.2051495028727502 0 +0.7951199474751235 0.7559448858912173 0 +0.2497054433233318 0.2047853340437622 0 +0.236455844383014 0.7896947917391778 0 +0.800531477220749 0.2801516136836552 0 +0.2036191002077504 0.2888103031395214 0 +0.1994685227792495 0.7198483863163435 0 +0.7198483863163422 0.8005314772207501 0 +0.597940620926264 0.5072823706465218 0 +0.5110291577463567 0.3916989522188968 0 +0.2423606824514144 0.3668522619082182 0 +0.3701869084603909 0.7561979394061666 0 +0.2988825814625293 0.4898765628302262 0 +0.5018748390954267 0.6939899161936093 0 +0.6374958898149583 0.3376626082736185 0 +0.6595457934084492 0.6357171271556629 0 +0.08267014916742436 0.2016685702632595 0 +0.1967782788025103 0.06684857020038834 0 +0.917419025339252 0.2015927993237444 0 +0.1986525532396918 0.9308869150510543 0 +0.08556816537414005 0.8145931860271801 0 +0.8198718769084741 0.07324958506368878 0 +0.8145931860271798 0.9144318346258595 0 +0.9267504149363113 0.8198718769084745 0 +0.938318178366929 0.6079846740047398 0 +0.6079846740047391 0.06168182163307097 0 +0.06218823344386389 0.6096677872105506 0 +0.6096677872105501 0.9378117665561363 0 +0.4843262427418791 0.2992574217267761 0 +0.3506119679791119 0.345886039667317 0 +0.3328624413190484 0.6589755101150063 0 +0.6980453711900492 0.4880642794402403 0 +0.9287374883326205 0.3572195600568792 0 +0.07228456287599588 0.3586479290816131 0 +0.3439628091138295 0.08110005242916279 0 +0.3613168166492173 0.9262219103724221 0 +0.8198794326318122 0.4281373753367708 0 +0.1867016478261219 0.432389597593878 0 +0.4373799584484772 0.1743940542148648 0 +0.4365456496370461 0.8161929306341834 0 +0.5604079149134124 0.1868155669447393 0 +0.8132502622862454 0.5603383288899138 0 +0.1937905513873081 0.5525228256998869 0 +0.5667516005275545 0.8198125257614942 0 +0.5496365088195152 0.5666538896557171 0 +0.3286847898902079 0.2182452397441179 0 +0.4268582129825085 0.5456678409439487 0 +0.2522331608861508 0.439138780542201 0 +0.4429525852366453 0.7461334155887852 0 +0.5695965694797736 0.4389950505070172 0 +0.6796913459712124 0.2113084756012146 0 +0.7884348722891692 0.6773115875823923 0 +0.545026965192091 0.2610792409192767 0 +0.7376806218712443 0.5471906024425177 0 +0.3886468966861836 0.4071714179193728 0 +0.4010925982375517 0.6092667288841747 0 +0.9332630601748551 0.6894196483780468 0 +0.06481978666333978 0.6816025599151123 0 +0.6816025599151119 0.9351802133366602 0 +0.6894196483780457 0.06673693982514457 0 +0.2460797068549319 0.6712206618502901 0 +0.6664603645751053 0.7617651124540971 0 +0.7705444713311246 0.3533529258077849 0 +0.05503881895897306 0.2856056403225499 0 +0.2916666666666658 0.05079113885821859 0 +0.2833933591174759 0.9465221472588653 0 +0.945326105394768 0.2851835788264754 0 +0.6070709704645759 0.5868460845958792 0 +0.4455593009540508 0.4287935854885046 0 +0.04581303536538373 0.5418069997591726 0 +0.5418069997591725 0.9541869646346163 0 +0.5414703771180104 0.04571175300322511 0 +0.9542882469967751 0.5414703771180109 0 +0.9444038174540728 0.05559618254592705 0 +0.05559618254592665 0.05559618254592665 0 +0.9444038174540729 0.9444038174540729 0 +0.05559618254592626 0.9444038174540734 0 +0.3107838553949425 0.8004210674279986 0 +0.3103450107631029 0.1540871808745054 0 +0.70082520779049 0.1542367195068508 0 +0.8465636083210957 0.7006481778283281 0 +0.8416807618213391 0.4917603497438451 0 +0.4936227835708851 0.1571871013941934 0 +0.1613520473914402 0.4904262359822457 0 +0.4961637590074367 0.8408610849386378 0 +0.1642159967919304 0.2293081819210206 0 +0.1611913387242584 0.7777196365827665 0 +0.7756571165376387 0.8376713284426126 0 +0.8366312093031729 0.2271744077138633 0 +0.5903677540172432 0.3833971262650447 0 +0.8749999999999994 0.04430224601221219 0 +0.9537333240346446 0.1242498428720525 0 +0.04857927025085728 0.8787825915923371 0 +0.9556977539877877 0.8749999999999994 0 +0.1249999999999997 0.04430224601221193 0 +0.04627317556496717 0.1242553655352824 0 +0.8787825915923368 0.9514207297491424 0 +0.1249999999999997 0.9556977539877884 0 +0.628266650785567 0.7016483625637095 0 +0.2629246054240054 0.540839564214029 0 +0.7016420790128395 0.3554419637874396 0 +0.5627124841046274 0.7139080916560415 0 +0.4841313505862744 0.9456829681486298 0 +0.4841068154083472 0.05430964975500253 0 +0.05431703185136977 0.4841313505862744 0 +0.9456903502449977 0.4841068154083477 0 +2 16 0 52 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +0.1253842055535618 1 0.1253842055535618 +0.1253842055535611 1 0.8746157944464386 +0.8746157944464387 1 0.8746157944464387 +0.8746157944464387 1 0.1253842055535611 +0.09472497873049407 1 0.2199225011856955 +0.09472497873049256 1 0.7800774988143051 +0.905275021269507 1 0.7800774988143053 +0.9052750212695065 1 0.2199225011856943 +0.2168045106623862 1 0.09162609666298638 +0.2168045106623858 1 0.9083739033370138 +0.783195489337614 1 0.09162609666298563 +0.7831954893376136 1 0.9083739033370141 +0.07007161030527273 1 0.6908918272051581 +0.9299283896947275 1 0.6908918272051574 +0.9299283896947271 1 0.3091081727948407 +0.07007161030527223 1 0.309108172794842 +0.2934069608712501 1 0.928117427537029 +0.7065930391287487 1 0.07188257246297036 +0.7065930391287492 1 0.9281174275370296 +0.2934069608712496 1 0.07188257246297088 +0.07315657473295022 1 0.07315657473295022 +0.0731565747329498 1 0.92684342526705 +0.9268434252670501 1 0.07315657473294981 +0.9268434252670501 1 0.9268434252670501 +0.1901178839639182 1 0.1600227448109696 +0.8098821160360826 1 0.8399772551890318 +0.190117883963917 1 0.8399772551890322 +0.8098821160360828 1 0.1600227448109677 +0.3691800892290095 1 0.9374010512673061 +0.6308199107709888 1 0.0625989487326942 +0.63081991077099 1 0.9374010512673057 +0.369180089229008 1 0.06259894873269403 +0.05865315180340122 1 0.1336926562944414 +0.9413468481965991 1 0.1336926562944409 +0.05865315180340069 1 0.8663073437055584 +0.9413468481965993 1 0.8663073437055586 +0.05574025780292533 1 0.6079961128214773 +0.9442597421970748 1 0.3920038871785214 +0.9442597421970748 1 0.6079961128214763 +0.05574025780292485 1 0.3920038871785227 +0.1330690581897795 1 0.05803337538989968 +0.1330690581897792 1 0.9419666246101004 +0.8669309418102202 1 0.9419666246101006 +0.8669309418102202 1 0.05803337538989931 +0.4582542606990361 1 0.9457243460991684 +0.541745739300961 1 0.05427565390083165 +0.5425953635217433 1 0.9457307396099993 +0.4574046364782539 1 0.05426926039000067 +0.05045400711432591 1 0.5249437965813573 +0.04194115844646269 1 0.4583528045408783 +0.959893439833347 1 0.4617051670409576 +0.9499617830541733 1 0.5255057688659603 +2 17 0 52 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1 0.8746157944464382 0.1253842055535616 +1 0.1253842055535613 0.1253842055535613 +1 0.8746157944464389 0.8746157944464387 +1 0.1253842055535612 0.8746157944464384 +1 0.9052750212695059 0.2199225011856953 +1 0.9052750212695074 0.7800774988143055 +1 0.09472497873049289 0.7800774988143049 +1 0.09472497873049336 0.2199225011856944 +1 0.7831954893376136 0.09162609666298578 +1 0.7831954893376142 0.9083739033370146 +1 0.216804510662386 0.9083739033370136 +1 0.2168045106623858 0.09162609666298614 +1 0.9299283896947272 0.6908918272051581 +1 0.07007161030527241 0.6908918272051572 +1 0.07007161030527276 0.3091081727948407 +1 0.9299283896947276 0.309108172794842 +1 0.7065930391287492 0.9281174275370297 +1 0.7065930391287497 0.07188257246297027 +1 0.2934069608712504 0.07188257246297097 +1 0.2934069608712501 0.928117427537029 +1 0.9268434252670499 0.0731565747329502 +1 0.0731565747329499 0.0731565747329499 +1 0.07315657473294973 0.9268434252670501 +1 0.9268434252670504 0.9268434252670504 +1 0.8098821160360815 0.1600227448109691 +1 0.8098821160360822 0.8399772551890321 +1 0.1901178839639173 0.8399772551890314 +1 0.1901178839639171 0.160022744810968 +1 0.3691800892290105 0.06259894873269402 +1 0.3691800892290092 0.9374010512673059 +1 0.63081991077099 0.9374010512673054 +1 0.6308199107709914 0.0625989487326945 +1 0.941346848196599 0.1336926562944413 +1 0.05865315180340092 0.133692656294441 +1 0.9413468481965994 0.8663073437055586 +1 0.05865315180340078 0.8663073437055584 +1 0.9442597421970746 0.6079961128214771 +1 0.05574025780292522 0.3920038871785214 +1 0.05574025780292506 0.6079961128214761 +1 0.9442597421970751 0.3920038871785226 +1 0.1330690581897793 0.9419666246101004 +1 0.1330690581897793 0.05803337538989947 +1 0.8669309418102205 0.9419666246101008 +1 0.86693094181022 0.05803337538989951 +1 0.4582542606990377 0.05427565390083178 +1 0.4582542606990361 0.9457243460991683 +1 0.5425953635217433 0.9457307396099993 +1 0.5425953635217448 0.05426926039000077 +1 0.949545992885674 0.5249437965813573 +1 0.9580588415535373 0.4583528045408784 +1 0.04010656016665301 0.4617051670409576 +1 0.05003821694582656 0.5255057688659603 +3 1 0 26 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +0.1279135724917379 0.8715157660799117 0.8744438398943695 +0.8618543443915578 0.8629326140526192 0.1196190242134064 +0.129912507046553 0.871891621197604 0.124993156690852 +0.8716821181222922 0.1288903240645975 0.8747041049541878 +0.8715157660798601 0.8720864275083227 0.874443839894318 +0.8412182902012562 0.1164874886531075 0.1139699381458597 +0.1288943069726419 0.128321652215336 0.8747139897427726 +0.1284801732576575 0.1284801732576575 0.1254844507285249 +0.2018170077330002 0.1991151897587336 0.0947866101497019 +0.801310739064278 0.7987566592007072 0.9049682880738562 +0.7988912464482749 0.2071102867396798 0.0928593257330408 +0.7708472266581921 0.8542788950935915 0.09349243199435055 +0.1985126205210921 0.2019630716852219 0.905700485786209 +0.1965500388048241 0.7979966176378729 0.09545693704014228 +0.2001843171023497 0.8038852171435213 0.9072817600565851 +0.7989943995162977 0.1995902932236623 0.90380767789428 +0.7449403572811827 0.762498931755036 0.08428212066947059 +0.9000943269820545 0.2008093304827053 0.1103967874427087 +0.2248096939873006 0.8970632114892305 0.09374167335357533 +0.7516574410898241 0.1012257875027721 0.09041974497011637 +0.8397287434267783 0.7773622044946372 0.08222731325841827 +0.2187236316084949 0.1002854821845766 0.09198567642293605 +0.1050021466894526 0.21954597249944 0.09472179674720299 +0.8992518197698363 0.1004326529260751 0.1976078112273849 +0.7640013100727957 0.8832560523528985 0.9198402775367065 +0.2365306756804852 0.1165365535119118 0.918956021738551 +$EndNodes +$Elements +3 3937 1 3937 +2 14 2 376 +1 9 821 230 +2 285 821 9 +3 240 820 11 +4 11 820 296 +5 14 822 295 +6 307 822 14 +7 306 823 15 +8 15 823 317 +9 230 843 231 +10 821 843 230 +11 231 769 232 +12 231 843 769 +13 232 812 233 +14 769 812 232 +15 233 785 234 +16 233 812 785 +17 234 856 235 +18 234 785 746 +19 746 856 234 +20 235 819 236 +21 235 856 819 +22 236 777 237 +23 236 819 777 +24 237 804 238 +25 777 804 237 +26 238 773 239 +27 736 773 238 +28 238 804 736 +29 239 838 240 +30 773 838 239 +31 240 838 820 +32 286 842 285 +33 285 842 821 +34 287 768 286 +35 768 842 286 +36 288 813 287 +37 287 813 768 +38 289 786 288 +39 786 813 288 +40 290 857 289 +41 749 786 289 +42 289 857 749 +43 291 816 290 +44 816 857 290 +45 292 779 291 +46 779 816 291 +47 293 805 292 +48 292 805 779 +49 294 771 293 +50 293 771 735 +51 735 805 293 +52 295 839 294 +53 294 839 771 +54 822 839 295 +55 296 840 297 +56 820 840 296 +57 297 772 298 +58 297 840 772 +59 298 806 299 +60 298 772 738 +61 738 806 298 +62 299 778 300 +63 299 806 778 +64 300 818 301 +65 778 818 300 +66 301 855 302 +67 818 855 301 +68 302 787 303 +69 748 787 302 +70 302 855 748 +71 303 811 304 +72 787 811 303 +73 304 774 305 +74 304 811 774 +75 305 844 306 +76 774 844 305 +77 306 844 823 +78 308 845 307 +79 307 845 822 +80 309 770 308 +81 770 845 308 +82 310 814 309 +83 309 814 770 +84 311 784 310 +85 784 814 310 +86 312 858 311 +87 747 784 311 +88 311 858 747 +89 313 817 312 +90 817 858 312 +91 314 776 313 +92 776 817 313 +93 315 803 314 +94 314 803 776 +95 316 775 315 +96 315 775 739 +97 739 803 315 +98 317 841 316 +99 316 841 775 +100 823 841 317 +101 694 766 740 +102 740 850 694 +103 759 766 694 +104 694 848 759 +105 761 824 694 +106 694 850 761 +107 824 848 694 +108 728 794 695 +109 695 799 728 +110 750 755 695 +111 695 764 750 +112 755 799 695 +113 695 794 764 +114 696 781 729 +115 729 796 696 +116 752 756 696 +117 696 796 752 +118 756 798 696 +119 696 849 781 +120 798 849 696 +121 697 780 731 +122 731 810 697 +123 697 757 753 +124 753 765 697 +125 697 810 757 +126 765 780 697 +127 698 767 727 +128 727 783 698 +129 751 758 698 +130 698 783 751 +131 758 808 698 +132 698 851 767 +133 808 851 698 +134 725 793 699 +135 699 797 725 +136 760 797 699 +137 699 847 760 +138 699 846 763 +139 763 847 699 +140 793 846 699 +141 700 833 782 +142 782 852 700 +143 700 802 788 +144 788 833 700 +145 795 802 700 +146 700 852 795 +147 789 809 701 +148 701 832 789 +149 792 832 701 +150 701 854 792 +151 809 854 701 +152 702 825 762 +153 762 826 702 +154 702 826 790 +155 790 831 702 +156 791 825 702 +157 702 831 791 +158 703 750 738 +159 738 772 703 +160 703 772 742 +161 742 773 703 +162 703 837 750 +163 773 837 703 +164 704 752 733 +165 733 769 704 +166 743 768 704 +167 704 769 743 +168 704 834 752 +169 768 834 704 +170 705 751 739 +171 739 775 705 +172 744 774 705 +173 705 775 744 +174 705 836 751 +175 774 836 705 +176 734 753 706 +177 706 770 734 +178 745 770 706 +179 706 771 745 +180 753 835 706 +181 706 835 771 +182 729 781 707 +183 707 809 729 +184 707 761 754 +185 754 809 707 +186 707 824 761 +187 781 800 707 +188 800 824 707 +189 731 780 708 +190 708 846 731 +191 741 763 708 +192 708 848 741 +193 708 807 759 +194 759 848 708 +195 763 846 708 +196 780 807 708 +197 709 762 740 +198 740 766 709 +199 709 826 762 +200 766 801 709 +201 709 801 767 +202 767 851 709 +203 709 851 826 +204 710 777 724 +205 724 792 710 +206 710 755 736 +207 736 804 710 +208 710 799 755 +209 710 804 777 +210 792 799 710 +211 723 776 711 +212 711 782 723 +213 776 803 711 +214 711 783 782 +215 711 830 783 +216 803 830 711 +217 726 778 712 +218 712 791 726 +219 764 791 712 +220 712 829 764 +221 778 806 712 +222 806 829 712 +223 713 756 732 +224 732 786 713 +225 713 786 749 +226 749 797 713 +227 713 798 756 +228 713 797 760 +229 760 798 713 +230 714 784 747 +231 747 788 714 +232 714 788 765 +233 765 827 714 +234 714 827 784 +235 729 789 715 +236 715 796 729 +237 746 785 715 +238 715 789 746 +239 785 828 715 +240 715 828 796 +241 725 779 716 +242 716 793 725 +243 735 757 716 +244 716 805 735 +245 757 810 716 +246 779 805 716 +247 716 810 793 +248 717 790 730 +249 730 808 717 +250 717 758 737 +251 737 787 717 +252 717 787 748 +253 748 790 717 +254 717 808 758 +255 754 761 718 +256 718 853 754 +257 761 850 718 +258 718 815 794 +259 794 853 718 +260 718 850 815 +261 727 801 719 +262 719 852 727 +263 719 766 759 +264 759 807 719 +265 719 801 766 +266 719 807 795 +267 795 852 719 +268 720 763 741 +269 741 800 720 +270 760 847 720 +271 720 849 760 +272 720 847 763 +273 720 800 781 +274 781 849 720 +275 721 815 762 +276 762 825 721 +277 764 794 721 +278 721 825 764 +279 794 815 721 +280 722 780 765 +281 765 802 722 +282 722 807 780 +283 722 802 795 +284 795 807 722 +285 723 833 747 +286 747 858 723 +287 723 817 776 +288 782 833 723 +289 723 858 817 +290 746 832 724 +291 724 856 746 +292 777 819 724 +293 724 832 792 +294 819 856 724 +295 725 797 749 +296 749 857 725 +297 725 816 779 +298 725 857 816 +299 726 831 748 +300 748 855 726 +301 726 818 778 +302 791 831 726 +303 726 855 818 +304 767 801 727 +305 782 783 727 +306 727 852 782 +307 728 799 792 +308 792 854 728 +309 728 853 794 +310 728 854 853 +311 729 809 789 +312 790 826 730 +313 730 851 808 +314 826 851 730 +315 793 810 731 +316 731 846 793 +317 756 834 732 +318 768 813 732 +319 732 834 768 +320 732 813 786 +321 752 828 733 +322 733 812 769 +323 785 812 733 +324 733 828 785 +325 734 827 753 +326 770 814 734 +327 734 814 784 +328 784 827 734 +329 735 835 757 +330 771 835 735 +331 755 837 736 +332 736 837 773 +333 758 836 737 +334 774 811 737 +335 737 836 774 +336 737 811 787 +337 750 829 738 +338 738 829 806 +339 751 830 739 +340 739 830 803 +341 762 815 740 +342 815 850 740 +343 741 824 800 +344 741 848 824 +345 772 840 742 +346 742 838 773 +347 820 838 742 +348 742 840 820 +349 743 842 768 +350 769 843 743 +351 821 842 743 +352 743 843 821 +353 744 844 774 +354 775 841 744 +355 744 841 823 +356 823 844 744 +357 745 845 770 +358 771 839 745 +359 745 839 822 +360 822 845 745 +361 789 832 746 +362 747 833 788 +363 748 831 790 +364 750 837 755 +365 764 829 750 +366 751 836 758 +367 783 830 751 +368 752 834 756 +369 796 828 752 +370 757 835 753 +371 753 827 765 +372 754 854 809 +373 853 854 754 +374 760 849 798 +375 764 825 791 +376 788 802 765 +2 15 2 372 +377 10 241 990 +378 263 10 990 +379 251 12 992 +380 12 318 992 +381 13 273 989 +382 329 13 989 +383 328 16 991 +384 16 339 991 +385 241 242 1011 +386 990 241 1011 +387 242 243 932 +388 242 932 1011 +389 243 244 979 +390 932 243 979 +391 244 245 949 +392 244 949 979 +393 245 246 1020 +394 245 914 949 +395 914 245 1020 +396 246 247 985 +397 246 985 1020 +398 247 248 942 +399 247 942 985 +400 248 249 973 +401 942 248 973 +402 249 250 936 +403 899 249 936 +404 249 899 973 +405 250 251 1008 +406 936 250 1008 +407 251 992 1008 +408 264 263 1010 +409 263 990 1010 +410 265 264 933 +411 933 264 1010 +412 266 265 980 +413 265 933 980 +414 267 266 950 +415 950 266 980 +416 268 267 1019 +417 913 267 950 +418 267 913 1019 +419 269 268 987 +420 987 268 1019 +421 270 269 941 +422 941 269 987 +423 271 270 975 +424 270 941 975 +425 272 271 937 +426 271 901 937 +427 901 271 975 +428 273 272 1006 +429 272 937 1006 +430 989 273 1006 +431 318 319 1013 +432 992 318 1013 +433 319 320 935 +434 319 935 1013 +435 320 321 981 +436 935 320 981 +437 321 322 951 +438 321 951 981 +439 322 323 1018 +440 322 915 951 +441 915 322 1018 +442 323 324 986 +443 323 986 1018 +444 324 325 943 +445 324 943 986 +446 325 326 974 +447 943 325 974 +448 326 327 938 +449 900 326 938 +450 326 900 974 +451 327 328 1012 +452 938 327 1012 +453 328 991 1012 +454 330 329 1007 +455 329 989 1007 +456 331 330 934 +457 934 330 1007 +458 332 331 982 +459 331 934 982 +460 333 332 948 +461 948 332 982 +462 334 333 1021 +463 912 333 948 +464 333 912 1021 +465 335 334 988 +466 988 334 1021 +467 336 335 940 +468 940 335 988 +469 337 336 972 +470 336 940 972 +471 338 337 939 +472 337 903 939 +473 903 337 972 +474 339 338 1009 +475 338 939 1009 +476 991 339 1009 +477 859 904 962 +478 904 859 984 +479 859 905 960 +480 905 859 962 +481 924 859 960 +482 859 924 965 +483 925 859 965 +484 859 925 984 +485 860 906 930 +486 906 860 966 +487 916 860 920 +488 860 916 966 +489 920 860 978 +490 860 930 1016 +491 978 860 1016 +492 892 861 945 +493 861 892 961 +494 861 918 921 +495 918 861 961 +496 861 921 926 +497 861 926 945 +498 919 862 922 +499 862 919 993 +500 922 862 976 +501 862 927 946 +502 927 862 993 +503 862 946 976 +504 863 907 931 +505 907 863 967 +506 917 863 923 +507 863 917 967 +508 923 863 977 +509 863 931 1014 +510 977 863 1014 +511 864 928 963 +512 928 864 1015 +513 953 864 963 +514 864 953 999 +515 958 864 999 +516 864 958 1015 +517 865 892 944 +518 892 865 954 +519 865 944 968 +520 954 865 998 +521 956 865 968 +522 865 956 998 +523 866 893 947 +524 893 866 952 +525 866 947 969 +526 952 866 997 +527 957 866 969 +528 866 957 997 +529 895 867 959 +530 867 895 1017 +531 867 929 964 +532 929 867 1017 +533 955 867 964 +534 867 955 1000 +535 959 867 1000 +536 868 901 916 +537 901 868 937 +538 908 868 934 +539 868 908 937 +540 868 916 1004 +541 934 868 1004 +542 898 869 918 +543 869 898 933 +544 869 909 932 +545 909 869 933 +546 918 869 1001 +547 869 932 1001 +548 870 903 917 +549 903 870 939 +550 910 870 938 +551 870 910 939 +552 870 917 1003 +553 938 870 1003 +554 871 902 919 +555 902 871 935 +556 871 911 935 +557 911 871 936 +558 871 919 1002 +559 936 871 1002 +560 892 872 944 +561 872 892 945 +562 872 925 944 +563 925 872 984 +564 872 945 970 +565 872 970 984 +566 873 894 946 +567 894 873 1015 +568 873 904 928 +569 904 873 962 +570 873 928 1015 +571 873 946 971 +572 962 873 971 +573 874 905 929 +574 905 874 960 +575 874 929 1017 +576 874 931 983 +577 931 874 1014 +578 960 874 983 +579 1014 874 1017 +580 893 875 947 +581 875 893 1016 +582 875 924 947 +583 924 875 965 +584 875 930 1005 +585 930 875 1016 +586 965 875 1005 +587 876 897 920 +588 897 876 948 +589 876 912 948 +590 912 876 952 +591 876 920 978 +592 952 876 978 +593 889 877 941 +594 877 889 956 +595 906 877 956 +596 877 906 966 +597 941 877 975 +598 877 966 995 +599 975 877 995 +600 896 878 921 +601 878 896 949 +602 914 878 949 +603 878 914 953 +604 921 878 926 +605 926 878 953 +606 888 879 940 +607 879 888 957 +608 907 879 957 +609 879 907 967 +610 940 879 972 +611 879 967 996 +612 972 879 996 +613 880 892 954 +614 892 880 961 +615 880 913 950 +616 913 880 954 +617 880 950 994 +618 961 880 994 +619 881 890 942 +620 890 881 958 +621 881 894 958 +622 894 881 976 +623 881 899 922 +624 899 881 973 +625 881 922 976 +626 881 942 973 +627 882 902 951 +628 902 882 993 +629 915 882 951 +630 882 915 955 +631 927 882 955 +632 882 927 993 +633 883 891 943 +634 891 883 959 +635 883 895 959 +636 895 883 977 +637 883 900 923 +638 900 883 974 +639 883 923 977 +640 883 943 974 +641 906 884 930 +642 884 906 968 +643 925 884 944 +644 884 925 1005 +645 930 884 1005 +646 944 884 968 +647 907 885 931 +648 885 907 969 +649 924 885 947 +650 885 924 983 +651 931 885 983 +652 947 885 969 +653 904 886 928 +654 886 904 970 +655 926 886 945 +656 886 926 963 +657 928 886 963 +658 945 886 970 +659 905 887 929 +660 887 905 971 +661 927 887 946 +662 887 927 964 +663 929 887 964 +664 946 887 971 +665 888 912 997 +666 912 888 1021 +667 888 940 988 +668 957 888 997 +669 888 988 1021 +670 889 913 998 +671 913 889 1019 +672 889 941 987 +673 956 889 998 +674 889 987 1019 +675 914 890 999 +676 890 914 1020 +677 942 890 985 +678 890 958 999 +679 985 890 1020 +680 915 891 1000 +681 891 915 1018 +682 943 891 986 +683 891 959 1000 +684 986 891 1018 +685 893 952 978 +686 893 978 1016 +687 946 894 976 +688 958 894 1015 +689 895 977 1014 +690 895 1014 1017 +691 896 921 1001 +692 896 932 979 +693 932 896 1001 +694 949 896 979 +695 920 897 1004 +696 934 897 982 +697 897 934 1004 +698 897 948 982 +699 898 918 994 +700 933 898 980 +701 898 950 980 +702 950 898 994 +703 922 899 1002 +704 899 936 1002 +705 923 900 1003 +706 900 938 1003 +707 916 901 995 +708 901 975 995 +709 919 902 993 +710 902 935 981 +711 951 902 981 +712 917 903 996 +713 903 972 996 +714 970 904 984 +715 905 962 971 +716 906 956 968 +717 907 957 969 +718 908 934 1007 +719 937 908 1006 +720 908 989 1006 +721 989 908 1007 +722 932 909 1011 +723 909 933 1010 +724 990 909 1010 +725 909 990 1011 +726 910 938 1012 +727 939 910 1009 +728 910 991 1009 +729 991 910 1012 +730 935 911 1013 +731 911 936 1008 +732 992 911 1008 +733 911 992 1013 +734 912 952 997 +735 913 954 998 +736 953 914 999 +737 955 915 1000 +738 916 920 1004 +739 966 916 995 +740 917 923 1003 +741 967 917 996 +742 921 918 1001 +743 918 961 994 +744 919 922 1002 +745 924 960 983 +746 925 965 1005 +747 926 953 963 +748 927 955 964 +3 1 4 3189 +749 401 369 993 1139 +750 430 769 1132 1138 +751 770 475 1129 1141 +752 770 734 475 1141 +753 430 733 769 1138 +754 752 828 796 442 +755 995 966 555 1136 +756 1055 1106 1078 1127 +757 460 383 1027 1126 +758 1084 770 475 1129 +759 357 369 993 401 +760 152 556 505 1136 +761 400 1029 1078 1127 +762 769 600 430 1132 +763 1031 1126 361 1140 +764 897 503 920 1136 +765 483 503 897 1136 +766 860 505 556 1136 +767 733 442 828 1138 +768 555 966 556 1136 +769 773 418 1126 1140 +770 404 482 1079 1130 +771 434 936 1128 1139 +772 773 418 599 1126 +773 517 560 648 1129 +774 647 582 462 1132 +775 1084 770 734 475 +776 771 1129 540 1141 +777 419 837 755 1140 +778 995 916 966 1136 +779 600 430 733 769 +780 86 446 861 1134 +781 896 921 445 1148 +782 445 921 446 1134 +783 85 535 86 446 +784 910 1044 1012 1127 +785 936 598 434 1128 +786 85 861 535 446 +787 752 828 442 1138 +788 369 993 1139 1144 +789 653 540 771 1129 +790 995 1136 555 1145 +791 1027 595 460 1126 +792 654 596 538 603 +793 1087 648 476 655 +794 1034 602 414 595 +795 1028 355 1035 1086 +796 596 424 538 603 +797 557 655 476 648 +798 388 1034 414 1027 +799 1079 355 1086 507 +800 755 736 837 419 +801 921 1134 445 1148 +802 505 920 503 1136 +803 393 363 394 1137 +804 355 1079 482 507 +805 414 383 388 1027 +806 596 424 462 538 +807 476 560 557 648 +808 1055 1078 1029 1127 +809 734 827 477 1141 +810 860 920 505 1136 +811 918 961 861 535 +812 1079 1028 404 1130 +813 445 446 444 1134 +814 477 475 734 1141 +815 446 921 861 1134 +816 462 647 538 582 +817 1031 361 738 1140 +818 404 355 1079 482 +819 383 414 460 1027 +820 476 517 560 648 +821 733 828 442 441 +822 460 428 24 1126 +823 739 501 830 1135 +824 648 1080 517 1129 +825 771 540 735 1141 +826 434 899 936 1139 +827 1031 362 361 1126 +828 442 733 430 1138 +829 369 357 993 1144 +830 647 462 596 1132 +831 918 534 994 961 +832 363 365 1039 1137 +833 1056 624 1027 1126 +834 742 838 613 1126 +835 756 696 583 1138 +836 383 460 24 1126 +837 1044 1065 1012 1127 +838 773 736 418 1140 +839 505 920 978 503 +840 830 501 751 1135 +841 402 354 1026 463 +842 470 752 796 442 +843 861 86 535 446 +844 394 1127 393 1137 +845 366 51 404 1130 +846 1106 1074 1078 1127 +847 594 622 1054 1128 +848 419 736 837 1140 +849 861 535 86 1134 +850 400 395 394 1127 +851 1083 493 492 1130 +852 1055 1029 1025 1127 +853 437 594 463 1128 +854 918 535 861 1134 +855 599 773 736 418 +856 49 698 529 1135 +857 49 405 698 1135 +858 1028 1108 1057 1130 +859 860 505 153 556 +860 961 918 534 535 +861 447 35 380 1128 +862 1009 910 939 1127 +863 742 613 838 820 +864 1044 991 910 1012 +865 400 394 1049 1127 +866 492 501 739 1135 +867 404 51 482 1130 +868 447 463 35 1128 +869 517 486 144 1129 +870 674 623 646 1133 +871 698 405 758 1135 +872 615 459 460 1126 +873 993 357 902 1144 +874 1094 1044 910 1127 +875 1109 648 677 1129 +876 545 94 582 1132 +877 534 536 994 961 +878 402 380 35 1128 +879 653 541 540 1129 +880 550 757 735 1141 +881 647 625 676 1132 +882 427 896 445 1148 +883 554 555 1136 1145 +884 675 1107 664 1131 +885 742 613 820 1043 +886 910 1094 991 1044 +887 600 431 430 1132 +888 742 840 772 1126 +889 770 1129 706 1141 +890 862 922 416 1139 +891 769 843 630 1132 +892 653 540 735 771 +893 517 144 560 1129 +894 770 1114 845 1129 +895 428 382 24 1126 +896 696 96 583 1138 +897 462 582 94 1132 +898 434 899 598 936 +899 1117 1009 939 1127 +900 897 982 948 484 +901 402 35 463 1128 +902 419 418 736 1140 +903 427 445 896 425 +904 483 1136 897 1143 +905 1007 908 1115 1143 +906 979 949 426 896 +907 24 382 383 1126 +908 153 480 505 1016 +909 897 982 484 1143 +910 41 1137 1127 1146 +911 1082 490 1127 1146 +912 698 751 529 1135 +913 538 647 596 654 +914 648 1087 476 1080 +915 1027 1034 414 595 +916 355 1028 1079 1086 +917 1055 1094 1106 1127 +918 470 96 696 1138 +919 735 540 550 1141 +920 554 555 556 1136 +921 908 1095 1115 1131 +922 353 404 1047 1130 +923 566 472 656 1149 +924 383 362 1048 1126 +925 1079 1028 355 404 +926 1027 414 460 595 +927 648 476 517 1080 +928 704 1132 769 1138 +929 647 462 538 596 +930 1063 772 840 1126 +931 876 920 897 503 +932 472 1088 656 1149 +933 713 539 756 798 +934 583 539 756 1138 +935 501 500 739 830 +936 1016 978 505 860 +937 505 153 1016 860 +938 908 1131 1115 1143 +939 1049 1127 394 1137 +940 1049 1029 400 1127 +941 632 613 838 1126 +942 770 706 734 1141 +943 470 752 442 1138 +944 539 756 1138 1151 +945 478 517 1100 1129 +946 978 516 505 503 +947 1043 820 742 840 +948 1009 910 1094 991 +949 497 51 366 1130 +950 758 698 808 405 +951 1107 1131 675 1149 +952 422 861 85 446 +953 376 883 365 1137 +954 529 751 501 1135 +955 1062 1128 1013 1144 +956 668 533 582 1132 +957 967 1142 491 1146 +958 483 485 897 503 +959 362 1031 1048 1126 +960 1115 1095 1075 1131 +961 525 697 142 1141 +962 878 445 921 455 +963 482 51 497 1130 +964 1075 1115 1131 1143 +965 470 696 752 1138 +966 752 796 696 470 +967 753 477 827 1141 +968 41 395 1127 1137 +969 437 434 614 1128 +970 896 1001 921 1148 +971 525 753 697 1141 +972 698 758 751 1135 +973 372 829 738 1140 +974 480 978 505 1016 +975 1075 1095 1107 1131 +976 486 559 144 1129 +977 430 733 442 441 +978 705 1130 775 1135 +979 1099 482 493 1130 +980 921 896 445 878 +981 1064 844 774 1130 +982 920 1004 897 1136 +983 438 94 545 1132 +984 738 361 372 1140 +985 978 920 505 860 +986 483 897 484 1143 +987 664 1107 1095 1131 +988 144 559 560 1129 +989 841 1116 775 1130 +990 410 26 695 1140 +991 610 633 1008 1128 +992 534 535 918 1134 +993 1027 624 595 1126 +994 534 1134 994 1147 +995 1001 1134 921 1148 +996 613 1043 742 1126 +997 372 371 738 829 +998 462 94 438 1132 +999 501 529 830 751 +1000 1025 1029 1049 1127 +1001 1065 938 1012 1127 +1002 505 503 504 1136 +1003 534 918 994 1134 +1004 923 1137 376 1142 +1005 938 1127 1032 1137 +1006 560 541 667 1129 +1007 632 838 773 1126 +1008 1099 493 1083 1130 +1009 695 465 755 1140 +1010 757 835 735 1141 +1011 935 1062 1013 1144 +1012 922 899 435 1139 +1013 616 462 431 1132 +1014 745 770 845 1129 +1015 996 967 491 1146 +1016 378 977 863 1014 +1017 911 610 1008 1128 +1018 1063 1031 772 1126 +1019 1055 1044 1094 1127 +1020 1117 939 1082 1127 +1021 682 1010 1133 1147 +1022 391 473 400 1029 +1023 769 630 600 1132 +1024 897 1136 1004 1143 +1025 704 769 733 1138 +1026 1075 1131 1107 1149 +1027 822 745 665 839 +1028 437 447 434 1128 +1029 437 463 447 1128 +1030 738 361 371 372 +1031 492 500 739 501 +1032 1084 1114 770 1129 +1033 908 1007 1115 1095 +1034 839 665 684 1129 +1035 360 758 405 1135 +1036 768 683 842 1132 +1037 614 594 437 1128 +1038 939 1082 1127 1146 +1039 1054 1026 594 1128 +1040 610 1008 992 911 +1041 477 753 525 1141 +1042 41 377 1137 1146 +1043 665 1096 745 822 +1044 697 586 142 1141 +1045 742 773 838 1126 +1046 876 978 920 503 +1047 528 501 492 1135 +1048 769 743 843 1132 +1049 756 752 696 1138 +1050 529 501 528 1135 +1051 839 745 665 1129 +1052 922 1002 899 1139 +1053 541 653 667 1129 +1054 610 992 1042 911 +1055 1028 1079 1108 1130 +1056 896 949 426 425 +1057 506 491 967 1142 +1058 1012 938 910 1127 +1059 382 361 362 1126 +1060 616 431 600 1132 +1061 1093 1084 734 475 +1062 547 534 536 994 +1063 1098 1082 490 1127 +1064 426 896 427 1148 +1065 434 435 899 1139 +1066 1008 633 936 1128 +1067 717 737 360 787 +1068 1039 365 900 1137 +1069 703 1126 772 1140 +1070 534 994 547 1147 +1071 664 1095 908 1131 +1072 1049 1032 1127 1137 +1073 623 597 646 1133 +1074 1097 823 1045 744 +1075 1095 664 908 989 +1076 990 611 662 909 +1077 612 743 821 663 +1078 715 796 828 442 +1079 648 1109 1080 1129 +1080 976 922 416 862 +1081 492 1130 497 1135 +1082 360 758 1135 1150 +1083 1014 863 378 43 +1084 376 923 883 1137 +1085 599 632 773 1126 +1086 647 596 625 1132 +1087 775 1116 1083 1130 +1088 903 491 996 972 +1089 550 586 757 1141 +1090 896 426 427 425 +1091 442 430 469 1138 +1092 979 896 426 1148 +1093 774 1064 1130 1150 +1094 26 465 695 1140 +1095 735 540 549 550 +1096 540 588 550 1141 +1097 878 896 445 425 +1098 460 459 428 1126 +1099 151 495 1131 1136 +1100 734 474 475 477 +1101 1117 1082 1074 1127 +1102 470 442 469 1138 +1103 631 1133 1011 1148 +1104 756 583 696 798 +1105 1032 938 1065 1127 +1106 491 903 996 1146 +1107 360 405 367 1135 +1108 684 771 839 1129 +1109 733 441 609 812 +1110 488 41 1127 1146 +1111 1016 153 480 930 +1112 827 714 477 765 +1113 978 876 516 503 +1114 588 586 550 1141 +1115 550 810 757 586 +1116 539 732 713 756 +1117 757 586 697 1141 +1118 1039 1032 363 1137 +1119 750 829 372 1140 +1120 151 495 573 1131 +1121 497 492 493 1130 +1122 948 485 897 484 +1123 151 1131 573 1136 +1124 844 1064 1045 1130 +1125 583 546 539 1138 +1126 633 598 936 1128 +1127 758 808 717 360 +1128 383 382 362 1126 +1129 752 733 828 1138 +1130 1048 1027 383 1126 +1131 394 395 393 1127 +1132 994 1134 918 1147 +1133 434 1128 447 1139 +1134 773 837 736 1140 +1135 615 460 595 1126 +1136 542 975 995 1145 +1137 547 994 898 1147 +1138 1032 1065 1025 1127 +1139 1106 1094 1074 1127 +1140 1078 1074 496 1127 +1141 768 683 1132 1151 +1142 41 377 395 1137 +1143 1011 631 611 1133 +1144 899 1002 936 1139 +1145 491 490 522 972 +1146 153 1016 860 930 +1147 1025 1044 1055 1127 +1148 1033 1130 1064 1150 +1149 484 485 897 483 +1150 539 732 756 1151 +1151 430 1132 438 1138 +1152 372 409 410 1140 +1153 841 775 744 1130 +1154 862 919 922 1139 +1155 442 828 715 441 +1156 909 1133 1010 1147 +1157 473 400 1029 1078 +1158 897 485 876 503 +1159 410 695 750 1140 +1160 351 360 737 787 +1161 1023 1031 1063 1126 +1162 977 923 376 1142 +1163 361 1126 382 1140 +1164 657 604 412 580 +1165 488 1127 490 1146 +1166 1029 1089 473 1078 +1167 541 559 540 1129 +1168 353 366 404 1130 +1169 604 657 597 580 +1170 683 663 842 1132 +1171 705 775 739 1135 +1172 736 599 418 606 +1173 598 614 434 1128 +1174 653 771 684 1129 +1175 744 1097 823 841 +1176 1006 908 664 989 +1177 534 536 961 535 +1178 412 604 597 580 +1179 438 430 431 1132 +1180 416 922 435 1139 +1181 613 624 1056 1126 +1182 863 1014 931 43 +1183 599 592 632 1126 +1184 771 735 835 1141 +1185 1079 482 1099 1130 +1186 477 734 474 827 +1187 1047 404 1028 1130 +1188 750 410 372 829 +1189 493 482 497 1130 +1190 559 540 1129 1141 +1191 651 1132 683 1151 +1192 844 1045 744 1130 +1193 733 828 441 785 +1194 756 539 583 798 +1195 555 542 995 1145 +1196 517 478 486 1129 +1197 720 760 589 847 +1198 86 535 534 1134 +1199 977 376 378 1142 +1200 377 1142 1137 1146 +1201 501 529 783 830 +1202 877 995 555 542 +1203 810 757 716 550 +1204 1096 745 822 845 +1205 982 1092 484 1143 +1206 675 664 645 1131 +1207 1056 1027 1023 1126 +1208 877 995 542 975 +1209 477 525 487 1141 +1210 354 605 629 1061 +1211 49 529 698 48 +1212 545 582 533 1132 +1213 365 883 900 1137 +1214 477 784 714 827 +1215 372 410 750 1140 +1216 418 419 736 417 +1217 633 590 598 1128 +1218 882 902 368 951 +1219 930 860 153 564 +1220 592 595 624 1126 +1221 361 409 372 1140 +1222 681 412 657 627 +1223 667 648 560 1129 +1224 1110 507 1086 1060 +1225 626 1058 1034 388 +1226 1112 680 655 557 +1227 678 603 424 628 +1228 950 547 536 994 +1229 529 783 830 751 +1230 474 1093 734 475 +1231 539 713 732 531 +1232 679 566 1111 656 +1233 1113 1059 1036 391 +1234 517 1080 1100 1129 +1235 974 365 364 390 +1236 1011 611 909 1133 +1237 500 739 803 492 +1238 433 464 617 1133 +1239 596 462 616 1132 +1240 425 949 426 440 +1241 844 744 774 1130 +1242 668 582 647 1132 +1243 1074 1094 1117 1127 +1244 541 560 559 1129 +1245 1116 1076 1083 1130 +1246 88 580 464 1133 +1247 975 543 542 568 +1248 622 1042 1054 1128 +1249 698 49 48 405 +1250 500 803 739 830 +1251 368 370 882 951 +1252 41 489 377 1146 +1253 556 576 966 555 +1254 431 462 438 1132 +1255 357 993 927 401 +1256 803 1090 500 492 +1257 594 590 622 1128 +1258 1042 610 911 1128 +1259 909 662 990 1010 +1260 743 821 843 612 +1261 97 781 849 98 +1262 547 950 898 994 +1263 666 646 581 1133 +1264 806 738 361 371 +1265 660 805 735 549 +1266 861 921 918 1134 +1267 1044 1025 1065 1127 +1268 743 842 663 1132 +1269 995 916 1136 1145 +1270 1057 1108 1045 1130 +1271 1082 903 490 1146 +1272 882 902 357 368 +1273 543 975 542 1145 +1274 1013 1042 992 911 +1275 441 430 733 609 +1276 1033 1024 1064 1130 +1277 1026 1046 402 1128 +1278 456 973 607 434 +1279 909 1011 1133 1148 +1280 378 1014 43 387 +1281 432 464 433 1133 +1282 597 617 464 1133 +1283 1071 37 639 629 +1284 537 961 536 535 +1285 361 1038 806 371 +1286 1054 1022 1026 1128 +1287 1045 1097 744 1130 +1288 470 696 96 97 +1289 378 863 977 1142 +1290 535 567 861 85 +1291 993 882 902 357 +1292 412 597 464 580 +1293 665 745 1096 1129 +1294 799 755 465 419 +1295 27 695 410 26 +1296 682 933 1010 1147 +1297 674 662 623 1133 +1298 1023 1027 1048 1126 +1299 951 902 368 981 +1300 609 430 733 600 +1301 653 684 644 1129 +1302 142 141 697 525 +1303 429 418 419 1140 +1304 422 861 446 926 +1305 365 1039 974 364 +1306 96 696 583 97 +1307 1076 1108 1079 1130 +1308 1109 677 665 1129 +1309 564 860 153 556 +1310 630 593 600 1132 +1311 898 994 918 1147 +1312 360 758 808 405 +1313 34 447 380 1139 +1314 1028 1057 1024 1130 +1315 539 713 583 798 +1316 43 931 863 509 +1317 595 592 615 1126 +1318 589 760 720 849 +1319 1092 948 982 484 +1320 393 1127 395 1137 +1321 428 1126 418 1140 +1322 426 608 949 979 +1323 625 612 676 1132 +1324 974 900 1039 365 +1325 152 153 505 556 +1326 768 842 743 1132 +1327 611 662 909 1133 +1328 447 1128 380 1139 +1329 459 418 428 1126 +1330 908 1007 1095 989 +1331 844 1045 823 744 +1332 531 713 732 786 +1333 990 611 909 1011 +1334 490 491 903 972 +1335 1084 1077 1114 1129 +1336 842 821 743 663 +1337 922 416 435 976 +1338 966 860 906 556 +1339 644 677 648 1129 +1340 491 490 903 1146 +1341 623 591 597 1133 +1342 674 646 642 1133 +1343 43 863 378 1142 +1344 716 735 549 550 +1345 1008 936 911 1128 +1346 627 640 691 90 +1347 1123 1072 1059 38 +1348 614 590 594 1128 +1349 464 432 88 1133 +1350 711 500 501 830 +1351 380 402 379 1128 +1352 651 643 683 1132 +1353 477 487 475 1141 +1354 645 675 1131 1149 +1355 1077 1080 1109 1129 +1356 909 1010 933 1147 +1357 596 593 625 1132 +1358 1047 353 1130 1150 +1359 1014 931 43 44 +1360 504 503 483 1136 +1361 783 529 698 751 +1362 917 1142 967 1146 +1363 663 612 743 1132 +1364 472 566 577 1149 +1365 376 378 399 977 +1366 647 676 643 1132 +1367 1056 1043 613 1126 +1368 1124 148 1111 692 +1369 880 961 536 537 +1370 370 882 357 368 +1371 360 808 717 405 +1372 379 402 1046 1128 +1373 697 141 142 586 +1374 902 357 368 1144 +1375 50 497 366 1135 +1376 360 737 758 1150 +1377 545 95 438 1138 +1378 783 727 698 524 +1379 516 978 505 480 +1380 605 354 1037 1061 +1381 860 916 920 1136 +1382 488 41 395 1127 +1383 1079 1099 1076 1130 +1384 839 771 745 1129 +1385 806 738 371 829 +1386 417 736 418 606 +1387 1098 490 496 1127 +1388 412 604 657 627 +1389 656 472 1111 1088 +1390 103 761 718 754 +1391 472 656 1111 566 +1392 703 742 772 1126 +1393 1036 1089 1113 391 +1394 738 703 772 1140 +1395 798 583 696 849 +1396 1026 1022 1046 1128 +1397 1028 1024 1047 1130 +1398 735 716 757 550 +1399 413 354 605 629 +1400 378 977 1014 387 +1401 509 931 863 907 +1402 1074 1098 496 1127 +1403 644 648 667 1129 +1404 945 861 85 422 +1405 796 715 470 442 +1406 642 646 666 1133 +1407 597 591 617 1133 +1408 366 353 352 1130 +1409 808 698 851 405 +1410 486 1129 475 1141 +1411 497 1130 366 1135 +1412 973 899 607 434 +1413 1042 622 610 1128 +1414 755 710 736 419 +1415 596 616 593 1132 +1416 668 533 1132 1151 +1417 921 446 861 926 +1418 149 566 577 472 +1419 151 573 554 1136 +1420 524 47 801 767 +1421 909 932 1011 1148 +1422 755 799 710 419 +1423 540 660 735 549 +1424 1100 1080 1077 1129 +1425 646 580 581 1133 +1426 753 525 697 765 +1427 498 485 948 484 +1428 899 607 434 598 +1429 996 917 967 1146 +1430 1091 490 1082 903 +1431 1108 1097 1045 1130 +1432 647 643 668 1132 +1433 366 1135 1130 1150 +1434 488 489 41 1146 +1435 735 660 540 653 +1436 1038 738 1031 361 +1437 739 1090 492 1083 +1438 377 489 1142 1146 +1439 849 781 565 98 +1440 906 576 966 556 +1441 416 435 436 1139 +1442 365 363 1039 364 +1443 932 631 1011 1148 +1444 26 27 695 465 +1445 611 623 662 1133 +1446 608 426 949 440 +1447 967 863 506 1142 +1448 1039 900 1032 1137 +1449 646 597 657 580 +1450 446 86 444 1134 +1451 567 945 861 85 +1452 1088 1081 656 1149 +1453 665 1096 1109 1129 +1454 372 712 371 829 +1455 572 1136 1131 1145 +1456 881 922 435 976 +1457 461 729 715 796 +1458 981 902 368 1144 +1459 478 475 486 1129 +1460 711 803 500 830 +1461 768 651 683 1151 +1462 1075 1143 1131 1149 +1463 612 663 676 1132 +1464 564 930 860 906 +1465 698 851 48 767 +1466 533 532 545 1132 +1467 757 697 753 1141 +1468 774 1033 1064 1150 +1469 1022 1128 1062 1144 +1470 717 737 758 360 +1471 441 733 785 812 +1472 1091 522 490 972 +1473 703 773 742 1126 +1474 393 395 377 1137 +1475 545 438 1132 1138 +1476 27 410 695 408 +1477 428 382 1126 1140 +1478 152 505 504 1136 +1479 860 564 906 556 +1480 745 706 770 1129 +1481 496 490 488 1127 +1482 1090 803 739 492 +1483 921 926 878 455 +1484 764 695 410 408 +1485 1074 1082 1098 1127 +1486 153 154 480 930 +1487 967 863 907 506 +1488 753 827 734 1141 +1489 975 542 877 568 +1490 455 422 963 421 +1491 525 477 714 765 +1492 93 462 424 538 +1493 145 560 557 476 +1494 23 414 383 388 +1495 507 482 355 52 +1496 900 883 923 1137 +1497 486 143 559 1141 +1498 509 863 43 506 +1499 360 1135 367 1150 +1500 428 25 382 1140 +1501 553 810 550 586 +1502 554 1136 572 1145 +1503 796 715 461 470 +1504 518 472 577 1149 +1505 413 463 354 36 +1506 806 738 1038 361 +1507 472 577 149 518 +1508 546 539 1138 1151 +1509 368 1041 951 981 +1510 698 529 783 524 +1511 695 755 750 1140 +1512 367 405 49 1135 +1513 566 656 649 1149 +1514 536 994 961 880 +1515 545 1138 1132 1151 +1516 436 435 434 1139 +1517 498 948 1092 484 +1518 48 47 524 767 +1519 802 765 722 530 +1520 472 1081 1088 1149 +1521 1032 1025 1049 1127 +1522 703 773 1126 1140 +1523 351 737 360 1150 +1524 591 1133 631 1148 +1525 369 368 357 1144 +1526 713 583 798 760 +1527 716 735 805 549 +1528 729 696 796 470 +1529 743 769 704 1132 +1530 903 1091 490 972 +1531 492 497 528 1135 +1532 583 96 546 1138 +1533 787 737 351 811 +1534 980 547 898 1147 +1535 477 474 784 827 +1536 949 896 878 425 +1537 829 372 712 764 +1538 974 900 365 883 +1539 939 903 1082 1146 +1540 608 979 426 1148 +1541 801 47 709 767 +1542 697 757 810 586 +1543 441 828 715 785 +1544 879 967 510 491 +1545 465 26 429 1140 +1546 40 395 400 1127 +1547 573 1131 495 1149 +1548 554 556 152 1136 +1549 696 97 781 849 +1550 352 1130 353 1150 +1551 531 732 539 1151 +1552 813 531 732 786 +1553 987 941 568 687 +1554 462 93 582 538 +1555 560 145 517 476 +1556 23 414 460 383 +1557 482 404 355 52 +1558 679 1111 148 692 +1559 711 501 783 830 +1560 1131 1136 495 1143 +1561 1093 734 814 474 +1562 627 691 681 90 +1563 1059 1113 1123 38 +1564 629 1071 37 1061 +1565 1043 1023 1063 1126 +1566 430 438 469 1138 +1567 863 509 907 506 +1568 685 1006 937 1131 +1569 967 879 996 491 +1570 1104 776 803 500 +1571 470 729 696 468 +1572 387 1014 43 44 +1573 486 559 1129 1141 +1574 592 613 632 1126 +1575 849 565 97 98 +1576 1078 40 473 400 +1577 542 555 877 568 +1578 1048 1031 1023 1126 +1579 810 716 553 550 +1580 435 456 973 881 +1581 366 1130 352 1150 +1582 506 510 967 491 +1583 897 876 485 948 +1584 463 402 354 36 +1585 1056 1023 1043 1126 +1586 975 543 568 941 +1587 1071 639 3 638 +1588 744 705 774 1130 +1589 566 649 577 1149 +1590 939 910 870 1127 +1591 961 537 892 535 +1592 624 613 592 1126 +1593 734 784 474 827 +1594 1047 1130 1033 1150 +1595 898 980 950 547 +1596 576 877 966 555 +1597 371 712 806 829 +1598 781 696 729 468 +1599 803 776 711 500 +1600 710 736 419 417 +1601 380 1139 1128 1144 +1602 543 542 544 1145 +1603 88 581 580 1133 +1604 995 966 877 555 +1605 592 599 615 1126 +1606 977 883 376 923 +1607 774 1130 705 1150 +1608 922 435 899 881 +1609 892 567 861 535 +1610 43 506 863 1142 +1611 633 610 590 1128 +1612 1058 626 1070 22 +1613 432 87 1133 1134 +1614 371 1050 806 778 +1615 755 695 799 465 +1616 900 938 1032 1137 +1617 682 1133 642 1147 +1618 626 638 1070 22 +1619 559 588 540 1141 +1620 390 974 365 883 +1621 897 934 982 1143 +1622 614 598 590 1128 +1623 532 1132 533 1151 +1624 771 706 1129 1141 +1625 977 399 895 387 +1626 363 393 365 1137 +1627 590 610 622 1128 +1628 351 811 737 1150 +1629 487 525 142 1141 +1630 371 806 712 778 +1631 678 628 92 641 +1632 1110 1073 53 1060 +1633 1112 146 693 680 +1634 973 899 435 881 +1635 1122 1073 53 1110 +1636 641 92 678 690 +1637 1116 1097 1076 1130 +1638 977 378 399 387 +1639 491 1142 489 1146 +1640 722 780 525 765 +1641 410 372 829 764 +1642 554 542 555 1145 +1643 146 693 1125 1112 +1644 1064 1024 1045 1130 +1645 1099 1083 1076 1130 +1646 1062 1022 1042 1128 +1647 1054 1042 1022 1128 +1648 545 1132 532 1151 +1649 567 945 85 84 +1650 645 664 685 1131 +1651 986 1067 390 943 +1652 934 908 1007 1143 +1653 805 672 779 549 +1654 537 880 961 892 +1655 668 1132 651 1151 +1656 743 704 768 1132 +1657 525 780 697 765 +1658 531 813 732 1151 +1659 49 529 528 1135 +1660 434 447 436 1139 +1661 994 536 950 880 +1662 1108 1076 1097 1130 +1663 631 591 611 1133 +1664 682 662 642 1133 +1665 525 714 477 527 +1666 583 798 760 849 +1667 387 1017 1014 874 +1668 1057 1045 1024 1130 +1669 644 684 665 1129 +1670 938 870 1127 1137 +1671 931 1014 874 44 +1672 450 953 878 914 +1673 1047 1024 1033 1130 +1674 415 976 416 946 +1675 657 597 221 604 +1676 1036 342 1089 1029 +1677 276 656 1088 1081 +1678 254 594 1037 605 +1679 655 282 1087 648 +1680 1034 260 602 595 +1681 1028 1035 348 1086 +1682 227 596 654 603 +1683 3 37 639 1071 +1684 358 32 862 946 +1685 531 539 713 585 +1686 612 593 630 1132 +1687 934 1007 1115 1143 +1688 1089 473 1113 391 +1689 906 968 956 576 +1690 768 1132 704 1151 +1691 883 376 399 977 +1692 646 666 581 580 +1693 801 727 524 767 +1694 518 1081 472 1149 +1695 1096 1114 1077 1129 +1696 1072 1122 5 1123 +1697 91 640 691 690 +1698 781 97 696 468 +1699 591 623 611 1133 +1700 674 642 662 1133 +1701 927 358 357 401 +1702 665 677 644 1129 +1703 710 736 417 804 +1704 1131 1143 495 1149 +1705 886 963 422 421 +1706 667 653 644 1129 +1707 97 696 583 849 +1708 847 589 720 565 +1709 581 88 432 1133 +1710 703 837 773 1140 +1711 48 524 698 767 +1712 663 683 643 1132 +1713 780 708 140 578 +1714 468 781 97 98 +1715 695 764 794 408 +1716 565 589 720 849 +1717 433 432 1133 1148 +1718 629 37 354 1061 +1719 780 514 722 525 +1720 1077 1109 1096 1129 +1721 501 711 783 502 +1722 625 593 612 1132 +1723 968 575 956 576 +1724 616 600 593 1132 +1725 949 618 608 440 +1726 522 879 972 940 +1727 368 1041 981 1144 +1728 936 871 1128 1139 +1729 884 930 1005 552 +1730 663 643 676 1132 +1731 1078 1074 1098 496 +1732 659 975 543 1145 +1733 396 867 895 1017 +1734 771 835 706 1141 +1735 469 96 470 1138 +1736 810 731 697 586 +1737 627 681 412 90 +1738 814 1084 734 1093 +1739 812 609 733 600 +1740 494 495 1143 1149 +1741 90 640 691 91 +1742 5 1072 1123 38 +1743 361 382 409 1140 +1744 926 446 422 455 +1745 796 461 729 470 +1746 1110 53 507 1060 +1747 22 1058 626 388 +1748 680 1112 146 557 +1749 628 424 678 92 +1750 926 422 963 455 +1751 445 878 425 455 +1752 1077 1084 1100 1129 +1753 386 887 31 946 +1754 548 950 547 536 +1755 409 26 410 1140 +1756 1111 148 566 679 +1757 1059 1113 38 391 +1758 410 750 695 764 +1759 32 415 416 946 +1760 668 643 651 1132 +1761 957 969 513 510 +1762 930 154 1005 552 +1763 1084 734 770 814 +1764 600 733 812 769 +1765 47 519 524 801 +1766 47 709 46 801 +1767 1081 649 656 1149 +1768 936 1002 871 1139 +1769 874 1014 387 44 +1770 794 728 695 465 +1771 376 1137 377 1142 +1772 793 553 587 810 +1773 910 938 870 1127 +1774 390 364 974 943 +1775 606 417 736 804 +1776 531 713 786 585 +1777 543 975 671 941 +1778 524 727 698 767 +1779 909 1133 869 1148 +1780 930 153 154 564 +1781 1124 147 148 692 +1782 878 425 450 914 +1783 578 697 731 586 +1784 730 717 808 405 +1785 799 467 710 419 +1786 467 799 465 419 +1787 583 760 589 849 +1788 48 851 698 405 +1789 1124 693 147 692 +1790 141 780 697 525 +1791 491 506 489 1142 +1792 868 1131 908 1143 +1793 433 1133 617 1148 +1794 87 581 1133 1134 +1795 978 516 893 480 +1796 27 695 794 408 +1797 588 142 586 1141 +1798 870 939 1127 1146 +1799 569 956 576 568 +1800 440 914 618 634 +1801 1030 1022 1062 1144 +1802 760 713 583 589 +1803 715 443 442 441 +1804 359 815 408 28 +1805 781 468 420 98 +1806 783 529 501 502 +1807 895 396 1017 387 +1808 97 470 696 468 +1809 953 878 455 450 +1810 953 455 963 421 +1811 892 567 945 861 +1812 982 934 1085 1143 +1813 804 620 417 777 +1814 810 553 587 586 +1815 187 847 763 188 +1816 876 485 516 503 +1817 376 390 365 883 +1818 871 911 1128 1144 +1819 422 85 945 84 +1820 980 661 547 1147 +1821 380 369 1139 1144 +1822 982 1085 1092 1143 +1823 861 961 892 535 +1824 834 1138 756 1151 +1825 1006 908 937 1131 +1826 498 948 1102 1092 +1827 750 410 829 764 +1828 151 504 495 1136 +1829 87 581 432 1133 +1830 1130 1135 705 1150 +1831 697 780 141 578 +1832 511 912 485 952 +1833 808 851 730 405 +1834 784 814 734 474 +1835 873 1015 928 452 +1836 513 969 957 866 +1837 367 1135 366 1150 +1838 780 697 731 578 +1839 815 408 721 359 +1840 98 99 420 800 +1841 103 718 761 104 +1842 804 417 710 777 +1843 471 467 792 799 +1844 895 399 959 396 +1845 907 510 967 506 +1846 775 705 744 1130 +1847 480 893 978 1016 +1848 1020 985 637 457 +1849 572 1131 571 1145 +1850 500 526 776 502 +1851 380 1128 379 1144 +1852 527 765 714 530 +1853 357 356 955 397 +1854 987 568 558 687 +1855 354 413 37 629 +1856 453 728 794 465 +1857 794 408 815 28 +1858 571 1131 573 1149 +1859 500 776 711 502 +1860 912 1118 498 1102 +1861 1046 379 1128 1144 +1862 545 546 1138 1151 +1863 779 716 805 549 +1864 788 714 765 530 +1865 467 417 448 777 +1866 495 504 483 1136 +1867 371 406 778 375 +1868 526 776 1104 500 +1869 543 544 659 1145 +1870 1111 566 148 472 +1871 934 897 1004 1143 +1872 1004 1136 868 1143 +1873 652 685 937 1131 +1874 470 715 443 442 +1875 945 861 422 926 +1876 867 895 959 396 +1877 778 712 371 375 +1878 98 781 565 800 +1879 381 986 1067 390 +1880 1047 352 353 1150 +1881 601 591 631 1148 +1882 432 1134 1133 1148 +1883 1014 977 895 387 +1884 355 507 53 1060 +1885 414 22 626 388 +1886 678 424 538 92 +1887 557 1112 146 476 +1888 485 516 511 952 +1889 728 453 853 854 +1890 1050 371 406 778 +1891 141 780 140 578 +1892 390 389 959 399 +1893 516 952 876 978 +1894 3 1071 638 1070 +1895 783 782 523 502 +1896 524 698 529 48 +1897 916 868 1136 1145 +1898 444 1134 432 1148 +1899 721 794 408 815 +1900 721 825 762 359 +1901 568 877 975 941 +1902 871 935 911 1144 +1903 914 618 949 440 +1904 882 993 927 357 +1905 954 537 536 574 +1906 794 764 721 408 +1907 377 489 42 1142 +1908 411 730 717 790 +1909 150 573 495 1149 +1910 533 668 532 1151 +1911 960 4 924 45 +1912 141 697 578 586 +1913 882 357 955 397 +1914 494 1143 1101 1149 +1915 1132 1138 704 1151 +1916 874 387 1017 373 +1917 428 418 429 1140 +1918 571 572 573 1131 +1919 968 906 564 576 +1920 578 708 140 579 +1921 714 525 765 527 +1922 781 565 720 849 +1923 884 564 930 552 +1924 878 425 455 450 +1925 728 471 792 799 +1926 364 1051 974 943 +1927 1133 1134 581 1147 +1928 384 1017 387 373 +1929 909 869 932 1148 +1930 729 715 789 461 +1931 868 908 934 1143 +1932 571 669 1131 1149 +1933 444 432 427 1148 +1934 516 952 978 893 +1935 103 707 761 754 +1936 1046 1128 1022 1144 +1937 494 518 495 1149 +1938 739 830 751 1135 +1939 913 689 548 673 +1940 745 771 706 1129 +1941 915 370 1069 1053 +1942 575 968 564 576 +1943 661 950 980 547 +1944 810 587 731 586 +1945 657 412 681 210 +1946 539 583 713 585 +1947 869 1133 909 1147 +1948 568 941 987 889 +1949 154 930 564 552 +1950 584 553 779 549 +1951 946 862 358 927 +1952 486 475 487 1141 +1953 63 1036 391 1029 +1954 656 199 566 649 +1955 731 708 780 578 +1956 455 963 926 953 +1957 868 1136 1131 1143 +1958 450 864 953 999 +1959 870 1127 1137 1146 +1960 912 485 952 876 +1961 906 576 877 966 +1962 960 374 4 45 +1963 343 1113 1059 1036 +1964 1110 1086 347 1060 +1965 656 1111 679 277 +1966 259 626 1058 1034 +1967 281 1112 680 655 +1968 629 605 255 1061 +1969 678 226 603 628 +1970 657 222 681 627 +1971 507 1086 1079 180 +1972 78 1034 388 1027 +1973 596 109 424 603 +1974 557 194 655 648 +1975 584 779 672 549 +1976 972 1105 522 940 +1977 40 488 395 1127 +1978 949 425 914 440 +1979 358 386 31 946 +1980 576 906 564 556 +1981 569 956 568 889 +1982 872 892 563 567 +1983 983 373 960 45 +1984 983 931 874 44 +1985 375 712 371 372 +1986 948 912 498 1102 +1987 959 389 1000 867 +1988 967 510 907 879 +1989 520 879 522 940 +1990 652 1131 937 1145 +1991 952 516 481 893 +1992 715 443 461 470 +1993 883 399 895 977 +1994 448 417 620 777 +1995 28 815 718 29 +1996 140 514 780 141 +1997 1133 1134 869 1148 +1998 617 1133 591 1148 +1999 536 880 537 954 +2000 42 377 41 489 +2001 646 597 221 657 +2002 1029 342 1089 1078 +2003 1037 1026 594 254 +2004 1081 276 656 649 +2005 648 282 1087 1080 +2006 348 1079 1028 1086 +2007 654 647 596 227 +2008 260 1034 1027 595 +2009 501 500 711 502 +2010 384 964 396 929 +2011 805 660 672 549 +2012 720 565 781 800 +2013 1088 472 165 1081 +2014 114 604 597 412 +2015 519 727 524 801 +2016 1069 322 915 1053 +2017 730 717 405 411 +2018 929 384 385 373 +2019 415 894 976 946 +2020 456 942 973 881 +2021 101 746 789 832 +2022 453 103 754 854 +2023 952 485 516 876 +2024 789 101 701 461 +2025 384 386 964 929 +2026 815 762 740 18 +2027 911 936 871 1128 +2028 520 879 491 522 +2029 380 369 34 1139 +2030 565 763 847 188 +2031 914 245 618 634 +2032 5 1073 1122 1072 +2033 640 91 641 690 +2034 935 1030 1062 1144 +2035 984 970 561 83 +2036 1125 693 147 1124 +2037 373 874 387 44 +2038 754 853 453 854 +2039 391 400 63 1029 +2040 199 577 566 649 +2041 1004 868 934 1143 +2042 50 528 497 1135 +2043 403 721 764 408 +2044 333 1118 912 1102 +2045 545 546 95 1138 +2046 803 1090 1104 500 +2047 571 577 669 1149 +2048 875 893 480 1016 +2049 495 1136 483 1143 +2050 565 583 589 849 +2051 709 47 398 767 +2052 695 728 799 465 +2053 807 708 140 780 +2054 438 95 469 1138 +2055 800 99 707 824 +2056 529 783 523 502 +2057 34 436 447 1139 +2058 887 971 31 946 +2059 1079 482 507 180 +2060 388 383 78 1027 +2061 424 109 596 462 +2062 194 557 560 648 +2063 945 886 84 970 +2064 794 27 408 28 +2065 50 366 367 1135 +2066 1026 354 73 1037 +2067 561 872 970 984 +2068 915 882 397 370 +2069 1003 1137 1142 1146 +2070 425 878 949 914 +2071 1047 353 57 404 +2072 615 130 460 459 +2073 533 215 668 582 +2074 1100 159 517 478 +2075 940 522 520 521 +2076 396 384 1017 387 +2077 765 802 788 530 +2078 782 783 711 502 +2079 666 642 1133 1147 +2080 765 525 722 530 +2081 27 794 695 465 +2082 351 1040 811 1150 +2083 877 576 956 568 +2084 851 398 730 405 +2085 955 356 964 396 +2086 666 1133 581 1147 +2087 873 31 971 946 +2088 726 818 406 778 +2089 1131 1136 868 1145 +2090 509 983 931 885 +2091 1107 675 275 1149 +2092 963 928 864 421 +2093 1075 1101 1143 1149 +2094 468 461 729 420 +2095 583 565 97 849 +2096 1038 1050 806 371 +2097 813 658 531 786 +2098 706 753 734 1141 +2099 785 609 441 812 +2100 531 658 813 1151 +2101 701 789 461 809 +2102 30 962 905 374 +2103 752 704 733 1138 +2104 594 123 437 463 +2105 825 721 403 359 +2106 351 1040 787 811 +2107 601 631 932 1148 +2108 817 723 776 526 +2109 386 964 927 356 +2110 544 571 652 1145 +2111 714 788 527 530 +2112 417 467 710 777 +2113 931 43 44 509 +2114 894 976 416 415 +2115 682 642 650 1147 +2116 623 646 220 674 +2117 1055 341 1078 1106 +2118 1057 349 1108 1028 +2119 1027 1056 261 624 +2120 253 594 622 1054 +2121 1109 648 283 677 +2122 676 228 625 647 +2123 571 1131 669 1145 +2124 886 423 84 970 +2125 377 376 365 1137 +2126 472 518 165 1081 +2127 464 114 597 412 +2128 402 1026 354 73 +2129 494 1101 518 1149 +2130 553 716 779 549 +2131 453 103 718 754 +2132 893 516 481 480 +2133 99 707 420 800 +2134 918 1134 869 1147 +2135 413 605 594 124 +2136 436 33 416 1139 +2137 422 963 886 926 +2138 824 1 694 848 +2139 1105 522 940 521 +2140 443 789 715 461 +2141 421 864 953 450 +2142 762 825 19 359 +2143 563 561 872 567 +2144 928 423 873 452 +2145 396 895 399 387 +2146 352 1033 1040 1150 +2147 794 27 28 453 +2148 953 450 999 914 +2149 731 708 578 579 +2150 759 694 1 848 +2151 871 1139 919 1144 +2152 135 795 136 852 +2153 367 366 352 1150 +2154 151 554 504 1136 +2155 882 357 397 370 +2156 718 850 761 104 +2157 880 548 913 574 +2158 907 969 957 510 +2159 40 496 488 1127 +2160 373 983 44 45 +2161 493 1099 181 482 +2162 362 79 383 1048 +2163 431 616 108 462 +2164 193 560 541 667 +2165 343 1089 1113 1036 +2166 656 1088 1111 277 +2167 259 602 626 1034 +2168 1035 347 1086 1060 +2169 1037 255 605 1061 +2170 1112 281 1087 655 +2171 226 603 654 678 +2172 222 657 604 627 +2173 398 851 48 405 +2174 658 532 651 1151 +2175 514 780 141 525 +2176 999 450 864 451 +2177 513 885 969 947 +2178 561 944 925 562 +2179 187 565 847 188 +2180 836 1135 758 1150 +2181 571 573 577 1149 +2182 485 912 498 948 +2183 397 955 882 915 +2184 851 709 398 767 +2185 428 429 25 1140 +2186 905 962 859 374 +2187 386 964 887 927 +2188 585 583 713 589 +2189 33 369 401 1139 +2190 449 976 416 894 +2191 730 398 851 826 +2192 1085 934 1115 1143 +2193 1028 355 58 1035 +2194 602 129 414 595 +2195 647 538 214 654 +2196 160 476 1087 1080 +2197 1047 1033 352 1150 +2198 850 718 815 29 +2199 481 511 516 952 +2200 510 957 907 879 +2201 714 784 527 747 +2202 594 463 413 124 +2203 409 382 25 1140 +2204 385 971 31 887 +2205 938 1003 870 1137 +2206 792 467 710 799 +2207 473 38 1113 391 +2208 545 532 546 1151 +2209 652 645 685 1131 +2210 567 892 563 535 +2211 208 666 646 580 +2212 886 422 945 84 +2213 471 467 799 465 +2214 964 867 396 929 +2215 1005 965 155 875 +2216 1121 521 940 988 +2217 869 909 933 1147 +2218 880 537 954 892 +2219 782 136 700 852 +2220 558 568 987 889 +2221 912 485 876 948 +2222 717 360 405 407 +2223 815 718 794 28 +2224 740 762 709 18 +2225 396 386 964 384 +2226 898 918 869 1147 +2227 511 997 912 952 +2228 1070 638 3 22 +2229 587 578 731 586 +2230 884 968 564 562 +2231 782 727 783 523 +2232 563 537 892 865 +2233 510 907 509 506 +2234 521 888 940 988 +2235 651 532 668 1151 +2236 975 659 543 671 +2237 559 143 588 1141 +2238 881 456 942 458 +2239 719 795 135 852 +2240 709 17 740 18 +2241 561 984 551 925 +2242 943 974 390 883 +2243 914 440 439 634 +2244 1028 355 404 58 +2245 460 414 129 595 +2246 538 582 647 214 +2247 517 476 160 1080 +2248 794 27 453 465 +2249 880 536 548 574 +2250 53 5 1073 1122 +2251 641 91 92 690 +2252 375 403 791 764 +2253 619 609 441 785 +2254 916 901 868 1145 +2255 807 719 135 134 +2256 985 637 457 942 +2257 548 950 536 880 +2258 552 561 925 562 +2259 389 959 399 396 +2260 786 570 531 585 +2261 425 450 914 439 +2262 716 553 793 810 +2263 867 955 964 396 +2264 510 520 957 879 +2265 510 520 879 491 +2266 728 453 854 471 +2267 995 901 916 1145 +2268 1020 985 457 890 +2269 729 707 420 809 +2270 715 443 441 785 +2271 869 1134 1133 1147 +2272 1039 1051 974 364 +2273 949 245 618 914 +2274 754 103 707 809 +2275 1125 693 146 147 +2276 1092 1085 484 1143 +2277 44 983 931 509 +2278 351 392 407 787 +2279 579 578 731 587 +2280 399 959 390 883 +2281 666 208 581 580 +2282 740 359 815 18 +2283 32 358 31 946 +2284 728 471 799 465 +2285 874 373 960 983 +2286 420 461 729 809 +2287 486 487 143 1141 +2288 671 203 941 687 +2289 515 983 509 885 +2290 762 815 359 18 +2291 701 854 471 792 +2292 881 435 456 458 +2293 864 953 963 421 +2294 536 880 954 574 +2295 689 913 267 673 +2296 30 962 454 971 +2297 457 942 621 456 +2298 948 333 912 1102 +2299 795 136 700 802 +2300 929 385 905 373 +2301 554 152 504 1136 +2302 1128 1139 871 1144 +2303 453 794 728 853 +2304 101 102 701 461 +2305 441 443 466 785 +2306 791 712 375 764 +2307 793 587 731 810 +2308 601 932 979 1148 +2309 915 370 1053 951 +2310 576 956 906 877 +2311 786 713 749 585 +2312 98 565 99 800 +2313 1091 1105 522 972 +2314 470 461 729 468 +2315 1015 873 415 452 +2316 766 46 709 801 +2317 834 756 732 1151 +2318 741 99 565 800 +2319 525 514 722 530 +2320 373 374 960 45 +2321 453 718 103 104 +2322 549 553 716 550 +2323 450 999 914 439 +2324 419 467 710 417 +2325 4 30 962 454 +2326 727 523 852 519 +2327 67 1067 1051 943 +2328 527 525 765 530 +2329 358 927 357 356 +2330 962 904 859 454 +2331 356 964 927 955 +2332 774 811 1033 1150 +2333 954 537 574 575 +2334 511 481 866 952 +2335 456 457 942 458 +2336 645 1131 669 1149 +2337 943 390 986 891 +2338 956 877 568 889 +2339 621 942 973 456 +2340 723 776 526 502 +2341 389 891 390 959 +2342 768 813 651 1151 +2343 778 406 726 375 +2344 886 945 422 926 +2345 954 880 913 574 +2346 852 136 135 519 +2347 154 1005 155 875 +2348 394 64 400 1049 +2349 779 816 725 584 +2350 777 448 724 819 +2351 577 669 200 571 +2352 150 495 518 1149 +2353 902 871 919 1144 +2354 875 154 1005 930 +2355 407 411 717 790 +2356 564 906 968 884 +2357 708 741 189 188 +2358 104 761 707 824 +2359 403 19 825 359 +2360 937 1131 868 1145 +2361 494 484 1085 1143 +2362 997 511 866 952 +2363 673 548 913 950 +2364 423 84 970 83 +2365 786 749 570 585 +2366 40 1078 473 175 +2367 669 577 200 1149 +2368 351 1040 1052 787 +2369 601 426 433 1148 +2370 30 962 971 905 +2371 1124 1111 148 163 +2372 679 148 197 692 +2373 627 112 640 90 +2374 61 1059 1072 38 +2375 410 403 375 764 +2376 959 389 867 396 +2377 567 872 892 945 +2378 746 466 443 785 +2379 1046 1022 1030 1144 +2380 747 788 833 137 +2381 1058 626 258 1070 +2382 776 723 711 502 +2383 981 1030 935 1144 +2384 792 101 701 832 +2385 658 670 531 786 +2386 87 432 581 88 +2387 1017 1014 895 387 +2388 581 1134 534 1147 +2389 504 152 554 151 +2390 870 1137 1003 1146 +2391 970 84 561 83 +2392 638 258 626 1070 +2393 450 421 864 451 +2394 481 479 893 480 +2395 135 795 719 807 +2396 499 1118 498 912 +2397 619 441 466 785 +2398 800 741 99 824 +2399 374 905 373 960 +2400 924 4 515 45 +2401 926 878 455 953 +2402 575 537 563 865 +2403 905 971 30 385 +2404 778 726 712 375 +2405 933 682 650 1147 +2406 1084 770 309 814 +2407 600 812 232 769 +2408 933 650 265 980 +2409 846 579 731 587 +2410 206 548 673 547 +2411 562 968 564 575 +2412 57 1028 1047 404 +2413 130 460 595 615 +2414 647 668 215 582 +2415 1100 517 159 1080 +2416 848 824 1 189 +2417 918 921 1001 1134 +2418 374 4 859 960 +2419 933 650 980 1147 +2420 166 518 1101 1149 +2421 46 519 47 801 +2422 881 976 449 894 +2423 885 513 479 947 +2424 1049 64 400 1029 +2425 322 915 1053 951 +2426 407 831 790 748 +2427 924 4 859 965 +2428 351 352 1040 1150 +2429 850 815 740 29 +2430 166 1081 518 1149 +2431 960 4 859 924 +2432 782 723 833 137 +2433 558 998 574 569 +2434 1070 76 1058 22 +2435 638 626 127 22 +2436 1122 53 178 1110 +2437 690 92 678 212 +2438 955 1000 397 396 +2439 874 373 983 44 +2440 508 527 784 747 +2441 892 537 563 535 +2442 649 200 577 1149 +2443 437 614 123 594 +2444 691 681 90 211 +2445 1061 1071 37 75 +2446 177 1123 1113 38 +2447 639 37 126 629 +2448 1079 181 1099 482 +2449 1048 79 383 1027 +2450 108 616 596 462 +2451 667 193 560 648 +2452 454 962 873 971 +2453 904 423 970 83 +2454 719 519 134 801 +2455 134 766 719 801 +2456 440 425 914 439 +2457 869 1134 1001 1148 +2458 102 103 453 854 +2459 906 564 930 884 +2460 203 568 941 687 +2461 512 957 513 510 +2462 795 136 802 530 +2463 678 225 628 641 +2464 1110 346 1073 1060 +2465 280 1112 693 680 +2466 531 532 658 1151 +2467 4 924 155 965 +2468 561 872 84 970 +2469 381 397 1000 389 +2470 576 877 555 568 +2471 973 607 621 456 +2472 392 351 1052 787 +2473 859 4 962 454 +2474 411 717 405 407 +2475 670 289 749 786 +2476 784 1103 508 747 +2477 19 762 18 826 +2478 782 700 136 137 +2479 670 570 531 786 +2480 1060 1073 53 60 +2481 196 693 146 680 +2482 146 1125 162 1112 +2483 111 92 628 641 +2484 374 859 905 960 +2485 521 940 1105 1121 +2486 83 984 859 551 +2487 421 953 455 450 +2488 998 913 558 574 +2489 678 225 641 690 +2490 1073 1122 346 1110 +2491 848 1 759 139 +2492 997 912 499 511 +2493 31 385 887 386 +2494 730 398 826 411 +2495 1112 693 1125 280 +2496 1003 1142 917 1146 +2497 637 457 942 621 +2498 511 912 499 485 +2499 959 399 895 883 +2500 752 756 834 1138 +2501 967 917 863 1142 +2502 1000 397 381 915 +2503 397 356 955 396 +2504 669 1131 652 1145 +2505 831 20 407 790 +2506 101 100 746 832 +2507 782 833 700 137 +2508 390 381 986 891 +2509 31 454 873 971 +2510 983 44 515 509 +2511 637 439 1020 457 +2512 551 984 859 925 +2513 1081 1107 275 1149 +2514 675 649 275 1149 +2515 90 681 412 210 +2516 894 416 449 415 +2517 370 915 882 951 +2518 971 31 30 385 +2519 608 601 979 1148 +2520 443 715 746 785 +2521 479 875 893 480 +2522 673 661 206 547 +2523 774 811 304 1033 +2524 466 746 619 785 +2525 731 708 579 846 +2526 789 746 101 443 +2527 405 398 730 411 +2528 432 444 87 1134 +2529 651 768 287 813 +2530 19 762 359 18 +2531 601 932 243 979 +2532 392 748 407 787 +2533 302 748 1052 787 +2534 928 864 421 452 +2535 944 561 563 562 +2536 670 749 570 786 +2537 985 457 890 942 +2538 601 617 591 1148 +2539 87 534 581 1134 +2540 544 572 571 1145 +2541 481 866 952 893 +2542 867 1000 955 396 +2543 403 721 408 359 +2544 398 18 762 826 +2545 646 623 220 597 +2546 1029 1055 341 1078 +2547 1054 253 594 1026 +2548 1109 648 1080 283 +2549 349 1079 1108 1028 +2550 596 625 228 647 +2551 595 1027 261 624 +2552 763 847 720 565 +2553 1003 1137 923 1142 +2554 892 537 954 865 +2555 852 135 719 519 +2556 1085 982 331 934 +2557 764 721 403 825 +2558 561 872 567 84 +2559 900 1032 326 1039 +2560 599 736 238 606 +2561 660 735 293 653 +2562 607 899 249 598 +2563 515 44 983 45 +2564 18 762 709 398 +2565 461 102 701 809 +2566 1067 67 390 943 +2567 352 56 1040 1033 +2568 599 131 418 606 +2569 216 532 651 658 +2570 1084 1093 158 475 +2571 527 784 474 508 +2572 31 30 454 971 +2573 72 1026 1046 402 +2574 925 859 551 965 +2575 764 410 403 408 +2576 575 569 956 576 +2577 984 859 904 83 +2578 1015 449 958 452 +2579 701 471 101 792 +2580 521 888 988 499 +2581 739 751 705 1135 +2582 512 513 957 866 +2583 741 708 763 188 +2584 759 1 694 134 +2585 888 940 520 521 +2586 776 1120 817 526 +2587 423 886 422 421 +2588 471 854 728 792 +2589 850 718 29 104 +2590 368 70 370 1053 +2591 298 772 1031 738 +2592 775 315 739 1083 +2593 337 1082 939 903 +2594 188 763 187 846 +2595 1040 1033 811 1150 +2596 422 886 423 84 +2597 1090 739 315 1083 +2598 738 1031 298 1038 +2599 1082 337 1091 903 +2600 373 385 905 374 +2601 900 923 1003 1137 +2602 938 1032 326 900 +2603 773 736 238 599 +2604 653 735 293 771 +2605 598 899 249 936 +2606 597 617 115 464 +2607 188 579 763 846 +2608 32 31 415 946 +2609 187 579 188 846 +2610 658 651 813 1151 +2611 435 881 449 458 +2612 1 694 104 824 +2613 170 1121 1118 1021 +2614 47 46 709 398 +2615 748 392 1052 787 +2616 509 513 969 510 +2617 749 570 289 670 +2618 748 717 407 787 +2619 927 358 386 356 +2620 937 271 652 1145 +2621 139 140 708 579 +2622 746 635 856 466 +2623 138 747 833 137 +2624 415 873 423 452 +2625 406 818 726 21 +2626 376 399 390 883 +2627 33 34 369 1139 +2628 577 150 149 518 +2629 761 850 694 104 +2630 950 548 913 880 +2631 560 145 144 517 +2632 93 94 462 582 +2633 24 23 460 383 +2634 52 482 404 51 +2635 818 1066 406 778 +2636 935 981 320 1030 +2637 884 925 944 562 +2638 381 915 370 1069 +2639 867 389 1000 396 +2640 1 17 694 766 +2641 356 386 964 396 +2642 606 620 417 804 +2643 558 913 689 548 +2644 140 514 807 780 +2645 21 831 20 748 +2646 831 407 20 748 +2647 579 708 189 188 +2648 50 367 528 1135 +2649 723 817 138 526 +2650 858 747 508 1119 +2651 450 999 439 451 +2652 83 561 984 551 +2653 70 368 1041 1053 +2654 359 815 28 29 +2655 369 380 379 1144 +2656 513 509 885 479 +2657 864 928 1015 452 +2658 448 777 636 819 +2659 18 709 17 398 +2660 135 514 807 134 +2661 852 719 727 519 +2662 892 944 563 865 +2663 385 887 386 929 +2664 1015 958 864 452 +2665 562 944 968 575 +2666 384 385 386 929 +2667 725 553 779 584 +2668 705 1135 836 1150 +2669 84 872 945 970 +2670 984 904 970 83 +2671 1021 988 888 499 +2672 95 546 469 1138 +2673 959 891 390 883 +2674 874 929 905 373 +2675 577 150 518 1149 +2676 302 748 392 1052 +2677 701 101 789 832 +2678 784 1103 474 508 +2679 508 1103 311 747 +2680 833 788 700 137 +2681 925 884 552 562 +2682 738 829 750 1140 +2683 28 718 794 453 +2684 932 869 1001 1148 +2685 36 463 402 35 +2686 46 766 134 801 +2687 509 513 885 969 +2688 708 741 848 189 +2689 947 481 479 893 +2690 847 589 565 187 +2691 523 782 727 852 +2692 857 749 570 686 +2693 134 519 46 801 +2694 471 728 453 465 +2695 398 762 709 826 +2696 29 718 28 453 +2697 1075 1085 1115 1143 +2698 852 523 136 519 +2699 1068 302 392 1052 +2700 498 499 912 485 +2701 795 700 136 852 +2702 403 791 764 825 +2703 779 688 816 584 +2704 563 561 944 872 +2705 166 1101 1081 1149 +2706 766 694 1 134 +2707 759 719 807 134 +2708 389 397 1000 396 +2709 1041 1030 981 1144 +2710 749 585 797 186 +2711 31 873 415 946 +2712 707 99 104 824 +2713 478 1100 158 475 +2714 532 668 533 216 +2715 352 56 1047 353 +2716 459 615 131 418 +2717 1020 634 119 637 +2718 494 484 167 1085 +2719 601 433 426 116 +2720 1005 965 925 552 +2721 945 567 872 84 +2722 378 376 377 1142 +2723 724 467 448 777 +2724 887 385 905 929 +2725 669 200 649 1149 +2726 571 669 652 1145 +2727 924 155 965 479 +2728 479 924 885 947 +2729 518 494 166 1101 +2730 433 115 617 464 +2731 637 119 439 457 +2732 965 924 479 875 +2733 791 20 702 19 +2734 479 155 965 875 +2735 569 558 998 889 +2736 436 34 33 1139 +2737 941 568 877 889 +2738 138 817 1120 526 +2739 661 650 547 1147 +2740 565 720 741 800 +2741 420 103 102 809 +2742 723 782 502 137 +2743 575 954 537 865 +2744 854 102 701 471 +2745 636 100 448 819 +2746 650 661 980 1147 +2747 704 1138 834 1151 +2748 1020 119 439 637 +2749 925 551 561 552 +2750 859 83 4 454 +2751 887 964 386 929 +2752 814 784 1093 474 +2753 524 523 727 519 +2754 406 1066 818 21 +2755 748 392 855 1068 +2756 749 289 570 686 +2757 997 499 512 511 +2758 686 289 570 670 +2759 30 905 385 374 +2760 666 650 642 1147 +2761 894 449 1015 452 +2762 514 139 140 807 +2763 368 71 1030 1144 +2764 831 702 20 790 +2765 886 423 970 904 +2766 466 746 234 619 +2767 409 25 429 1140 +2768 707 103 420 809 +2769 541 540 192 653 +2770 600 107 430 431 +2771 182 492 1083 493 +2772 80 1031 362 361 +2773 83 859 904 454 +2774 892 563 944 872 +2775 983 515 924 885 +2776 489 488 490 1146 +2777 969 907 509 510 +2778 185 816 688 584 +2779 853 453 718 754 +2780 1002 922 919 1139 +2781 795 135 514 807 +2782 554 572 542 1145 +2783 1124 1111 278 692 +2784 136 795 135 514 +2785 1078 40 496 175 +2786 998 558 913 889 +2787 998 569 956 865 +2788 365 393 377 1137 +2789 398 19 18 826 +2790 400 39 473 391 +2791 788 802 700 530 +2792 937 901 271 1145 +2793 136 795 514 530 +2794 368 379 71 1144 +2795 368 1030 1041 1144 +2796 888 512 957 997 +2797 885 907 509 969 +2798 256 1071 639 629 +2799 784 1103 1093 474 +2800 563 944 562 575 +2801 724 101 792 832 +2802 807 514 722 780 +2803 746 100 101 443 +2804 143 487 588 1141 +2805 855 392 21 1068 +2806 86 87 444 1134 +2807 657 412 89 580 +2808 816 185 725 584 +2809 803 739 315 1090 +2810 881 449 458 958 +2811 207 547 650 1147 +2812 589 760 699 847 +2813 147 197 148 692 +2814 148 147 1124 163 +2815 90 112 640 91 +2816 1072 5 61 38 +2817 577 573 150 1149 +2818 608 426 601 1148 +2819 520 879 940 888 +2820 17 359 815 740 +2821 851 398 709 826 +2822 866 481 947 893 +2823 885 515 924 479 +2824 579 763 708 188 +2825 928 423 904 873 +2826 136 782 523 852 +2827 392 748 302 1068 +2828 3 37 1071 75 +2829 3 37 126 639 +2830 177 5 1123 38 +2831 211 90 691 91 +2832 1103 784 311 747 +2833 552 884 564 562 +2834 1119 508 858 138 +2835 351 352 56 1040 +2836 417 418 131 606 +2837 531 532 216 658 +2838 474 158 1093 475 +2839 866 481 513 947 +2840 807 139 759 134 +2841 932 896 979 1148 +2842 453 718 794 853 +2843 563 944 575 865 +2844 774 705 836 1150 +2845 519 719 727 801 +2846 817 1120 858 138 +2847 937 908 868 1131 +2848 71 379 1030 1144 +2849 1015 958 449 894 +2850 669 645 652 1131 +2851 782 711 723 502 +2852 298 806 738 1038 +2853 724 448 100 819 +2854 905 874 373 960 +2855 553 716 725 779 +2856 933 980 898 1147 +2857 1005 155 965 552 +2858 512 888 499 997 +2859 915 381 1018 1069 +2860 857 570 185 686 +2861 275 649 1081 1149 +2862 875 479 154 480 +2863 702 826 411 790 +2864 558 913 1019 689 +2865 100 856 635 466 +2866 21 1066 818 855 +2867 816 857 185 688 +2868 819 636 100 856 +2869 513 969 866 947 +2870 397 1000 955 915 +2871 995 975 901 1145 +2872 958 881 449 894 +2873 1033 305 774 1064 +2874 579 708 763 846 +2875 815 721 762 359 +2876 768 704 834 1151 +2877 479 875 947 893 +2878 286 768 651 683 +2879 763 565 741 188 +2880 4 83 859 551 +2881 958 451 864 452 +2882 378 42 43 1142 +2883 924 515 4 155 +2884 854 453 102 471 +2885 812 232 609 600 +2886 309 1084 814 1093 +2887 980 650 265 661 +2888 631 932 242 601 +2889 854 701 102 809 +2890 907 509 931 885 +2891 29 694 850 104 +2892 1113 176 473 1089 +2893 311 508 747 1119 +2894 1115 1085 330 934 +2895 104 694 761 824 +2896 457 890 942 458 +2897 1046 379 72 402 +2898 553 587 186 793 +2899 457 637 120 621 +2900 271 975 659 1145 +2901 740 17 359 18 +2902 530 700 788 137 +2903 891 381 1000 389 +2904 461 789 729 809 +2905 553 186 725 793 +2906 825 19 702 762 +2907 104 99 1 824 +2908 467 724 710 777 +2909 411 20 702 790 +2910 657 412 210 89 +2911 99 420 707 104 +2912 370 69 1069 1053 +2913 673 913 267 950 +2914 189 848 708 139 +2915 29 17 694 1 +2916 737 836 758 1150 +2917 885 509 515 479 +2918 205 548 689 673 +2919 385 905 971 887 +2920 99 1 824 189 +2921 234 635 746 466 +2922 207 581 547 1147 +2923 998 954 913 574 +2924 585 749 185 186 +2925 29 718 453 104 +2926 848 759 708 139 +2927 17 1 46 766 +2928 512 997 511 866 +2929 154 155 1005 552 +2930 699 186 587 793 +2931 1081 1101 1075 1149 +2932 271 901 975 1145 +2933 802 136 700 530 +2934 619 746 234 785 +2935 634 119 439 1020 +2936 479 154 155 875 +2937 170 1121 1021 499 +2938 352 56 1033 1047 +2939 131 615 599 418 +2940 158 1100 1084 475 +2941 532 651 668 216 +2942 1 759 139 134 +2943 903 337 1091 972 +2944 915 381 1000 891 +2945 956 575 968 865 +2946 751 758 836 1135 +2947 694 17 740 766 +2948 527 788 747 137 +2949 645 669 649 1149 +2950 1004 920 916 1136 +2951 766 759 694 134 +2952 26 409 25 429 +2953 528 49 367 50 +2954 142 588 143 487 +2955 546 95 469 96 +2956 694 29 1 104 +2957 835 757 753 1141 +2958 957 512 520 510 +2959 173 1098 1082 490 +2960 791 403 20 19 +2961 1072 1059 344 1123 +2962 223 640 691 627 +2963 951 1041 321 981 +2964 891 943 390 883 +2965 1123 1122 5 177 +2966 1071 3 75 1070 +2967 639 126 3 638 +2968 91 691 211 690 +2969 101 789 443 461 +2970 815 17 740 29 +2971 313 1120 817 776 +2972 856 100 746 466 +2973 747 833 723 138 +2974 561 944 872 925 +2975 782 523 502 137 +2976 189 741 565 188 +2977 791 20 726 831 +2978 1105 171 521 1121 +2979 879 520 957 888 +2980 508 747 858 138 +2981 375 20 726 791 +2982 411 826 730 790 +2983 311 1103 508 1119 +2984 846 187 579 587 +2985 949 608 244 979 +2986 234 635 466 619 +2987 433 427 432 1148 +2988 368 71 1041 1030 +2989 844 774 305 1064 +2990 890 439 999 451 +2991 636 777 236 819 +2992 659 652 271 1145 +2993 286 768 683 842 +2994 523 782 136 137 +2995 570 185 749 857 +2996 618 608 244 949 +2997 269 941 987 687 +2998 873 894 415 946 +2999 375 726 712 791 +3000 117 608 618 440 +3001 608 117 426 440 +3002 790 717 407 748 +3003 481 512 511 866 +3004 1011 932 242 631 +3005 1053 1041 321 951 +3006 42 506 43 1142 +3007 118 440 618 634 +3008 1021 1118 170 499 +3009 1007 1115 330 934 +3010 239 773 599 632 +3011 327 1065 1032 938 +3012 653 294 684 771 +3013 598 250 633 936 +3014 1066 818 300 778 +3015 738 750 703 1140 +3016 457 439 1020 890 +3017 568 558 569 889 +3018 558 913 548 574 +3019 873 423 904 454 +3020 901 937 868 1145 +3021 49 528 367 1135 +3022 138 527 747 137 +3023 565 720 763 741 +3024 688 816 291 779 +3025 1067 986 324 943 +3026 493 1083 182 1099 +3027 362 1048 1031 80 +3028 600 107 431 616 +3029 667 541 192 653 +3030 423 873 415 454 +3031 639 1071 257 638 +3032 944 968 884 562 +3033 658 651 287 813 +3034 735 293 805 660 +3035 606 736 238 804 +3036 608 601 243 979 +3037 46 17 709 398 +3038 811 1040 304 1033 +3039 666 581 207 1147 +3040 1052 1040 303 787 +3041 397 381 915 370 +3042 1121 940 335 988 +3043 469 546 96 1138 +3044 787 1040 303 811 +3045 288 658 813 786 +3046 956 569 998 889 +3047 102 461 420 809 +3048 20 375 403 791 +3049 789 715 746 443 +3050 207 661 650 547 +3051 658 288 670 786 +3052 313 1120 776 1104 +3053 1092 982 331 1085 +3054 42 489 506 1142 +3055 1019 913 558 889 +3056 881 942 890 458 +3057 637 985 247 942 +3058 807 514 139 134 +3059 815 359 17 29 +3060 21 20 407 748 +3061 777 236 620 636 +3062 197 147 693 692 +3063 1124 147 1125 163 +3064 1073 5 61 1072 +3065 112 640 91 641 +3066 585 713 749 797 +3067 491 489 490 1146 +3068 1070 3 76 22 +3069 127 3 638 22 +3070 5 53 178 1122 +3071 690 91 92 212 +3072 870 1003 917 1146 +3073 406 726 375 21 +3074 984 561 872 925 +3075 724 101 467 792 +3076 100 746 466 443 +3077 169 498 1118 1102 +3078 941 269 671 687 +3079 526 776 1120 1104 +3080 948 982 332 1092 +3081 944 968 575 865 +3082 415 894 1015 452 +3083 494 483 484 1143 +3084 1066 300 1050 778 +3085 1111 679 278 692 +3086 1102 948 332 1092 +3087 155 551 925 552 +3088 940 335 1105 1121 +3089 146 162 1125 147 +3090 146 693 196 147 +3091 5 53 1073 60 +3092 111 91 92 641 +3093 186 187 699 587 +3094 688 291 672 779 +3095 634 439 914 1020 +3096 710 724 467 792 +3097 202 543 544 659 +3098 364 363 1039 66 +3099 526 138 723 502 +3100 925 551 155 965 +3101 168 498 1092 484 +3102 1046 1030 379 1144 +3103 1003 923 917 1142 +3104 601 433 617 1148 +3105 1082 173 490 1091 +3106 21 748 392 855 +3107 912 499 888 997 +3108 873 904 962 454 +3109 620 448 777 636 +3110 1081 1075 1107 1149 +3111 1092 1102 498 168 +3112 544 652 659 1145 +3113 326 974 900 1039 +3114 899 249 973 607 +3115 666 207 650 1147 +3116 956 569 575 865 +3117 1067 324 1051 943 +3118 1015 873 894 415 +3119 766 1 46 134 +3120 791 702 20 831 +3121 520 512 957 888 +3122 434 122 437 614 +3123 981 1041 320 1030 +3124 409 429 26 1140 +3125 645 649 675 1149 +3126 621 120 457 456 +3127 125 413 605 629 +3128 247 637 942 621 +3129 406 1066 1050 778 +3130 454 873 415 31 +3131 547 581 534 1147 +3132 520 888 521 499 +3133 151 150 573 495 +3134 471 102 701 101 +3135 1049 394 65 363 +3136 722 795 514 807 +3137 186 699 725 793 +3138 779 672 688 584 +3139 660 192 540 653 +3140 609 107 430 600 +3141 182 492 1090 1083 +3142 80 1038 1031 361 +3143 125 37 413 629 +3144 726 831 21 748 +3145 1021 1118 499 912 +3146 924 515 155 479 +3147 762 19 702 826 +3148 139 708 189 579 +3149 433 426 427 1148 +3150 451 999 890 958 +3151 458 890 881 958 +3152 1001 896 932 1148 +3153 451 421 864 452 +3154 565 99 741 189 +3155 487 142 588 1141 +3156 755 837 750 1140 +3157 558 1019 987 687 +3158 1 848 189 139 +3159 1060 53 355 59 +3160 626 128 22 414 +3161 1112 161 146 476 +3162 538 213 678 92 +3163 421 423 928 452 +3164 519 135 719 134 +3165 902 981 935 1144 +3166 522 1105 171 521 +3167 449 894 415 452 +3168 553 725 716 793 +3169 1113 176 38 473 +3170 172 522 490 1091 +3171 449 451 958 452 +3172 986 1018 381 1067 +3173 1059 1113 344 1123 +3174 681 223 691 627 +3175 629 256 1071 1061 +3176 122 434 607 598 +3177 817 858 723 138 +3178 381 1067 67 390 +3179 1121 170 521 499 +3180 568 203 558 687 +3181 746 100 724 832 +3182 891 390 381 389 +3183 185 857 686 688 +3184 826 398 19 411 +3185 856 636 100 635 +3186 527 788 714 747 +3187 766 719 759 134 +3188 1061 37 354 74 +3189 855 21 1066 1068 +3190 1060 355 1035 59 +3191 626 128 414 602 +3192 161 1112 1087 476 +3193 213 654 538 678 +3194 1120 1119 858 138 +3195 999 914 439 890 +3196 21 818 726 855 +3197 749 185 570 585 +3198 607 121 456 434 +3199 530 136 700 137 +3200 902 935 871 1144 +3201 86 534 87 1134 +3202 1026 253 594 254 +3203 597 220 646 221 +3204 342 1029 341 1078 +3205 276 1081 275 649 +3206 1080 648 282 283 +3207 228 596 647 227 +3208 1028 349 1079 348 +3209 260 1027 261 595 +3210 381 915 1018 891 +3211 858 747 723 138 +3212 1000 891 389 959 +3213 113 627 412 90 +3214 148 164 1111 472 +3215 747 508 527 138 +3216 122 434 598 614 +3217 888 520 512 499 +3218 375 726 20 21 +3219 587 846 699 793 +3220 467 101 471 792 +3221 553 725 185 584 +3222 179 53 507 1110 +3223 77 1058 22 388 +3224 195 680 146 557 +3225 424 628 110 92 +3226 317 823 1097 841 +3227 1094 339 1009 991 +3228 1043 296 820 840 +3229 664 273 1006 989 +3230 502 138 723 137 +3231 148 198 566 679 +3232 890 457 439 458 +3233 38 62 1059 391 +3234 1061 354 1037 74 +3235 977 863 923 1142 +3236 699 589 847 187 +3237 155 925 965 552 +3238 451 458 449 958 +3239 924 479 875 947 +3240 451 864 999 958 +3241 870 903 939 1146 +3242 138 833 723 137 +3243 1003 938 900 1137 +3244 352 360 367 1150 +3245 494 495 483 1143 +3246 377 42 378 1142 +3247 1101 494 1085 1143 +3248 89 412 464 580 +3249 479 513 481 947 +3250 1030 319 935 1062 +3251 1019 558 987 889 +3252 351 360 352 1150 +3253 627 412 604 113 +3254 164 1111 472 1088 +3255 589 699 760 797 +3256 826 19 702 411 +3257 65 1032 1049 363 +3258 499 888 1021 912 +3259 179 507 1086 1110 +3260 1058 77 1034 388 +3261 680 195 655 557 +3262 628 603 424 110 +3263 439 890 458 451 +3264 371 361 1038 81 +3265 1090 183 500 492 +3266 430 441 106 609 +3267 540 191 660 549 +3268 316 775 1116 1083 +3269 272 937 652 685 +3270 772 1063 297 1031 +3271 1117 338 1082 939 +3272 679 198 566 656 +3273 1059 62 1036 391 +3274 918 1001 869 1134 +3275 752 834 704 1138 +3276 749 185 725 857 +3277 239 773 632 838 +3278 1065 327 1012 938 +3279 250 1008 633 936 +3280 294 839 684 771 +3281 1046 1030 71 379 +3282 1045 350 823 1097 +3283 262 820 613 1043 +3284 340 991 1094 1044 +3285 1095 274 664 989 +3286 229 612 821 663 +3287 990 611 219 662 +3288 665 284 1096 822 +3289 1042 252 992 610 +3290 191 672 660 549 +3291 183 1104 1090 500 +3292 266 673 950 980 +3293 546 532 539 1151 +3294 407 21 748 392 +3295 310 814 784 1103 +3296 451 890 458 958 +3297 441 106 609 619 +3298 1038 1050 371 81 +3299 997 512 957 866 +3300 448 467 724 100 +3301 923 863 917 1142 +3302 531 539 532 1151 +3303 785 233 619 812 +3304 846 699 187 587 +3305 748 21 726 855 +3306 751 836 705 1135 +3307 821 230 843 612 +3308 822 307 1096 845 +3309 662 263 990 1010 +3310 1098 174 1078 496 +3311 20 726 831 21 +3312 933 898 869 1147 +3313 266 673 980 661 +3314 774 304 305 1033 +3315 768 287 286 651 +3316 243 242 932 601 +3317 310 814 1103 1093 +3318 233 609 619 812 +3319 1085 331 330 934 +3320 916 868 1004 1136 +3321 308 770 1084 1114 +3322 600 231 630 769 +3323 650 264 682 933 +3324 823 350 15 1097 +3325 820 613 11 262 +3326 15 1045 350 823 +3327 11 820 262 1043 +3328 13 664 274 989 +3329 1095 13 274 989 +3330 16 991 340 1044 +3331 1096 284 14 822 +3332 612 821 9 229 +3333 991 1094 16 340 +3334 229 821 9 663 +3335 284 665 14 822 +3336 611 10 990 219 +3337 219 10 990 662 +3338 12 1042 252 992 +3339 992 252 12 610 +3340 884 1005 925 552 +3341 763 699 847 187 +3342 1101 1085 1075 1143 +3343 673 950 980 661 +3344 741 824 848 189 +3345 856 100 724 746 +3346 835 753 706 1141 +3347 797 589 699 186 +3348 318 1013 1042 992 +3349 72 1026 402 73 +3350 19 20 702 411 +3351 20 411 407 790 +3352 638 1071 257 1070 +3353 326 327 1032 938 +3354 598 249 250 936 +3355 238 239 773 599 +3356 293 294 653 771 +3357 785 619 609 812 +3358 1020 439 914 890 +3359 224 691 640 690 +3360 1072 345 1122 1123 +3361 1062 319 935 1013 +3362 1008 992 251 610 +3363 838 613 240 820 +3364 822 665 295 839 +3365 1044 328 991 1012 +3366 824 741 99 189 +3367 797 699 725 186 +3368 404 57 1028 58 +3369 129 460 595 130 +3370 582 215 647 214 +3371 517 160 159 1080 +3372 803 314 776 1104 +3373 692 1124 693 279 +3374 814 784 1103 1093 +3375 857 185 725 816 +3376 731 846 587 793 +3377 481 513 512 866 +3378 482 1079 181 180 +3379 78 383 79 1027 +3380 109 108 596 462 +3381 194 560 193 648 +3382 725 185 186 553 +3383 63 400 64 1029 +3384 199 577 649 200 +3385 89 210 657 580 +3386 447 34 380 35 +3387 594 123 463 124 +3388 412 90 210 89 +3389 819 100 724 856 +3390 118 439 440 634 +3391 423 886 928 904 +3392 634 914 245 1020 +3393 369 379 368 1144 +3394 1018 322 915 1069 +3395 333 1118 1021 912 +3396 580 657 646 209 +3397 904 423 83 454 +3398 1050 299 806 778 +3399 114 597 115 464 +3400 518 165 1081 166 +3401 381 1018 986 891 +3402 289 749 857 686 +3403 496 1098 173 490 +3404 426 601 116 608 +3405 585 589 797 186 +3406 919 871 1002 1139 +3407 1092 167 484 1085 +3408 972 336 1105 940 +3409 613 1056 624 262 +3410 664 1107 675 274 +3411 665 677 1109 284 +3412 676 229 612 625 +3413 1045 350 1108 1057 +3414 1042 252 622 1054 +3415 662 623 219 674 +3416 1094 1055 1106 340 +3417 157 158 1093 474 +3418 531 216 217 658 +3419 55 351 56 1040 +3420 132 417 131 606 +3421 732 813 768 1151 +3422 671 975 270 941 +3423 737 811 774 1150 +3424 770 308 845 1114 +3425 843 630 231 769 +3426 1010 682 264 933 +3427 21 2 1066 1068 +3428 1120 7 1119 138 +3429 686 8 185 688 +3430 635 636 100 6 +3431 172 490 173 1091 +3432 686 857 290 688 +3433 1118 498 169 499 +3434 1095 1007 329 989 +3435 290 857 816 688 +3436 611 990 241 1011 +3437 1089 175 473 1078 +3438 689 1019 558 687 +3439 1069 381 1018 1067 +3440 306 844 1045 823 +3441 192 191 660 540 +3442 430 106 107 609 +3443 1090 183 492 182 +3444 361 80 1038 81 +3445 821 842 285 663 +3446 542 572 544 1145 +3447 467 101 724 100 +3448 40 39 473 400 +3449 100 101 724 832 +3450 69 381 370 1069 +3451 1118 1121 334 1021 +3452 1020 246 634 637 +3453 856 235 636 635 +3454 988 334 1121 1021 +3455 548 689 558 205 +3456 858 311 747 1119 +3457 1119 858 312 1120 +3458 580 210 657 209 +3459 607 121 434 122 +3460 1101 494 167 1085 +3461 433 601 617 116 +3462 689 268 1019 687 +3463 855 1066 301 1068 +3464 1069 1018 323 1067 +3465 1120 858 312 817 +3466 775 316 315 1083 +3467 1082 338 337 939 +3468 937 271 272 652 +3469 772 297 298 1031 +3470 530 788 527 137 +3471 819 235 636 856 +3472 70 368 71 1041 +3473 246 1020 985 637 +3474 855 302 748 1068 +3475 1066 301 818 855 +3476 987 1019 268 687 +3477 661 207 206 547 +3478 144 486 143 559 +3479 438 95 545 94 +3480 25 24 428 382 +3481 497 50 366 51 +3482 320 319 935 1030 +3483 986 323 1018 1067 +3484 544 201 659 652 +3485 65 1039 1032 363 +3486 336 1105 1091 972 +3487 613 1056 262 1043 +3488 1109 665 284 1096 +3489 1045 350 1097 1108 +3490 274 664 1107 1095 +3491 663 229 612 676 +3492 1094 1055 340 1044 +3493 623 662 219 611 +3494 1042 252 610 622 +3495 635 856 234 746 +3496 1019 913 267 689 +3497 975 270 659 671 +3498 197 198 148 679 +3499 1111 164 148 163 +3500 176 177 1113 38 +3501 37 125 126 629 +3502 74 1061 37 75 +3503 76 77 1058 22 +3504 61 62 1059 38 +3505 128 127 626 22 +3506 112 627 113 90 +3507 628 110 92 111 +3508 213 678 92 212 +3509 680 146 196 195 +3510 161 146 162 1112 +3511 59 1060 53 60 +3512 53 179 178 1110 +3513 1124 1125 693 279 +3514 277 656 1088 276 +3515 343 342 1089 1036 +3516 221 222 657 604 +3517 1037 255 254 605 +3518 259 260 602 1034 +3519 654 227 603 226 +3520 1035 347 348 1086 +3521 282 1087 281 655 +3522 673 267 266 950 +3523 1122 1073 345 1072 +3524 641 224 640 690 +3525 996 903 917 1146 +3526 770 309 308 1084 +3527 650 265 264 933 +3528 600 232 231 769 +3529 314 803 1090 1104 +3530 619 234 233 785 +3531 237 620 804 777 +3532 784 311 310 1103 +3533 750 837 703 1140 +3534 522 172 1105 1091 +3535 558 204 689 687 +3536 237 620 606 804 +3537 381 1069 68 1067 +3538 292 805 660 672 +3539 187 699 589 186 +3540 917 903 870 1146 +3541 201 202 544 659 +3542 363 65 1039 66 +3543 105 466 635 619 +3544 82 1066 1050 406 +3545 187 763 699 846 +3546 292 805 672 779 +3547 248 973 607 621 +3548 190 688 672 584 +3549 1120 184 526 1104 +3550 1050 806 299 1038 +3551 10 263 990 662 +3552 1042 12 318 992 +3553 820 11 296 1043 +3554 285 9 821 663 +3555 1095 329 13 989 +3556 821 9 230 612 +3557 1096 14 307 822 +3558 990 241 10 611 +3559 15 306 1045 823 +3560 295 14 665 822 +3561 1094 16 339 991 +3562 992 12 251 610 +3563 13 273 664 989 +3564 991 16 328 1044 +3565 11 240 613 820 +3566 823 15 317 1097 +3567 1051 974 325 1039 +3568 191 584 672 549 +3569 183 526 1104 500 +3570 156 508 1103 1119 +3571 570 218 686 670 +3572 106 441 466 619 +3573 1050 371 81 406 +3574 841 1097 317 1116 +3575 1009 1117 339 1094 +3576 296 1043 1063 840 +3577 273 1006 685 664 +3578 392 54 1068 1052 +3579 133 448 620 636 +3580 116 117 426 608 +3581 1092 167 168 484 +3582 841 316 775 1116 +3583 937 272 1006 685 +3584 840 1063 297 772 +3585 338 1117 1009 939 +3586 1052 303 302 787 +3587 774 836 737 1150 +3588 973 248 942 621 +3589 121 621 607 456 +3590 768 834 732 1151 +3591 1051 325 974 943 +3592 288 289 670 786 +3593 618 244 245 949 +3594 230 630 843 612 +3595 307 1096 845 1114 +3596 263 662 682 1010 +3597 175 1078 174 496 +3598 948 332 333 1102 +3599 613 240 632 838 +3600 1012 1044 328 1065 +3601 839 665 295 684 +3602 251 1008 610 633 +3603 55 351 1040 1052 +3604 417 132 620 606 +3605 531 217 670 658 +3606 157 1093 1103 474 +3607 1013 1062 318 1042 +3608 1039 1051 364 66 +3609 659 202 543 671 +3610 204 558 203 687 +3611 68 381 1067 67 +3612 646 208 580 209 +3613 147 162 1125 163 +3614 147 693 196 197 +3615 111 112 91 641 +3616 60 1073 5 61 +3617 1053 321 322 951 +3618 76 75 3 1070 +3619 1122 178 5 177 +3620 638 126 3 127 +3621 211 91 690 212 +3622 776 314 313 1104 +3623 336 335 1105 940 +3624 210 90 681 211 +3625 300 299 1050 778 +3626 270 269 671 941 +3627 620 237 236 777 +3628 55 54 392 1052 +3629 448 620 132 133 +3630 329 1115 1007 1095 +3631 241 611 1011 631 +3632 306 844 1064 1045 +3633 842 683 285 663 +3634 118 119 439 634 +3635 1103 157 508 156 +3636 218 570 217 670 +3637 672 291 292 779 +3638 629 255 256 1061 +3639 344 1113 1059 343 +3640 222 223 681 627 +3641 278 679 1111 277 +3642 1110 347 346 1060 +3643 680 280 1112 281 +3644 226 678 225 628 +3645 258 626 1058 259 +3646 464 88 89 580 +3647 942 248 247 621 +3648 351 55 392 1052 +3649 620 132 417 448 +3650 581 208 666 207 +3651 169 170 1118 499 +3652 324 325 1051 943 +3653 531 217 570 670 +3654 1103 157 474 508 +3655 1069 69 381 68 +3656 204 558 689 205 +3657 70 69 370 1053 +3658 1104 184 526 183 +3659 672 190 584 191 +3660 673 205 548 206 +3661 257 1071 639 256 +3662 82 1050 81 406 +3663 466 105 106 619 +3664 145 557 146 476 +3665 424 93 538 92 +3666 414 23 22 388 +3667 355 507 52 53 +3668 8 688 190 584 +3669 184 7 1120 526 +3670 2 21 392 1068 +3671 636 448 100 6 +3672 138 1120 7 526 +3673 688 8 185 584 +3674 635 466 105 6 +3675 2 1066 82 406 +3676 7 508 1119 138 +3677 570 8 185 686 +3678 406 2 1066 21 +3679 466 635 100 6 +3680 2 392 54 1068 +3681 133 448 636 6 +3682 640 691 224 223 +3683 344 345 1072 1123 +3684 354 413 36 37 +3685 566 149 148 472 +3686 7 508 156 1119 +3687 570 218 8 686 +3688 238 237 606 804 +3689 805 293 292 660 +3690 326 325 974 1039 +3691 249 248 973 607 +3692 1105 172 522 171 +3693 278 1124 692 279 +3694 170 521 171 1121 +3695 1120 312 313 817 +3696 1121 335 334 988 +3697 818 300 301 1066 +3698 268 269 987 687 +3699 816 291 290 688 +3700 247 246 985 637 +3701 236 235 636 819 +3702 324 323 986 1067 +3703 120 621 121 456 +3704 638 257 258 1070 +3705 659 271 270 975 +3706 337 336 1091 972 +3707 304 303 1040 811 +3708 346 1122 1073 345 +3709 641 225 224 690 +3710 287 288 658 813 +3711 1041 320 321 981 +3712 243 244 608 979 +3713 982 331 332 1092 +3714 280 693 1125 279 +3715 290 289 857 686 +3716 1018 323 322 1069 +3717 855 301 302 1068 +3718 457 637 119 120 +3719 245 246 634 1020 +3720 1118 334 333 1021 +3721 124 413 605 125 +3722 803 315 314 1090 +3723 63 1036 62 391 +3724 199 566 198 656 +3725 180 507 1086 179 +3726 78 1034 77 388 +3727 109 424 603 110 +3728 194 655 195 557 +3729 354 73 1037 74 +3730 412 114 604 113 +3731 165 164 472 1088 +3732 298 299 806 1038 +3733 355 58 1035 59 +3734 414 128 129 602 +3735 538 214 654 213 +3736 476 1087 161 160 +3737 41 40 488 395 +3738 440 618 117 118 +3739 339 338 1117 1009 +3740 1006 272 273 685 +3741 841 317 316 1116 +3742 1063 297 296 840 +3743 1012 328 327 1065 +3744 1008 251 250 633 +3745 632 240 239 838 +3746 839 295 294 684 +3747 858 312 311 1119 +3748 814 310 309 1093 +3749 609 233 232 812 +3750 980 265 266 661 +3751 1019 267 268 689 +3752 71 1046 379 72 +3753 856 234 235 635 +3754 1102 169 498 168 +3755 473 39 38 391 +3756 264 263 682 1010 +3757 845 308 307 1114 +3758 630 231 230 843 +3759 318 319 1062 1013 +3760 229 676 228 625 +3761 1056 261 624 262 +3762 677 283 1109 284 +3763 349 1108 350 1057 +3764 1107 275 675 274 +3765 220 674 219 623 +3766 1055 341 1106 340 +3767 253 622 252 1054 +3768 1051 364 66 67 +3769 671 202 543 203 +3770 1115 330 329 1007 +3771 1011 242 241 631 +3772 305 306 844 1064 +3773 683 285 286 842 +3774 56 1047 353 57 +3775 459 615 130 131 +3776 478 1100 159 158 +3777 668 215 533 216 +3778 496 1098 174 173 +3779 122 437 614 123 +3780 182 493 1099 181 +3781 1048 362 79 80 +3782 193 541 192 667 +3783 107 431 616 108 +3784 175 473 176 1089 +3785 200 669 201 571 +3786 1049 394 64 65 +3787 617 115 433 116 +3788 166 494 167 1101 +3789 772 1140 1031 738 +3790 1031 1140 772 1126 +3791 492 1135 1083 1130 +3792 492 1083 1135 739 +3793 775 1083 1135 1130 +3794 775 1135 1083 739 +3795 1127 1009 1094 1117 +3796 1127 1094 1009 910 +3797 1126 840 1043 742 +3798 1126 1043 840 1063 +3799 993 1139 862 401 +3800 862 1139 993 919 +3801 1136 966 860 916 +3802 1136 860 966 556 +3803 401 416 1139 862 +3804 401 1139 416 33 +3805 463 1026 1128 594 +3806 463 1128 1026 402 +3807 1130 841 1097 744 +3808 1130 1097 841 1116 +3809 1131 1006 664 685 +3810 1131 664 1006 908 +3811 1140 419 465 755 +3812 1140 465 419 429 +3813 845 1129 1096 745 +3814 1096 1129 845 1114 +3815 1128 1013 1042 1062 +3816 1128 1042 1013 911 +3817 1133 1010 662 909 +3818 1133 662 1010 682 +3819 1132 843 612 743 +3820 1132 612 843 630 +3821 1013 1144 911 935 +3822 911 1144 1013 1128 +3823 435 973 434 899 +3824 435 434 973 456 +3825 972 491 879 522 +3826 972 879 491 996 +3827 921 455 446 926 +3828 446 455 921 445 +3829 1136 572 573 554 +3830 1136 573 572 1131 +3831 480 930 875 1016 +3832 875 930 480 154 +3833 580 597 1133 646 +3834 580 1133 597 464 +3835 927 401 862 358 +3836 862 401 927 993 +3837 787 360 407 351 +3838 787 407 360 717 +3839 765 477 753 525 +3840 765 753 477 827 +3841 416 946 862 32 +3842 862 946 416 976 +3843 784 477 527 474 +3844 527 477 784 714 +3845 524 783 523 529 +3846 524 523 783 727 +3847 357 955 927 882 +3848 927 955 357 356 +3849 40 1078 1127 400 +3850 40 1127 1078 496 +3851 435 976 449 881 +3852 449 976 435 416 +3853 764 372 375 410 +3854 764 375 372 712 +3855 398 767 48 851 +3856 48 767 398 47 +3857 386 946 927 887 +3858 927 946 386 358 +3859 589 713 797 760 +3860 589 797 713 585 +3861 418 615 1126 459 +3862 418 1126 615 599 +3863 475 1100 1129 478 +3864 475 1129 1100 1084 +3865 420 800 781 98 +3866 781 800 420 707 +3867 414 1034 626 602 +3868 626 1034 414 388 +3869 355 1086 1060 1035 +3870 355 1060 1086 507 +3871 538 603 678 654 +3872 678 603 538 424 +3873 655 476 1112 557 +3874 1112 476 655 1087 +3875 354 1026 594 1037 +3876 594 605 354 1037 +3877 354 605 594 413 +3878 919 1144 993 902 +3879 993 1144 919 1139 +3880 854 103 809 102 +3881 854 809 103 754 +3882 1089 391 1029 473 +3883 1029 391 1089 1036 +3884 373 1017 929 384 +3885 373 929 1017 874 +3886 781 420 729 707 +3887 729 420 781 468 +3888 886 421 928 963 +3889 928 421 886 423 +3890 807 139 708 759 +3891 807 708 139 140 +3892 368 1053 951 1041 +3893 951 1053 368 370 +3894 499 988 1121 1021 +3895 499 1121 988 521 +3896 1148 444 445 427 +3897 1148 445 444 1134 +3898 4 962 374 859 +3899 374 962 4 30 +3900 673 547 950 661 +3901 950 547 673 548 +3902 45 924 983 515 +3903 45 983 924 960 +3904 543 941 203 568 +3905 203 941 543 671 +3906 722 530 795 802 +3907 795 530 722 514 +3908 364 943 67 1051 +3909 67 943 364 390 +3910 186 749 725 797 +3911 186 725 749 185 +3912 396 929 1017 384 +3913 1017 929 396 867 +3914 19 791 825 702 +3915 19 825 791 403 +3916 104 707 103 420 +3917 104 103 707 761 +3918 1049 363 1137 394 +3919 1137 363 1049 1032 +3920 652 571 201 669 +3921 652 201 571 544 +3922 965 4 551 155 +3923 965 551 4 859 +3924 766 17 709 46 +3925 766 709 17 740 +3926 740 29 694 850 +3927 694 29 740 17 +3928 954 865 574 998 +3929 954 574 865 575 +3930 569 574 865 998 +3931 569 865 574 575 +3932 358 33 416 32 +3933 416 33 358 401 +3934 416 862 358 32 +3935 358 862 416 401 +3936 594 354 463 1026 +3937 463 354 594 413 +$EndElements diff --git a/docs/Project.toml b/docs/Project.toml index 0d0ac5d1..434a3e99 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,3 +1,7 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" GalerkinToolkit = "5e3ba9c4-dd81-444d-b69a-0e7bd7bf60a4" +Gmsh = "705231aa-382f-11e9-3f0c-b7cb4346fdeb" +Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306" diff --git a/docs/make.jl b/docs/make.jl index aa38ec1b..683fc015 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,11 +1,16 @@ using GalerkinToolkit using Documenter +using Literate + +src_dir = joinpath(@__DIR__,"src") +examples_jl = joinpath(src_dir,"examples.jl") +Literate.markdown(examples_jl,src_dir) DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) makedocs(; modules=[GalerkinToolkit], - authors="Francesc Verdugo and contributors", + authors="Francesc Verdugo and contributors", sitename="GalerkinToolkit.jl", format=Documenter.HTML(; prettyurls=get(ENV, "CI", "false") == "true", @@ -14,6 +19,10 @@ makedocs(; ), pages=[ "Home" => "index.md", + "examples.md", + "Manual" =>[ + "Getting Started" => "manual/getting_started.md", + ], "Reference" =>[ "Mesh" => "reference/mesh.md", "Integration" => "reference/integration.md", diff --git a/docs/src/examples.jl b/docs/src/examples.jl new file mode 100644 index 00000000..1e537fed --- /dev/null +++ b/docs/src/examples.jl @@ -0,0 +1,66 @@ +# # Examples + +# ## Poisson +# +# Import dependencies. + +import GalerkinToolkit as GT +import Gmsh: gmsh +import GLMakie +import ForwardDiff +using LinearAlgebra + +# Define geometry via gmsh API. + +#if gmsh.isInitialized() == 1 +# gmsh.finalize() +#end +#gmsh.initialize() +#gmsh.option.setNumber("General.Terminal",0) +#v1 = gmsh.model.occ.addBox(0,0,0,1,1,1) +#c1 = gmsh.model.occ.addCylinder(0,0.5,0.5,1,0,0,0.4) +#c2 = gmsh.model.occ.addCylinder(0.5,0,0.5,0,1,0,0.4) +#v2, = gmsh.model.occ.fuse([(3,c1)],[(3,c2)]) +#v3, = gmsh.model.occ.cut([(3,v1)],v2) +#gmsh.model.occ.synchronize() +#gmsh.model.addPhysicalGroup(3,map(last,v3),-1,"volume") +#gmsh.model.addPhysicalGroup(2,[14],-1,"top") +#gmsh.model.addPhysicalGroup(2,[15],-1,"bottom") +#gmsh.model.mesh.generate(3) +#gmsh.model.mesh.renumberElements() +#gmsh.model.mesh.renumberNodes() +# +## Create a mesh from the gmsh-generated mesh. +# +#mesh = GT.mesh_from_gmsh_module() +#GLMakie.plot(mesh,strokecolor=:black) + + +mesh = GT.mesh_from_gmsh("assets/mesh1.msh") + +# Solve the Poisson equation with GalerkinToolkit. + +k = 1 +Ω = GT.interior(mesh) +Γd1 = GT.boundary(mesh;physical_names=["top"]) +Γd2 = GT.boundary(mesh;physical_names=["bottom"]) + + +g1 = GT.analytical_field(x->1,Ω) +g2 = GT.analytical_field(x->2,Ω) +g = GT.piecewiese_field(g1,g2) +Γd = GT.piecewiese_domain(Γd1,Γd2) +V = GT.lagrange_space(Ω,k;dirichlet_boundary=Γd) +dΩ = GT.measure(Ω,2*k) +uhd = GT.dirichlet_field(Float64,V) +GT.interpolate_dirichlet!(g,uhd) +gradient(u) = x->ForwardDiff.gradient(u,x) +∇(u,x) = GT.call(gradient,u)(x) +a(u,v) = GT.∫( x->∇(u,x)⋅∇(v,x), dΩ) +l(v) = 0 +x,A,b = GT.linear_problem(uhd,a,l) +x .= A\b +uh = GT.solution_field(uhd,x) +GLMakie.plot(Ω,color=uh,strokecolor=:black) + + From f1337750f3b6c5f8f539bf8e8ee878f6279e7f89 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Fri, 18 Oct 2024 18:50:25 +0200 Subject: [PATCH 02/30] More in examples --- docs/src/examples.jl | 37 ++++++++----------------------------- 1 file changed, 8 insertions(+), 29 deletions(-) diff --git a/docs/src/examples.jl b/docs/src/examples.jl index 1e537fed..68ce5222 100644 --- a/docs/src/examples.jl +++ b/docs/src/examples.jl @@ -5,47 +5,27 @@ # Import dependencies. import GalerkinToolkit as GT -import Gmsh: gmsh import GLMakie import ForwardDiff using LinearAlgebra -# Define geometry via gmsh API. +# Load a mesh from a msh file. -#if gmsh.isInitialized() == 1 -# gmsh.finalize() -#end -#gmsh.initialize() -#gmsh.option.setNumber("General.Terminal",0) -#v1 = gmsh.model.occ.addBox(0,0,0,1,1,1) -#c1 = gmsh.model.occ.addCylinder(0,0.5,0.5,1,0,0,0.4) -#c2 = gmsh.model.occ.addCylinder(0.5,0,0.5,0,1,0,0.4) -#v2, = gmsh.model.occ.fuse([(3,c1)],[(3,c2)]) -#v3, = gmsh.model.occ.cut([(3,v1)],v2) -#gmsh.model.occ.synchronize() -#gmsh.model.addPhysicalGroup(3,map(last,v3),-1,"volume") -#gmsh.model.addPhysicalGroup(2,[14],-1,"top") -#gmsh.model.addPhysicalGroup(2,[15],-1,"bottom") -#gmsh.model.mesh.generate(3) -#gmsh.model.mesh.renumberElements() -#gmsh.model.mesh.renumberNodes() -# -## Create a mesh from the gmsh-generated mesh. -# -#mesh = GT.mesh_from_gmsh_module() -#GLMakie.plot(mesh,strokecolor=:black) +## TODO a more elegant way of getting the mesh +mesh = GT.mesh_from_gmsh("../../assets/mesh1.msh") +GLMakie.plot(mesh,strokecolor=:black) + +# This mesh has defined to physical groups for surfaces, "top" and "bottom". +GT.physical_names(mesh,2) -mesh = GT.mesh_from_gmsh("assets/mesh1.msh") -# Solve the Poisson equation with GalerkinToolkit. +# Solve the Poisson equation imposing Dirichlet boundary conditions at the top and bottom faces. k = 1 Ω = GT.interior(mesh) Γd1 = GT.boundary(mesh;physical_names=["top"]) Γd2 = GT.boundary(mesh;physical_names=["bottom"]) - - g1 = GT.analytical_field(x->1,Ω) g2 = GT.analytical_field(x->2,Ω) g = GT.piecewiese_field(g1,g2) @@ -63,4 +43,3 @@ x .= A\b uh = GT.solution_field(uhd,x) GLMakie.plot(Ω,color=uh,strokecolor=:black) - From 1a66c7c4c5e1f02c345965c6e8687bbd796e0261 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Fri, 18 Oct 2024 18:51:53 +0200 Subject: [PATCH 03/30] Adding missing file --- docs/src/manual/getting_started.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/src/manual/getting_started.md diff --git a/docs/src/manual/getting_started.md b/docs/src/manual/getting_started.md new file mode 100644 index 00000000..e69de29b From 8cd0c5194f64ee4c4503a0dcc255c58648846ab3 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 08:11:14 +0200 Subject: [PATCH 04/30] Adding skeleton of documentation --- .gitignore | 1 + docs/make.jl | 21 ++++++++--- docs/src/examples.jl | 45 ------------------------ docs/src/examples/boundary_conditions.jl | 1 + docs/src/examples/fields.jl | 1 + docs/src/examples/interpolations.jl | 1 + docs/src/examples/mesh_generation.jl | 1 + docs/src/examples/posprocessing.jl | 1 + docs/src/examples/problem_types.jl | 1 + docs/src/examples/solvers.jl | 1 + docs/src/examples/visualization.jl | 1 + 11 files changed, 26 insertions(+), 49 deletions(-) delete mode 100644 docs/src/examples.jl create mode 100644 docs/src/examples/boundary_conditions.jl create mode 100644 docs/src/examples/fields.jl create mode 100644 docs/src/examples/interpolations.jl create mode 100644 docs/src/examples/mesh_generation.jl create mode 100644 docs/src/examples/posprocessing.jl create mode 100644 docs/src/examples/problem_types.jl create mode 100644 docs/src/examples/solvers.jl create mode 100644 docs/src/examples/visualization.jl diff --git a/.gitignore b/.gitignore index 73703883..0082128f 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ /output /Manifest.toml /docs/build/ +/docs/src/examples/*.md .vscode GalerkinToolkitExamples_output/ GalerkinToolkitExamples/Manifest.toml diff --git a/docs/make.jl b/docs/make.jl index 683fc015..fdd4483e 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -3,15 +3,28 @@ using Documenter using Literate src_dir = joinpath(@__DIR__,"src") -examples_jl = joinpath(src_dir,"examples.jl") -Literate.markdown(examples_jl,src_dir) +examples_dir = joinpath(src_dir,"examples") +examples = [ + "problem_types", + "mesh_generation", + "interpolations", + "boundary_conditions", + "fields", + "solvers", + "posprocessing", + "visualization", + ] +for example in examples + file_jl = joinpath(examples_dir,example*".jl") + Literate.markdown(file_jl,examples_dir) +end DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) makedocs(; modules=[GalerkinToolkit], authors="Francesc Verdugo and contributors", - sitename="GalerkinToolkit.jl", + sitename="GalerkinToolkit", format=Documenter.HTML(; prettyurls=get(ENV, "CI", "false") == "true", canonical="https://GalerkinToolkit.github.io/GalerkinToolkit.jl", @@ -19,7 +32,7 @@ makedocs(; ), pages=[ "Home" => "index.md", - "examples.md", + "Examples" => map(example->"examples/$(example).md",examples), "Manual" =>[ "Getting Started" => "manual/getting_started.md", ], diff --git a/docs/src/examples.jl b/docs/src/examples.jl deleted file mode 100644 index 68ce5222..00000000 --- a/docs/src/examples.jl +++ /dev/null @@ -1,45 +0,0 @@ -# # Examples - -# ## Poisson -# -# Import dependencies. - -import GalerkinToolkit as GT -import GLMakie -import ForwardDiff -using LinearAlgebra - -# Load a mesh from a msh file. - -## TODO a more elegant way of getting the mesh -mesh = GT.mesh_from_gmsh("../../assets/mesh1.msh") -GLMakie.plot(mesh,strokecolor=:black) - -# This mesh has defined to physical groups for surfaces, "top" and "bottom". - -GT.physical_names(mesh,2) - - -# Solve the Poisson equation imposing Dirichlet boundary conditions at the top and bottom faces. - -k = 1 -Ω = GT.interior(mesh) -Γd1 = GT.boundary(mesh;physical_names=["top"]) -Γd2 = GT.boundary(mesh;physical_names=["bottom"]) -g1 = GT.analytical_field(x->1,Ω) -g2 = GT.analytical_field(x->2,Ω) -g = GT.piecewiese_field(g1,g2) -Γd = GT.piecewiese_domain(Γd1,Γd2) -V = GT.lagrange_space(Ω,k;dirichlet_boundary=Γd) -dΩ = GT.measure(Ω,2*k) -uhd = GT.dirichlet_field(Float64,V) -GT.interpolate_dirichlet!(g,uhd) -gradient(u) = x->ForwardDiff.gradient(u,x) -∇(u,x) = GT.call(gradient,u)(x) -a(u,v) = GT.∫( x->∇(u,x)⋅∇(v,x), dΩ) -l(v) = 0 -x,A,b = GT.linear_problem(uhd,a,l) -x .= A\b -uh = GT.solution_field(uhd,x) -GLMakie.plot(Ω,color=uh,strokecolor=:black) - diff --git a/docs/src/examples/boundary_conditions.jl b/docs/src/examples/boundary_conditions.jl new file mode 100644 index 00000000..4f4f041f --- /dev/null +++ b/docs/src/examples/boundary_conditions.jl @@ -0,0 +1 @@ +# # Boundary conditions diff --git a/docs/src/examples/fields.jl b/docs/src/examples/fields.jl new file mode 100644 index 00000000..e14aac6c --- /dev/null +++ b/docs/src/examples/fields.jl @@ -0,0 +1 @@ +# # Field types diff --git a/docs/src/examples/interpolations.jl b/docs/src/examples/interpolations.jl new file mode 100644 index 00000000..5ec4543d --- /dev/null +++ b/docs/src/examples/interpolations.jl @@ -0,0 +1 @@ +# # Interpolation types diff --git a/docs/src/examples/mesh_generation.jl b/docs/src/examples/mesh_generation.jl new file mode 100644 index 00000000..60d416d8 --- /dev/null +++ b/docs/src/examples/mesh_generation.jl @@ -0,0 +1 @@ +# # Mesh generation diff --git a/docs/src/examples/posprocessing.jl b/docs/src/examples/posprocessing.jl new file mode 100644 index 00000000..1f40b088 --- /dev/null +++ b/docs/src/examples/posprocessing.jl @@ -0,0 +1 @@ +# # Post-processing diff --git a/docs/src/examples/problem_types.jl b/docs/src/examples/problem_types.jl new file mode 100644 index 00000000..a99644de --- /dev/null +++ b/docs/src/examples/problem_types.jl @@ -0,0 +1 @@ +# # Problem types diff --git a/docs/src/examples/solvers.jl b/docs/src/examples/solvers.jl new file mode 100644 index 00000000..8cdad726 --- /dev/null +++ b/docs/src/examples/solvers.jl @@ -0,0 +1 @@ +# # Solvers diff --git a/docs/src/examples/visualization.jl b/docs/src/examples/visualization.jl new file mode 100644 index 00000000..6f922825 --- /dev/null +++ b/docs/src/examples/visualization.jl @@ -0,0 +1 @@ +# # Visualization From d530d836ad1a4640ac4cff51bbd8faee600f8a05 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 08:12:10 +0200 Subject: [PATCH 05/30] Ignore all Manifest --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0082128f..2f390fec 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ *.pvtu *.vtu /output -/Manifest.toml +*Manifest.toml /docs/build/ /docs/src/examples/*.md .vscode From dd69286c0ceb91a89b6eff3fe51a77dd32eb3ca4 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 08:12:38 +0200 Subject: [PATCH 06/30] Add missing file --- docs/src/manual/meshes.jl | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/src/manual/meshes.jl diff --git a/docs/src/manual/meshes.jl b/docs/src/manual/meshes.jl new file mode 100644 index 00000000..e69de29b From 271408da9517f0f6fb3fd0485944ea6e9262bad4 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 08:46:18 +0200 Subject: [PATCH 07/30] Adding first example --- docs/src/examples/problem_types.jl | 48 ++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/docs/src/examples/problem_types.jl b/docs/src/examples/problem_types.jl index a99644de..92be6172 100644 --- a/docs/src/examples/problem_types.jl +++ b/docs/src/examples/problem_types.jl @@ -1 +1,49 @@ # # Problem types +# +# ## Linear, steady-state, single-field + +# Solve the following Poisson equation on the unit square, +# +# ```math +# \left\lbrace +# \begin{aligned} +# -\Delta u = f \ &\text{in} \ \Omega,\\ +# u = g \ &\text{on}\ \partial\Omega,\\ +# \end{aligned} +# \right. +# ``` +# with $f=1$ and $g=0$. +# +# Solve it with a piece-wise linear Lagrange interpolation, and visualize the result. + +import GalerkinToolkit as GT +import ForwardDiff +import GLMakie +using LinearAlgebra +domain = (0,1,0,1) +cells = (10,10) +mesh = GT.cartesian_mesh(domain,cells;simplexify=true) +dirichlet_tag = "dirichlet" +GT.label_boundary_faces!(mesh;physical_name=dirichlet_tag) +Ω = GT.interior(mesh) +Γd = GT.boundary(mesh;physical_names=[dirichlet_tag]) +k = 1 +V = GT.lagrange_space(Ω,k;dirichlet_boundary=Γd) +uhd = GT.dirichlet_field(Float64,V) +g = GT.analytical_field(x->0,Ω) +f = GT.analytical_field(x->1,Ω) +GT.interpolate_dirichlet!(g,uhd) +dΩ = GT.measure(Ω,2*k) +gradient(u) = x->ForwardDiff.gradient(u,x) +∇(u,x) = GT.call(gradient,u)(x) +a(u,v) = GT.∫( x->∇(u,x)⋅∇(v,x), dΩ) +l(v) = GT.∫( x->v(x)*f(x), dΩ) +x,A,b = GT.linear_problem(uhd,a,l) +x .= A\b +uh = GT.solution_field(uhd,x) +GLMakie.plot(Ω;color=uh,strokecolor=:black) + +# !!! warning +# TODOs: +# - 2D domains should be visualized as 2D plots by default +# - Transparent background so that figures look good in dark mode. From c146902c9f6234e18ccbf6b58ab2e14365d2343c Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 09:03:16 +0200 Subject: [PATCH 08/30] Trying to fix Documentation CI build --- .github/workflows/CI.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 91b31726..3ad721e1 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -93,3 +93,5 @@ jobs: using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) doctest(GalerkinToolkit)' + with: + prefix: xvfb-run -s '-screen 0 1024x768x24' From 39fc28a5c00471df4a76333042e346ae35d0f16e Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 09:10:20 +0200 Subject: [PATCH 09/30] Minor --- docs/src/examples/problem_types.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/examples/problem_types.jl b/docs/src/examples/problem_types.jl index 92be6172..420612a1 100644 --- a/docs/src/examples/problem_types.jl +++ b/docs/src/examples/problem_types.jl @@ -44,6 +44,6 @@ uh = GT.solution_field(uhd,x) GLMakie.plot(Ω;color=uh,strokecolor=:black) # !!! warning -# TODOs: +# TODO: # - 2D domains should be visualized as 2D plots by default # - Transparent background so that figures look good in dark mode. From f81df0ec9ab98d42f32d9bf721ab7c9a1ab47405 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 09:16:27 +0200 Subject: [PATCH 10/30] Typo --- .github/workflows/CI.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 3ad721e1..e070c17c 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -88,10 +88,9 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | + xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) doctest(GalerkinToolkit)' - with: - prefix: xvfb-run -s '-screen 0 1024x768x24' From fba986bc34e9f3dcb942561d3b8d1bbd2fd52003 Mon Sep 17 00:00:00 2001 From: Francesc Verdugo Date: Sun, 20 Oct 2024 09:35:34 +0200 Subject: [PATCH 11/30] New attempt to fix docs --- .github/workflows/CI.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e070c17c..e2d5665d 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -85,6 +85,8 @@ jobs: version: '1' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-docdeploy@v1 + with: + prefix: xvfb-run -s '-screen 0 1024x768x24' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | From 4fffa39ee765f518cbed81a7b56f1bb3f990839a Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 13:32:11 +0200 Subject: [PATCH 12/30] Fix in docs; test 1 --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index e2d5665d..3447d1c7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -90,7 +90,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - xvfb-run -s '-screen 0 1024x768x24' + # xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit From 33f735e2d39d0d27d3f571c95975fb965129a475 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 13:43:29 +0200 Subject: [PATCH 13/30] Fix in docs; test 2 --- .github/workflows/CI.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 3447d1c7..c19259ec 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -90,7 +90,6 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - # xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit From d10317b6f5e7e98d74b57a8968d8bcf2edbae53c Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 13:47:19 +0200 Subject: [PATCH 14/30] Fix in docs; test 3 - installing xvfb --- .github/workflows/CI.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c19259ec..6593c147 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -85,12 +85,12 @@ jobs: version: '1' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-docdeploy@v1 - with: - prefix: xvfb-run -s '-screen 0 1024x768x24' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Install xvfb + run: sudo apt-get install -y xvfb - run: | - julia --project=docs -e ' + xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) From 7e7d7d7a58c3d36bc06f7d5cbf9b579e3f377d51 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 14:07:20 +0200 Subject: [PATCH 15/30] Fix in docs; test 4 - installing and run xvfb before building Pkg --- .github/workflows/CI.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6593c147..658a60e1 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -83,6 +83,10 @@ jobs: - uses: julia-actions/setup-julia@v1 with: version: '1' + - name: Install and Run xvfb + run: | + sudo apt-get install -y xvfb + xvfb-run -s '-screen 0 1024x768x24' - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-docdeploy@v1 env: @@ -90,7 +94,7 @@ jobs: - name: Install xvfb run: sudo apt-get install -y xvfb - run: | - xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' + julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) From 5df7d26a98d49331af396dea8e3f5c11f0ca22cd Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 14:16:31 +0200 Subject: [PATCH 16/30] Fix in docs; test 5 - from https://discourse.julialang.org/t/ci-fails-to-build-glmakie-dependency/80125/2 --- .github/workflows/CI.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 658a60e1..4ecd3d71 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -83,10 +83,10 @@ jobs: - uses: julia-actions/setup-julia@v1 with: version: '1' - - name: Install and Run xvfb + - name: Prepare env for xvfb run: | - sudo apt-get install -y xvfb - xvfb-run -s '-screen 0 1024x768x24' + sudo apt-get update + sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-docdeploy@v1 env: @@ -94,7 +94,7 @@ jobs: - name: Install xvfb run: sudo apt-get install -y xvfb - run: | - julia --project=docs -e ' + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) From a9b7c37a4e0967b717ecbefb0355db692ac242a1 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 14:36:17 +0200 Subject: [PATCH 17/30] Fix in docs; test 6 - try to set once again xvfb before pkg --- .github/workflows/CI.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 4ecd3d71..4cd48d2b 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -87,14 +87,18 @@ jobs: run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev + - name: Start xvfb + run: | + export DISPLAY=:99 + Xvfb :99 -screen 0 1024x768x24 & # Start xvfb as a background process - uses: julia-actions/julia-buildpkg@v1 + env: + DISPLAY: :99 # Set DISPLAY environment variable for xvfb - uses: julia-actions/julia-docdeploy@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Install xvfb - run: sudo apt-get install -y xvfb - run: | - DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' + xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) From f38565093ff3556610613c8bc7aa0f468c9db15f Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 15:21:15 +0200 Subject: [PATCH 18/30] Fix in docs; test 7 - delaying the precompilation of GLMake by adding it as a weak dependency to docs/Project.toml --- docs/Project.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/Project.toml b/docs/Project.toml index 434a3e99..2dd493bd 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,7 +1,9 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" -GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" GalerkinToolkit = "5e3ba9c4-dd81-444d-b69a-0e7bd7bf60a4" Gmsh = "705231aa-382f-11e9-3f0c-b7cb4346fdeb" Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306" + +[weakdeps] +GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a" From e780f00065b4caffa6ea09de2d67c0da921318a4 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 15:37:53 +0200 Subject: [PATCH 19/30] Fix in docs; test 8 - add GLMake manually --- .github/workflows/CI.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 4cd48d2b..649241d0 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -87,18 +87,13 @@ jobs: run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - - name: Start xvfb - run: | - export DISPLAY=:99 - Xvfb :99 -screen 0 1024x768x24 & # Start xvfb as a background process - uses: julia-actions/julia-buildpkg@v1 - env: - DISPLAY: :99 # Set DISPLAY environment variable for xvfb - uses: julia-actions/julia-docdeploy@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project -e 'using Pkg; Pkg.add("GLMakie")' - run: | - xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest using GalerkinToolkit DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) From 26ff5ec873be15867f21d585e3c4c1f94545571e Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Fri, 25 Oct 2024 15:50:30 +0200 Subject: [PATCH 20/30] Fix in docs; test 9 - change in order --- .github/workflows/CI.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 649241d0..c2da49b1 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -83,15 +83,16 @@ jobs: - uses: julia-actions/setup-julia@v1 with: version: '1' + - uses: julia-actions/julia-buildpkg@v1 - name: Prepare env for xvfb run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - - uses: julia-actions/julia-buildpkg@v1 + - name: Add GLMakie to global environment + run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project -e 'using Pkg; Pkg.add("GLMakie")' - uses: julia-actions/julia-docdeploy@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project -e 'using Pkg; Pkg.add("GLMakie")' - run: | DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Documenter: DocMeta, doctest From 9b337c49ef9f790ad7e09fd33809a060e95ae573 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 08:20:33 +0100 Subject: [PATCH 21/30] Fix in docs; test 10 - Add GLMakie in docs env manually --- .github/workflows/CI.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c2da49b1..58bf75af 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -88,8 +88,8 @@ jobs: run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - - name: Add GLMakie to global environment - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project -e 'using Pkg; Pkg.add("GLMakie")' + - name: Add GLMakie to project environment + run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.add("GLMakie")' - uses: julia-actions/julia-docdeploy@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 1daab80d54cee839670ddc4dedf0a3613629b938 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 08:30:20 +0100 Subject: [PATCH 22/30] Fix in docs; test 10 - make workflow run --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 58bf75af..d081e2ce 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -84,7 +84,7 @@ jobs: with: version: '1' - uses: julia-actions/julia-buildpkg@v1 - - name: Prepare env for xvfb + - name: Prepare environment for xvfb run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev From 1768ecec8b9839f81439a6138714a5299d75904a Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 08:52:18 +0100 Subject: [PATCH 23/30] Fix in docs; test 11 - Add prefix to julia-docsdeploy --- .github/workflows/CI.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index d081e2ce..5e59f182 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -91,6 +91,8 @@ jobs: - name: Add GLMakie to project environment run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.add("GLMakie")' - uses: julia-actions/julia-docdeploy@v1 + with: + prefix: xvfb-run -s '-screen 0 1024x768x24' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | From 6e335be4aab15969fdf825e044b37debcdfa88e5 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 09:16:55 +0100 Subject: [PATCH 24/30] Fix in docs; test 12 - Implement completelly solution https://discourse.julialang.org/t/ci-fails-to-build-glmakie-dependency/80125/2 --- .github/workflows/CI.yml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 5e59f182..fefd8165 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -89,15 +89,6 @@ jobs: sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - name: Add GLMakie to project environment - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.add("GLMakie")' - - uses: julia-actions/julia-docdeploy@v1 - with: - prefix: xvfb-run -s '-screen 0 1024x768x24' - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - run: | - DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' - using Documenter: DocMeta, doctest - using GalerkinToolkit - DocMeta.setdocmeta!(GalerkinToolkit, :DocTestSetup, :(using GalerkinToolkit); recursive=true) - doctest(GalerkinToolkit)' + run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.add("GLMakie")' + - name: Build Documentation + run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include(\"docs/make.jl\")' From d0d8de78949516ddc9df6693ef97bfa8fe2fe941 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 09:31:50 +0100 Subject: [PATCH 25/30] Fix in docs; test 12 - Fix typo --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index fefd8165..18b2e31a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -91,4 +91,4 @@ jobs: - name: Add GLMakie to project environment run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.add("GLMakie")' - name: Build Documentation - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include(\"docs/make.jl\")' + run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' From af47abb53dbfca59ee99c3697867f3c6166ee9d1 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 10:29:16 +0100 Subject: [PATCH 26/30] Fix in GalerkinToolkitExamples CI; updated PartitionedSolvers version --- GalerkinToolkitExamples/Project.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/GalerkinToolkitExamples/Project.toml b/GalerkinToolkitExamples/Project.toml index feba1eb0..e2b22dda 100644 --- a/GalerkinToolkitExamples/Project.toml +++ b/GalerkinToolkitExamples/Project.toml @@ -26,3 +26,7 @@ Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] test = ["Test"] + +[compat] +PartitionedSolvers = "0.2" + From 2c3f1fc102b40299bce8b02c3b514cbdd053c419 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 10:34:29 +0100 Subject: [PATCH 27/30] Fix in docs; add back docsdeploy --- .github/workflows/CI.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 18b2e31a..dcf21806 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -92,3 +92,8 @@ jobs: run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.add("GLMakie")' - name: Build Documentation run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' + - uses: julia-actions/julia-docdeploy@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + prefix: xvfb-run From 5e4917302c0e522f3d431ad2ed8098a310ad44fb Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 10:56:45 +0100 Subject: [PATCH 28/30] Fix in docs; add docsdeploy before testing docs --- .github/workflows/CI.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index dcf21806..9f0c7733 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -90,10 +90,10 @@ jobs: sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - name: Add GLMakie to project environment run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.add("GLMakie")' - - name: Build Documentation - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' - uses: julia-actions/julia-docdeploy@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: prefix: xvfb-run + - name: Testing Documentation + run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' From 85980ec22dc3913899278a5a23b62c61b961d693 Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 11:08:23 +0100 Subject: [PATCH 29/30] Fix in docs; clean up --- .github/workflows/CI.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9f0c7733..a8478679 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -88,12 +88,16 @@ jobs: run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - - name: Add GLMakie to project environment - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'using Pkg; Pkg.instantiate(); Pkg.add("GLMakie")' + - run: | + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' + using Pkg + Pkg.develop(PackageSpec(path=pwd())) + Pkg.instantiate() + Pkg.add("GLMakie")' - uses: julia-actions/julia-docdeploy@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} with: prefix: xvfb-run - - name: Testing Documentation - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' + - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' From 50e43daecdecfabe567494c2289959b5110da1bc Mon Sep 17 00:00:00 2001 From: Cmurilochem Date: Wed, 30 Oct 2024 11:25:45 +0100 Subject: [PATCH 30/30] Fix in docs; final clean up and eliminate docdeploy --- .github/workflows/CI.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a8478679..9a42ba23 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -88,16 +88,16 @@ jobs: run: | sudo apt-get update sudo apt-get install -y xorg-dev mesa-utils xvfb libgl1 freeglut3-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libxext-dev - - run: | + - name: Install dependencies + run: | DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e ' using Pkg Pkg.develop(PackageSpec(path=pwd())) Pkg.instantiate() Pkg.add("GLMakie")' - - uses: julia-actions/julia-docdeploy@v1 + - name: Build and deploy env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} - with: - prefix: xvfb-run - - run: DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")' + run: | + DISPLAY=:0 xvfb-run -s '-screen 0 1024x768x24' julia --project=docs -e 'include("docs/make.jl")'