From a92899063ea25e14c3ee2088c199f880c7aa9d10 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Fri, 26 Jun 2026 15:18:50 +0200 Subject: [PATCH 01/12] Fixed dish direction in manual display and radar inventory model, closes #618 --- .../multiblock/metal/RadarRenderer.java | 1 + .../block/multiblock/radar/radar_inv.obj | 10725 ++++++++-------- 2 files changed, 5363 insertions(+), 5363 deletions(-) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/RadarRenderer.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/RadarRenderer.java index d95ff035a..d56f38a57 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/RadarRenderer.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/RadarRenderer.java @@ -60,6 +60,7 @@ public void drawSimple(BufferBuilder buf, float partialTicks, Tessellator tes) { //Reset model to default state and render model.defaultize(); + animationDish.apply(0.5f); model.render(tes, buf); } diff --git a/src/main/resources/assets/immersiveintelligence/models/block/multiblock/radar/radar_inv.obj b/src/main/resources/assets/immersiveintelligence/models/block/multiblock/radar/radar_inv.obj index 5cd2b7c32..1c69a7de9 100644 --- a/src/main/resources/assets/immersiveintelligence/models/block/multiblock/radar/radar_inv.obj +++ b/src/main/resources/assets/immersiveintelligence/models/block/multiblock/radar/radar_inv.obj @@ -1,139 +1,138 @@ # Made by Pabilo8 with Blockbench -# Exported with IIToolkit Plugin +# Exported with IIToolkit Plugin on 26/06/2026 mtllib radar.mtl - o base -v -0.8749999999999998 1.875000625 5.75 +v -0.875 1.875 5.75 v 4 1 5.0625 -v 3.9999993750000007 0.500000625 5.0625 -v 4 1 3.0624999999999996 -v 3.999999375 0.500000625 3.0624999999999996 -v 2.0000000000000004 1 5.0625 -v 2.0000000000000004 0.500000625 5.0625 +v 4 0.5 5.0625 +v 4 1 3.0625 +v 4 0.5 3.0625 +v 2 1 5.0625 +v 2 0.5 5.0625 v 2 1 3.0625 -v 2 0.500000625 3.0625 -v 4.440892098500626e-16 1 5.0625 -v 4.440892098500626e-16 0.500000625 5.0625 -v 0 1 3.0625000000000004 -v 0 0.500000625 3.0625000000000004 -v 3.999999999999999 1 1.0624999999999996 -v 3.999999375 0.500000625 1.0624999999999996 -v 1.9999999999999996 1 1.0625 -v 1.9999999999999996 0.500000625 1.0625 -v -4.440892098500626e-16 0.500000625 1.0625000000000004 -v -4.440892098500626e-16 1 1.0625000000000004 -v 4.999999375 0.5 2.999999999999999 -v 5 6.249999999763389e-7 2.999999999999999 -v 4.999999374999999 0.5 -8.881784197001252e-16 -v 4.999999999999999 6.249999999763389e-7 -8.881784197001252e-16 -v 2 0.500000625 3 +v 2 0.5 3.0625 +v 0 1 5.0625 +v 0 0.5 5.0625 +v 0 1 3.0625 +v 0 0.5 3.0625 +v 4 1 1.0625 +v 4 0.5 1.0625 +v 2 1 1.0625 +v 2 0.5 1.0625 +v 0 0.5 1.0625 +v 0 1 1.0625 +v 5 0.5 3 +v 5 0 3 +v 5 0.5 0 +v 5 0 0 +v 2 0.5 3 v 2 0 3 -v 1.9999999999999993 0.500000625 0 -v 1.9999999999999993 0 0 -v 2.0000000000000004 0.500000625 6 -v 2.0000000000000004 0 6 -v 4.999999375000001 0.5 5.999999999999999 -v 5 6.249999999763389e-7 5.999999999999999 -v -1.0000000000000002 0.500000625 3.0000000000000004 -v -1.0000000000000002 0 3.0000000000000004 -v -0.9999999999999998 0.500000625 6 -v -0.9999999999999998 0 6 -v -1.000000000000001 0.500000625 4.440892098500626e-16 -v -1.000000000000001 0 4.440892098500626e-16 -v 2.220446049250313e-16 1.250000625 4 -v -1.0000000000000002 1.25 4.000000000000001 -v 2.220446049250313e-16 0.500000625 4 -v -1.0000000000000002 0.500000625 4.000000000000001 -v 0 1.250000625 3.0000000000000004 -v -1.0000000000000002 1.25 3.0000000000000004 -v 0 0.500000625 3.0000000000000004 -v 4.440892098500626e-16 1.250000625 5 -v -0.9999999999999998 1.25 5.000000000000001 -v 4.440892098500626e-16 0.500000625 5 -v -0.9999999999999998 0.500000625 5.000000000000001 -v 6.661338147750939e-16 1.250000625 6 -v -0.9999999999999998 1.25 6 -v 6.661338147750939e-16 0.500000625 6 -v -0.8749999999999998 1.875000625 4.250000000000001 -v -0.3749999999999998 1.875000625 4.25 -v -0.8749999999999998 1.375 4.250000000000001 -v -0.3749999999999998 1.375 4.25 -v -0.8749999999999998 1.875000625 4.750000000000001 -v -0.3749999999999998 1.875000625 4.75 -v -0.8749999999999998 1.375 4.750000000000001 -v -0.3749999999999998 1.375 4.75 -v -0.8750000000000002 1.875000625 3.2500000000000004 -v -0.3750000000000002 1.875000625 3.2500000000000004 -v -0.8750000000000002 1.375 3.2500000000000004 -v -0.3750000000000002 1.375 3.2500000000000004 -v -0.8750000000000002 1.875000625 3.750000000000001 -v -0.3750000000000002 1.875000625 3.7500000000000004 -v -0.8750000000000002 1.375 3.750000000000001 -v -0.3750000000000002 1.375 3.7500000000000004 -v -1.0000000000000002 2.000000625 3.1250000000000004 -v -0.8750000000000002 2 3.1250000000000004 -v -1.0000000000000002 1.25 3.1250000000000004 -v -0.875000625 1.250000625 3.1250000000000004 -v -1.0000000000000002 2.000000625 3.875000000000001 -v -0.8750000000000002 2 3.875000000000001 -v -1.0000000000000002 1.25 3.875000000000001 -v -0.875000625 1.250000625 3.875000000000001 -v -0.9999999999999998 2.000000625 4.125000000000001 -v -0.8749999999999998 2 4.125000000000001 -v -0.9999999999999998 1.25 4.125000000000001 -v -0.8750006249999995 1.250000625 4.125000000000001 -v -0.9999999999999998 2.000000625 4.875000000000001 -v -0.8749999999999998 2 4.875000000000001 -v -0.9999999999999998 1.25 4.875000000000001 -v -0.8750006249999995 1.250000625 4.875000000000001 -v -0.9999999999999998 2.000000625 5.125 -v -0.8749999999999998 2 5.125 -v -0.9999999999999998 1.25 5.125 -v -0.8750006249999995 1.250000625 5.125 -v -0.9999999999999998 2.000000625 5.875 -v -0.8749999999999998 2 5.875 -v -0.9999999999999998 1.25 5.875 -v -0.8750006249999995 1.250000625 5.875 -v -0.8749999999999998 1.875000625 5.25 -v -0.3749999999999998 1.875000625 5.25 -v -0.8749999999999998 1.375 5.25 -v -0.3749999999999998 1.375 5.25 -v -0.3749999999999998 1.875000625 5.75 -v -0.8749999999999998 1.375 5.75 -v -0.3749999999999998 1.375 5.75 -v 0.9571218750000001 1.3133706250000001 4.403104375 -v 0.6792750000000003 1.5007812500000002 4.68432375 -v 0.7655468750000003 0.748634375 4.5901775 -v 0.48769937500000027 0.936044375 4.8713975000000005 -v 0.646923125 1.31640625 4.094602500000001 -v 0.36907562500000024 1.5038162499999999 4.375821875000001 -v 0.45534750000000024 0.7516693750000001 4.281675625 -v 0.17750000000000044 0.939079375 4.562895 -v 3.3536 1.311629375 4.099969375 -v 3.633974375 1.496524375 4.380344375 -v 3.5403725 0.745186875 4.286741875 -v 3.8207475000000004 0.9300825 4.567116875 -v 3.044240625 1.311629375 4.40932875 -v 3.3246156250000003 1.496524375 4.689703124999999 -v 3.2310137500000007 0.745186875 4.59610125 -v 3.5113881250000003 0.9300825 4.87647625 -v 3.0426824999999997 1.3133706250000001 1.7118681249999996 -v 3.3205299999999998 1.5007812500000002 1.4306487499999998 -v 3.2342587499999995 0.748634375 1.5247949999999997 -v 3.5121062499999995 0.936045 1.2435749999999994 -v 3.3528824999999998 1.316405625 2.0203699999999998 -v 3.6307293749999996 1.5038162499999999 1.7391506249999995 -v 3.5444574999999996 0.7516693750000001 1.8332968749999996 -v 3.8223049999999996 0.93908 1.5520774999999996 -v 0.6462056249999997 1.311629375 2.0150031250000002 -v 0.36583062499999963 1.496525 1.7346281250000004 -v 0.4594324999999997 0.745186875 1.8282306250000004 -v 0.17905749999999943 0.9300825 1.5478556250000004 -v 0.9555643749999998 1.311629375 1.7056437500000001 -v 0.6751899999999995 1.496525 1.425269375 -v 0.7687912499999994 0.745186875 1.5188712500000001 -v 0.48841687499999953 0.9300825 1.2384962500000003 +v 2 0.5 0 +v 2 0 0 +v 2 0.5 6 +v 2 0 6 +v 5 0.5 6 +v 5 0 6 +v -1 0.5 3 +v -1 0 3 +v -1 0.5 6 +v -1 0 6 +v -1 0.5 0 +v -1 0 0 +v 0 1.25 4 +v -1 1.25 4 +v 0 0.5 4 +v -1 0.5 4 +v 0 1.25 3 +v -1 1.25 3 +v 0 0.5 3 +v 0 1.25 5 +v -1 1.25 5 +v 0 0.5 5 +v -1 0.5 5 +v 0 1.25 6 +v -1 1.25 6 +v 0 0.5 6 +v -0.875 1.875 4.25 +v -0.375 1.875 4.25 +v -0.875 1.375 4.25 +v -0.375 1.375 4.25 +v -0.875 1.875 4.75 +v -0.375 1.875 4.75 +v -0.875 1.375 4.75 +v -0.375 1.375 4.75 +v -0.875 1.875 3.25 +v -0.375 1.875 3.25 +v -0.875 1.375 3.25 +v -0.375 1.375 3.25 +v -0.875 1.875 3.75 +v -0.375 1.875 3.75 +v -0.875 1.375 3.75 +v -0.375 1.375 3.75 +v -1 2 3.125 +v -0.875 2 3.125 +v -1 1.25 3.125 +v -0.875 1.25 3.125 +v -1 2 3.875 +v -0.875 2 3.875 +v -1 1.25 3.875 +v -0.875 1.25 3.875 +v -1 2 4.125 +v -0.875 2 4.125 +v -1 1.25 4.125 +v -0.875 1.25 4.125 +v -1 2 4.875 +v -0.875 2 4.875 +v -1 1.25 4.875 +v -0.875 1.25 4.875 +v -1 2 5.125 +v -0.875 2 5.125 +v -1 1.25 5.125 +v -0.875 1.25 5.125 +v -1 2 5.875 +v -0.875 2 5.875 +v -1 1.25 5.875 +v -0.875 1.25 5.875 +v -0.875 1.875 5.25 +v -0.375 1.875 5.25 +v -0.875 1.375 5.25 +v -0.375 1.375 5.25 +v -0.375 1.875 5.75 +v -0.875 1.375 5.75 +v -0.375 1.375 5.75 +v 0.9571 1.3134 4.4031 +v 0.6793 1.5008 4.6843 +v 0.7655 0.7486 4.5902 +v 0.4877 0.936 4.8714 +v 0.6469 1.3164 4.0946 +v 0.3691 1.5038 4.3758 +v 0.4553 0.7517 4.2817 +v 0.1775 0.9391 4.5629 +v 3.3536 1.3116 4.1 +v 3.634 1.4965 4.3803 +v 3.5404 0.7452 4.2867 +v 3.8207 0.9301 4.5671 +v 3.0442 1.3116 4.4093 +v 3.3246 1.4965 4.6897 +v 3.231 0.7452 4.5961 +v 3.5114 0.9301 4.8765 +v 3.0427 1.3134 1.7119 +v 3.3205 1.5008 1.4306 +v 3.2343 0.7486 1.5248 +v 3.5121 0.936 1.2436 +v 3.3529 1.3164 2.0204 +v 3.6307 1.5038 1.7392 +v 3.5445 0.7517 1.8333 +v 3.8223 0.9391 1.5521 +v 0.6462 1.3116 2.015 +v 0.3658 1.4965 1.7346 +v 0.4594 0.7452 1.8282 +v 0.1791 0.9301 1.5479 +v 0.9556 1.3116 1.7056 +v 0.6752 1.4965 1.4253 +v 0.7688 0.7452 1.5189 +v 0.4884 0.9301 1.2385 vt 0.6875 0.5 vt 0.75 0.5 vt 0.75 0.25 @@ -226,10 +225,10 @@ vt 1 0.5625 vt 1 0.9375 vt 0.625 0.9375 vt 0.625 0.5625 -vt 1 0.9453125 -vt 1 0.5703125 -vt 0.625 0.5703125 -vt 0.625 0.9453125 +vt 1 0.9453 +vt 1 0.5703 +vt 0.625 0.5703 +vt 0.625 0.9453 vt 0.5625 0.9375 vt 0.625 0.9375 vt 0.625 0.5625 @@ -242,10 +241,10 @@ vt 1 0.5625 vt 0.625 0.5625 vt 0.625 0.9375 vt 1 0.9375 -vt 1 0.9453125 -vt 1 0.5703125 -vt 0.625 0.5703125 -vt 0.625 0.9453125 +vt 1 0.9453 +vt 1 0.5703 +vt 0.625 0.5703 +vt 0.625 0.9453 vt 0.5625 0.9375 vt 0.625 0.9375 vt 0.625 0.5625 @@ -258,10 +257,10 @@ vt 1 0.5625 vt 1 0.9375 vt 0.625 0.9375 vt 0.625 0.5625 -vt 1 0.9453125 -vt 1 0.5703125 -vt 0.625 0.5703125 -vt 0.625 0.9453125 +vt 1 0.9453 +vt 1 0.5703 +vt 0.625 0.5703 +vt 0.625 0.9453 vt 0.5625 0.9375 vt 0.625 0.9375 vt 0.625 0.5625 @@ -274,351 +273,351 @@ vt 1 0.5625 vt 0.625 0.5625 vt 0.625 0.9375 vt 1 0.9375 -vt 1 0.9453125 -vt 1 0.5703125 -vt 0.625 0.5703125 -vt 0.625 0.9453125 -vt 0.1328125 0.09375 -vt 0.25 0.09375 +vt 1 0.9453 +vt 1 0.5703 +vt 0.625 0.5703 +vt 0.625 0.9453 +vt 0.1328 0.0938 +vt 0.25 0.0938 vt 0.25 0 -vt 0.1328125 0 -vt 0.3671875 0.1796875 -vt 0.484375 0.1796875 -vt 0.484375 0.0546875 -vt 0.3671875 0.0546875 -vt 0.125 0.09375 -vt 0.2421875 0.09375 -vt 0.2421875 0 +vt 0.1328 0 +vt 0.3672 0.1797 +vt 0.4844 0.1797 +vt 0.4844 0.0547 +vt 0.3672 0.0547 +vt 0.125 0.0938 +vt 0.2422 0.0938 +vt 0.2422 0 vt 0.125 0 -vt 0.015625 0.09375 -vt 0.1328125 0.09375 -vt 0.1328125 0 -vt 0.015625 0 -vt 0.3671875 0.1796875 -vt 0.484375 0.1796875 -vt 0.484375 0.0546875 -vt 0.3671875 0.0546875 -vt 0.125 0.09375 -vt 0.2421875 0.09375 -vt 0.2421875 0 +vt 0.0156 0.0938 +vt 0.1328 0.0938 +vt 0.1328 0 +vt 0.0156 0 +vt 0.3672 0.1797 +vt 0.4844 0.1797 +vt 0.4844 0.0547 +vt 0.3672 0.0547 +vt 0.125 0.0938 +vt 0.2422 0.0938 +vt 0.2422 0 vt 0.125 0 -vt 0 0.09375 -vt 0.1171875 0.09375 -vt 0.1171875 0 +vt 0 0.0938 +vt 0.1172 0.0938 +vt 0.1172 0 vt 0 0 -vt 0.1328125 0.09375 -vt 0.25 0.09375 +vt 0.1328 0.0938 +vt 0.25 0.0938 vt 0.25 0 -vt 0.1328125 0 -vt 0.3671875 0.1796875 -vt 0.484375 0.1796875 -vt 0.484375 0.0546875 -vt 0.3671875 0.0546875 -vt 0.125 0.09375 -vt 0.2421875 0.09375 -vt 0.2421875 0 +vt 0.1328 0 +vt 0.3672 0.1797 +vt 0.4844 0.1797 +vt 0.4844 0.0547 +vt 0.3672 0.0547 +vt 0.125 0.0938 +vt 0.2422 0.0938 +vt 0.2422 0 vt 0.125 0 -vt 0.359375 0.1796875 -vt 0.4765625 0.1796875 -vt 0.4765625 0.0859375 -vt 0.359375 0.0859375 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.125 -vt 0.5546875 0.125 -vt 0.5546875 0.0625 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.125 -vt 0.5546875 0.125 -vt 0.5546875 0.0625 -vt 0.4921875 0.0625 -vt 0.2734375 0.5625 -vt 0.2890625 0.5625 -vt 0.2890625 0.46875 -vt 0.2734375 0.46875 -vt 0.265625 0.5625 -vt 0.28125 0.5625 -vt 0.28125 0.46875 -vt 0.265625 0.46875 -vt 0.171875 0.1640625 -vt 0.265625 0.1640625 -vt 0.265625 0.1484375 -vt 0.171875 0.1484375 -vt 0.1875 0.5703125 -vt 0.28125 0.5703125 -vt 0.28125 0.4765625 -vt 0.1875 0.4765625 -vt 0.28125 0.5703125 -vt 0.375 0.5703125 -vt 0.375 0.4765625 -vt 0.28125 0.4765625 -vt 0.2734375 0.5625 -vt 0.2890625 0.5625 -vt 0.2890625 0.46875 -vt 0.2734375 0.46875 -vt 0.265625 0.5625 -vt 0.28125 0.5625 -vt 0.28125 0.46875 -vt 0.265625 0.46875 -vt 0.171875 0.1640625 -vt 0.265625 0.1640625 -vt 0.265625 0.1484375 -vt 0.171875 0.1484375 -vt 0.09375 0.5703125 -vt 0.1875 0.5703125 -vt 0.1875 0.4765625 -vt 0.09375 0.4765625 -vt 0.28125 0.5703125 -vt 0.375 0.5703125 -vt 0.375 0.4765625 -vt 0.28125 0.4765625 -vt 0.2734375 0.5625 -vt 0.2890625 0.5625 -vt 0.2890625 0.46875 -vt 0.2734375 0.46875 -vt 0.265625 0.5625 -vt 0.28125 0.5625 -vt 0.28125 0.46875 -vt 0.265625 0.46875 -vt 0.171875 0.1640625 -vt 0.265625 0.1640625 -vt 0.265625 0.1484375 -vt 0.171875 0.1484375 -vt 0 0.5703125 -vt 0.09375 0.5703125 -vt 0.09375 0.4765625 -vt 0 0.4765625 -vt 0.28125 0.5703125 -vt 0.375 0.5703125 -vt 0.375 0.4765625 -vt 0.28125 0.4765625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.4921875 0.0625 -vt 0.5546875 0.0625 -vt 0.5546875 0 -vt 0.4921875 0 -vt 0.4921875 0.125 -vt 0.5546875 0.125 -vt 0.5546875 0.0625 -vt 0.4921875 0.0625 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.3594 0.1797 +vt 0.4766 0.1797 +vt 0.4766 0.0859 +vt 0.3594 0.0859 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.125 +vt 0.5547 0.125 +vt 0.5547 0.0625 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.125 +vt 0.5547 0.125 +vt 0.5547 0.0625 +vt 0.4922 0.0625 +vt 0.2734 0.5625 +vt 0.2891 0.5625 +vt 0.2891 0.4688 +vt 0.2734 0.4688 +vt 0.2656 0.5625 +vt 0.2813 0.5625 +vt 0.2813 0.4688 +vt 0.2656 0.4688 +vt 0.1719 0.1641 +vt 0.2656 0.1641 +vt 0.2656 0.1484 +vt 0.1719 0.1484 +vt 0.1875 0.5703 +vt 0.2813 0.5703 +vt 0.2813 0.4766 +vt 0.1875 0.4766 +vt 0.2813 0.5703 +vt 0.375 0.5703 +vt 0.375 0.4766 +vt 0.2813 0.4766 +vt 0.2734 0.5625 +vt 0.2891 0.5625 +vt 0.2891 0.4688 +vt 0.2734 0.4688 +vt 0.2656 0.5625 +vt 0.2813 0.5625 +vt 0.2813 0.4688 +vt 0.2656 0.4688 +vt 0.1719 0.1641 +vt 0.2656 0.1641 +vt 0.2656 0.1484 +vt 0.1719 0.1484 +vt 0.0938 0.5703 +vt 0.1875 0.5703 +vt 0.1875 0.4766 +vt 0.0938 0.4766 +vt 0.2813 0.5703 +vt 0.375 0.5703 +vt 0.375 0.4766 +vt 0.2813 0.4766 +vt 0.2734 0.5625 +vt 0.2891 0.5625 +vt 0.2891 0.4688 +vt 0.2734 0.4688 +vt 0.2656 0.5625 +vt 0.2813 0.5625 +vt 0.2813 0.4688 +vt 0.2656 0.4688 +vt 0.1719 0.1641 +vt 0.2656 0.1641 +vt 0.2656 0.1484 +vt 0.1719 0.1484 +vt 0 0.5703 +vt 0.0938 0.5703 +vt 0.0938 0.4766 +vt 0 0.4766 +vt 0.2813 0.5703 +vt 0.375 0.5703 +vt 0.375 0.4766 +vt 0.2813 0.4766 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.4922 0.0625 +vt 0.5547 0.0625 +vt 0.5547 0 +vt 0.4922 0 +vt 0.4922 0.125 +vt 0.5547 0.125 +vt 0.5547 0.0625 +vt 0.4922 0.0625 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.3046875 0.1328125 -vt 0.359375 0.1328125 -vt 0.359375 0.078125 -vt 0.3046875 0.078125 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.3047 0.1328 +vt 0.3594 0.1328 +vt 0.3594 0.0781 +vt 0.3047 0.0781 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.3046875 0.1328125 -vt 0.359375 0.1328125 -vt 0.359375 0.078125 -vt 0.3046875 0.078125 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.3047 0.1328 +vt 0.3594 0.1328 +vt 0.3594 0.0781 +vt 0.3047 0.0781 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.3046875 0.1328125 -vt 0.359375 0.1328125 -vt 0.359375 0.078125 -vt 0.3046875 0.078125 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.3047 0.1328 +vt 0.3594 0.1328 +vt 0.3594 0.0781 +vt 0.3047 0.0781 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.3046875 0.1328125 -vt 0.359375 0.1328125 -vt 0.359375 0.078125 -vt 0.3046875 0.078125 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.3047 0.1328 +vt 0.3594 0.1328 +vt 0.3594 0.0781 +vt 0.3047 0.0781 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vt 0.25 0.078125 -vt 0.3046875 0.078125 -vt 0.3046875 0 +vt 0.25 0.0781 +vt 0.3047 0.0781 +vt 0.3047 0 vt 0.25 0 -vn 0.9999999999992187 -0.0000012500015620095647 -2.2204460492485783e-16 -vn 2.220446049250313e-16 0 1 -vn 0 1 0 -vn 0 -1 0 -vn 2.220446049250313e-16 0 1 -vn -1 0 2.220446049250313e-16 -vn 1 0 -2.220446049250313e-16 -vn 0 1 0 -vn 0 -1 0 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0.9999999999992187 -0.0000012500015620095647 -2.2204460492485783e-16 -vn 0 1 0 -vn 0 -1 0 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn -1 0 2.220446049250313e-16 -vn 1 0 -2.220446049250313e-16 -vn 0 -1 0 -vn 0 1 0 -vn 0.9999999999992188 0.0000012500015620095647 -2.2204460492485786e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.0833337674673234e-7 0.9999999999999785 -4.6259302332425887e-23 -vn 2.0833333332544184e-7 -0.9999999999999785 -4.6259292690962593e-23 -vn 2.220446049250313e-16 0 1 -vn 0.9999999999992188 0.0000012500015620095647 -2.2204460492485786e-16 -vn 2.0833337674673234e-7 0.9999999999999785 -4.6259302332425887e-23 -vn 2.0833333332544184e-7 -0.9999999999999785 -4.6259292690962593e-23 -vn -1 0 2.220446049250313e-16 -vn 2.220446049250313e-16 0 1 -vn 0 1 0 -vn 0 -1 0 -vn -2.220446049250313e-16 0 -1 -vn -1 0 2.220446049250313e-16 -vn 0 1 0 -vn 0 -1 0 -vn -2.220446049250313e-16 0 -1 -vn -6.25000000031728e-7 0.9999999999998048 1.387778780851896e-22 -vn 1 0 -2.220446049250313e-16 -vn -1 0 2.220446049250313e-16 -vn -6.25000000031728e-7 0.9999999999998048 1.387778780851896e-22 -vn 1 0 -2.220446049250313e-16 -vn -1 0 2.220446049250313e-16 -vn 2.220446049250313e-16 0 1 -vn -6.25000000031728e-7 0.9999999999998048 1.387778780851896e-22 -vn 1 0 -2.220446049250313e-16 -vn -1 0 2.220446049250313e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0 1 0 -vn 0 -1 0 -vn 1 0 -2.220446049250313e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0 1 0 -vn 0 -1 0 -vn 1 0 -2.220446049250313e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0.000004999999999748212 0.9999999999875001 -1.1102230245692484e-21 -vn -1 0 2.220446049250313e-16 -vn 0.9999999999996528 -8.333340274504592e-7 -2.2204460492495422e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0.000004999999999748212 0.9999999999875001 -1.1102230245692484e-21 -vn -1 0 2.220446049250313e-16 -vn 0.9999999999996528 -8.333340274504592e-7 -2.2204460492495422e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0.000004999999999748212 0.9999999999875001 -1.1102230245692484e-21 -vn -1 0 2.220446049250313e-16 -vn 0.9999999999996528 -8.333340274504592e-7 -2.2204460492495422e-16 -vn -2.220446049250313e-16 0 -1 -vn 2.220446049250313e-16 0 1 -vn 0 1 0 -vn 0 -1 0 -vn 1 0 -2.220446049250313e-16 -vn 0.7090269922010453 -0.006937310285754105 0.7051472172931963 -vn -0.7090261390830307 0.006937517796456756 -0.7051480730625551 -vn 0.3065211848722063 0.9035779957221989 -0.2993185073983783 -vn 0.6350797306135076 -0.4283659060163255 -0.6427879792954184 -vn -0.6350794578721239 0.4283660907496533 0.6427881256562764 -vn 0.7071072172400045 0.0000010677667503652836 -0.7071063451320155 -vn -0.707105922514526 -2.1394715663148973e-7 0.7071076398574939 -vn -0.2988355710508979 0.9063082273428659 -0.29883557105089803 -vn -0.6408565003905925 -0.422617902855813 -0.6408565003905923 -vn 0.640856182585632 0.4226188666914219 0.6408561825856323 -vn -0.7090261294737124 -0.006937523323741542 -0.7051480826703418 -vn 0.7090269912638448 0.006937313048478243 0.7051472182083731 -vn -0.30652090677912897 0.9035781832987982 0.29931822592976887 -vn -0.6350784886359895 -0.4283670453610108 0.6427884470963251 -vn 0.6350793265691305 0.428366477812261 -0.6427879974386713 -vn -0.7071065698773925 6.408562102373553e-7 0.7071069924953491 -vn 0.7071065698770055 -6.408559553518484e-7 -0.707106992495736 -vn 0.29883582532694375 0.9063078605878983 0.29883642906739327 -vn 0.6408569562420361 -0.4226184836692769 0.640855661516128 -vn -0.6408554700053183 0.4226190644812238 -0.640856764730839 +vn 1 0 0 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 1 +vn -1 0 0 +vn 1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 0 1 +vn 1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 0 1 +vn -1 0 0 +vn 1 0 0 +vn 0 -1 0 +vn 0 1 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 1 +vn 1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn 0.71 -0.01 0.71 +vn -0.71 0.01 -0.71 +vn 0.31 0.9 -0.3 +vn 0.64 -0.43 -0.64 +vn -0.64 0.43 0.64 +vn 0.71 0 -0.71 +vn -0.71 0 0.71 +vn -0.3 0.91 -0.3 +vn -0.64 -0.42 -0.64 +vn 0.64 0.42 0.64 +vn -0.71 -0.01 -0.71 +vn 0.71 0.01 0.71 +vn -0.31 0.9 0.3 +vn -0.64 -0.43 0.64 +vn 0.64 0.43 -0.64 +vn -0.71 0 0.71 +vn 0.71 0 -0.71 +vn 0.3 0.91 0.3 +vn 0.64 -0.42 0.64 +vn -0.64 0.42 -0.64 usemtl radar f 2/1/1 3/2/1 5/3/1 f 2/1/1 5/3/1 4/4/1 @@ -815,1860 +814,1860 @@ f 127/381/96 125/383/96 129/384/96 f 124/385/97 128/386/97 130/387/97 f 124/385/97 130/387/97 126/388/97 o rotato -v 3.902240652758921 6.02471625 2.624999813371408 -v 2.3769918759704023 11.062500625 6.772867657629529 -v 1.9658763543765676 9.562500625 6.92250147033451 -v 1.7357041072347732 11.062500625 5.0109439936559514 -v 1.3245885856409385 9.562500625 5.160577806360932 -v 1.645232470008753 9.562500625 6.041539638347721 -v 2.0563479916025877 11.062500625 5.89190582564274 -v 1.3304616645208505 9.562500625 5.158440180465146 -v 1.651105548888665 9.562500625 6.039402012451935 -v 2.0622210704825 11.062500625 5.889768199746955 -v 1.7415771861146854 11.062500625 5.008806367760166 -v 2.3828649548503145 11.062500625 6.770730031733744 -v 1.9717494332564796 9.562500625 6.920363844438724 -v 1.9717494332564796 9.562500625 6.920363844438724 -v 1.9717494332564796 7.062500625 6.920363844438724 -v 1.3304616645208505 9.562500625 5.158440180465146 -v 1.3304616645208505 7.062500625 5.158440180465146 -v 1.651105548888665 7.062500625 6.039402012451935 -v 1.651105548888665 9.562500625 6.039402012451935 -v 1.9658763543765676 9.562500625 6.92250147033451 -v 1.9658763543765676 7.062500625 6.92250147033451 -v 1.3245885856409385 9.562500625 5.160577806360932 -v 1.3245885856409385 7.062500625 5.160577806360932 -v 1.645232470008753 7.062500625 6.041539638347721 -v 1.645232470008753 9.562500625 6.041539638347721 -v 2.3769918759704023 5.562500625 6.772867657629529 -v 1.9658763543765676 7.062500625 6.92250147033451 -v 1.7357041072347732 5.562500625 5.0109439936559514 -v 1.3245885856409385 7.062500625 5.160577806360932 -v 1.645232470008753 7.062500625 6.041539638347721 -v 2.0563479916025877 5.562500625 5.89190582564274 -v 1.3304616645208505 7.062500625 5.158440180465146 -v 1.651105548888665 7.062500625 6.039402012451935 -v 2.0622210704825 5.562500625 5.889768199746955 -v 1.7415771861146854 5.562500625 5.008806367760166 -v 2.3828649548503145 5.562500625 6.770730031733744 -v 1.9717494332564796 7.062500625 6.920363844438724 -v 1.749999692374347 11.062500625 3.156249740953678 -v 1.312499616650703 9.562500625 3.1562498352440764 -v 1.7499999743260037 11.062500625 5.0312497298790735 -v 1.31249989860236 9.562500625 5.031249824169471 -v 1.3124997576265314 9.562500625 4.093749829706774 -v 1.7499998333501754 11.062500625 4.093749735416376 -v 1.3187498988821713 9.562500625 5.031249690092132 -v 1.3187497579063434 9.562500625 4.093749695629434 -v 1.7562498336299872 11.062500625 4.093749601339036 -v 1.7562499746058156 11.062500625 5.031249595801734 -v 1.7562496926541589 11.062500625 3.1562496068763384 -v 1.3187496169305148 9.562500625 3.1562497011667365 -v 1.3187496169305148 9.562500625 3.1562497011667365 -v 1.3187496169305148 7.062500625 3.1562497011667365 -v 1.3187498988821713 9.562500625 5.031249690092132 -v 1.3187498988821713 7.062500625 5.031249690092132 -v 1.3187497579063434 7.062500625 4.093749695629434 -v 1.3187497579063434 9.562500625 4.093749695629434 -v 1.312499616650703 9.562500625 3.1562498352440764 -v 1.312499616650703 7.062500625 3.1562498352440764 -v 1.31249989860236 9.562500625 5.031249824169471 -v 1.31249989860236 7.062500625 5.031249824169471 -v 1.3124997576265314 7.062500625 4.093749829706774 -v 1.3124997576265314 9.562500625 4.093749829706774 -v 1.749999692374347 5.562500625 3.156249740953678 -v 1.312499616650703 7.062500625 3.1562498352440764 -v 1.7499999743260037 5.562500625 5.0312497298790735 -v 1.31249989860236 7.062500625 5.031249824169471 -v 1.3124997576265314 7.062500625 4.093749829706774 -v 1.7499998333501754 5.562500625 4.093749735416376 -v 1.3187498988821713 7.062500625 5.031249690092132 -v 1.3187497579063434 7.062500625 4.093749695629434 -v 1.7562498336299872 5.562500625 4.093749601339036 -v 1.7562499746058156 5.562500625 5.031249595801734 -v 1.7562496926541589 5.562500625 3.1562496068763384 -v 1.3187496169305148 7.062500625 3.1562497011667365 -v 1.7500000929405155 5.562500625 1.1562498522348734 -v 1.3125000172168715 7.062500625 1.156249946525272 -v 1.7499995738216947 5.562500625 3.0312494676149706 -v 1.3124994980980507 7.062500625 3.031249561905369 -v 1.3124999444301104 7.062500625 2.0937493536800815 -v 1.749999646608456 5.562500625 2.0937500604601604 -v 1.3187497121404521 7.062500625 3.0312500151359174 -v 1.3187501584725116 7.062500625 2.09374980691063 -v 1.7562496468882678 5.562500625 2.093749926382821 -v 1.7562497878640961 5.562500625 3.031249920845519 -v 1.7562500932203273 5.562500625 1.1562497181575337 -v 1.3187500174966833 7.062500625 1.1562498124479321 -v 1.3187500174966833 9.562500625 1.1562498124479321 -v 1.3187500174966833 7.062500625 1.1562498124479321 -v 1.3187497121404521 9.562500625 3.0312500151359174 -v 1.3187497121404521 7.062500625 3.0312500151359174 -v 1.3187501584725116 7.062500625 2.09374980691063 -v 1.3187501584725116 9.562500625 2.09374980691063 -v 1.3125000172168715 9.562500625 1.156249946525272 -v 1.3125000172168715 7.062500625 1.156249946525272 -v 1.3124994980980507 9.562500625 3.031249561905369 -v 1.3124994980980507 7.062500625 3.031249561905369 -v 1.3124999444301104 7.062500625 2.0937493536800815 -v 1.3124999444301104 9.562500625 2.0937493536800815 -v 1.7500000929405155 11.062500625 1.1562498522348734 -v 1.3125000172168715 9.562500625 1.156249946525272 -v 1.7499995738216947 11.062500625 3.0312494676149706 -v 1.3124994980980507 9.562500625 3.031249561905369 -v 1.3124999444301104 9.562500625 2.0937493536800815 -v 1.749999646608456 11.062500625 2.0937500604601604 -v 1.3187497121404521 9.562500625 3.0312500151359174 -v 1.3187501584725116 9.562500625 2.09374980691063 -v 1.7562496468882678 11.062500625 2.093749926382821 -v 1.7562497878640961 11.062500625 3.031249920845519 -v 1.7562500932203273 11.062500625 1.1562497181575337 -v 1.3187500174966833 9.562500625 1.1562498124479321 -v 2.3769919648380995 11.062500625 -0.5853682989449118 -v 1.9658765778092393 9.562500625 -0.7350019432821453 -v 1.735704025303645 11.062500625 1.1765552081353992 -v 1.324588638274785 9.562500625 1.0269215637981661 -v 1.6452322075067731 9.562500625 0.14595962348536062 -v 2.056347808298223 11.062500625 0.2955938551304822 -v 1.3304614826226082 9.562500625 1.0290593574660019 -v 1.6511056391624845 9.562500625 0.14809720339060695 -v 2.0622212399539346 11.062500625 0.2977314350357285 -v 1.7415768696514684 11.062500625 1.178693001803235 -v 2.3828648091859232 11.062500625 -0.5832305052770765 -v 1.9717494221570626 9.562500625 -0.73286414961431 -v 1.9717494221570626 9.562500625 -0.73286414961431 -v 1.9717494221570626 7.062500625 -0.73286414961431 -v 1.3304614826226082 9.562500625 1.0290593574660019 -v 1.3304614826226082 7.062500625 1.0290593574660019 -v 1.6511056391624845 7.062500625 0.14809720339060695 -v 1.6511056391624845 9.562500625 0.14809720339060695 -v 1.9658765778092393 9.562500625 -0.7350019432821453 -v 1.9658765778092393 7.062500625 -0.7350019432821453 -v 1.324588638274785 9.562500625 1.0269215637981661 -v 1.324588638274785 7.062500625 1.0269215637981661 -v 1.6452322075067731 7.062500625 0.14595962348536062 -v 1.6452322075067731 9.562500625 0.14595962348536062 -v 2.3769919648380995 5.562500625 -0.5853682989449118 -v 1.9658765778092393 7.062500625 -0.7350019432821453 -v 1.735704025303645 5.562500625 1.1765552081353992 -v 1.324588638274785 7.062500625 1.0269215637981661 -v 1.6452322075067731 7.062500625 0.14595962348536062 -v 2.056347808298223 5.562500625 0.2955938551304822 -v 1.3304614826226082 7.062500625 1.0290593574660019 -v 1.6511056391624845 7.062500625 0.14809720339060695 -v 2.0622212399539346 5.562500625 0.2977314350357285 -v 1.7415768696514684 5.562500625 1.178693001803235 -v 2.3828648091859232 5.562500625 -0.5832305052770765 -v 1.9717494221570626 7.062500625 -0.73286414961431 -v 0.9999998263968932 10.937500625 2.9999999097893544 -v 1.1874999427510105 10.937500625 2.9999998388416707 -v 0.9999998263968932 10.062500625 2.9999999097893544 -v 1.1874999427510105 10.062500625 2.9999998388416707 -v 0.9999996835819873 10.937500625 3.1874994388355837 -v 1.187500013698694 10.937500625 3.187499955195788 -v 0.9999996835819873 10.062500625 3.1874994388355837 -v 1.187500013698694 10.062500625 3.187499955195788 -v 0.9374998172238627 10.062500625 2.937499431861088 -v 1.2499996196087992 10.062500625 2.9374994561233416 -v 0.9374998172238627 8.562500625 2.937499431861088 -v 1.2499996196087992 8.562500625 2.9374994561233416 -v 0.9375000067241983 10.062500625 3.2499998215539128 -v 1.249999809109135 10.062500625 3.2499998458161663 -v 0.9375000067241983 8.562500625 3.2499998215539128 -v 1.249999809109135 8.562500625 3.2499998458161663 -v 1.2499996550826409 9.562500625 3.0312495143004003 -v 1.3749999284213485 9.562500625 3.031249395747748 -v 1.687499730806285 11.062500625 3.0312494200100017 -v 1.812500217907582 11.062500625 3.0312498887652377 -v 1.2499997736352932 9.562500625 3.1562497876391076 -v 1.3750000469740007 9.562500625 3.1562496690864554 -v 1.6874998493589373 11.062500625 3.156249693348709 -v 1.8124995353897566 11.062500625 3.1562497885586467 -v 1.2499996550826409 9.562500625 3.0312495143004003 -v 1.3749999284213485 9.562500625 3.031249395747748 -v 1.2499996550826409 8.312500625 3.0312495143004003 -v 1.3749999284213485 8.312500625 3.031249395747748 -v 1.2499997736352932 9.562500625 3.1562497876391076 -v 1.3750000469740007 9.562500625 3.1562496690864554 -v 1.2499997736352932 8.312500625 3.1562497876391076 -v 1.3750000469740007 8.312500625 3.1562496690864554 -v 1.2499996550826409 8.312500625 3.0312495143004003 -v 1.3749999284213485 8.312500625 3.031249395747748 -v 1.2499996550826409 7.062500625 3.0312495143004003 -v 1.3749999284213485 7.062500625 3.031249395747748 -v 1.2499997736352932 8.312500625 3.1562497876391076 -v 1.3750000469740007 8.312500625 3.1562496690864554 -v 1.2499997736352932 7.062500625 3.1562497876391076 -v 1.3750000469740007 7.062500625 3.1562496690864554 -v 1.2499996550826409 7.062500625 3.0312495143004003 -v 1.3749999284213485 7.062500625 3.031249395747748 -v 1.687499730806285 5.562500625 3.0312494200100017 -v 1.812500217907582 5.562500625 3.0312498887652377 -v 1.2499997736352932 7.062500625 3.1562497876391076 -v 1.3750000469740007 7.062500625 3.1562496690864554 -v 1.6874998493589373 5.562500625 3.156249693348709 -v 1.8124995353897566 5.562500625 3.1562497885586467 -v 1.2500000556488096 9.562500625 1.0312496255815962 -v 1.3749997416796287 9.562500625 1.031249720791533 -v 1.6874995440645655 11.062500625 1.031249745053787 -v 1.812499817403273 11.062500625 1.0312496265011344 -v 1.2500001742014617 9.562500625 1.1562498989203036 -v 1.3749998602322813 9.562500625 1.1562499941302407 -v 1.6874996626172176 11.062500625 1.1562500183924944 -v 1.812499935955925 11.062500625 1.156249899839842 -v 1.2500000556488096 9.562500625 1.0312496255815962 -v 1.3749997416796287 9.562500625 1.031249720791533 -v 1.2500000556488096 8.312500625 1.0312496255815962 -v 1.3749997416796287 8.312500625 1.031249720791533 -v 1.2500001742014617 9.562500625 1.1562498989203036 -v 1.3749998602322813 9.562500625 1.1562499941302407 -v 1.2500001742014617 8.312500625 1.1562498989203036 -v 1.3749998602322813 8.312500625 1.1562499941302407 -v 1.2500000556488096 8.312500625 1.0312496255815962 -v 1.3749997416796287 8.312500625 1.031249720791533 -v 1.2500000556488096 7.062500625 1.0312496255815962 -v 1.3749997416796287 7.062500625 1.031249720791533 -v 1.2500001742014617 8.312500625 1.1562498989203036 -v 1.3749998602322813 8.312500625 1.1562499941302407 -v 1.2500001742014617 7.062500625 1.1562498989203036 -v 1.3749998602322813 7.062500625 1.1562499941302407 -v 1.2500000556488096 7.062500625 1.0312496255815962 -v 1.3749997416796287 7.062500625 1.031249720791533 -v 1.6874995440645655 5.562500625 1.031249745053787 -v 1.812499817403273 5.562500625 1.0312496265011344 -v 1.2500001742014617 7.062500625 1.1562498989203036 -v 1.3749998602322813 7.062500625 1.1562499941302407 -v 1.6874996626172176 5.562500625 1.1562500183924944 -v 1.812499935955925 5.562500625 1.156249899839842 -v 1.2500000555869502 9.562500625 5.031249776564503 -v 1.3749997416177693 9.562500625 5.03124987177444 -v 1.687500131310594 11.062500625 5.031249682274105 -v 1.8124998173414135 11.062500625 5.031249777484042 -v 1.2499999603770129 9.562500625 5.156249462595323 -v 1.374999646407832 9.562500625 5.1562495578052605 -v 1.6874994487927686 11.062500625 5.156249582067513 -v 1.8124997221314763 11.062500625 5.156249463514861 -v 1.2500000555869502 9.562500625 5.031249776564503 -v 1.3749997416177693 9.562500625 5.03124987177444 -v 1.2500000555869502 8.312500625 5.031249776564503 -v 1.3749997416177693 8.312500625 5.03124987177444 -v 1.2499999603770129 9.562500625 5.156249462595323 -v 1.374999646407832 9.562500625 5.1562495578052605 -v 1.2499999603770129 8.312500625 5.156249462595323 -v 1.374999646407832 8.312500625 5.1562495578052605 -v 1.2500000555869502 8.312500625 5.031249776564503 -v 1.3749997416177693 8.312500625 5.03124987177444 -v 1.2500000555869502 7.062500625 5.031249776564503 -v 1.3749997416177693 7.062500625 5.03124987177444 -v 1.2499999603770129 8.312500625 5.156249462595323 -v 1.374999646407832 8.312500625 5.1562495578052605 -v 1.2499999603770129 7.062500625 5.156249462595323 -v 1.374999646407832 7.062500625 5.1562495578052605 -v 1.2500000555869502 7.062500625 5.031249776564503 -v 1.3749997416177693 7.062500625 5.03124987177444 -v 1.687500131310594 5.562500625 5.031249682274105 -v 1.8124998173414135 5.562500625 5.031249777484042 -v 1.2499999603770129 7.062500625 5.156249462595323 -v 1.374999646407832 7.062500625 5.1562495578052605 -v 1.6874994487927686 5.562500625 5.156249582067513 -v 1.8124997221314763 5.562500625 5.156249463514861 -v 1.6562499162108046 11.125000625 1.0312496143700076 -v 1.8437500325649219 11.125000625 1.0312495434223243 -v 1.6562499162108046 11.000000625 1.0312496143700076 -v 1.8437500325649219 11.000000625 1.0312495434223243 -v 1.6562498209390077 11.125000625 5.156249451383735 -v 1.8437499372931252 11.125000625 5.156249380436051 -v 1.6562498209390077 11.000000625 5.156249451383735 -v 1.8437499372931252 11.000000625 5.156249380436051 -v 1.8437495967855013 11.125000625 3.061011836809424 -v 1.6562500677392722 11.125000625 3.0610116939945184 -v 1.6562500677392722 11.000000625 3.0610116939945184 -v 1.8437495967855013 11.000000625 3.061011836809424 -v 1.894649711645253 9.562500625 6.940918073990604 -v 2.0121112892434914 9.562500625 6.898165556074895 -v 2.305765233239088 11.062500625 6.7912842612856235 -v 2.4232268108373267 11.062500625 6.748531743369915 -v 1.9374022295609614 9.562500625 7.058379651588842 -v 2.0548638071592 9.562500625 7.015627133673133 -v 2.3485177511547963 11.062500625 6.908745838883862 -v 2.465979328753035 11.062500625 6.865993320968154 -v 1.894649711645253 9.562500625 6.940918073990604 -v 2.0121112892434914 9.562500625 6.898165556074895 -v 1.894649711645253 8.312500625 6.940918073990604 -v 2.0121112892434914 8.312500625 6.898165556074895 -v 1.9374022295609614 9.562500625 7.058379651588842 -v 2.0548638071592 9.562500625 7.015627133673133 -v 1.9374022295609614 8.312500625 7.058379651588842 -v 2.0548638071592 8.312500625 7.015627133673133 -v 1.894649711645253 8.312500625 6.940918073990604 -v 2.0121112892434914 8.312500625 6.898165556074895 -v 1.894649711645253 7.062500625 6.940918073990604 -v 2.0121112892434914 7.062500625 6.898165556074895 -v 1.9374022295609614 8.312500625 7.058379651588842 -v 2.0548638071592 8.312500625 7.015627133673133 -v 1.9374022295609614 7.062500625 7.058379651588842 -v 2.0548638071592 7.062500625 7.015627133673133 -v 1.894649711645253 7.062500625 6.940918073990604 -v 2.0121112892434914 7.062500625 6.898165556074895 -v 2.305765233239088 5.562500625 6.7912842612856235 -v 2.4232268108373267 5.562500625 6.748531743369915 -v 1.9374022295609614 7.062500625 7.058379651588842 -v 2.0548638071592 7.062500625 7.015627133673133 -v 2.3485177511547963 5.562500625 6.908745838883862 -v 2.465979328753035 5.562500625 6.865993320968154 -v 2.32022116970313 5.562500625 6.922370507802745 -v 2.4964135361004876 5.562500625 6.8582417309291825 -v 2.32022116970313 5.437500625 6.922370507802745 -v 2.4964135361004876 5.437500625 6.8582417309291825 -v 1.8437864906959431 5.562500625 5.1563498100848975 -v 1.6562498209390077 5.562500625 5.156249451383735 -v 1.6562498209390077 5.437500625 5.156249451383735 -v 1.8437864906959431 5.437500625 5.1563498100848975 -v 2.32022116970313 11.125000625 6.922370507802745 -v 2.4964135361004876 11.125000625 6.8582417309291825 -v 2.32022116970313 11.000000625 6.922370507802745 -v 2.4964135361004876 11.000000625 6.8582417309291825 -v 1.8437864906959431 11.125000625 5.1563498100848975 -v 1.6562498209390077 11.125000625 5.156249451383735 -v 1.6562498209390077 11.000000625 5.156249451383735 -v 1.8437864906959431 11.000000625 5.1563498100848975 -v 1.909640054583241 8.375000625 7.073472590227704 -v 2.0858324209805987 8.375000625 7.009343813354141 -v 1.909640054583241 8.250000625 7.073472590227704 -v 2.0858324209805987 8.250000625 7.009343813354141 -v 1.4062498260956393 8.375000625 5.062499416549391 -v 1.2187497097415223 8.375000625 5.062499487497075 -v 1.2187497097415223 8.250000625 5.062499487497075 -v 1.4062498260956393 8.250000625 5.062499416549391 -v 1.8946497544200047 9.562500625 -0.7534184619106608 -v 2.0121112858596963 9.562500625 -0.710666274340916 -v 2.305765141448865 11.062500625 -0.6037848175734273 -v 2.423226886651146 11.062500625 -0.5610320426957944 -v 1.9374025292976376 9.562500625 -0.870880207112942 -v 2.0548642744999186 9.562500625 -0.8281274322353092 -v 2.348517916326498 11.062500625 -0.7212465627757085 -v 2.465979661528779 11.062500625 -0.6784937878980757 -v 1.8946497544200047 9.562500625 -0.7534184619106608 -v 2.0121112858596963 9.562500625 -0.710666274340916 -v 1.8946497544200047 8.312500625 -0.7534184619106608 -v 2.0121112858596963 8.312500625 -0.710666274340916 -v 1.9374025292976376 9.562500625 -0.870880207112942 -v 2.0548642744999186 9.562500625 -0.8281274322353092 -v 1.9374025292976376 8.312500625 -0.870880207112942 -v 2.0548642744999186 8.312500625 -0.8281274322353092 -v 1.8946497544200047 8.312500625 -0.7534184619106608 -v 2.0121112858596963 8.312500625 -0.710666274340916 -v 1.8946497544200047 7.062500625 -0.7534184619106608 -v 2.0121112858596963 7.062500625 -0.710666274340916 -v 1.9374025292976376 8.312500625 -0.870880207112942 -v 2.0548642744999186 8.312500625 -0.8281274322353092 -v 1.9374025292976376 7.062500625 -0.870880207112942 -v 2.0548642744999186 7.062500625 -0.8281274322353092 -v 1.8946497544200047 7.062500625 -0.7534184619106608 -v 2.0121112858596963 7.062500625 -0.710666274340916 -v 2.305765141448865 5.562500625 -0.6037848175734273 -v 2.423226886651146 5.562500625 -0.5610320426957944 -v 1.9374025292976376 7.062500625 -0.870880207112942 -v 2.0548642744999186 7.062500625 -0.8281274322353092 -v 2.348517916326498 5.562500625 -0.7212465627757085 -v 2.465979661528779 5.562500625 -0.6784937878980757 -v 2.3202210432602244 5.562500625 -0.7348707246931419 -v 2.496413740955 5.562500625 -0.6707422565658758 -v 2.3202210432602244 5.437500625 -0.7348707246931419 -v 2.496413740955 5.437500625 -0.6707422565658758 -v 1.8437862599880677 5.562500625 1.031149893274621 -v 1.6562499162108046 5.562500625 1.0312496143700076 -v 1.6562499162108046 5.437500625 1.0312496143700076 -v 1.8437862599880677 5.437500625 1.031149893274621 -v 2.3202210432602244 11.125000625 -0.7348707246931419 -v 2.496413740955 11.125000625 -0.6707422565658758 -v 2.3202210432602244 11.000000625 -0.7348707246931419 -v 2.496413740955 11.000000625 -0.6707422565658758 -v 1.8437862599880677 11.125000625 1.031149893274621 -v 1.6562499162108046 11.125000625 1.0312496143700076 -v 1.6562499162108046 11.000000625 1.0312496143700076 -v 1.8437862599880677 11.000000625 1.031149893274621 -v 1.9096398908857333 8.375000625 -0.8859731674252194 -v 2.085832802343099 8.375000625 -0.8218441119900648 -v 1.9096398908857333 8.250000625 -0.8859731674252194 -v 2.085832802343099 8.250000625 -0.8218441119900648 -v 1.4062499923151195 8.375000625 1.1249996958897812 -v 1.2187498759610023 8.375000625 1.1249997668374652 -v 1.2187498759610023 8.250000625 1.1249997668374652 -v 1.4062499923151195 8.250000625 1.1249996958897812 -v 1.6562499162108046 5.562500625 1.0312496143700076 -v 1.8437500325649219 5.562500625 1.0312495434223243 -v 1.6562499162108046 5.437500625 1.0312496143700076 -v 1.8437500325649219 5.437500625 1.0312495434223243 -v 1.6562498209390077 5.562500625 5.156249451383735 -v 1.8437499372931252 5.562500625 5.156249380436051 -v 1.6562498209390077 5.437500625 5.156249451383735 -v 1.8437499372931252 5.437500625 5.156249380436051 -v 1.8437495967855013 5.562500625 3.061011836809424 -v 1.6562500677392722 5.562500625 3.0610116939945184 -v 1.6562500677392722 5.437500625 3.0610116939945184 -v 1.8437495967855013 5.437500625 3.061011836809424 -v 1.2187498759610023 8.375000625 1.1249997668374652 -v 1.4062499923151195 8.375000625 1.1249996958897812 -v 1.2187498759610023 8.250000625 1.1249997668374652 -v 1.4062499923151195 8.250000625 1.1249996958897812 -v 1.2187497097415223 8.375000625 5.062499487497075 -v 1.4062498260956393 8.375000625 5.062499416549391 -v 1.2187497097415223 8.250000625 5.062499487497075 -v 1.4062498260956393 8.250000625 5.062499416549391 -v 1.40624963935392 8.375000625 3.062499741593176 -v 1.2187501103076905 8.375000625 3.06249959877827 -v 1.2187501103076905 8.250000625 3.06249959877827 -v 1.40624963935392 8.250000625 3.062499741593176 -v 0.9374998172238627 8.562500625 2.937499431861088 -v 1.2499996196087992 8.562500625 2.9374994561233416 -v 0.9374998172238627 7.062500625 2.937499431861088 -v 1.2499996196087992 7.062500625 2.9374994561233416 -v 0.9375000067241983 8.562500625 3.2499998215539128 -v 1.249999809109135 8.562500625 3.2499998458161663 -v 0.9375000067241983 7.062500625 3.2499998215539128 -v 1.249999809109135 7.062500625 3.2499998458161663 -v 0.9374999911438273 7.062500625 2.940624725654938 -v 1.2407174106888996 7.13810125 2.9406244965463544 -v 1.3003826017092548 5.6070568750000005 2.9406246857738325 -v 1.603600021254327 5.6826575 2.9406244566652493 -v 0.9374998328042337 7.062500625 3.246874527760063 -v 1.2407174661118958 7.13810125 3.2468748859593672 -v 1.3003824433696614 5.6070568750000005 3.2468744878789573 -v 1.6036000766773233 5.6826575 3.2468748460782617 -v 6.088752058986737 6.777593125 2.624999473322715 -v 6.210840574586619 6.4230237500000005 2.6249996259216677 -v 5.615993068338986 6.61480875 2.6249994443130613 -v 5.7380809966309805 6.260239375 2.6249998106746038 -v 6.088752200882103 6.777593125 2.9999997060309496 -v 6.210840129174098 6.4230237500000005 3.0000000723924916 -v 5.615993210234352 6.61480875 2.9999996770212958 -v 5.738080924763757 6.260239375 2.99999945607495 -v 5.937499853289846 6.593750625 2.8749994955366778 -v 6.4374997720289 6.593750625 2.874999448851248 -v 5.9374998999752755 6.593750625 3.374999414275732 -v 6.437500032476919 6.593750625 3.3749999548981897 -v 5.937499853289846 6.968750625 2.8749994955366778 -v 6.4374997720289 6.968750625 2.874999448851248 -v 5.9374998999752755 6.968750625 3.374999414275732 -v 6.437500032476919 6.968750625 3.3749999548981897 -v 5.999999862462877 7.031250625 2.937499973464944 -v 6.375000095171112 7.031250625 2.937499831569577 -v 5.937499853289846 6.968750625 2.8749994955366778 -v 6.4374997720289 6.968750625 2.874999448851248 -v 5.999999790595654 7.031250625 3.3124996188652904 -v 6.375000023303889 7.031250625 3.3124994769699234 -v 5.9374998999752755 6.968750625 3.374999414275732 -v 6.437500032476919 6.968750625 3.3749999548981897 -v 5.999999790595654 6.531250625 3.3124996188652904 -v 6.375000023303889 6.531250625 3.3124994769699234 -v 5.9374998999752755 6.593750625 3.374999414275732 -v 6.437500032476919 6.593750625 3.3749999548981897 -v 5.999999862462877 6.531250625 2.937499973464944 -v 6.375000095171112 6.531250625 2.937499831569577 -v 5.937499853289846 6.593750625 2.8749994955366778 -v 6.4374997720289 6.593750625 2.874999448851248 -v 6.088752271829787 6.777593125 3.1874998223850666 -v 6.210839986359192 6.4230237500000005 3.187499601438721 -v 5.6159932811820354 6.61480875 3.1874997933754132 -v 5.738080995711442 6.260239375 3.187499572429067 -v 6.088752199962563 6.777593125 3.562499467785413 -v 6.21084012825456 6.4230237500000005 3.5624998341469554 -v 5.615992622006925 6.61480875 3.5624996525383485 -v 5.738081137606809 6.260239375 3.5624998051373016 -v 5.702760947610754 6.643179375000001 2.687499815387899 -v 5.784152561527728 6.4068000000000005 2.6874997393445312 -v 4.40267293575393 6.195523125 2.6874998559876158 -v 4.484064549670904 5.95914375 2.687499779944248 -v 5.702760970953468 6.643179375000001 2.937499774757425 -v 5.7841525848704425 6.4068000000000005 2.937499698714058 -v 4.402672959096645 6.195523125 2.9374998153571426 -v 4.484064573013621 5.95914375 2.9374997393137754 -v 5.702760946691215 6.643179375000001 3.249999577142362 -v 5.784152560608189 6.4068000000000005 3.2499995010989946 -v 4.402672934834392 6.195523125 3.249999617742079 -v 4.484064548751366 5.95914375 3.2499995416987115 -v 5.70276097003393 6.643179375000001 3.499999536511889 -v 5.784152797713494 6.4068000000000005 3.5000000477764095 -v 4.4026729581771065 6.195523125 3.4999995771116055 -v 4.4840645720940815 5.95914375 3.4999995010682383 -v 4.374999643406673 6.187500625 2.6249998423810617 -v 4.497087945243965 5.832931250000001 2.624999407672126 -v 4.0243283672883265 5.670146875 2.624999592425062 -v 4.374999571539449 6.187500625 2.999999487781408 -v 4.497088087139334 5.832931250000001 2.9999996403803606 -v 3.9022405808916987 6.02471625 2.9999994587717542 -v 4.024328509183694 5.670146875 2.999999825133296 -v 2.687499604677773 5.937500625 2.562499623061737 -v 3.562499756125061 5.937500625 2.56249943448094 -v 2.687499604677773 5.437500625 2.562499623061737 -v 3.562499756125061 5.437500625 2.56249943448094 -v 2.6874998642062535 5.937500625 3.6249998908631422 -v 3.5625000156535416 5.937500625 3.624999702282345 -v 2.6874998642062535 5.437500625 3.6249998908631422 -v 3.5625000156535416 5.437500625 3.624999702282345 -v 3.407991276808562 5.9130287500000005 2.568749496587364 -v 3.942960857051293 6.0868512500000005 2.5687497652821505 -v 3.5624998902024005 5.437500625 2.5687494347607522 -v 4.097468883137244 5.6113225 2.568749917218128 -v 3.407991268182363 5.9130287500000005 3.6187497638291455 -v 3.9429606346625046 6.0868512500000005 3.6187494452160442 -v 3.562499881576202 5.437500625 3.6187497020025337 -v 4.097469248056344 5.6113225 3.618749383389432 -v 1.124999863549835 5.937500625 2.187499482804824 -v 2.6874996765449954 5.937500625 2.187499977661391 -v 1.124999863549835 5.437500625 2.187499482804824 -v 2.6874996765449954 5.437500625 2.187499977661391 -v 1.1249996057985723 5.937500625 3.999999842477399 -v 2.687499792339031 5.937500625 3.9999995362634886 -v 1.1249996057985723 5.437500625 3.999999842477399 -v 2.687499792339031 5.437500625 3.9999995362634886 -v 4.374999642487133 6.187500625 3.187499604135525 -v 4.497088158087017 5.832931250000001 3.1874997567344776 -v 3.9022406518393824 6.02471625 3.1874995751258712 -v 4.024328580131378 5.670146875 3.1874999414874132 -v 4.374999784382501 6.187500625 3.5624998368437595 -v 4.497088086219794 5.832931250000001 3.562499402134824 -v 3.90224079373475 6.02471625 3.5624998078341052 -v 4.024328508264155 5.670146875 3.5624995868877596 -v 1.2499997157382752 5.437500625 2.250000008338059 -v 2.8124999022787343 5.437500625 2.2499997021241485 -v 1.2499997157382752 5.250000625 2.250000008338059 -v 2.8124999022787343 5.250000625 2.2499997021241485 -v 1.2499998081895962 5.437500625 3.8124996075706297 -v 2.8125002084926445 5.437500625 3.812499888664607 -v 1.2499998081895962 5.250000625 3.8124996075706297 -v 2.8125002084926445 5.250000625 3.812499888664607 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.6875 0.1171875 -vt 1 0.1171875 +v 0.193 6.0247 3.4597 +v 1.7182 11.0625 -0.6882 +v 2.1293 9.5625 -0.8378 +v 2.3595 11.0625 1.0737 +v 2.7706 9.5625 0.9241 +v 2.45 9.5625 0.0431 +v 2.0389 11.0625 0.1928 +v 2.7648 9.5625 0.9262 +v 2.4441 9.5625 0.0453 +v 2.033 11.0625 0.1949 +v 2.3536 11.0625 1.0759 +v 1.7123 11.0625 -0.6861 +v 2.1235 9.5625 -0.8357 +v 2.1235 9.5625 -0.8357 +v 2.1235 7.0625 -0.8357 +v 2.7648 9.5625 0.9262 +v 2.7648 7.0625 0.9262 +v 2.4441 7.0625 0.0453 +v 2.4441 9.5625 0.0453 +v 2.1293 9.5625 -0.8378 +v 2.1293 7.0625 -0.8378 +v 2.7706 9.5625 0.9241 +v 2.7706 7.0625 0.9241 +v 2.45 7.0625 0.0431 +v 2.45 9.5625 0.0431 +v 1.7182 5.5625 -0.6882 +v 2.1293 7.0625 -0.8378 +v 2.3595 5.5625 1.0737 +v 2.7706 7.0625 0.9241 +v 2.45 7.0625 0.0431 +v 2.0389 5.5625 0.1928 +v 2.7648 7.0625 0.9262 +v 2.4441 7.0625 0.0453 +v 2.033 5.5625 0.1949 +v 2.3536 5.5625 1.0759 +v 1.7123 5.5625 -0.6861 +v 2.1235 7.0625 -0.8357 +v 2.3452 11.0625 2.9284 +v 2.7827 9.5625 2.9284 +v 2.3452 11.0625 1.0534 +v 2.7827 9.5625 1.0534 +v 2.7827 9.5625 1.9909 +v 2.3452 11.0625 1.9909 +v 2.7765 9.5625 1.0534 +v 2.7765 9.5625 1.9909 +v 2.339 11.0625 1.9909 +v 2.339 11.0625 1.0534 +v 2.339 11.0625 2.9284 +v 2.7765 9.5625 2.9284 +v 2.7765 9.5625 2.9284 +v 2.7765 7.0625 2.9284 +v 2.7765 9.5625 1.0534 +v 2.7765 7.0625 1.0534 +v 2.7765 7.0625 1.9909 +v 2.7765 9.5625 1.9909 +v 2.7827 9.5625 2.9284 +v 2.7827 7.0625 2.9284 +v 2.7827 9.5625 1.0534 +v 2.7827 7.0625 1.0534 +v 2.7827 7.0625 1.9909 +v 2.7827 9.5625 1.9909 +v 2.3452 5.5625 2.9284 +v 2.7827 7.0625 2.9284 +v 2.3452 5.5625 1.0534 +v 2.7827 7.0625 1.0534 +v 2.7827 7.0625 1.9909 +v 2.3452 5.5625 1.9909 +v 2.7765 7.0625 1.0534 +v 2.7765 7.0625 1.9909 +v 2.339 5.5625 1.9909 +v 2.339 5.5625 1.0534 +v 2.339 5.5625 2.9284 +v 2.7765 7.0625 2.9284 +v 2.3452 5.5625 4.9284 +v 2.7827 7.0625 4.9284 +v 2.3452 5.5625 3.0534 +v 2.7827 7.0625 3.0534 +v 2.7827 7.0625 3.9909 +v 2.3452 5.5625 3.9909 +v 2.7765 7.0625 3.0534 +v 2.7765 7.0625 3.9909 +v 2.339 5.5625 3.9909 +v 2.339 5.5625 3.0534 +v 2.339 5.5625 4.9284 +v 2.7765 7.0625 4.9284 +v 2.7765 9.5625 4.9284 +v 2.7765 7.0625 4.9284 +v 2.7765 9.5625 3.0534 +v 2.7765 7.0625 3.0534 +v 2.7765 7.0625 3.9909 +v 2.7765 9.5625 3.9909 +v 2.7827 9.5625 4.9284 +v 2.7827 7.0625 4.9284 +v 2.7827 9.5625 3.0534 +v 2.7827 7.0625 3.0534 +v 2.7827 7.0625 3.9909 +v 2.7827 9.5625 3.9909 +v 2.3452 11.0625 4.9284 +v 2.7827 9.5625 4.9284 +v 2.3452 11.0625 3.0534 +v 2.7827 9.5625 3.0534 +v 2.7827 9.5625 3.9909 +v 2.3452 11.0625 3.9909 +v 2.7765 9.5625 3.0534 +v 2.7765 9.5625 3.9909 +v 2.339 11.0625 3.9909 +v 2.339 11.0625 3.0534 +v 2.339 11.0625 4.9284 +v 2.7765 9.5625 4.9284 +v 1.7182 11.0625 6.67 +v 2.1293 9.5625 6.8197 +v 2.3595 11.0625 4.9081 +v 2.7706 9.5625 5.0577 +v 2.45 9.5625 5.9387 +v 2.0389 11.0625 5.7891 +v 2.7648 9.5625 5.0556 +v 2.4441 9.5625 5.9366 +v 2.033 11.0625 5.7869 +v 2.3536 11.0625 4.906 +v 1.7123 11.0625 6.6679 +v 2.1235 9.5625 6.8175 +v 2.1235 9.5625 6.8175 +v 2.1235 7.0625 6.8175 +v 2.7648 9.5625 5.0556 +v 2.7648 7.0625 5.0556 +v 2.4441 7.0625 5.9366 +v 2.4441 9.5625 5.9366 +v 2.1293 9.5625 6.8197 +v 2.1293 7.0625 6.8197 +v 2.7706 9.5625 5.0577 +v 2.7706 7.0625 5.0577 +v 2.45 7.0625 5.9387 +v 2.45 9.5625 5.9387 +v 1.7182 5.5625 6.67 +v 2.1293 7.0625 6.8197 +v 2.3595 5.5625 4.9081 +v 2.7706 7.0625 5.0577 +v 2.45 7.0625 5.9387 +v 2.0389 5.5625 5.7891 +v 2.7648 7.0625 5.0556 +v 2.4441 7.0625 5.9366 +v 2.033 5.5625 5.7869 +v 2.3536 5.5625 4.906 +v 1.7123 5.5625 6.6679 +v 2.1235 7.0625 6.8175 +v 3.0952 10.9375 3.0847 +v 2.9077 10.9375 3.0847 +v 3.0952 10.0625 3.0847 +v 2.9077 10.0625 3.0847 +v 3.0952 10.9375 2.8972 +v 2.9077 10.9375 2.8972 +v 3.0952 10.0625 2.8972 +v 2.9077 10.0625 2.8972 +v 3.1577 10.0625 3.1472 +v 2.8452 10.0625 3.1472 +v 3.1577 8.5625 3.1472 +v 2.8452 8.5625 3.1472 +v 3.1577 10.0625 2.8347 +v 2.8452 10.0625 2.8347 +v 3.1577 8.5625 2.8347 +v 2.8452 8.5625 2.8347 +v 2.8452 9.5625 3.0534 +v 2.7202 9.5625 3.0534 +v 2.4077 11.0625 3.0534 +v 2.2827 11.0625 3.0534 +v 2.8452 9.5625 2.9284 +v 2.7202 9.5625 2.9284 +v 2.4077 11.0625 2.9284 +v 2.2827 11.0625 2.9284 +v 2.8452 9.5625 3.0534 +v 2.7202 9.5625 3.0534 +v 2.8452 8.3125 3.0534 +v 2.7202 8.3125 3.0534 +v 2.8452 9.5625 2.9284 +v 2.7202 9.5625 2.9284 +v 2.8452 8.3125 2.9284 +v 2.7202 8.3125 2.9284 +v 2.8452 8.3125 3.0534 +v 2.7202 8.3125 3.0534 +v 2.8452 7.0625 3.0534 +v 2.7202 7.0625 3.0534 +v 2.8452 8.3125 2.9284 +v 2.7202 8.3125 2.9284 +v 2.8452 7.0625 2.9284 +v 2.7202 7.0625 2.9284 +v 2.8452 7.0625 3.0534 +v 2.7202 7.0625 3.0534 +v 2.4077 5.5625 3.0534 +v 2.2827 5.5625 3.0534 +v 2.8452 7.0625 2.9284 +v 2.7202 7.0625 2.9284 +v 2.4077 5.5625 2.9284 +v 2.2827 5.5625 2.9284 +v 2.8452 9.5625 5.0534 +v 2.7202 9.5625 5.0534 +v 2.4077 11.0625 5.0534 +v 2.2827 11.0625 5.0534 +v 2.8452 9.5625 4.9284 +v 2.7202 9.5625 4.9284 +v 2.4077 11.0625 4.9284 +v 2.2827 11.0625 4.9284 +v 2.8452 9.5625 5.0534 +v 2.7202 9.5625 5.0534 +v 2.8452 8.3125 5.0534 +v 2.7202 8.3125 5.0534 +v 2.8452 9.5625 4.9284 +v 2.7202 9.5625 4.9284 +v 2.8452 8.3125 4.9284 +v 2.7202 8.3125 4.9284 +v 2.8452 8.3125 5.0534 +v 2.7202 8.3125 5.0534 +v 2.8452 7.0625 5.0534 +v 2.7202 7.0625 5.0534 +v 2.8452 8.3125 4.9284 +v 2.7202 8.3125 4.9284 +v 2.8452 7.0625 4.9284 +v 2.7202 7.0625 4.9284 +v 2.8452 7.0625 5.0534 +v 2.7202 7.0625 5.0534 +v 2.4077 5.5625 5.0534 +v 2.2827 5.5625 5.0534 +v 2.8452 7.0625 4.9284 +v 2.7202 7.0625 4.9284 +v 2.4077 5.5625 4.9284 +v 2.2827 5.5625 4.9284 +v 2.8452 9.5625 1.0534 +v 2.7202 9.5625 1.0534 +v 2.4077 11.0625 1.0534 +v 2.2827 11.0625 1.0534 +v 2.8452 9.5625 0.9284 +v 2.7202 9.5625 0.9284 +v 2.4077 11.0625 0.9284 +v 2.2827 11.0625 0.9284 +v 2.8452 9.5625 1.0534 +v 2.7202 9.5625 1.0534 +v 2.8452 8.3125 1.0534 +v 2.7202 8.3125 1.0534 +v 2.8452 9.5625 0.9284 +v 2.7202 9.5625 0.9284 +v 2.8452 8.3125 0.9284 +v 2.7202 8.3125 0.9284 +v 2.8452 8.3125 1.0534 +v 2.7202 8.3125 1.0534 +v 2.8452 7.0625 1.0534 +v 2.7202 7.0625 1.0534 +v 2.8452 8.3125 0.9284 +v 2.7202 8.3125 0.9284 +v 2.8452 7.0625 0.9284 +v 2.7202 7.0625 0.9284 +v 2.8452 7.0625 1.0534 +v 2.7202 7.0625 1.0534 +v 2.4077 5.5625 1.0534 +v 2.2827 5.5625 1.0534 +v 2.8452 7.0625 0.9284 +v 2.7202 7.0625 0.9284 +v 2.4077 5.5625 0.9284 +v 2.2827 5.5625 0.9284 +v 2.439 11.125 5.0534 +v 2.2515 11.125 5.0534 +v 2.439 11 5.0534 +v 2.2515 11 5.0534 +v 2.439 11.125 0.9284 +v 2.2515 11.125 0.9284 +v 2.439 11 0.9284 +v 2.2515 11 0.9284 +v 2.2515 11.125 3.0237 +v 2.439 11.125 3.0237 +v 2.439 11 3.0237 +v 2.2515 11 3.0237 +v 2.2006 9.5625 -0.8563 +v 2.0831 9.5625 -0.8135 +v 1.7894 11.0625 -0.7066 +v 1.672 11.0625 -0.6639 +v 2.1578 9.5625 -0.9737 +v 2.0403 9.5625 -0.931 +v 1.7467 11.0625 -0.8241 +v 1.6292 11.0625 -0.7813 +v 2.2006 9.5625 -0.8563 +v 2.0831 9.5625 -0.8135 +v 2.2006 8.3125 -0.8563 +v 2.0831 8.3125 -0.8135 +v 2.1578 9.5625 -0.9737 +v 2.0403 9.5625 -0.931 +v 2.1578 8.3125 -0.9737 +v 2.0403 8.3125 -0.931 +v 2.2006 8.3125 -0.8563 +v 2.0831 8.3125 -0.8135 +v 2.2006 7.0625 -0.8563 +v 2.0831 7.0625 -0.8135 +v 2.1578 8.3125 -0.9737 +v 2.0403 8.3125 -0.931 +v 2.1578 7.0625 -0.9737 +v 2.0403 7.0625 -0.931 +v 2.2006 7.0625 -0.8563 +v 2.0831 7.0625 -0.8135 +v 1.7894 5.5625 -0.7066 +v 1.672 5.5625 -0.6639 +v 2.1578 7.0625 -0.9737 +v 2.0403 7.0625 -0.931 +v 1.7467 5.5625 -0.8241 +v 1.6292 5.5625 -0.7813 +v 1.775 5.5625 -0.8377 +v 1.5988 5.5625 -0.7736 +v 1.775 5.4375 -0.8377 +v 1.5988 5.4375 -0.7736 +v 2.2514 5.5625 0.9283 +v 2.439 5.5625 0.9284 +v 2.439 5.4375 0.9284 +v 2.2514 5.4375 0.9283 +v 1.775 11.125 -0.8377 +v 1.5988 11.125 -0.7736 +v 1.775 11 -0.8377 +v 1.5988 11 -0.7736 +v 2.2514 11.125 0.9283 +v 2.439 11.125 0.9284 +v 2.439 11 0.9284 +v 2.2514 11 0.9283 +v 2.1856 8.375 -0.9888 +v 2.0094 8.375 -0.9247 +v 2.1856 8.25 -0.9888 +v 2.0094 8.25 -0.9247 +v 2.689 8.375 1.0222 +v 2.8765 8.375 1.0222 +v 2.8765 8.25 1.0222 +v 2.689 8.25 1.0222 +v 2.2006 9.5625 6.8381 +v 2.0831 9.5625 6.7953 +v 1.7894 11.0625 6.6884 +v 1.672 11.0625 6.6457 +v 2.1578 9.5625 6.9555 +v 2.0403 9.5625 6.9128 +v 1.7467 11.0625 6.8059 +v 1.6292 11.0625 6.7632 +v 2.2006 9.5625 6.8381 +v 2.0831 9.5625 6.7953 +v 2.2006 8.3125 6.8381 +v 2.0831 8.3125 6.7953 +v 2.1578 9.5625 6.9555 +v 2.0403 9.5625 6.9128 +v 2.1578 8.3125 6.9555 +v 2.0403 8.3125 6.9128 +v 2.2006 8.3125 6.8381 +v 2.0831 8.3125 6.7953 +v 2.2006 7.0625 6.8381 +v 2.0831 7.0625 6.7953 +v 2.1578 8.3125 6.9555 +v 2.0403 8.3125 6.9128 +v 2.1578 7.0625 6.9555 +v 2.0403 7.0625 6.9128 +v 2.2006 7.0625 6.8381 +v 2.0831 7.0625 6.7953 +v 1.7894 5.5625 6.6884 +v 1.672 5.5625 6.6457 +v 2.1578 7.0625 6.9555 +v 2.0403 7.0625 6.9128 +v 1.7467 5.5625 6.8059 +v 1.6292 5.5625 6.7632 +v 1.775 5.5625 6.8195 +v 1.5988 5.5625 6.7554 +v 1.775 5.4375 6.8195 +v 1.5988 5.4375 6.7554 +v 2.2514 5.5625 5.0535 +v 2.439 5.5625 5.0534 +v 2.439 5.4375 5.0534 +v 2.2514 5.4375 5.0535 +v 1.775 11.125 6.8195 +v 1.5988 11.125 6.7554 +v 1.775 11 6.8195 +v 1.5988 11 6.7554 +v 2.2514 11.125 5.0535 +v 2.439 11.125 5.0534 +v 2.439 11 5.0534 +v 2.2514 11 5.0535 +v 2.1856 8.375 6.9706 +v 2.0094 8.375 6.9065 +v 2.1856 8.25 6.9706 +v 2.0094 8.25 6.9065 +v 2.689 8.375 4.9597 +v 2.8765 8.375 4.9597 +v 2.8765 8.25 4.9597 +v 2.689 8.25 4.9597 +v 2.439 5.5625 5.0534 +v 2.2515 5.5625 5.0534 +v 2.439 5.4375 5.0534 +v 2.2515 5.4375 5.0534 +v 2.439 5.5625 0.9284 +v 2.2515 5.5625 0.9284 +v 2.439 5.4375 0.9284 +v 2.2515 5.4375 0.9284 +v 2.2515 5.5625 3.0237 +v 2.439 5.5625 3.0237 +v 2.439 5.4375 3.0237 +v 2.2515 5.4375 3.0237 +v 2.8765 8.375 4.9597 +v 2.689 8.375 4.9597 +v 2.8765 8.25 4.9597 +v 2.689 8.25 4.9597 +v 2.8765 8.375 1.0222 +v 2.689 8.375 1.0222 +v 2.8765 8.25 1.0222 +v 2.689 8.25 1.0222 +v 2.689 8.375 3.0222 +v 2.8765 8.375 3.0222 +v 2.8765 8.25 3.0222 +v 2.689 8.25 3.0222 +v 3.1577 8.5625 3.1472 +v 2.8452 8.5625 3.1472 +v 3.1577 7.0625 3.1472 +v 2.8452 7.0625 3.1472 +v 3.1577 8.5625 2.8347 +v 2.8452 8.5625 2.8347 +v 3.1577 7.0625 2.8347 +v 2.8452 7.0625 2.8347 +v 3.1577 7.0625 3.144 +v 2.8545 7.1381 3.144 +v 2.7948 5.6071 3.144 +v 2.4916 5.6827 3.144 +v 3.1577 7.0625 2.8378 +v 2.8545 7.1381 2.8378 +v 2.7948 5.6071 2.8378 +v 2.4916 5.6827 2.8378 +v -1.9935 6.7776 3.4597 +v -2.1156 6.423 3.4597 +v -1.5208 6.6148 3.4597 +v -1.6429 6.2602 3.4597 +v -1.9935 6.7776 3.0847 +v -2.1156 6.423 3.0847 +v -1.5208 6.6148 3.0847 +v -1.6429 6.2602 3.0847 +v -1.8423 6.5938 3.2097 +v -2.3423 6.5938 3.2097 +v -1.8423 6.5938 2.7097 +v -2.3423 6.5938 2.7097 +v -1.8423 6.9688 3.2097 +v -2.3423 6.9688 3.2097 +v -1.8423 6.9688 2.7097 +v -2.3423 6.9688 2.7097 +v -1.9048 7.0313 3.1472 +v -2.2798 7.0313 3.1472 +v -1.8423 6.9688 3.2097 +v -2.3423 6.9688 3.2097 +v -1.9048 7.0313 2.7722 +v -2.2798 7.0313 2.7722 +v -1.8423 6.9688 2.7097 +v -2.3423 6.9688 2.7097 +v -1.9048 6.5313 2.7722 +v -2.2798 6.5313 2.7722 +v -1.8423 6.5938 2.7097 +v -2.3423 6.5938 2.7097 +v -1.9048 6.5313 3.1472 +v -2.2798 6.5313 3.1472 +v -1.8423 6.5938 3.2097 +v -2.3423 6.5938 3.2097 +v -1.9935 6.7776 2.8972 +v -2.1156 6.423 2.8972 +v -1.5208 6.6148 2.8972 +v -1.6429 6.2602 2.8972 +v -1.9935 6.7776 2.5222 +v -2.1156 6.423 2.5222 +v -1.5208 6.6148 2.5222 +v -1.6429 6.2602 2.5222 +v -1.6075 6.6432 3.3972 +v -1.6889 6.4068 3.3972 +v -0.3075 6.1955 3.3972 +v -0.3889 5.9591 3.3972 +v -1.6075 6.6432 3.1472 +v -1.6889 6.4068 3.1472 +v -0.3075 6.1955 3.1472 +v -0.3889 5.9591 3.1472 +v -1.6075 6.6432 2.8347 +v -1.6889 6.4068 2.8347 +v -0.3075 6.1955 2.8347 +v -0.3889 5.9591 2.8347 +v -1.6075 6.6432 2.5847 +v -1.6889 6.4068 2.5847 +v -0.3075 6.1955 2.5847 +v -0.3889 5.9591 2.5847 +v -0.2798 6.1875 3.4597 +v -0.4019 5.8329 3.4597 +v 0.0709 5.6701 3.4597 +v -0.2798 6.1875 3.0847 +v -0.4019 5.8329 3.0847 +v 0.193 6.0247 3.0847 +v 0.0709 5.6701 3.0847 +v 1.4077 5.9375 3.5222 +v 0.5327 5.9375 3.5222 +v 1.4077 5.4375 3.5222 +v 0.5327 5.4375 3.5222 +v 1.4077 5.9375 2.4597 +v 0.5327 5.9375 2.4597 +v 1.4077 5.4375 2.4597 +v 0.5327 5.4375 2.4597 +v 0.6872 5.913 3.5159 +v 0.1523 6.0869 3.5159 +v 0.5327 5.4375 3.5159 +v -0.0023 5.6113 3.5159 +v 0.6872 5.913 2.4659 +v 0.1523 6.0869 2.4659 +v 0.5327 5.4375 2.4659 +v -0.0023 5.6113 2.4659 +v 2.9702 5.9375 3.8972 +v 1.4077 5.9375 3.8972 +v 2.9702 5.4375 3.8972 +v 1.4077 5.4375 3.8972 +v 2.9702 5.9375 2.0847 +v 1.4077 5.9375 2.0847 +v 2.9702 5.4375 2.0847 +v 1.4077 5.4375 2.0847 +v -0.2798 6.1875 2.8972 +v -0.4019 5.8329 2.8972 +v 0.193 6.0247 2.8972 +v 0.0709 5.6701 2.8972 +v -0.2798 6.1875 2.5222 +v -0.4019 5.8329 2.5222 +v 0.193 6.0247 2.5222 +v 0.0709 5.6701 2.5222 +v 2.8452 5.4375 3.8347 +v 1.2827 5.4375 3.8347 +v 2.8452 5.25 3.8347 +v 1.2827 5.25 3.8347 +v 2.8452 5.4375 2.2722 +v 1.2827 5.4375 2.2722 +v 2.8452 5.25 2.2722 +v 1.2827 5.25 2.2722 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.6875 0.1172 +vt 1 0.1172 vt 1 0 vt 0.6875 0 -vt 1 0.078125 -vt 0.6875 0.078125 -vt 0.6875 0.1953125 -vt 1 0.1953125 +vt 1 0.0781 +vt 0.6875 0.0781 +vt 0.6875 0.1953 +vt 1 0.1953 vt 1 0 -vt 1 0.1171875 -vt 0.6875 0.1171875 +vt 1 0.1172 +vt 0.6875 0.1172 vt 0.6875 0 -vt 0.6875 0.1953125 -vt 0.6875 0.078125 -vt 1 0.078125 -vt 1 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 +vt 0.6875 0.1953 +vt 0.6875 0.0781 +vt 1 0.0781 +vt 1 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 vt 1 0 -vt 1 0.1171875 -vt 0.6875 0.1171875 +vt 1 0.1172 +vt 0.6875 0.1172 vt 0.6875 0 -vt 0.6875 0.1953125 -vt 0.6875 0.078125 -vt 1 0.078125 -vt 1 0.1953125 -vt 0.6875 0.1171875 -vt 1 0.1171875 +vt 0.6875 0.1953 +vt 0.6875 0.0781 +vt 1 0.0781 +vt 1 0.1953 +vt 0.6875 0.1172 +vt 1 0.1172 vt 1 0 vt 0.6875 0 -vt 1 0.078125 -vt 0.6875 0.078125 -vt 0.6875 0.1953125 -vt 1 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 +vt 1 0.0781 +vt 0.6875 0.0781 +vt 0.6875 0.1953 +vt 1 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 vt 1 0 -vt 1 0.1171875 -vt 0.6875 0.1171875 +vt 1 0.1172 +vt 0.6875 0.1172 vt 0.6875 0 -vt 0.6875 0.1953125 -vt 0.6875 0.078125 -vt 1 0.078125 -vt 1 0.1953125 -vt 0.6875 0.1171875 -vt 1 0.1171875 +vt 0.6875 0.1953 +vt 0.6875 0.0781 +vt 1 0.0781 +vt 1 0.1953 +vt 0.6875 0.1172 +vt 1 0.1172 vt 1 0 vt 0.6875 0 -vt 1 0.078125 -vt 0.6875 0.078125 -vt 0.6875 0.1953125 -vt 1 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 +vt 1 0.0781 +vt 0.6875 0.0781 +vt 0.6875 0.1953 +vt 1 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 vt 1 0 -vt 1 0.1171875 -vt 0.6875 0.1171875 +vt 1 0.1172 +vt 0.6875 0.1172 vt 0.6875 0 -vt 0.6875 0.1953125 -vt 0.6875 0.078125 -vt 1 0.078125 -vt 1 0.1953125 -vt 0.6875 0.1171875 -vt 1 0.1171875 +vt 0.6875 0.1953 +vt 0.6875 0.0781 +vt 1 0.0781 +vt 1 0.1953 +vt 0.6875 0.1172 +vt 1 0.1172 vt 1 0 vt 0.6875 0 -vt 1 0.078125 -vt 0.6875 0.078125 -vt 0.6875 0.1953125 -vt 1 0.1953125 -vt 0.8203125 0 -vt 0.8203125 0.1171875 -vt 0.6328125 0.1171875 -vt 0.6328125 0 -vt 0.6328125 0.1953125 -vt 0.6328125 0.078125 -vt 0.8203125 0.078125 -vt 0.8203125 0.1953125 -vt 0.6328125 0.1171875 -vt 0.8203125 0.1171875 -vt 0.8203125 0 -vt 0.6328125 0 -vt 0.8203125 0.078125 -vt 0.6328125 0.078125 -vt 0.6328125 0.1953125 -vt 0.8203125 0.1953125 -vt 0.53125 0.765625 -vt 0.5546875 0.765625 -vt 0.5546875 0.65625 -vt 0.53125 0.65625 -vt 0.53125 0.765625 -vt 0.5546875 0.765625 -vt 0.5546875 0.65625 -vt 0.53125 0.65625 -vt 0.515625 0.7890625 -vt 0.5390625 0.7890625 -vt 0.5390625 0.765625 -vt 0.515625 0.765625 -vt 0.53125 0.765625 -vt 0.5546875 0.765625 -vt 0.5546875 0.65625 -vt 0.53125 0.65625 -vt 0.53125 0.765625 -vt 0.5546875 0.765625 -vt 0.5546875 0.65625 -vt 0.53125 0.65625 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.8984375 -vt 0.5625 0.8984375 -vt 0.5625 0.859375 -vt 0.5234375 0.859375 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.7890625 -vt 0.5625 0.7890625 -vt 0.5625 0.6015625 -vt 0.5234375 0.6015625 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 0.96875 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 0.96875 -vt 0.125 0.96875 +vt 1 0.0781 +vt 0.6875 0.0781 +vt 0.6875 0.1953 +vt 1 0.1953 +vt 0.8203 0 +vt 0.8203 0.1172 +vt 0.6328 0.1172 +vt 0.6328 0 +vt 0.6328 0.1953 +vt 0.6328 0.0781 +vt 0.8203 0.0781 +vt 0.8203 0.1953 +vt 0.6328 0.1172 +vt 0.8203 0.1172 +vt 0.8203 0 +vt 0.6328 0 +vt 0.8203 0.0781 +vt 0.6328 0.0781 +vt 0.6328 0.1953 +vt 0.8203 0.1953 +vt 0.5313 0.7656 +vt 0.5547 0.7656 +vt 0.5547 0.6563 +vt 0.5313 0.6563 +vt 0.5313 0.7656 +vt 0.5547 0.7656 +vt 0.5547 0.6563 +vt 0.5313 0.6563 +vt 0.5156 0.7891 +vt 0.5391 0.7891 +vt 0.5391 0.7656 +vt 0.5156 0.7656 +vt 0.5313 0.7656 +vt 0.5547 0.7656 +vt 0.5547 0.6563 +vt 0.5313 0.6563 +vt 0.5313 0.7656 +vt 0.5547 0.7656 +vt 0.5547 0.6563 +vt 0.5313 0.6563 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.8984 +vt 0.5625 0.8984 +vt 0.5625 0.8594 +vt 0.5234 0.8594 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.7891 +vt 0.5625 0.7891 +vt 0.5625 0.6016 +vt 0.5234 0.6016 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 0.9688 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 0.9688 +vt 0.125 0.9688 vt 0.125 1 -vt 0.648809375 1 -vt 0.648809375 0.96875 -vt 0.15625 0.953125 -vt 0.15625 1 -vt 0.663690625 1 -vt 0.663690625 0.953125 -vt 0.15625 1 -vt 0.15625 0.96875 -vt 0.663690625 0.96875 -vt 0.663690625 1 -vt 0.15625 0.953125 -vt 0.15625 1 -vt 0.663690625 1 -vt 0.663690625 0.953125 -vt 0.616815625 1 -vt 0.616815625 0.96875 -vt 0.109375 0.96875 -vt 0.109375 1 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 0.96875 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 0.96875 -vt 0.125 0.96875 +vt 0.6488 1 +vt 0.6488 0.9688 +vt 0.1563 0.9531 +vt 0.1563 1 +vt 0.6637 1 +vt 0.6637 0.9531 +vt 0.1563 1 +vt 0.1563 0.9688 +vt 0.6637 0.9688 +vt 0.6637 1 +vt 0.1563 0.9531 +vt 0.1563 1 +vt 0.6637 1 +vt 0.6637 0.9531 +vt 0.6168 1 +vt 0.6168 0.9688 +vt 0.1094 0.9688 +vt 0.1094 1 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 0.9688 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 0.9688 +vt 0.125 0.9688 vt 0.125 1 -vt 0.648809375 1 -vt 0.648809375 0.96875 -vt 0.5546875 0.6328125 -vt 0.53125 0.6328125 -vt 0.53125 0.6484375 -vt 0.5546875 0.6484375 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 0.96875 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 0.96875 -vt 0.125 0.96875 +vt 0.6488 1 +vt 0.6488 0.9688 +vt 0.5547 0.6328 +vt 0.5313 0.6328 +vt 0.5313 0.6484 +vt 0.5547 0.6484 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 0.9688 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 0.9688 +vt 0.125 0.9688 vt 0.125 1 -vt 0.648809375 1 -vt 0.648809375 0.96875 -vt 0.5546875 0.6328125 -vt 0.53125 0.6328125 -vt 0.53125 0.6484375 -vt 0.5546875 0.6484375 +vt 0.6488 1 +vt 0.6488 0.9688 +vt 0.5547 0.6328 +vt 0.5313 0.6328 +vt 0.5313 0.6484 +vt 0.5547 0.6484 vt 0.625 1 -vt 0.625 0.953125 -vt 0.125 0.953125 +vt 0.625 0.9531 +vt 0.125 0.9531 vt 0.125 1 vt 0.625 1 -vt 0.625 0.953125 -vt 0.125 0.953125 +vt 0.625 0.9531 +vt 0.125 0.9531 vt 0.125 1 -vt 0.625 0.96875 +vt 0.625 0.9688 vt 0.625 1 vt 0.125 1 -vt 0.125 0.96875 -vt 0.140625 0.96875 -vt 0.140625 1 -vt 0.640625 1 -vt 0.640625 0.96875 -vt 0.5546875 0.5234375 -vt 0.5546875 0.5078125 -vt 0.53125 0.5078125 -vt 0.53125 0.5234375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0 0.59375 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0.03125 0.59375 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.59375 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0 0.53125 -vt 0 0.90625 -vt 0.03125 0.90625 -vt 0.03125 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.03125 0.53125 -vt 0.03125 0.90625 -vt 0 0.90625 -vt 0 0.53125 -vt 0.109375 0.953125 -vt 0.633184375 0.953125 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 0.953125 -vt 0.633184375 0.953125 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 1 -vt 0.633184375 1 -vt 0.633184375 0.96875 -vt 0.109375 0.96875 -vt 0.648809375 1 +vt 0.125 0.9688 +vt 0.1406 0.9688 +vt 0.1406 1 +vt 0.6406 1 +vt 0.6406 0.9688 +vt 0.5547 0.5234 +vt 0.5547 0.5078 +vt 0.5313 0.5078 +vt 0.5313 0.5234 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0 0.5938 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0.0313 0.5938 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5938 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0 0.5313 +vt 0 0.9063 +vt 0.0313 0.9063 +vt 0.0313 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.0313 0.5313 +vt 0.0313 0.9063 +vt 0 0.9063 +vt 0 0.5313 +vt 0.1094 0.9531 +vt 0.6332 0.9531 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 0.9531 +vt 0.6332 0.9531 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 1 +vt 0.6332 1 +vt 0.6332 0.9688 +vt 0.1094 0.9688 +vt 0.6488 1 vt 0.125 1 -vt 0.125 0.96875 -vt 0.648809375 0.96875 -vt 0.53125 0.6484375 -vt 0.53125 0.6328125 -vt 0.5546875 0.6328125 -vt 0.5546875 0.6484375 -vt 0.109375 0.953125 -vt 0.633184375 0.953125 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 0.953125 -vt 0.633184375 0.953125 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 1 -vt 0.633184375 1 -vt 0.633184375 0.96875 -vt 0.109375 0.96875 -vt 0.648809375 1 +vt 0.125 0.9688 +vt 0.6488 0.9688 +vt 0.5313 0.6484 +vt 0.5313 0.6328 +vt 0.5547 0.6328 +vt 0.5547 0.6484 +vt 0.1094 0.9531 +vt 0.6332 0.9531 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 0.9531 +vt 0.6332 0.9531 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 1 +vt 0.6332 1 +vt 0.6332 0.9688 +vt 0.1094 0.9688 +vt 0.6488 1 vt 0.125 1 -vt 0.125 0.96875 -vt 0.648809375 0.96875 -vt 0.53125 0.6484375 -vt 0.53125 0.6328125 -vt 0.5546875 0.6328125 -vt 0.5546875 0.6484375 -vt 0.125 0.953125 -vt 0.625 0.953125 +vt 0.125 0.9688 +vt 0.6488 0.9688 +vt 0.5313 0.6484 +vt 0.5313 0.6328 +vt 0.5547 0.6328 +vt 0.5547 0.6484 +vt 0.125 0.9531 +vt 0.625 0.9531 vt 0.625 1 vt 0.125 1 -vt 0.125 0.953125 -vt 0.625 0.953125 +vt 0.125 0.9531 +vt 0.625 0.9531 vt 0.625 1 vt 0.125 1 vt 0.125 1 vt 0.625 1 -vt 0.625 0.96875 -vt 0.125 0.96875 -vt 0.640625 1 -vt 0.140625 1 -vt 0.140625 0.96875 -vt 0.640625 0.96875 -vt 0.53125 0.5078125 -vt 0.5546875 0.5078125 -vt 0.5546875 0.5234375 -vt 0.53125 0.5234375 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 1 -vt 0.633184375 0.953125 -vt 0.109375 0.953125 -vt 0.109375 1 -vt 0.633184375 0.96875 -vt 0.633184375 1 -vt 0.109375 1 -vt 0.109375 0.96875 -vt 0.125 0.96875 +vt 0.625 0.9688 +vt 0.125 0.9688 +vt 0.6406 1 +vt 0.1406 1 +vt 0.1406 0.9688 +vt 0.6406 0.9688 +vt 0.5313 0.5078 +vt 0.5547 0.5078 +vt 0.5547 0.5234 +vt 0.5313 0.5234 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 1 +vt 0.6332 0.9531 +vt 0.1094 0.9531 +vt 0.1094 1 +vt 0.6332 0.9688 +vt 0.6332 1 +vt 0.1094 1 +vt 0.1094 0.9688 +vt 0.125 0.9688 vt 0.125 1 -vt 0.648809375 1 -vt 0.648809375 0.96875 -vt 0.15625 0.953125 -vt 0.15625 1 -vt 0.663690625 1 -vt 0.663690625 0.953125 -vt 0.15625 1 -vt 0.15625 0.96875 -vt 0.663690625 0.96875 -vt 0.663690625 1 -vt 0.15625 0.953125 -vt 0.15625 1 -vt 0.663690625 1 -vt 0.663690625 0.953125 -vt 0.616815625 1 -vt 0.616815625 0.96875 -vt 0.109375 0.96875 -vt 0.109375 1 +vt 0.6488 1 +vt 0.6488 0.9688 +vt 0.1563 0.9531 +vt 0.1563 1 +vt 0.6637 1 +vt 0.6637 0.9531 +vt 0.1563 1 +vt 0.1563 0.9688 +vt 0.6637 0.9688 +vt 0.6637 1 +vt 0.1563 0.9531 +vt 0.1563 1 +vt 0.6637 1 +vt 0.6637 0.9531 +vt 0.6168 1 +vt 0.6168 0.9688 +vt 0.1094 0.9688 +vt 0.1094 1 vt 0.625 1 -vt 0.625 0.953125 -vt 0.125 0.953125 +vt 0.625 0.9531 +vt 0.125 0.9531 vt 0.125 1 vt 0.625 1 -vt 0.625 0.953125 -vt 0.125 0.953125 +vt 0.625 0.9531 +vt 0.125 0.9531 vt 0.125 1 -vt 0.625 0.96875 +vt 0.625 0.9688 vt 0.625 1 vt 0.125 1 -vt 0.125 0.96875 -vt 0.140625 0.96875 -vt 0.140625 1 -vt 0.640625 1 -vt 0.640625 0.96875 -vt 0.15625 0.953125 -vt 0.15625 1 -vt 0.640625 1 -vt 0.640625 0.953125 -vt 0.15625 1 -vt 0.15625 0.96875 -vt 0.640625 0.96875 -vt 0.640625 1 -vt 0.15625 0.953125 -vt 0.15625 1 -vt 0.640625 1 -vt 0.640625 0.953125 -vt 0.609375 1 -vt 0.609375 0.96875 -vt 0.125 0.96875 +vt 0.125 0.9688 +vt 0.1406 0.9688 +vt 0.1406 1 +vt 0.6406 1 +vt 0.6406 0.9688 +vt 0.1563 0.9531 +vt 0.1563 1 +vt 0.6406 1 +vt 0.6406 0.9531 +vt 0.1563 1 +vt 0.1563 0.9688 +vt 0.6406 0.9688 +vt 0.6406 1 +vt 0.1563 0.9531 +vt 0.1563 1 +vt 0.6406 1 +vt 0.6406 0.9531 +vt 0.6094 1 +vt 0.6094 0.9688 +vt 0.125 0.9688 vt 0.125 1 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.7890625 -vt 0.5625 0.7890625 -vt 0.5625 0.6015625 -vt 0.5234375 0.6015625 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.53125 -vt 0.5625 0.53125 -vt 0.5625 0.4921875 -vt 0.5234375 0.4921875 -vt 0.5234375 0.859375 -vt 0.5625 0.859375 -vt 0.5625 0.671875 -vt 0.5234375 0.671875 -vt 0.5234375 0.65625 -vt 0.5625 0.65625 -vt 0.5625 0.46875 -vt 0.5234375 0.46875 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.46875 -vt 0.515625 0.46875 -vt 0.515625 0.421875 -vt 0.46875 0.421875 -vt 0.46875 0.4609375 -vt 0.515625 0.4609375 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.4765625 0.3359375 -vt 0.5234375 0.3359375 -vt 0.53125 0.32488906250000005 -vt 0.46875 0.32488906250000005 -vt 0.4765625 0.328125 -vt 0.5234375 0.328125 -vt 0.53125 0.31707656250000005 -vt 0.46875 0.31707656250000005 -vt 0.46875 0.46875 -vt 0.515625 0.46875 -vt 0.515625 0.421875 -vt 0.46875 0.421875 -vt 0.4765625 0.328125 -vt 0.5234375 0.328125 -vt 0.53125 0.31707656250000005 -vt 0.46875 0.31707656250000005 -vt 0.4765625 0.3359375 -vt 0.5234375 0.3359375 -vt 0.53125 0.32488906250000005 -vt 0.46875 0.32488906250000005 -vt 0.4765625 0.3359375 -vt 0.5234375 0.3359375 -vt 0.53125 0.32488906250000005 -vt 0.46875 0.32488906250000005 -vt 0.4765625 0.328125 -vt 0.5234375 0.328125 -vt 0.53125 0.31707656250000005 -vt 0.46875 0.31707656250000005 -vt 0.46875 0.46875 -vt 0.515625 0.46875 -vt 0.515625 0.421875 -vt 0.46875 0.421875 -vt 0.4765625 0.328125 -vt 0.5234375 0.328125 -vt 0.53125 0.31707656250000005 -vt 0.46875 0.31707656250000005 -vt 0.4765625 0.3359375 -vt 0.5234375 0.3359375 -vt 0.53125 0.32488906250000005 -vt 0.46875 0.32488906250000005 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4296875 -vt 0.46875 0.4296875 -vt 0.46875 0.4609375 -vt 0.515625 0.4609375 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.65625 0.4375 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.7891 +vt 0.5625 0.7891 +vt 0.5625 0.6016 +vt 0.5234 0.6016 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.5313 +vt 0.5625 0.5313 +vt 0.5625 0.4922 +vt 0.5234 0.4922 +vt 0.5234 0.8594 +vt 0.5625 0.8594 +vt 0.5625 0.6719 +vt 0.5234 0.6719 +vt 0.5234 0.6563 +vt 0.5625 0.6563 +vt 0.5625 0.4688 +vt 0.5234 0.4688 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4688 +vt 0.5156 0.4688 +vt 0.5156 0.4219 +vt 0.4688 0.4219 +vt 0.4688 0.4609 +vt 0.5156 0.4609 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4766 0.3359 +vt 0.5234 0.3359 +vt 0.5313 0.3249 +vt 0.4688 0.3249 +vt 0.4766 0.3281 +vt 0.5234 0.3281 +vt 0.5313 0.3171 +vt 0.4688 0.3171 +vt 0.4688 0.4688 +vt 0.5156 0.4688 +vt 0.5156 0.4219 +vt 0.4688 0.4219 +vt 0.4766 0.3281 +vt 0.5234 0.3281 +vt 0.5313 0.3171 +vt 0.4688 0.3171 +vt 0.4766 0.3359 +vt 0.5234 0.3359 +vt 0.5313 0.3249 +vt 0.4688 0.3249 +vt 0.4766 0.3359 +vt 0.5234 0.3359 +vt 0.5313 0.3249 +vt 0.4688 0.3249 +vt 0.4766 0.3281 +vt 0.5234 0.3281 +vt 0.5313 0.3171 +vt 0.4688 0.3171 +vt 0.4688 0.4688 +vt 0.5156 0.4688 +vt 0.5156 0.4219 +vt 0.4688 0.4219 +vt 0.4766 0.3281 +vt 0.5234 0.3281 +vt 0.5313 0.3171 +vt 0.4688 0.3171 +vt 0.4766 0.3359 +vt 0.5234 0.3359 +vt 0.5313 0.3249 +vt 0.4688 0.3249 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4297 +vt 0.4688 0.4297 +vt 0.4688 0.4609 +vt 0.5156 0.4609 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.6563 0.4375 vt 0.6875 0.4375 -vt 0.6875 0.265625 -vt 0.65625 0.265625 -vt 0.65625 0.421875 -vt 0.6875 0.421875 +vt 0.6875 0.2656 +vt 0.6563 0.2656 +vt 0.6563 0.4219 +vt 0.6875 0.4219 vt 0.6875 0.25 -vt 0.65625 0.25 -vt 0.65625 0.421875 -vt 0.6875 0.421875 +vt 0.6563 0.25 +vt 0.6563 0.4219 +vt 0.6875 0.4219 vt 0.6875 0.25 -vt 0.65625 0.25 -vt 0.65625 0.4296875 -vt 0.6875 0.4296875 -vt 0.6875 0.2578125 -vt 0.65625 0.2578125 -vt 0.65625 0.4375 +vt 0.6563 0.25 +vt 0.6563 0.4297 +vt 0.6875 0.4297 +vt 0.6875 0.2578 +vt 0.6563 0.2578 +vt 0.6563 0.4375 vt 0.6875 0.4375 -vt 0.6875 0.265625 -vt 0.65625 0.265625 -vt 0.65625 0.421875 -vt 0.6875 0.421875 +vt 0.6875 0.2656 +vt 0.6563 0.2656 +vt 0.6563 0.4219 +vt 0.6875 0.4219 vt 0.6875 0.25 -vt 0.65625 0.25 -vt 0.65625 0.421875 -vt 0.6875 0.421875 +vt 0.6563 0.25 +vt 0.6563 0.4219 +vt 0.6875 0.4219 vt 0.6875 0.25 -vt 0.65625 0.25 -vt 0.65625 0.4296875 -vt 0.6875 0.4296875 -vt 0.6875 0.2578125 -vt 0.65625 0.2578125 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.4765625 0.34375 -vt 0.5234375 0.34375 -vt 0.5234375 0.296875 -vt 0.4765625 0.296875 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.359375 0.0625 -vt 0.46875 0.0625 -vt 0.46875 0 -vt 0.359375 0 -vt 0.3828125 0.0625 -vt 0.4921875 0.0625 -vt 0.4921875 0 -vt 0.3828125 0 -vt 0.359375 0.1640625 -vt 0.4921875 0.1640625 -vt 0.4921875 0.0546875 -vt 0.359375 0.0546875 -vt 0.359375 0.1796875 -vt 0.4921875 0.1796875 -vt 0.4921875 0.0703125 -vt 0.359375 0.0703125 -vt 0.421875 0.0625 -vt 0.4921875 0.0625 -vt 0.4921875 0 -vt 0.421875 0 -vt 0.359375 0.0625 -vt 0.4296875 0.0625 -vt 0.4296875 0 -vt 0.359375 0 -vt 0.359375 0.1796875 -vt 0.4921875 0.1796875 -vt 0.4921875 0.109375 -vt 0.359375 0.109375 -vt 0.359375 0.125 -vt 0.4921875 0.125 -vt 0.4921875 0.0546875 -vt 0.359375 0.0546875 -vt 0.359375 0.0625 -vt 0.4921875 0.0625 -vt 0.4921875 0 -vt 0.359375 0 +vt 0.6563 0.25 +vt 0.6563 0.4297 +vt 0.6875 0.4297 +vt 0.6875 0.2578 +vt 0.6563 0.2578 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4766 0.3438 +vt 0.5234 0.3438 +vt 0.5234 0.2969 +vt 0.4766 0.2969 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.3594 0.0625 +vt 0.4688 0.0625 +vt 0.4688 0 +vt 0.3594 0 +vt 0.3828 0.0625 +vt 0.4922 0.0625 +vt 0.4922 0 +vt 0.3828 0 +vt 0.3594 0.1641 +vt 0.4922 0.1641 +vt 0.4922 0.0547 +vt 0.3594 0.0547 +vt 0.3594 0.1797 +vt 0.4922 0.1797 +vt 0.4922 0.0703 +vt 0.3594 0.0703 +vt 0.4219 0.0625 +vt 0.4922 0.0625 +vt 0.4922 0 +vt 0.4219 0 +vt 0.3594 0.0625 +vt 0.4297 0.0625 +vt 0.4297 0 +vt 0.3594 0 +vt 0.3594 0.1797 +vt 0.4922 0.1797 +vt 0.4922 0.1094 +vt 0.3594 0.1094 +vt 0.3594 0.125 +vt 0.4922 0.125 +vt 0.4922 0.0547 +vt 0.3594 0.0547 +vt 0.3594 0.0625 +vt 0.4922 0.0625 +vt 0.4922 0 +vt 0.3594 0 vt 0.6875 0.5625 -vt 0.8828125 0.5625 -vt 0.8828125 0.5 +vt 0.8828 0.5625 +vt 0.8828 0.5 vt 0.6875 0.5 vt 0.6875 0.5625 -vt 0.8828125 0.5625 -vt 0.8828125 0.5 +vt 0.8828 0.5625 +vt 0.8828 0.5 vt 0.6875 0.5 -vt 0.046875 0.4765625 -vt 0.2734375 0.4765625 -vt 0.2734375 0.28125 -vt 0.046875 0.28125 -vt 0.046875 0.4765625 -vt 0.2734375 0.4765625 -vt 0.2734375 0.28125 -vt 0.046875 0.28125 -vt 0.2734375 0.2578125 -vt 0.5 0.2578125 -vt 0.5 0.1953125 -vt 0.2734375 0.1953125 -vt 0.046875 0.28125 -vt 0.2734375 0.28125 -vt 0.2734375 0.21875 -vt 0.046875 0.21875 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.4765625 0.34375 -vt 0.5234375 0.34375 -vt 0.5234375 0.296875 -vt 0.4765625 0.296875 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.46875 0.4140625 -vt 0.515625 0.4140625 -vt 0.515625 0.3515625 -vt 0.46875 0.3515625 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0.2734375 0.4765625 -vt 0.46875 0.4765625 -vt 0.46875 0.28125 -vt 0.2734375 0.28125 -vt 0.2734375 0.4765625 -vt 0.46875 0.4765625 -vt 0.46875 0.28125 -vt 0.2734375 0.28125 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vn -0.902104915954472 0.27999999999999997 0.3283393375926421 -vn -0.902104915954472 0.27999999999999997 0.3283393375926421 -vn 0.902104915954472 -0.27999999999999997 -0.3283393375926421 -vn 0.902104915954472 -0.27999999999999997 -0.3283393375926421 -vn 0.9396926207859083 0 -0.3420201433256689 -vn 0.9396926207859083 0 -0.3420201433256689 -vn -0.9396926207859083 0 0.3420201433256689 -vn -0.9396926207859083 0 0.3420201433256689 -vn -0.902104915954472 -0.27999999999999997 0.3283393375926421 -vn -0.902104915954472 -0.27999999999999997 0.3283393375926421 -vn 0.902104915954472 0.27999999999999997 -0.3283393375926421 -vn 0.902104915954472 0.27999999999999997 -0.3283393375926421 -vn -0.9599999869730969 0.28000004466362716 1.4435924722278057e-7 -vn -0.9599999869730967 0.28000004466362716 1.4435924727829172e-7 -vn 0.9599999869730969 -0.28000004466362716 -1.4435924722278057e-7 -vn 0.9599999869730967 -0.2800000446636271 -1.4435924705624712e-7 -vn 0.9999999999999888 0 -1.503742179109757e-7 -vn 0.9999999999999887 0 -1.5037421774444218e-7 -vn -0.9999999999999887 0 1.5037421774444218e-7 -vn -0.9999999999999887 0 1.5037421785546454e-7 -vn -0.9599999869730967 -0.2800000446636271 1.4435924716726942e-7 -vn -0.9599999869730967 -0.2800000446636271 1.4435924727829172e-7 -vn 0.9599999869730967 0.2800000446636271 -1.4435924727829172e-7 -vn 0.9599999869730967 0.2800000446636271 -1.4435924711175827e-7 -vn -0.9600000512346833 -0.2799998243377956 -4.570439519624435e-7 -vn -0.9600000512346833 -0.2799998243377956 -4.5704395190693237e-7 -vn 0.9600000880087113 0.2799996982552977 4.5704396933743386e-7 -vn 0.9600000880087113 0.2799996982552977 4.57043969392945e-7 -vn 0.9999999999999888 0 -1.5037421796648684e-7 -vn 0.9999999999998868 0 4.760874245945955e-7 -vn -0.9999999999999971 0 -7.763926096471252e-8 -vn -0.9999999999998866 0 -4.760874244835732e-7 -vn -0.9600000512346833 0.2799998243377956 -4.5704395190693237e-7 -vn -0.9600000512346833 0.2799998243377956 -4.5704395179591007e-7 -vn 0.9600000880087114 -0.2799996982552977 4.570439693929451e-7 -vn 0.9600000880087114 -0.27999969825529764 4.5704396944845627e-7 -vn -0.9021048297681656 0.28000012840906147 -0.32833946488330934 -vn -0.9021049974498097 0.2800001284089379 -0.32833900418174106 -vn 0.9021049974498097 -0.28000012840893795 0.3283390041817412 -vn 0.9021048297681659 -0.28000012840906163 0.328339464883309 -vn 0.9396925957730875 0 0.3420202120478217 -vn 0.9396925676689007 0 0.3420202892634126 -vn -0.9396924211045049 0 -0.3420206919453177 -vn -0.9396927423372512 0 -0.3420198093659142 -vn -0.9021048297681656 -0.28000012840906147 -0.32833946488330934 -vn -0.9021049974498097 -0.28000012840893784 -0.32833900418174106 -vn 0.9021049974498097 0.280000128408938 0.3283390041817412 -vn 0.9021048297681659 0.28000012840906163 0.328339464883309 -vn -3.783874109042351e-7 0 -0.9999999999999285 -vn -0.000002753916241493569 0 0.9999999999962079 -vn 0 1 0 -vn -0.99999999999971 0 -7.616814115540826e-7 -vn 0.9999999999999284 0 -3.7838741118179076e-7 -vn 7.763926118675711e-8 0 -0.999999999999997 -vn -7.763926107573482e-8 0 0.9999999999999971 -vn 0 1 0 -vn -0.9999999999998161 0 6.064003184036436e-7 -vn 0.9999999999998161 0 -6.064003184036436e-7 -vn -9.484191442199474e-7 6.053007597277923e-7 -0.9999999999993672 -vn 9.484191442199472e-7 -2.137620325986398e-7 0.9999999999995274 -vn -0.959999986972696 0.2800000446635584 9.104823662231529e-7 -vn 0.9600000880084429 -0.27999969825511056 -9.104824624794892e-7 -vn -9.48419144053414e-7 0 -0.9999999999995504 -vn 9.484191442199474e-7 0 0.9999999999995504 -vn -0.9999999999995504 0 9.484191443864809e-7 -vn 0.9999999999995504 0 -9.484191443309697e-7 -vn -9.48419144053414e-7 0 -0.9999999999995504 -vn 9.484191442199474e-7 0 0.9999999999995504 -vn -0.9999999999995504 0 9.484191443864809e-7 -vn 0.9999999999995504 0 -9.484191443309697e-7 -vn -9.48419144053414e-7 -6.053007597092886e-7 -0.9999999999993672 -vn 9.484191442754584e-7 2.137620325986398e-7 0.9999999999995274 -vn -0.959999986972696 -0.2800000446635584 9.104823662231529e-7 -vn 0.9600000880084429 0.27999969825511045 -9.104824619798888e-7 -vn 7.616814098887479e-7 -2.8501738201350125e-7 -0.9999999999996694 -vn -7.616814098887479e-7 1.4250869085872487e-7 0.9999999999996998 -vn -0.960000088008443 0.27999969825511045 9.10482461591311e-7 -vn 0.959999986972696 -0.28000004466355827 -9.104823658345749e-7 -vn 7.616814098887479e-7 0 -0.99999999999971 -vn -7.616814098332367e-7 0 0.99999999999971 -vn -0.9999999999995504 0 9.484191442199474e-7 -vn 0.9999999999995504 0 -9.484191442199474e-7 -vn 7.616814098887479e-7 0 -0.99999999999971 -vn -7.616814098332367e-7 0 0.99999999999971 -vn -0.9999999999995504 0 9.484191442199474e-7 -vn 0.9999999999995504 0 -9.484191442199474e-7 -vn 7.616814098887479e-7 2.8501738201350125e-7 -0.9999999999996694 -vn -7.616814098887479e-7 -1.4250869085872487e-7 0.9999999999996998 -vn -0.960000088008443 -0.27999969825511045 9.104824619243779e-7 -vn 0.9599999869726961 0.2800000446635584 -9.10482366167642e-7 -vn 7.616814119981716e-7 -2.8501738260562186e-7 -0.9999999999996694 -vn -7.61681411332038e-7 1.4250869130281506e-7 0.9999999999996999 -vn -0.9599999869728651 0.2800000446635044 -7.312141466209179e-7 -vn 0.959999986972865 -0.28000004466350437 7.312141455106946e-7 -vn 7.616814119426605e-7 0 -0.9999999999997099 -vn -7.616814113875492e-7 0 0.99999999999971 -vn -0.9999999999997099 0 -7.616814129973724e-7 -vn 0.99999999999971 0 7.616814113875492e-7 -vn 7.616814119426605e-7 0 -0.9999999999997099 -vn -7.616814113875492e-7 0 0.99999999999971 -vn -0.9999999999997099 0 -7.616814129973724e-7 -vn 0.99999999999971 0 7.616814113875492e-7 -vn 7.616814119981716e-7 2.850173826241256e-7 -0.9999999999996694 -vn -7.61681411332038e-7 -1.4250869131206694e-7 0.9999999999996999 -vn -0.9599999869728651 -0.2800000446635044 -7.312141466209179e-7 -vn 0.9599999869728649 0.2800000446635044 7.312141449555829e-7 -vn 0 1 0 -vn 0 -1 0 -vn -0.9999999999999931 0 -1.1779105429932099e-7 -vn 0.9999999999999868 0 -1.6251504497688527e-7 -vn 0 1 0 -vn -0.9999999999999972 0 7.465331475220437e-8 -vn 0 -1 0 -vn 0.9999999999999769 0 2.1469480532276814e-7 -vn -0.3420201433256689 0 -0.9396926207859083 -vn 0.3420201433256689 0 0.9396926207859083 -vn -0.902104915954472 0.27999999999999997 0.3283393375926421 -vn 0.902104915954472 -0.27999999999999997 -0.3283393375926421 -vn -0.3420201433256689 0 -0.9396926207859083 -vn 0.3420201433256689 0 0.9396926207859083 -vn -0.9396926207859083 0 0.3420201433256689 -vn 0.9396926207859083 0 -0.3420201433256689 -vn -0.3420201433256689 0 -0.9396926207859083 -vn 0.3420201433256689 0 0.9396926207859083 -vn -0.9396926207859083 0 0.3420201433256689 -vn 0.9396926207859083 0 -0.3420201433256689 -vn -0.3420201433256689 0 -0.9396926207859083 -vn 0.3420201433256689 0 0.9396926207859083 -vn -0.902104915954472 -0.27999999999999997 0.3283393375926421 -vn 0.902104915954472 0.27999999999999997 -0.3283393375926421 -vn 0 1 0 -vn 0 -1 0 -vn -0.9360368270192946 0 0.35190205805543556 -vn 0.93370299418135 0 -0.3580484864606773 -vn 0.3420201433256689 0 0.9396926207859083 -vn 0 1 0 -vn 0 -1 0 -vn -0.9360368270192946 0 0.35190205805543556 -vn 0.93370299418135 0 -0.3580484864606773 -vn 0.3420201433256689 0 0.9396926207859083 -vn 0 1 0 -vn 0 -1 0 -vn -0.945741765369596 0 0.32491924109784576 -vn 0.944132168369711 0 -0.32956706244633677 -vn 0.3420201433256689 0 0.9396926207859083 -vn -0.3420179283797533 -9.31878249125255e-7 0.9396934269568739 -vn 0.342021527612041 -5.044552592371209e-7 -0.9396921169455831 -vn -0.9021044620185192 0.27999989145143134 -0.3283406773360025 -vn 0.9021034067442002 -0.27999989144866416 0.32834357665293923 -vn -0.34201792837990175 0 0.9396934269572819 -vn 0.34202152761208454 0 -0.9396921169457028 -vn -0.9396921169457019 0 -0.34202152761208693 -vn 0.9396910177008657 0 0.34202454773350877 -vn -0.34201792837990175 0 0.9396934269572819 -vn 0.34202152761208454 0 -0.9396921169457028 -vn -0.9396921169457019 0 -0.34202152761208693 -vn 0.9396910177008657 0 0.34202454773350877 -vn -0.3420179283797533 9.318782491622625e-7 0.9396934269568739 -vn 0.342021527612041 5.044552592371209e-7 -0.9396921169455831 -vn -0.9021044620185192 -0.27999989145143134 -0.3283406773360025 -vn 0.9021034067442002 0.27999989144866416 0.32834357665293923 -vn 0 1 0 -vn 0 -1 0 -vn -0.9360368186440471 0 -0.35190208033305415 -vn 0.9337029304000883 0 0.358048652786584 -vn 0.3420181214242768 0 -0.9396933566953682 -vn 0 1 0 -vn 0 -1 0 -vn -0.9360368186440471 0 -0.35190208033305415 -vn 0.9337029304000883 0 0.358048652786584 -vn 0.3420181214242768 0 -0.9396933566953682 -vn 0 1 0 -vn 0 -1 0 -vn -0.9457418046833056 0 -0.3249191266674899 -vn 0.944132104884906 0 0.3295672443153252 -vn 0.3420205209093013 0 -0.9396924833566194 -vn 0 1 0 -vn 0 -1 0 -vn -0.9999999999999931 0 -1.1779105429932099e-7 -vn 0.9999999999999868 0 -1.6251504497688527e-7 -vn 0 1 0 -vn -0.9999999999999972 0 7.465331475220437e-8 -vn 0 -1 0 -vn 0.9999999999999769 0 2.1469480532276814e-7 -vn 0 1 0 -vn 0 -1 0 -vn -0.99999999999998 0 -2.002830953862222e-7 -vn 0.9999999999999957 0 -9.337087492067295e-8 -vn 0 1 0 -vn -0.9999999999999927 0 1.2095313983717657e-7 -vn 0 -1 0 -vn 0.9999999999999836 0 1.821735182705453e-7 -vn 7.763926118675711e-8 0 -0.999999999999997 -vn -7.763926107573482e-8 0 0.9999999999999971 -vn -0.9999999999998161 0 6.064003184036436e-7 -vn 0.9999999999998161 0 -6.064003184036436e-7 -vn -7.178019330589256e-7 -1.515666503514915e-7 -0.9999999999997309 -vn -0.0000011057568062855514 -3.030972662741472e-7 0.9999999999993427 -vn 0.24192199007119003 -0.9702957027215877 1.250803405988821e-7 -vn -0.9702957689778449 -0.24192172433132453 -5.016696713600055e-7 -vn 0.9702957689779476 0.24192172433136855 -1.7559716042336857e-7 -vn -2.168905110511154e-7 -5.050599566222839e-7 -0.999999999999849 -vn -3.7292756854823123e-7 9.048485586403949e-7 0.999999999999521 -vn 0.945518174219043 0.32556932014584267 0.0000011230536863249263 -vn -0.9455186563309456 -0.3255679199951918 3.577723561298818e-7 -vn -0.3255688698208167 0.9455183292795444 1.2319116167447408e-7 -vn 0.3255687382146929 -0.9455183745951969 3.866992529105717e-7 -vn -9.337087486516182e-8 0 -0.9999999999999958 -vn -0.0000010812446300523249 0 0.9999999999994156 -vn -0.9999999999999957 0 9.337087431005028e-8 -vn 0.9999999999998643 0 -5.208955102253831e-7 -vn -2.6755953538848404e-7 0.7071088123801164 -0.7071047499870934 -vn 2.675607925217704e-7 0.7071054900697529 0.7071080723009342 -vn 0 1 0 -vn -0.7071066615384043 0.7071069008346577 -1.3551423960755926e-7 -vn 0.7071066615384067 0.7071069008346552 1.3551423957980369e-7 -vn 2.675592303547081e-7 -0.7071096185201614 0.707103943841498 -vn -2.675592303269525e-7 -0.7071096185201606 -0.7071039438414988 -vn 0 -1 0 -vn -0.7071074676883601 -0.7071060946840555 -1.3551439409509314e-7 -vn 0.7071086769150179 -0.7071048854529819 1.3551462585414953e-7 -vn -1.3696373835081485e-7 5.759796824860653e-7 -0.9999999999998248 -vn 3.130557835184788e-8 0.0000010440370813185153 0.9999999999994545 -vn 0.945518831804462 0.3255674103822401 -3.5777242368695283e-7 -vn -0.9455188318036035 -0.325567410380687 -0.0000016620339048367678 -vn -0.32556886982080835 0.9455183292795531 -6.239400675289718e-8 -vn 0.32556886982081673 -0.9455183292795444 -1.2319116206305214e-7 -vn -1.269477628018656e-7 2.779890763994053e-7 -0.9999999999999534 -vn 1.2694776269084326e-7 -2.779890764397772e-7 0.9999999999999533 -vn -0.3255681855430781 0.9455185648955747 3.039858634257264e-8 -vn 0.3255681855430779 -0.9455185648955747 -3.039858634257264e-8 -vn -1.269477625243098e-7 2.7798907585438604e-7 -0.9999999999999533 -vn -6.378883146140878e-7 0.000001943255941456824 0.9999999999979086 -vn -0.32556818554307804 0.9455185648955748 3.0398586439717163e-8 -vn 0.3255681376866757 -0.945518581373806 -3.087750546082457e-7 -vn -7.267811010236436e-7 9.75768042110917e-7 -0.9999999999992598 -vn -1.8734222401173279e-7 3.658709059919378e-7 0.9999999999999155 -vn 0.9455183496938675 0.32556881053328435 -3.577722410552653e-7 -vn -0.32556886982080824 0.9455183292795534 -6.239400676677498e-8 -vn 0.3255685082374706 -0.9455184537829038 -1.2319102515867544e-7 -vn -2.1552087359211209e-7 0 -0.9999999999999769 -vn 2.1552087359211214e-7 0 0.9999999999999769 -vn 0 1 0 -vn 0 -1 0 -vn 5.482018674007881e-7 -1.4138869412123114e-7 -0.9999999999998398 -vn 5.76911346639175e-7 5.7433322528549564e-8 0.9999999999998319 -vn -0.3090175515415381 0.9510563352605717 -6.544958075505036e-8 -vn 0.309016853386644 -0.9510565621050188 2.5387048852021366e-9 -vn 0.9510565419261794 0.3090169154906849 2.0143273948836077e-7 -vn 3.1670824085505695e-7 0 -0.9999999999999499 -vn 1.9597687933581293e-7 0 0.9999999999999809 -vn 0 1 0 -vn 0 -1 0 -vn -0.99999999999999 0 -1.4220756494598416e-7 -vn 0.999999999999998 0 -6.388638018606228e-8 -vn -2.168905108290708e-7 -5.050599564927583e-7 -0.999999999999849 -vn 3.225488577895952e-7 -0.0000011149566795165124 0.9999999999993265 -vn 0.9455181742197486 0.3255693201456804 1.8120487815798114e-7 -vn -0.3255688698208167 0.9455183292795445 1.2319116199366323e-7 -vn 0.32556850823753736 -0.9455184537828867 6.239393750273603e-8 -vn -1.9597687928030175e-7 0 -0.9999999999999808 -vn -1.7990009953949832e-7 0 0.9999999999999838 -vn 0 1 0 -vn 0 -1 0 -vn -0.9999999999999982 0 5.916886058887626e-8 -vn 0.9999999999999808 0 -1.959768793358129e-7 +vt 0.0469 0.4766 +vt 0.2734 0.4766 +vt 0.2734 0.2813 +vt 0.0469 0.2813 +vt 0.0469 0.4766 +vt 0.2734 0.4766 +vt 0.2734 0.2813 +vt 0.0469 0.2813 +vt 0.2734 0.2578 +vt 0.5 0.2578 +vt 0.5 0.1953 +vt 0.2734 0.1953 +vt 0.0469 0.2813 +vt 0.2734 0.2813 +vt 0.2734 0.2188 +vt 0.0469 0.2188 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4766 0.3438 +vt 0.5234 0.3438 +vt 0.5234 0.2969 +vt 0.4766 0.2969 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.4688 0.4141 +vt 0.5156 0.4141 +vt 0.5156 0.3516 +vt 0.4688 0.3516 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0.2734 0.4766 +vt 0.4688 0.4766 +vt 0.4688 0.2813 +vt 0.2734 0.2813 +vt 0.2734 0.4766 +vt 0.4688 0.4766 +vt 0.4688 0.2813 +vt 0.2734 0.2813 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vn 0.9 0.28 -0.33 +vn 0.9 0.28 -0.33 +vn -0.9 -0.28 0.33 +vn -0.9 -0.28 0.33 +vn -0.94 0 0.34 +vn -0.94 0 0.34 +vn 0.94 0 -0.34 +vn 0.94 0 -0.34 +vn 0.9 -0.28 -0.33 +vn 0.9 -0.28 -0.33 +vn -0.9 0.28 0.33 +vn -0.9 0.28 0.33 +vn 0.96 0.28 0 +vn 0.96 0.28 0 +vn -0.96 -0.28 0 +vn -0.96 -0.28 0 +vn -1 0 0 +vn -1 0 0 +vn 1 0 0 +vn 1 0 0 +vn 0.96 -0.28 0 +vn 0.96 -0.28 0 +vn -0.96 0.28 0 +vn -0.96 0.28 0 +vn 0.96 -0.28 0 +vn 0.96 -0.28 0 +vn -0.96 0.28 0 +vn -0.96 0.28 0 +vn -1 0 0 +vn -1 0 0 +vn 1 0 0 +vn 1 0 0 +vn 0.96 0.28 0 +vn 0.96 0.28 0 +vn -0.96 -0.28 0 +vn -0.96 -0.28 0 +vn 0.9 0.28 0.33 +vn 0.9 0.28 0.33 +vn -0.9 -0.28 -0.33 +vn -0.9 -0.28 -0.33 +vn -0.94 0 -0.34 +vn -0.94 0 -0.34 +vn 0.94 0 0.34 +vn 0.94 0 0.34 +vn 0.9 -0.28 0.33 +vn 0.9 -0.28 0.33 +vn -0.9 0.28 -0.33 +vn -0.9 0.28 -0.33 +vn 0 0 1 +vn 0 0 -1 +vn 0 1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 0 1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.96 0.28 0 +vn -0.96 -0.28 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.96 -0.28 0 +vn -0.96 0.28 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.96 0.28 0 +vn -0.96 -0.28 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.96 -0.28 0 +vn -0.96 0.28 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.96 0.28 0 +vn -0.96 -0.28 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.96 -0.28 0 +vn -0.96 0.28 0 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 1 0 0 +vn 0 -1 0 +vn -1 0 0 +vn 0.34 0 0.94 +vn -0.34 0 -0.94 +vn 0.9 0.28 -0.33 +vn -0.9 -0.28 0.33 +vn 0.34 0 0.94 +vn -0.34 0 -0.94 +vn 0.94 0 -0.34 +vn -0.94 0 0.34 +vn 0.34 0 0.94 +vn -0.34 0 -0.94 +vn 0.94 0 -0.34 +vn -0.94 0 0.34 +vn 0.34 0 0.94 +vn -0.34 0 -0.94 +vn 0.9 -0.28 -0.33 +vn -0.9 0.28 0.33 +vn 0 1 0 +vn 0 -1 0 +vn 0.94 0 -0.35 +vn -0.93 0 0.36 +vn -0.34 0 -0.94 +vn 0 1 0 +vn 0 -1 0 +vn 0.94 0 -0.35 +vn -0.93 0 0.36 +vn -0.34 0 -0.94 +vn 0 1 0 +vn 0 -1 0 +vn 0.95 0 -0.32 +vn -0.94 0 0.33 +vn -0.34 0 -0.94 +vn 0.34 0 -0.94 +vn -0.34 0 0.94 +vn 0.9 0.28 0.33 +vn -0.9 -0.28 -0.33 +vn 0.34 0 -0.94 +vn -0.34 0 0.94 +vn 0.94 0 0.34 +vn -0.94 0 -0.34 +vn 0.34 0 -0.94 +vn -0.34 0 0.94 +vn 0.94 0 0.34 +vn -0.94 0 -0.34 +vn 0.34 0 -0.94 +vn -0.34 0 0.94 +vn 0.9 -0.28 0.33 +vn -0.9 0.28 -0.33 +vn 0 1 0 +vn 0 -1 0 +vn 0.94 0 0.35 +vn -0.93 0 -0.36 +vn -0.34 0 0.94 +vn 0 1 0 +vn 0 -1 0 +vn 0.94 0 0.35 +vn -0.93 0 -0.36 +vn -0.34 0 0.94 +vn 0 1 0 +vn 0 -1 0 +vn 0.95 0 0.32 +vn -0.94 0 -0.33 +vn -0.34 0 0.94 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 1 0 0 +vn 0 -1 0 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 1 0 0 +vn 0 -1 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn -0.24 -0.97 0 +vn 0.97 -0.24 0 +vn -0.97 0.24 0 +vn 0 0 1 +vn 0 0 -1 +vn -0.95 0.33 0 +vn 0.95 -0.33 0 +vn 0.33 0.95 0 +vn -0.33 -0.95 0 +vn 0 0 1 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 0.71 0.71 +vn 0 0.71 -0.71 +vn 0 1 0 +vn 0.71 0.71 0 +vn -0.71 0.71 0 +vn 0 -0.71 -0.71 +vn 0 -0.71 0.71 +vn 0 -1 0 +vn 0.71 -0.71 0 +vn -0.71 -0.71 0 +vn 0 0 1 +vn 0 0 -1 +vn -0.95 0.33 0 +vn 0.95 -0.33 0 +vn 0.33 0.95 0 +vn -0.33 -0.95 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.33 0.95 0 +vn -0.33 -0.95 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.33 0.95 0 +vn -0.33 -0.95 0 +vn 0 0 1 +vn 0 0 -1 +vn -0.95 0.33 0 +vn 0.33 0.95 0 +vn -0.33 -0.95 0 +vn 0 0 1 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 1 +vn 0 0 -1 +vn 0.31 0.95 0 +vn -0.31 -0.95 0 +vn -0.95 0.31 0 +vn 0 0 1 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn -0.95 0.33 0 +vn 0.33 0.95 0 +vn -0.33 -0.95 0 +vn 0 0 1 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn -1 0 0 usemtl radar f 132/389/98 137/390/98 136/391/98 f 132/389/98 136/391/98 133/392/98 @@ -3217,1021 +3216,1021 @@ f 651/1445/362 649/1447/362 653/1448/362 f 648/1449/363 652/1450/363 654/1451/363 f 648/1449/363 654/1451/363 650/1452/363 o main -v 0.8750000083073446 0.8750003592566722 -0.1437500000000007 -v 1.622158502201291 2.981757692175953 2.156249999999999 -v 1.808631357582842 2.9621586053132676 2.156249999999999 -v 1.5241630678878662 2.0493934152681965 2.218749999999999 -v 1.7106359232694173 2.0297943284055115 2.218749999999999 -v 1.622158502201291 2.981757692175953 2.343749999999999 -v 1.808631357582842 2.9621586053132676 2.343749999999999 -v 1.5241630678878662 2.0493934152681965 2.406249999999999 -v 1.7106359232694173 2.0297943284055115 2.406249999999999 -v 1.5265810989713473 2.065571160576411 2.218749999999999 -v 1.407325297235324 1.4520540000690096 2.218749999999999 -v 1.591380121533394 1.4162771678981105 2.218749999999999 -v 1.5265810989713473 2.065571160576411 2.406249999999999 -v 1.407325297235324 1.4520540000690096 2.406249999999999 -v 1.591380121533394 1.4162771678981105 2.406249999999999 -v 1.7294884424680932 3.5339228519766372 2.156249999999999 -v 1.9135439536726375 3.4981465760516333 2.156249999999999 -v 1.806213326499361 2.9459808600050534 2.156249999999999 -v 1.7294884424680932 3.5339228519766372 2.343749999999999 -v 1.9135439536726375 3.4981465760516333 2.343749999999999 -v 1.806213326499361 2.9459808600050534 2.343749999999999 -v 1.943251114821865 4.121230903287649 2.156249999999999 -v 2.1194436283982894 4.057101839884985 2.156249999999999 -v 1.9056810213748072 3.4697944101501594 2.156249999999999 -v 1.943251114821865 4.121230903287649 2.343749999999999 -v 2.1194436283982894 4.057101839884985 2.343749999999999 -v 1.9056810213748072 3.4697944101501594 2.343749999999999 -v 1.874999601416068 4.3750003044314445 2.062499999999999 -v 2.124999726573719 4.375000049133445 2.062499999999999 -v 1.8750000755963714 4.062500221715565 2.062499999999999 -v 2.124999579177838 4.062500031747855 2.062499999999999 -v 1.874999601416068 4.3750003044314445 2.937499999999999 -v 2.124999726573719 4.375000049133445 2.937499999999999 -v 1.8750000755963714 4.062500221715565 2.937499999999999 -v 2.124999579177838 4.062500031747855 2.937499999999999 -v 1.9375001942077152 5.125000166230332 2.1874999999999982 -v 2.0624999786635936 5.125000382034568 2.1874999999999982 -v 1.9375001152201916 4.375000347003273 2.187499999999999 -v 2.06249983434578 4.3749999412313265 2.187499999999999 -v 1.9375001942077152 5.125000166230332 2.3124999999999982 -v 2.0624999786635936 5.125000382034568 2.3124999999999982 -v 1.9375001152201916 4.375000347003273 2.312499999999999 -v 2.06249983434578 4.3749999412313265 2.312499999999999 -v 1.622158502201291 2.981757692175953 2.468749999999999 -v 1.808631357582842 2.9621586053132676 2.468749999999999 -v 1.5241630678878662 2.049393415268197 2.531249999999999 -v 1.7106359232694173 2.029794328405512 2.531249999999999 -v 1.622158502201291 2.981757692175953 2.656249999999999 -v 1.808631357582842 2.9621586053132685 2.656249999999999 -v 1.5241630678878662 2.049393415268197 2.718749999999999 -v 1.7106359232694173 2.029794328405512 2.718749999999999 -v 1.5265810989713473 2.0655711605764115 2.531249999999999 -v 1.407325297235324 1.45205400006901 2.531249999999999 -v 1.591380121533394 1.416277167898111 2.531249999999999 -v 1.5265810989713473 2.0655711605764115 2.718749999999999 -v 1.407325297235324 1.45205400006901 2.718749999999999 -v 1.591380121533394 1.416277167898111 2.718749999999999 -v 1.7294884424680932 3.5339228519766372 2.468749999999999 -v 1.9135439536726375 3.4981465760516333 2.468749999999999 -v 1.806213326499361 2.9459808600050534 2.468749999999999 -v 1.7294884424680932 3.5339228519766372 2.656249999999999 -v 1.9135439536726375 3.4981465760516333 2.656249999999999 -v 1.806213326499361 2.945980860005054 2.656249999999999 -v 1.943251114821865 4.121230903287649 2.468749999999999 -v 2.1194436283982894 4.057101839884985 2.468749999999999 -v 1.9056810213748072 3.4697944101501594 2.468749999999999 -v 1.943251114821865 4.121230903287649 2.656249999999999 -v 2.1194436283982894 4.057101839884985 2.656249999999999 -v 1.9056810213748072 3.4697944101501594 2.656249999999999 -v 4.364840930801223 1.575091573503213 3.102599999999999 -v 4.198437455410377 1.7368534968095162 2.5222831249999995 -v 4.320253052470949 0.9713876224952327 2.9471043749999994 -v 4.153849577080102 1.133149545801536 2.366787499999999 -v 4.9656295991419475 1.575091431474891 2.9303268749999996 -v 4.799226123751101 1.7368533547811942 2.350009374999999 -v 4.921041720811672 0.9713874804669116 2.774831249999999 -v 4.754638245420826 1.133149403773214 2.194514374999999 -v 4.293474485537165 1.1250001253084836 1.728126249999999 -v 5.025696309127117 1.1250002288849896 1.8904562499999988 -v 4.293474190745403 0.5000000905373041 1.728126249999999 -v 5.02569663591154 0.500000128783521 1.8904562499999988 -v 4.131144597141943 1.125000093912857 2.4603481249999994 -v 4.863366420731895 1.125000197489364 2.6226781249999993 -v 4.131144302350181 0.5000000591416778 2.4603481249999994 -v 4.863366747516318 0.5000000973878949 2.6226781249999993 -v 4.863366894912199 0.8125001147734845 2.6226781249999993 -v 5.025696161731236 0.8125002114994004 1.8904562499999988 -v 4.293474338141284 0.812500107922894 1.728126249999999 -v 4.131144449746062 0.8125000765272676 2.4603481249999994 -v 4.944531495656573 0.81249985234835 2.256566874999999 -v 4.944531348260692 0.49999983496276035 2.256566874999999 -v 4.212309590001029 0.5000003529624384 2.0942374999999993 -v 4.21230967206662 0.8124997487718435 2.0942374999999993 -v 4.2123091978863165 1.124999831487723 2.0942374999999993 -v 4.9445316430524535 1.1249998697339398 2.256566874999999 -v 4.578420453134529 1.1250001613989236 2.175402499999999 -v 4.659585053878904 1.124999898973789 1.8092912499999994 -v 4.659585528059208 0.8124998162579098 1.8092912499999994 -v 4.6595853806633265 0.49999979887232016 1.8092912499999994 -v 4.578420779918953 0.5000000612974547 2.175402499999999 -v 4.497255557598394 0.5000003890528786 2.541513124999999 -v 4.497255639663986 0.8124997848622837 2.541513124999999 -v 4.497255787059866 1.1249998022478738 2.541513124999999 -v 4.007584182552828 1.00000028715018 2.914786249999999 -v 4.700493761261063 1.0000002635752252 2.6277737499999994 -v 4.0075842935330135 0.49999997150458886 2.914786249999999 -v 4.700493872241249 0.49999994792963376 2.6277737499999994 -v 4.294597053171251 0.9999998957020044 3.607695624999998 -v 4.987506631879486 0.9999998721270495 3.3206831249999986 -v 4.294596607905542 0.5000002669628874 3.607695624999998 -v 4.9875061866137775 0.5000002433879323 3.3206831249999986 -v 4.987506441911777 0.7500003685455832 3.3206831249999986 -v 4.7004941275392484 0.7500000730872849 2.6277737499999994 -v 4.007583927254828 0.7500001619925294 2.914786249999999 -v 4.294596797873252 0.7499997705443535 3.607695624999998 -v 4.844000284725513 0.7500002208164338 2.974228124999999 -v 4.844000029427513 0.5000000956587833 2.974228124999999 -v 4.151090450719278 0.5000001192337382 3.2612412499999976 -v 4.1510907060172775 0.7500002443913891 3.2612412499999976 -v 4.151090274408802 0.9999998133031447 3.2612412499999976 -v 4.843999918447327 1.0000004113043741 2.974228124999999 -v 4.49754506376292 0.9999998015156675 3.1177343749999995 -v 4.354038971906945 1.0000002753627024 2.771279999999999 -v 4.354039338185131 0.7500000848747621 2.771279999999999 -v 4.354039082887131 0.4999999597171114 2.771279999999999 -v 4.4975452400733955 0.5000001074462606 3.1177343749999995 -v 4.64105139725966 0.5000002551754097 3.4641893749999983 -v 4.641051652557659 0.7500003803330608 3.4641893749999983 -v 4.641051842525369 0.9999998839145272 3.4641893749999983 -v -3.537684891696813e-7 1.7499998914531845 3.4062499999999982 -v -3.006213322720441e-8 1.5625002147693676 3.4062499999999982 -v -0.37500026338201753 1.7499999309469465 3.4062499999999982 -v -0.3749999396756616 1.5625002542631297 3.4062499999999982 -v -3.537684891696813e-7 1.7499998914531845 3.5937499999999982 -v -3.006213322720441e-8 1.5625002147693676 3.5937499999999982 -v -0.37500026338201753 1.7499999309469465 3.5937499999999982 -v -0.3749999396756616 1.5625002542631297 3.5937499999999982 -v 0.18749958129139443 1.5624999168995384 3.4062499999999982 -v 0.18749958129139443 1.5624999168995384 3.5937499999999982 -v 0.18750005239363166 1.6875002576013118 3.4062499999999982 -v 0.18750005239363166 1.6875002576013118 3.5937499999999982 -v 0.18750005547169835 1.2499998341836593 3.5937499999999982 -v 0.18750005547169835 1.2499998341836593 3.4062499999999982 -v -1.7745801361712665e-7 1.2500001973837773 3.4062499999999982 -v -1.7745801361712665e-7 1.2500001973837773 3.5937499999999982 -v 0.18749975760187 1.0625002228301321 3.5312499999999982 -v 0.18749975760187 1.0625002228301321 3.4062499999999982 -v 8.09180535910059e-8 1.0624998991237762 3.4062499999999982 -v 8.09180535910059e-8 1.0624998991237762 3.5312499999999982 -v 8.09180535910059e-8 1.0624998991237762 2.281249999999999 -v 0.18749975760187 1.0625002228301321 2.281249999999999 -v 0.18750005547169835 1.2499998341836593 2.281249999999999 -v -1.7745801361712665e-7 1.2500001973837773 2.281249999999999 -v 8.09180535910059e-8 1.0624998991237762 2.156249999999999 -v 0.18749975760187 1.0625002228301321 2.093749999999999 -v 0.18750005547169835 1.2499998341836593 2.093749999999999 -v -1.7745801361712665e-7 1.2500001973837773 2.156249999999999 -v 1.187500065186696 1.2500001214743204 2.093749999999999 -v 1.187499701986578 1.0624998885446084 2.093749999999999 -v 1.187499701986578 1.0624998885446084 2.281249999999999 -v 1.187500065186696 1.2500001214743204 2.281249999999999 -v 0.18750005547169835 1.2499998341836593 2.843749999999999 -v -1.7745801361712665e-7 1.2500001973837773 2.843749999999999 -v 8.09180535910059e-8 1.0624998991237762 2.843749999999999 -v 0.18749975760187 1.0625002228301321 2.843749999999999 -v -0.31250037115407814 1.7500000388490649 4.406249999999998 -v -0.3125000474477222 1.562500362165248 4.406249999999998 -v -0.37500026338201753 1.7499999309469465 4.406249999999998 -v -0.3749999396756616 1.5625002542631297 4.406249999999998 -v -0.31250037115407814 1.7500000388490649 4.593749999999998 -v -0.3125000474477222 1.562500362165248 4.593749999999998 -v -0.37500026338201753 1.7499999309469465 4.593749999999998 -v -0.3749999396756616 1.5625002542631297 4.593749999999998 -v -0.12500043609419542 1.5625000642954197 4.406249999999998 -v -0.12500043609419542 1.5625000642954197 4.593749999999998 -v -0.12500003032224694 1.687499783421008 4.406249999999998 -v -0.12500003032224694 1.687499783421008 4.593749999999998 -v -0.1250003281920753 1.5000001720674803 4.593749999999998 -v -0.1250003281920753 1.5000001720674803 4.406249999999998 -v -0.31250000487589347 1.4999998483611248 4.406249999999998 -v -0.31250000487589347 1.4999998483611248 4.593749999999998 -v -0.12500006981600986 1.3124998738074791 4.531249999999998 -v -0.12500006981600986 1.3124998738074791 4.406249999999998 -v -0.3125003027457218 1.312500237007597 4.406249999999998 -v -0.3125003027457218 1.312500237007597 4.531249999999998 -v -0.3125003027457218 1.3125002370075967 3.2187499999999982 -v -0.12500006981600986 1.3124998738074791 3.2187499999999982 -v -0.1250003281920753 1.5000001720674803 3.2187499999999982 -v -0.31250000487589347 1.4999998483611248 3.2187499999999982 -v -0.3125003027457218 1.3125002370075967 3.093749999999999 -v -0.12500006981600986 1.3124998738074791 3.031249999999999 -v -0.1250003281920753 1.5000001720674803 3.031249999999999 -v -0.31250000487589347 1.4999998483611248 3.093749999999999 -v 0.24999958142145307 1.5000001325737182 3.031249999999999 -v 0.24999983979751939 1.3124998343137166 3.031249999999999 -v 0.24999983979751939 1.3124998343137166 3.2187499999999982 -v 0.24999958142145307 1.5000001325737182 3.2187499999999982 -v 0.4374999222532825 1.4374998771456613 3.031249999999999 -v 0.4375001380575201 1.3125000926897834 3.031249999999999 -v 0.4375001380575201 1.3125000926897834 3.2187499999999982 -v 0.4374999222532825 1.4374998771456613 3.2187499999999982 -v 0.43749962438345413 1.250000265792134 3.2187499999999982 -v 0.43749962438345413 1.250000265792134 3.031249999999999 -v 0.24999994769963774 1.2499999420857781 3.031249999999999 -v 0.24999994769963774 1.2499999420857781 3.2187499999999982 -v 0.43749988275952045 1.0624999675321325 3.2187499999999982 -v 0.43749988275952045 1.0624999675321325 3.031249999999999 -v 0.25000016350387533 1.1250001576299002 3.031249999999999 -v 0.25000016350387533 1.1250001576299002 3.2187499999999982 -v 0.49999977498745984 1.0625000754342513 3.031249999999999 -v 0.49999977498745984 1.0625000754342513 3.2187499999999982 -v 0.5000001381875778 1.2500003083639633 3.2187499999999982 -v 0.5000001381875778 1.2500003083639633 3.031249999999999 -v 0.6875000732474614 1.062500333810318 3.031249999999999 -v 0.6875000732474614 1.062500333810318 3.1562499999999982 -v 0.6874997495411046 1.250000010494135 3.1562499999999982 -v 0.6874997495411046 1.250000010494135 3.031249999999999 -v 0.6875000732474614 1.062500333810318 2.656249999999999 -v 0.6874997495411046 1.250000010494135 2.656249999999999 -v 0.5000001381875778 1.2500003083639633 2.656249999999999 -v 0.49999977498745984 1.0625000754342513 2.656249999999999 -v 0.6875000732474614 1.062500333810318 2.468749999999999 -v 0.6874997495411046 1.250000010494135 2.468749999999999 -v 0.5000001381875778 1.2500003083639633 2.531249999999999 -v 0.49999977498745984 1.0625000754342513 2.531249999999999 -v 1.187500065186696 1.2500001214743204 2.468749999999999 -v 1.187499701986578 1.0624998885446084 2.468749999999999 -v 1.187499701986578 1.0624998885446084 2.656249999999999 -v 1.187500065186696 1.2500001214743204 2.656249999999999 -v -0.31250000487589347 1.4999998483611248 3.8437499999999982 -v -0.3125003027457218 1.312500237007597 3.8437499999999982 -v -0.12500006981600986 1.3124998738074791 3.8437499999999982 -v -0.1250003281920753 1.5000001720674803 3.8437499999999982 -v -0.6135229291357609 0.8125003679544176 0.18390937499999893 -v -0.12189540073331262 0.8125000461475433 0.2750268749999991 -v -0.613522454955457 0.5000002852385381 0.18390937499999893 -v -0.1218955481291939 0.5000000287619537 0.2750268749999991 -v -0.784368270494979 0.8124998159190269 1.1057106249999995 -v -0.2927412983384272 0.8125001810186268 1.1968281249999988 -v -0.7843684178908603 0.49999979853343723 1.1057106249999995 -v -0.2927408241581233 0.5000000983027473 1.1968281249999988 -v -0.3677088541464446 0.8125001743858358 0.22946812499999947 -v -0.5385547517515592 0.8125003092569192 1.1512693749999992 -v -0.5385548991474387 0.5000002918713293 1.1512693749999992 -v -0.367709001542325 0.5000001570002457 0.22946812499999947 -v -0.4474368524633201 0.8125002700533819 0.6596418749999993 -v -0.693250992782926 0.812499842045779 0.6140831249999987 -v -0.6932505186026221 0.4999997593298997 0.6140831249999987 -v -0.4474369998592005 0.500000252667792 0.6596418749999993 -v -0.2016235464460694 0.5000001244294994 0.7052006249999989 -v -0.2016233990501881 0.812500141815089 0.7052006249999989 -v -0.2016231832459514 0.6875003573592116 0.7052006249999989 -v -0.2927410825341896 0.6875003965627489 1.1968281249999988 -v -0.5385546012776103 0.6874999032248565 1.1512693749999992 -v -0.7843686762669275 0.6875000967934386 1.1057106249999995 -v -0.6932507769786884 0.6875000575899008 0.6140831249999987 -v -0.613522778661812 0.687499961922355 0.18390937499999893 -v -0.36770932524868094 0.6874998336840628 0.22946812499999947 -v -0.12189518492907592 0.6875002616916652 0.2750268749999991 -v -1.0463582480196019 1.500000174560189 1.3779987499999988 -v -0.061550846833161366 1.5000003965154525 1.5516468749999994 -v -1.0463585823051265 0.5000002301754805 1.3779987499999988 -v -0.06155055954249988 0.5000003868004552 1.5516468749999994 -v -1.220006393737667 1.5000000979617614 2.3628068749999995 -v -0.23519899255122656 1.5000003199170262 2.5364549999999992 -v -1.2200067280231908 0.5000001535770531 2.3628068749999995 -v -0.23519870526056597 0.5000003102020278 2.5364549999999992 -v -1.0463581370394168 0.999999858914598 1.3779987499999988 -v -1.2200062827574811 0.9999997823161699 2.3628068749999995 -v -0.23519888157104063 1.0000000042714343 2.5364549999999992 -v -0.061550735852975436 1.000000080869862 1.5516468749999994 -v -1.1331825206865407 0.9999998532805288 1.870402499999999 -v -1.133182344376066 0.5000001592111221 1.870402499999999 -v -0.1483749431896264 0.500000381166386 2.044050624999999 -v -0.14837449792391677 1.000000009905503 2.044050624999999 -v -0.1483746089041018 1.500000325551094 2.044050624999999 -v -1.1331826316667275 1.5000001689261198 1.870402499999999 -v -0.6407783421624664 1.49999990378537 1.957226874999999 -v -0.7276027258095912 1.4999998981513012 2.4496306249999993 -v -0.7276025494991156 1.0000002040818945 2.4496306249999993 -v -0.7276024385189306 0.4999998884363035 2.4496306249999993 -v -0.6407786764479901 0.4999999594006619 1.957226874999999 -v -0.5539542928008663 0.49999996503473065 1.4648231249999988 -v -0.5539544037810513 1.0000002806803217 1.4648231249999988 -v -0.5539545800915269 1.4999999747497283 1.4648231249999988 -v 2.7005681924126144 1.2500001856677874 6.258018749999998 -v 2.3749996862552214 1.250000110895153 5.312499999999998 -v 2.7005681529188523 0.8750002760542592 6.258018749999998 -v 2.3749996467614594 0.8750002012816245 5.312499999999998 -v 3.409706660917912 1.2500000304607108 6.013842499999999 -v 3.0841387763367027 1.249999890357787 5.068323749999998 -v 3.4097072430003346 0.8750000555168929 6.013842499999999 -v 3.0841387368429407 0.8749999807442586 5.068323749999998 -v 2.5377839393339174 1.2500001482814702 5.785259374999999 -v 3.2469230294153997 1.249999927744104 5.541083124999998 -v 3.2469229899216376 0.8750000181305757 5.541083124999998 -v 2.5377838998401554 0.8750002386679419 5.785259374999999 -v 2.8923531735865664 1.2500000706779324 5.663171249999998 -v 3.0551374266652633 1.2500001080642495 6.1359306249999985 -v 3.0551373871715013 0.8750001984507207 6.1359306249999985 -v 2.8923531340928044 0.8750001610644036 5.663171249999998 -v 2.729569502590292 0.8750000583477968 5.190411874999999 -v 2.7295695420840542 1.2499999679613256 5.190411874999999 -v 3.0551376850413297 1.062499809804248 6.1359306249999985 -v 3.409706984624268 1.0625003537768944 6.013842499999999 -v 3.2469227315455713 1.0625003163905768 5.541083124999998 -v 3.0841391000430587 1.0625002136739705 5.068323749999998 -v 2.729569244214226 1.0625003566077984 5.190411874999999 -v 2.3749999446312877 1.062499812635152 5.312499999999998 -v 2.537784197709984 1.062499850021469 5.785259374999999 -v 2.7005678292124964 1.0624999527380758 6.258018749999998 -v 2.281307614066285 0.8749999340155625 5.794503749999999 -v 2.937366577887193 0.874999973933066 5.039794374999998 -v 2.281307574572523 0.5000000244020335 5.794503749999999 -v 2.937367159969616 0.49999999898924785 5.039794374999998 -v 2.8473403118746 0.8750002828654517 6.286548124999998 -v 3.503399275695508 0.8750003227829553 5.531838749999999 -v 2.8473402070505482 0.4999997516757384 6.286548124999998 -v 3.5033991708714565 0.4999997915932419 5.531838749999999 -v 2.6093371286418834 0.8750002647624067 5.4171493749999975 -v 3.175369761119909 0.8749999920361111 5.909193124999998 -v 3.1753697216261476 0.5000000824225821 5.909193124999998 -v 2.609337089148122 0.5000003551488776 5.4171493749999975 -v 2.5643236195172054 0.8749998303175595 6.040526249999997 -v 2.5643242015996277 0.49999985537374103 6.040526249999997 -v 2.892353716175227 0.5000001861205852 5.663171249999998 -v 3.2203831654205364 0.4999998952912448 5.285816249999998 -v 3.2203832049142984 0.8749998049047736 5.285816249999998 -v 2.5643239432235614 0.6875001536337426 6.040526249999997 -v 2.847339948674482 0.6875000499357398 6.286548124999998 -v 3.175369463250081 0.6875003806825837 5.909193124999998 -v 3.50339891249539 0.6875000898532431 5.531838749999999 -v 3.22038290704447 0.6875001935512461 5.285816249999998 -v 2.937366901593549 0.6875002972492492 5.039794374999998 -v 2.6093373870179506 0.6874999665024051 5.4171493749999975 -v 2.2813079377726413 0.6875002573317457 5.794503749999999 -v 1.3286416156936323 1.5000000880715647 5.127998749999998 -v 2.313449638456257 1.5000002446965395 5.301646874999998 -v 1.3286419029842929 0.5000000783565668 5.127998749999998 -v 2.3134493041707334 0.500000300311831 5.301646874999998 -v 1.154993469975567 1.500000011473137 6.112806874999999 -v 2.1398014927381923 1.5000001680981119 6.286454999999998 -v 1.154993757266228 0.5000000017581396 6.112806874999999 -v 2.139801158452669 0.5000002237134038 6.286454999999998 -v 1.3286417266738173 0.9999997724259733 5.127998749999998 -v 1.1549936462860426 1.0000003174037309 6.112806874999999 -v 2.1398009821421935 0.9999999177828105 6.286454999999998 -v 2.3134491278602582 0.9999999943812377 5.301646874999998 -v 1.2418174083569826 1.0000003883680892 5.620402499999999 -v 1.241817519337168 0.5000000727224982 5.620402499999999 -v 2.226625542099794 0.5000002293474726 5.794050624999999 -v 2.2266253657893187 0.9999999234168793 5.794050624999999 -v 2.2266252548091323 1.5000002390624703 5.794050624999999 -v 1.2418178536226918 1.5000000171072059 5.620402499999999 -v 1.7342215215507677 1.4999998172967461 5.707226874999998 -v 1.6473971379036425 1.499999811662677 6.1996306249999975 -v 1.647397314214118 1.0000001175932702 6.1996306249999975 -v 1.647397425194304 0.49999980194767923 6.1996306249999975 -v 1.734221187265244 0.4999998729120376 5.707226874999998 -v 1.8210455709123687 0.4999998785461066 5.214823124999999 -v 1.8210454599321828 1.0000001941916978 5.214823124999999 -v 1.8210452836217073 1.4999998882611045 5.214823124999999 -v 2.137111416999654 5.065431287309389 3.1713224999999987 -v 1.9003338798996503 5.086348365340799 3.4096087499999985 -v 0.7386086536311107 0.9428544749092107 4.536958124999998 -v 0.540145987340586 1.076719046562559 4.737829374999999 -v 1.915540492821565 5.067599256882678 2.9509637499999988 -v 1.6787629557215609 5.088516334914088 3.1892499999999977 -v 0.5170377294530226 0.9450224444825011 4.3165999999999976 -v 0.3185756847386836 1.0788869508055594 4.517470624999998 -v 1.8992119743278435 5.081844714938019 3.174236249999998 -v 1.6615901632242607 5.1006245857890455 2.9366137499999994 -v 0.5357709535280257 0.9468159895856285 1.8107962499999992 -v 0.3355037058216386 1.078883723093853 1.6105281249999992 -v 2.120183139140774 5.081845065574483 2.9532649999999983 -v 1.8825606411307172 5.100624380179615 2.715643124999998 -v 0.756742053010667 0.9468157186459083 1.5898249999999994 -v 0.5564742490583843 1.0788841390606065 1.3895574999999987 -v 1.8701923330806576 5.065431304060013 2.949394374999999 -v 2.10696960833123 5.086348425521328 2.7111087499999984 -v 3.268694382078987 0.9428547533042095 1.5837587499999994 -v 3.467156741502249 1.0767193621911915 1.382887499999999 -v 2.0917627066162754 5.067599018374521 3.169753124999998 -v 2.3285406034430323 5.088516074505547 2.9314674999999983 -v 3.4902653771907897 0.9450224022884286 1.8041174999999994 -v 3.6887277366140516 1.0788870111754103 1.6032462499999989 -v 2.1080912285970417 5.08184463705411 2.946481249999998 -v 2.3457128935240092 5.100624914907286 3.1841031249999983 -v 3.4715321126977305 0.9468160122207525 4.309921249999999 -v 3.6717996838043847 1.078883957794981 4.5101887499999975 -v 1.8871201291144009 5.0818449079938315 3.1674518749999976 -v 2.124742350287263 5.100624498940532 3.405073749999998 -v 3.2505609478848 0.9468156615842884 4.530891874999998 -v 3.4508285843217434 1.0788842287347018 4.731159374999999 -v 1.2499996456324127 5.125000418450263 2.249999999999999 -v 2.8124997978906507 5.125000303047044 2.2499999999999982 -v 1.249999904008479 4.937500120190261 2.249999999999999 -v 2.812500056266717 4.937500004787043 2.249999999999999 -v 1.2499996456324127 5.125000418450263 3.8124999999999982 -v 2.8124997978906507 5.125000303047044 3.8124999999999982 -v 1.249999904008479 4.937500120190261 3.8124999999999982 -v 2.812500056266717 4.937500004787043 3.8124999999999982 -v 1.8124998960777718 5.062500123528444 2.874999999999999 -v 2.1874998056913006 5.062500084034682 2.874999999999999 -v 1.812499672772434 3.562499863498145 2.874999999999999 -v 2.187499582385963 3.562499824004383 2.874999999999999 -v 1.8124998960777718 5.062500123528444 3.2499999999999982 -v 2.1874998056913006 5.062500084034682 3.2499999999999982 -v 1.812499672772434 3.562499863498145 3.2499999999999982 -v 2.187499582385963 3.562499824004383 3.2499999999999982 -v 1.8749997808046102 3.437500186944386 2.937499999999999 -v 2.124999905962261 3.4374999316463866 2.937499999999999 -v 1.8749997808046102 3.437500186944386 3.1874999999999982 -v 2.124999905962261 3.4374999316463866 3.1874999999999982 -v -0.31250037115407814 1.7500000388490649 5.406249999999998 -v -0.3125000474477222 1.562500362165248 5.406249999999998 -v -0.37500026338201753 1.7499999309469465 5.406249999999998 -v -0.3749999396756616 1.5625002542631297 5.406249999999998 -v -0.31250037115407814 1.7500000388490649 5.593749999999998 -v -0.3125000474477222 1.562500362165248 5.593749999999998 -v -0.37500026338201753 1.7499999309469465 5.593749999999998 -v -0.3749999396756616 1.5625002542631297 5.593749999999998 -v -0.12500003032224694 1.687499783421008 5.406249999999998 -v -0.12500043609419542 1.5625000642954197 5.406249999999998 -v -0.12500003032224694 1.687499783421008 5.593749999999998 -v -0.12500043609419542 1.5625000642954197 5.593749999999998 -v -0.1250003281920753 1.5000001720674803 5.593749999999998 -v -0.1250003281920753 1.5000001720674803 5.406249999999998 -v -0.31250000487589347 1.4999998483611248 5.406249999999998 -v -0.31250000487589347 1.4999998483611248 5.593749999999998 -v -0.12500006981600986 1.3124998738074791 5.593749999999998 -v -0.12500006981600986 1.3124998738074791 5.406249999999998 -v -0.3125004106478402 1.375000129235536 5.406249999999998 -v -0.3125004106478402 1.375000129235536 5.593749999999998 -v 0.06249960686780742 1.312500197513835 5.406249999999998 -v 0.06249960686780742 1.312500197513835 5.593749999999998 -v 0.06249990473763578 1.4999998088673623 5.593749999999998 -v 0.06249990473763578 1.4999998088673623 5.406249999999998 -v 0.24999983979751939 1.312499834313717 5.406249999999998 -v 0.24999983979751939 1.312499834313717 5.593749999999998 -v 0.24999968932357053 1.4375002403457797 5.593749999999998 -v 0.24999968932357053 1.4375002403457797 5.406249999999998 -v 0.24999994769963774 1.2499999420857781 5.593749999999998 -v 0.24999994769963774 1.2499999420857781 5.406249999999998 -v 0.062499714769925774 1.2500003052858961 5.406249999999998 -v 0.062499714769925774 1.2500003052858961 5.593749999999998 -v 0.25000016350387533 1.1250001576299002 5.593749999999998 -v 0.24999964982980938 1.062500330732251 5.406249999999998 -v 0.062499973145991206 1.062500007025895 5.406249999999998 -v 0.06249986524387374 1.124999899253834 5.593749999999998 -v 0.062499973145991206 1.062500007025895 4.906249999999998 -v 0.24999964982980938 1.062500330732251 4.906249999999998 -v 0.24999994769963774 1.2499999420857781 4.906249999999998 -v 0.062499714769925774 1.2500003052858961 4.906249999999998 -v 0.062499973145991206 1.062500007025895 3.9687499999999982 -v 0.24999964982980938 1.062500330732251 3.9687499999999982 -v 0.24999994769963774 1.2499999420857781 3.9687499999999982 -v 0.062499714769925774 1.2500003052858961 3.9687499999999982 -v 0.062499973145991206 1.062500007025895 3.8437499999999982 -v 0.24999964982980938 1.062500330732251 3.7812499999999982 -v 0.24999994769963774 1.2499999420857781 3.7812499999999982 -v 0.062499714769925774 1.2500003052858961 3.8437499999999982 -v 0.8125001555731681 1.2500001609680829 3.7812499999999982 -v 0.8124997923730497 1.0624999280383705 3.7812499999999982 -v 0.8124997923730497 1.0624999280383705 3.9687499999999982 -v 0.8125001555731681 1.2500001609680829 3.9687499999999982 -v 0.9999997669266949 1.2499998630982545 3.7812499999999982 -v 1.0000000906330508 1.0625001864144372 3.7812499999999982 -v 1.0000000906330508 1.0625001864144372 3.9062499999999982 -v 0.9999997669266949 1.2499998630982545 3.9062499999999982 -v 1.0000000906330508 1.0625001864144372 3.031249999999999 -v 0.9999997669266949 1.249999863098254 3.031249999999999 -v 0.8125001555731681 1.2500001609680824 3.031249999999999 -v 0.8124997923730497 1.0624999280383705 3.031249999999999 -v 1.0000000906330508 1.0625001864144372 2.843749999999999 -v 0.9999997669266949 1.249999863098254 2.843749999999999 -v 0.8750000478011066 1.2500002688702012 2.843749999999999 -v 0.8749996846009882 1.0625000359404893 2.843749999999999 -v 1.187500065186696 1.2500001214743204 2.843749999999999 -v 1.187499701986578 1.0624998885446084 2.843749999999999 -v 1.187499701986578 1.0624998885446084 3.031249999999999 -v 1.187500065186696 1.2500001214743204 3.031249999999999 -v 4.136477419866893 0.8125001296468795 3.621409374999999 -v 4.628104948269341 0.8124998078400052 3.7125268749999982 -v 4.136477272471012 0.5000001122612898 3.621409374999999 -v 4.6281048008734595 0.49999979045441556 3.7125268749999982 -v 3.965631522261778 0.8125002645179633 4.543210624999999 -v 4.457259050664225 0.8124999427110893 4.634328124999998 -v 3.9656313748658976 0.5000002471323735 4.543210624999999 -v 4.457258903268345 0.4999999253254992 4.634328124999998 -v 4.3822908732800245 0.8125000014085875 3.6669681249999986 -v 4.21144497567491 0.8125001362796709 4.588769374999998 -v 4.211445449855214 0.5000000535637916 4.588769374999998 -v 4.382290725884144 0.4999999840229974 3.6669681249999986 -v 4.302562874963148 0.8125000970761336 4.097141874999998 -v 4.056749421550016 0.8125002253144258 4.051583124999999 -v 4.056749274154136 0.5000002079288361 4.051583124999999 -v 4.302562727567268 0.5000000796905437 4.097141874999998 -v 4.548376802556583 0.4999998861219619 4.142700624999998 -v 4.548376949952464 0.8124999035075515 4.142700624999998 -v 4.548376544180517 0.6875001843819633 4.142700624999998 -v 4.457258644892279 0.6875002235855006 4.634328124999998 -v 4.211445191479147 0.6875003518237932 4.588769374999998 -v 3.965631672735726 0.6874998584859009 4.543210624999999 -v 4.05674895044778 0.687499884612653 4.051583124999999 -v 4.136477014094946 0.6875004105212914 3.621409374999999 -v 4.382291089084262 0.6875002169527091 3.6669681249999986 -v 4.628104542497393 0.6875000887144171 3.7125268749999982 -v 3.1741257068721658 1.1250001833206573 0.13560562499999929 -v 3.906347530462118 1.1250002868971638 0.29793562499999915 -v 3.174126033656589 0.500000083219188 0.13560562499999929 -v 3.9063478572465415 0.5000001867956945 0.29793562499999915 -v 3.0117958184769433 1.1250001519250308 0.8678281249999991 -v 3.7440182636430803 1.125000190171248 1.0301574999999987 -v 3.011796145261367 0.5000000518235619 0.8678281249999991 -v 3.7440179688513195 0.5000001554000681 1.0301574999999987 -v 3.7440181162472 0.8125001727856578 1.0301574999999987 -v 3.906348004642422 0.8125002041812843 0.29793562499999915 -v 3.174125559476285 0.8125001659350675 0.13560562499999929 -v 3.011796292657248 0.8125000692091515 0.8678281249999991 -v 3.825182716991574 0.8124999103605235 0.6640468749999995 -v 3.825183191171878 0.49999982764464423 0.6640468749999995 -v 3.092960746005741 0.4999997893984274 0.5017168749999987 -v 3.0929608934016217 0.812499806784017 0.5017168749999987 -v 3.092961040797502 1.124999824169607 0.5017168749999987 -v 3.825182864387455 1.1249999277461131 0.6640468749999995 -v 3.459071674469531 1.1250002194110973 0.5828818749999991 -v 3.5402368967900895 1.1249998916556736 0.21677062499999877 -v 3.540236749394209 0.8124998742700835 0.21677062499999877 -v 3.5402366019983282 0.4999998568844939 0.21677062499999877 -v 3.459072001253954 0.500000119309628 0.5828818749999991 -v 3.377907335179291 0.49999976015857794 0.9489924999999992 -v 3.3779068609989866 0.8124998428744572 0.9489924999999992 -v 3.3779070083948675 1.124999860260047 0.9489924999999992 -v 2.7040675872110813 1.5845942154112223 0.9596093749999994 -v 2.5528734283509418 1.5769979453296004 0.3532199999999994 -v 2.8539938592332983 0.9785746892199465 0.929818749999999 -v 2.7027997003731583 0.9709784191383246 0.323429374999999 -v 3.291679106002125 1.7372621673683555 0.8111849999999992 -v 3.1404856340484595 1.7296664535326283 0.20479562499999915 -v 3.441605378024342 1.1312426411770793 0.7813943749999988 -v 3.290411906070677 1.123646927341353 0.17500499999999874 -v 2.070084055350771 0.9999998204709764 0.3522862499999988 -v 2.762993634059007 0.9999997968960215 0.06527374999999935 -v 2.070084231661246 0.5000001264015697 0.3522862499999988 -v 2.7629938103694824 0.5000001028266148 0.06527374999999935 -v 2.3570969912994846 1.0000000505989854 1.045195624999999 -v 3.05000657000772 1.0000000270240301 0.7581831249999995 -v 2.357096546033775 0.5000004218598679 1.045195624999999 -v 3.0500067463181955 0.5000003329546234 0.7581831249999995 -v 3.0500063147097203 0.7499999018663792 0.7581831249999995 -v 2.762994065667482 0.7500002279842652 0.06527374999999935 -v 2.070084486959246 0.7500002515592206 0.3522862499999988 -v 2.357096736001485 0.7499999254413343 1.045195624999999 -v 2.9065002228537455 0.7500003757134146 0.4117281249999989 -v 2.906499967555747 0.5000002505557637 0.4117281249999989 -v 2.213590388847511 0.500000274130719 0.6987412499999994 -v 2.213590578815221 0.7499997777121852 0.6987412499999994 -v 2.2135902125370355 0.9999999682001253 0.6987412499999994 -v 2.9065004128214555 0.9999998792948808 0.4117281249999989 -v 2.560045623467338 0.9999998910823584 0.5552343749999995 -v 2.4165388447048888 0.9999998086834987 0.20877999999999908 -v 2.416539276313364 0.7500002397717431 0.20877999999999908 -v 2.416539021015364 0.500000114614092 0.20877999999999908 -v 2.5600451782016287 0.5000002623432414 0.5552343749999995 -v 2.7035519569640774 0.5000003447421013 0.9016893749999992 -v 2.7035515253556026 0.7499999136538569 0.9016893749999992 -v 2.7035517806536022 1.0000000388115078 0.9016893749999992 -v 0.396124209015853 0.812499750779899 5.221290624999998 -v 0.8851978211007205 0.8125001398150828 5.117334999999999 -v 0.3961241269502622 0.5000003549704939 5.221290624999998 -v 0.8851976737048401 0.500000122429493 5.117334999999999 -v 0.591041424295887 0.8125003571238827 6.138304374999999 -v 1.080114971050465 0.8125001245828818 6.0343481249999975 -v 0.5910412769000057 0.5000003397382928 6.138304374999999 -v 1.0801148236545846 0.5000001071972919 6.0343481249999975 -v 0.6406607042701951 0.8124999779626356 5.169313124999999 -v 0.835577854219939 0.8124999627304348 6.086326249999999 -v 0.8355783284002425 0.4999998800145553 6.086326249999999 -v 0.6406611784504994 0.49999989524675637 5.169313124999999 -v 0.7316221325009389 0.8125000450203945 5.597252499999998 -v 0.48708563724659726 0.8124998178376577 5.649230624999998 -v 0.487085489850716 0.49999980045206827 5.649230624999998 -v 0.731621985105058 0.5000000276348049 5.597252499999998 -v 0.976159101935584 0.5000001894872519 5.545274374999998 -v 0.9761592493314648 0.812500206872842 5.545274374999998 -v 0.9761593998054123 0.6874998008407791 5.545274374999998 -v 1.0801151868547025 0.6875003401270039 6.0343481249999975 -v 0.8355780700241762 0.6875001782745567 6.086326249999999 -v 0.5910409531936498 0.6875000164221097 6.138304374999999 -v 0.48708523147465055 0.6875000987120694 5.649230624999998 -v 0.39612380324390717 0.6875000316543107 5.221290624999998 -v 0.6406609200744318 0.6875001935067577 5.169313124999999 -v 0.8851980369049581 0.687500355359205 5.117334999999999 -v -2.1695177476743766e-7 0.8750002877702485 -1.0000000000000004 -v 1.9999997371479301 0.8750002407753861 -1.0000000000000004 -v 4.14242924406949e-8 0.6874999895102469 -1.0000000000000004 -v 1.9999999955239969 0.6874999425153847 -1.0000000000000004 -v -2.1695177476743766e-7 0.8750002877702485 -8.881784197001252e-16 -v 1.9999997371479301 0.8750002407753861 -8.881784197001252e-16 -v 4.14242924406949e-8 0.6874999895102469 -8.881784197001252e-16 -v 1.9999999955239969 0.6874999425153847 -8.881784197001252e-16 -v 1.9374997370178733 0.9375000251012062 -0.9375000000000004 -v 1.9374998449199916 0.8750001328732675 -0.9375000000000004 -v 0.8749999004052258 0.9375002514846114 -0.9375000000000004 -v 0.8750000083073446 0.8750003592566722 -0.9375000000000004 -v 1.9374997370178733 0.9375000251012062 -0.06250000000000089 -v 1.9374998449199916 0.8750001328732675 -0.06250000000000089 -v 0.8749999004052258 0.9375002514846114 -0.06250000000000089 -v 0.8750000083073446 0.8750003592566722 -0.06250000000000089 -v 0.34374982024572454 1.0312502030182218 0.4812499999999993 -v 0.34374982024572454 1.0312502030182218 -0.08125000000000071 -v 8.51914903066131e-8 1.122621124037746 -0.5353200000000005 -v -1.5487084326082368e-7 0.9807495870069745 -0.813759375000001 -v -2.2341820304916382e-7 1.0669335941810054 -0.5069456250000011 -v 0.8749996888744249 1.1226212608544595 -0.5353200000000005 -v 0.8750000703882761 0.9807496584933983 -0.813759375000001 -v 0.8750000018409168 1.0669336656674293 -0.5069456250000011 -v 0.874999696448294 0.9250615070604731 -0.7853850000000007 -v 0.687499772128275 0.980749400117332 -0.813759375000001 -v 0.6875000197644776 0.9250611833541169 -0.7853850000000007 -v 1.1779816944113009e-7 0.9523747431416987 -0.8694475000000006 -v -1.9081152391464684e-7 0.8966872132849582 -0.8410731250000012 -v 0.6875001101275773 0.9523751778282405 -0.8694475000000006 -v 0.6874997361875947 0.8966870263953155 -0.8410731250000012 -v 0.6874997612204048 0.9240003992932544 -0.9251350000000005 -v 0.6875000741868971 0.8683128041062242 -0.8967606250000006 -v 0.8749997214811045 0.952374879958412 -0.8694475000000006 -v 0.8750000594804068 0.9240006576693209 -0.9251350000000005 -v 0.8750000344475963 0.896687284771382 -0.8410731250000012 -v 0.8749996855404238 0.8683125062363957 -0.8967606250000006 -v 0.7499996643562143 0.9807495080194508 -0.813759375000001 -v 0.7500000023555162 0.9523752857303596 -0.8694475000000006 -v 0.7499999119924157 0.9250612912562357 -0.7853850000000007 -v 0.7499996284155337 0.8966871342974343 -0.8410731250000012 -v 0.812500178160338 0.9807495505912796 -0.813759375000001 -v 0.8124998292531656 0.9523747720562934 -0.8694475000000006 -v 0.8124998042203551 0.9250613991583543 -0.7853850000000007 -v 0.8125001422196574 0.8966871768692632 -0.8410731250000012 -v 8.09180535910059e-8 1.0624998991237757 -0.1437500000000007 -v 8.09180535910059e-8 1.0624998991237757 -0.5187500000000007 -v -2.1695177476743766e-7 0.8750002877702485 -0.1437500000000007 -v -2.1695177476743766e-7 0.8750002877702485 -0.8937500000000003 -v 0.8749996846009882 1.0625000359404888 -0.1437500000000007 -v 0.8749996846009882 1.0625000359404888 -0.5187500000000007 -v 0.8750000083073446 0.8750003592566722 -0.8937500000000003 -v 0.07887681820247838 1.0738032056838893 -0.250817500000001 -v 0.8288766374295355 1.0738031266963652 -0.250817500000001 -v 0.07887646639253632 1.0379543587234656 -0.19962062500000055 -v 0.8288769071957782 1.037954214405652 -0.19962062500000055 -v 0.0788764266061861 1.2273940081029706 -0.14327187500000083 -v 0.8288768674094271 1.227393863785157 -0.14327187500000083 -v 0.07887676170271707 1.191545717388442 -0.09207500000000124 -v 0.8288765809297747 1.191545638400918 -0.09207500000000124 -v 0.07575187950055717 1.125000313839525 -0.40090625000000113 -v 0.8257516987276157 1.1250002348520005 -0.40090625000000113 -v 0.07575192207238679 1.0624998000354013 -0.40090625000000113 -v 0.825751806629734 1.062500342624062 -0.40090625000000113 -v 0.07575187950055717 1.125000313839525 -0.21340625000000113 -v 0.8257516987276157 1.1250002348520005 -0.21340625000000113 -v 0.07575192207238679 1.0624998000354013 -0.21340625000000113 -v 0.825751806629734 1.062500342624062 -0.21340625000000113 -v 0.700751806369619 1.1874999112757023 -0.3712187500000006 -v 0.8882514830534354 1.1875002349820587 -0.3712187500000006 -v 0.7007514005976718 1.062500192150114 -0.3712187500000006 -v 0.8882516335273833 1.062499828949996 -0.3712187500000006 -v 0.700751806369619 1.1874999112757023 -0.2462187500000006 -v 0.8882514830534354 1.1875002349820587 -0.2462187500000006 -v 0.7007514005976718 1.062500192150114 -0.2462187500000006 -v 0.8882516335273833 1.062499828949996 -0.2462187500000006 -v 0.057652298946687885 1.194971167839996 -0.4040568750000011 -v 0.43060144174362414 1.169527986657763 -0.3823293750000012 -v 0.05220481289121448 1.1476262246333775 -0.36362062500000114 -v 0.4257778496194682 1.1227735637090221 -0.34239500000000067 -v 0.057651997176648706 1.5196944424582703 -0.023853750000000673 -v 0.4306012053038728 1.4942518828522222 -0.0021262500000007734 -v 0.052205198027649224 1.4723500554975466 0.01658249999999928 -v 0.42577823475590293 1.4474973945731913 0.03780812499999886 -v 0.8035505903087037 1.1937902213414726 -0.40305437500000085 -v 0.43542480361098157 1.121593090678298 -0.3413925000000013 -v 0.8089978461073803 1.1464458456198843 -0.3626181250000009 -v 0.803550975445138 1.5185140522056422 -0.022851250000001322 -v 0.4354251887474154 1.4463169215424672 0.0388112499999993 -v 0.8089982312438151 1.4711696764840538 0.017584999999999518 -v 1.562500012754953 1.8437502033029127 -0.06250000000000089 -v 1.9374999223684823 1.8437501638091511 -0.06250000000000089 -v 1.562499973261191 1.4687502936893844 -0.06250000000000089 -v 1.9374998828747199 1.4687502541956223 -0.06250000000000089 -v 1.562500012754953 1.8437502033029127 -8.881784197001252e-16 -v 1.9374999223684823 1.8437501638091511 -8.881784197001252e-16 -v 1.562499973261191 1.4687502936893844 -8.881784197001252e-16 -v 1.9374998828747199 1.4687502541956223 -8.881784197001252e-16 -v 1.124999589337301 1.8437502002248456 -0.06250000000000089 -v 1.5000001205270146 1.843750095400794 -0.06250000000000089 -v 1.1250001714197237 1.4687502252810276 -0.06250000000000089 -v 1.5000000810332526 1.4687501857872656 -0.06250000000000089 -v 1.124999589337301 1.8437502002248456 -8.881784197001252e-16 -v 1.5000001205270146 1.843750095400794 -8.881784197001252e-16 -v 1.1250001714197237 1.4687502252810276 -8.881784197001252e-16 -v 1.5000000810332526 1.4687501857872656 -8.881784197001252e-16 -v 1.1249996577456574 1.4062503983833783 -0.06250000000000089 -v 1.500000188935371 1.4062502935593266 -0.06250000000000089 -v 1.1250001744977904 1.0312498018633756 -0.06250000000000089 -v 1.5000000841113192 1.0312497623696135 -0.06250000000000089 -v 1.1249996577456574 1.4062503983833783 -8.881784197001252e-16 -v 1.500000188935371 1.4062502935593266 -8.881784197001252e-16 -v 1.1250001744977904 1.0312498018633756 -8.881784197001252e-16 -v 1.5000000841113192 1.0312497623696135 -8.881784197001252e-16 -v 1.5625000158330202 1.4062497798852607 -0.06250000000000089 -v 1.937499990776839 1.406250361967683 -0.06250000000000089 -v 1.5624999763392582 1.0312498702717323 -0.06250000000000089 -v 1.9374998859527874 1.0312498307779703 -0.06250000000000089 -v 1.5625000158330202 1.4062497798852607 -8.881784197001252e-16 -v 1.937499990776839 1.406250361967683 -8.881784197001252e-16 -v 1.5624999763392582 1.0312498702717323 -8.881784197001252e-16 -v 1.9374998859527874 1.0312498307779703 -8.881784197001252e-16 -v 2.0000000319396913 1.500000275546566 -8.881784197001252e-16 -v 1.999999697654168 0.5000003311618575 -8.881784197001252e-16 -v 7.783998601240683e-8 1.5000003225414278 -8.881784197001252e-16 -v -2.564455376941055e-7 0.5000003781567197 -8.881784197001252e-16 -v 2.0000000319396913 1.500000275546566 0.9999999999999991 -v 1.999999697654168 0.5000003311618575 0.9999999999999991 -v 7.783998601240683e-8 1.5000003225414278 0.9999999999999991 -v -2.564455376941055e-7 0.5000003781567197 0.9999999999999991 -v 1.0000000222246945 1.4999999882559045 0.9999999999999991 -v 0.9999996879391708 0.5000000438711962 0.9999999999999991 -v 0.9999996879391708 0.5000000438711962 -8.881784197001252e-16 -v 1.0000000222246945 1.4999999882559045 -8.881784197001252e-16 -v 1.062499953946395 1.8750000057715521 -8.881784197001252e-16 -v 2.0000000714334534 1.8750001851600944 -8.881784197001252e-16 -v 1.0624999144526335 1.5000000961580233 -8.881784197001252e-16 -v 1.062499953946395 1.8750000057715521 0.2499999999999991 -v 2.0000000714334534 1.8750001851600944 0.2499999999999991 -v 1.0624999144526335 1.5000000961580233 0.4999999999999991 -v 2.0000000319396913 1.500000275546566 0.4999999999999991 -v 0.8451408785697487 1.625000065064834 0.8020024999999995 -v 0.2278354373552265 1.624999802764842 0.7042312499999994 -v 0.8451410943739863 1.500000280608956 0.8020024999999995 -v 0.22783565315946408 1.5000000183089641 0.7042312499999994 -v 0.9038041061447872 1.6249999624740918 0.43161937499999947 -v 0.28649873026055417 1.6250003217502842 0.3338481249999994 -v 0.9038037003728396 1.5000002433485031 0.43161937499999947 -v 0.28649888073450125 1.499999915718222 0.3338481249999994 -v 0.20138536722268174 1.7499999769824668 0.5681556249999993 -v 0.7371151890781196 1.750000338960216 0.24625687499999938 -v 0.20138558302691933 1.6250001925265884 0.5681556249999993 -v 0.7371147179758828 1.6249999982584429 0.24625687499999938 -v 0.3945246750501825 1.7500001730125527 0.8895937499999995 -v 0.930254431575332 1.7499999134141175 0.5676949999999987 -v 0.3945248255241305 1.624999766980491 0.8895937499999995 -v 0.9302540258033849 1.6250001942885293 0.5676949999999987 -v 0.40625005194377817 1.1400217618250519 -0.3764243750000009 -v 0.46874994417171756 1.1400218697271707 -0.3764243750000009 -v 0.40624980164267477 1.0924964392991887 -0.335834375000001 -v 0.46874969387061327 1.092496547201307 -0.335834375000001 -v 0.4062498155040286 1.4647456580195106 0.0037781249999992994 -v 0.468749707731968 1.4647457659216299 0.0037781249999992994 -v 0.4062501867791095 1.4172202701633578 0.0443687499999994 -v 0.4687500790070489 1.4172203780654766 0.0443687499999994 -v 0.062499933652230055 0.6875000974123655 -0.9375000000000004 -v 0.25000023191223164 0.6875003557884323 -0.9375000000000004 -v 0.06249974676258763 1.7041324706923433e-7 -0.9375000000000004 -v 0.2499999796922996 -1.9278687091173197e-7 -0.9375000000000004 -v 0.062499933652230055 0.6875000974123655 -0.7500000000000009 -v 0.25000023191223164 0.6875003557884323 -0.7500000000000009 -v 0.06249974676258763 1.7041324706923433e-7 -0.7500000000000009 -v 0.2499999796922996 -1.9278687091173197e-7 -0.7500000000000009 -v 0.062499933652230055 0.6875000974123655 -0.2500000000000009 -v 0.25000023191223164 0.6875003557884323 -0.2500000000000009 -v 0.06249974676258763 1.7041324729127894e-7 -0.2500000000000009 -v 0.2499999796922996 -1.9278687091173197e-7 -0.2500000000000009 -v 0.062499933652230055 0.6875000974123655 -0.06250000000000089 -v 0.25000023191223164 0.6875003557884323 -0.06250000000000089 -v 0.06249974676258763 1.7041324729127894e-7 -0.06250000000000089 -v 0.2499999796922996 -1.9278687091173197e-7 -0.06250000000000089 -v 1.749999870366346 0.6875001978133841 -0.2500000000000009 -v 1.937500103296058 0.6874998346132661 -0.2500000000000009 -v 1.7499996834767035 2.7081426567932e-7 -0.2500000000000009 -v 1.9374999164064155 -9.238585230164631e-8 -0.2500000000000009 -v 1.749999870366346 0.6875001978133841 -0.06250000000000089 -v 1.937500103296058 0.6874998346132661 -0.06250000000000089 -v 1.7499996834767035 2.7081426567932e-7 -0.06250000000000089 -v 1.9374999164064155 -9.238585230164631e-8 -0.06250000000000089 -v 1.749999870366346 0.6875001978133841 -0.9375000000000004 -v 1.937500103296058 0.6874998346132661 -0.9375000000000004 -v 1.7499996834767035 2.7081426567932e-7 -0.9375000000000004 -v 1.9374999164064155 -9.238585252369091e-8 -0.9375000000000004 -v 1.749999870366346 0.6875001978133841 -0.7500000000000009 -v 1.937500103296058 0.6874998346132661 -0.7500000000000009 -v 1.7499996834767035 2.7081426567932e-7 -0.7500000000000009 -v 1.9374999164064155 -9.238585252369091e-8 -0.7500000000000009 -v 1.531249698151282 1.0625001058878794 1.0624999999999991 -v 1.6562501041833446 1.0625002563618269 1.0624999999999991 -v 1.531249698151282 1.0625001058878798 1.9374999999999991 -v 1.6562501041833446 1.0625002563618273 1.9374999999999991 -v 1.5312501039232296 1.1874998250134676 1.0624999999999991 -v 1.656249888379107 1.1875000408177052 1.0624999999999991 -v 1.5312501039232296 1.187499825013468 1.9374999999999991 -v 1.656249888379107 1.1875000408177052 1.9374999999999991 -v 1.3125001080186407 1.062500039018556 1.0624999999999991 -v 1.4374998924745186 1.0625002548227935 1.0624999999999991 -v 1.3125001080186407 1.0625000390185564 1.9374999999999991 -v 1.4374998924745186 1.062500254822794 1.9374999999999991 -v 1.312499892214403 1.1874998234744338 1.0624999999999991 -v 1.4374996766702814 1.1875000392786714 1.0624999999999991 -v 1.312499892214403 1.1874998234744343 1.9374999999999991 -v 1.4374996766702814 1.1875000392786714 1.9374999999999991 -v 1.637499920845222 1.4375000975792172 2.156249999999999 -v 1.6375000287473407 1.3750002053512786 2.156249999999999 -v 1.3249999034596325 1.4375002449750984 2.156249999999999 -v 1.3250000113617508 1.375000352747159 2.156249999999999 -v 1.637499920845222 1.4375000975792172 2.468749999999999 -v 1.6375000287473407 1.3750002053512786 2.468749999999999 -v 1.3249999034596325 1.4375002449750984 2.468749999999999 -v 1.3250000113617508 1.375000352747159 2.468749999999999 -v 1.637499920845222 1.4375000975792176 2.781249999999999 -v 1.6375000287473407 1.375000205351279 2.781249999999999 -v 1.3249999034596325 1.4375002449750989 2.781249999999999 -v 1.3250000113617508 1.3750003527471595 2.781249999999999 -v 1.1874998493824585 1.3749999059301983 2.031249999999999 -v 1.2499997416103978 1.375000013832317 2.031249999999999 -v 1.187499701986578 1.0624998885446084 2.031249999999999 -v 1.249999594214517 1.0624999964467272 2.031249999999999 -v 1.1874998493824585 1.3749999059301983 2.343749999999999 -v 1.2499997416103978 1.375000013832317 2.343749999999999 -v 1.187499701986578 1.0624998885446084 2.343749999999999 -v 1.249999594214517 1.0624999964467272 2.343749999999999 -v 1.1874998493824585 1.3749999059301983 2.406249999999999 -v 1.2499997416103978 1.375000013832317 2.406249999999999 -v 1.187499701986578 1.0624998885446084 2.406249999999999 -v 1.249999594214517 1.0624999964467272 2.406249999999999 -v 1.1874998493824585 1.3749999059301987 2.718749999999999 -v 1.2499997416103978 1.3750000138323175 2.718749999999999 -v 1.187499701986578 1.0624998885446084 2.718749999999999 -v 1.249999594214517 1.0624999964467272 2.718749999999999 -v 1.1874998493824585 1.3749999059301987 2.781249999999999 -v 1.2499997416103978 1.3750000138323175 2.781249999999999 -v 1.187499701986578 1.0624998885446084 2.781249999999999 -v 1.249999594214517 1.0624999964467272 2.781249999999999 -v 1.1874998493824585 1.3749999059301987 3.093749999999999 -v 1.2499997416103978 1.3750000138323175 3.093749999999999 -v 1.187499701986578 1.0624998885446084 3.093749999999999 -v 1.249999594214517 1.0624999964467272 3.093749999999999 -v 1.2499997021166358 1.0000001042187883 1.9999999999999991 -v 1.7500000177622268 1.0000002151989742 1.9999999999999991 -v 1.2499997021166358 1.0000001042187883 3.124999999999999 -v 1.7500000177622268 1.0000002151989742 3.124999999999999 -v 1.2499997416103978 1.375000013832317 1.9999999999999991 -v 1.7500000572559888 1.375000124812503 1.9999999999999991 -v 1.2499997416103978 1.3750000138323175 3.124999999999999 -v 1.7500000572559888 1.3750001248125034 3.124999999999999 -v 1.2499997416103978 1.3750000138323175 2.562499999999999 -v 1.7500000572559888 1.3750001248125034 2.562499999999999 -v 1.7500000177622268 1.0000002151989742 2.562499999999999 -v 1.2499997021166358 1.0000001042187883 2.562499999999999 -v 1.499999825735253 1.218750060629615 1.9999999999999991 -v 1.687500123995254 1.2187503190056814 1.9999999999999991 -v 1.5000000841113192 1.0312497623696135 1.9999999999999991 -v 1.687499760795136 1.03125008607597 1.9999999999999991 -v 1.499999825735253 1.218750060629615 1.9374999999999991 -v 1.687500123995254 1.2187503190056814 1.9374999999999991 -v 1.5000000841113192 1.0312497623696135 1.9374999999999991 -v 1.687499760795136 1.03125008607597 1.9374999999999991 -v 1.281249614026427 1.2187500590905813 1.9999999999999991 -v 1.4687499122864285 1.218750317466648 1.9999999999999991 -v 1.2812499377327833 1.031250382406765 1.9999999999999991 -v 1.4687501706624948 1.0312500192066465 1.9999999999999991 -v 1.281249614026427 1.2187500590905813 1.9374999999999991 -v 1.4687499122864285 1.218750317466648 1.9374999999999991 -v 1.2812499377327833 1.031250382406765 1.9374999999999991 -v 1.4687501706624948 1.0312500192066465 1.9374999999999991 -v 1.499999825735253 1.218750060629615 0.9999999999999991 -v 1.687500123995254 1.2187503190056814 0.9999999999999991 -v 1.5000000841113192 1.0312497623696135 0.9999999999999991 -v 1.687499760795136 1.0312500860759695 0.9999999999999991 -v 1.499999825735253 1.218750060629615 1.0624999999999991 -v 1.687500123995254 1.2187503190056814 1.0624999999999991 -v 1.5000000841113192 1.0312497623696135 1.0624999999999991 -v 1.687499760795136 1.0312500860759695 1.0624999999999991 -v 1.281249614026427 1.2187500590905813 0.9999999999999991 -v 1.4687499122864285 1.2187503174666476 0.9999999999999991 -v 1.2812499377327833 1.0312503824067645 0.9999999999999991 -v 1.4687501706624948 1.0312500192066465 0.9999999999999991 -v 1.281249614026427 1.2187500590905813 1.0624999999999991 -v 1.4687499122864285 1.2187503174666476 1.0624999999999991 -v 1.2812499377327833 1.0312503824067645 1.0624999999999991 -v 1.4687501706624948 1.0312500192066465 1.0624999999999991 -v 3.8125001983753948 2.000000220490939 4.749999999999998 -v 3.9374999175009835 1.9999998147189917 4.749999999999998 -v 3.8124998640898715 1.0000002761062308 4.749999999999998 -v 3.93749958321546 0.9999998703342832 4.749999999999998 -v 3.8125001983753948 2.000000220490939 4.874999999999998 -v 3.9374999175009835 1.9999998147189917 4.874999999999998 -v 3.8124998640898715 1.0000002761062308 4.874999999999998 -v 3.93749958321546 0.9999998703342832 4.874999999999998 -v 1.5921078881668653 2.000000040542575 4.895533124999998 -v 1.592107553881342 1.000000096157867 4.895533124999998 -v 0.8425649199280212 1.9999998641996317 4.921707499999998 -v 0.8425645856424984 0.9999999198149241 4.921707499999998 -v 2.34165085640571 2.000000216885518 4.870920624999998 -v 2.341651143696371 1.0000002071705207 4.870920624999998 -v 3.0911938246445536 2.000000393228462 4.844746249999998 -v 3.091194111935215 1.000000383513464 4.844746249999998 -v 3.8407373491292933 1.9999998826649308 4.817009374999998 -v 3.8407370148437696 0.9999999382802227 4.817009374999998 -v 0.749999720756569 1.9999999376233109 4.8562499999999975 -v 0.8750001267886303 2.0000000880972593 4.8562499999999975 -v 0.75000000804723 0.9999999279083132 4.8562499999999975 -v 0.8749997925031074 1.0000001437125507 4.8562499999999975 -v 0.749999720756569 1.9999999376233109 4.9812499999999975 -v 0.8750001267886303 2.0000000880972593 4.9812499999999975 -v 0.75000000804723 0.9999999279083132 4.9812499999999975 -v 0.8749997925031074 1.0000001437125507 4.9812499999999975 -v 3.830704882692404 1.9999998105694163 3.4985912499999987 -v 3.8322675249138536 1.0000002427149828 3.4985912499999987 -v 3.8584418363893245 1.9999998848305616 4.248134374999998 -v 3.8584421236799855 0.9999998751155639 4.248134374999998 -v 3.849717177326009 1.9999999855869381 3.998286874999998 -v 3.84971746461667 0.9999999758719404 3.998286874999998 -v 3.8758918414224306 2.0000002395637035 4.747829999999999 -v 3.8758921287130916 1.0000002298487058 4.747829999999999 -v 3.806092573526771 1.9999999984532155 2.749048124999999 -v 3.8060928608174325 0.9999999887382174 2.749048124999999 -v 3.778355619829851 1.9999999241920698 1.9995049999999992 -v 3.778355907120512 0.9999999144770721 1.9995049999999992 -v 3.7537433106642175 2.000000112075869 1.2499618749999994 -v 3.753743597954879 1.0000001023608713 1.2499618749999994 -v 3.687499792343332 2.000000070016991 1.1249999999999991 -v 3.8125001983753948 2.0000002204909384 1.1249999999999991 -v 3.6875000796339936 1.0000000603019927 1.1249999999999991 -v 3.8124998640898715 1.0000002761062303 1.1249999999999991 -v 3.687499792343332 2.000000070016991 1.2499999999999991 -v 3.8125001983753948 2.0000002204909384 1.2499999999999991 -v 3.6875000796339936 1.0000000603019927 1.2499999999999991 -v 3.8124998640898715 1.0000002761062303 1.2499999999999991 -v 3.7174715044809976 2.0000002992615658 1.195664999999999 -v 3.7174717917716587 1.000000289546568 1.195664999999999 -v 2.973061623906436 1.9999998174800329 1.287066874999999 -v 2.973061911197097 0.9999998077650352 1.287066874999999 -v 2.2286524302383484 1.9999998919443942 1.3784687499999988 -v 2.2286520959528247 0.9999999475596866 1.3784687499999988 -v 2.124999640085094 2.00000018542021 1.3062499999999995 -v 2.2500000461171568 2.000000335894158 1.3062499999999995 -v 2.124999927375755 1.0000001757052122 1.3062499999999995 -v 2.2499997118316335 1.0000003915094493 1.3062499999999995 -v 2.124999640085094 2.00000018542021 1.4312499999999995 -v 2.2500000461171568 2.000000335894158 1.4312499999999995 -v 2.124999927375755 1.0000001757052122 1.4312499999999995 -v 2.2499997118316335 1.0000003915094493 1.4312499999999995 -v 1.5921078881668653 2.000000040542575 4.897095624999999 -v 1.592107553881342 1.000000096157867 4.897095624999999 -v 0.8425649199280212 1.9999998641996317 4.923269999999999 -v 0.8425645856424984 0.9999999198149241 4.923269999999999 -v 2.34165085640571 2.000000216885518 4.869358124999998 -v 2.341651143696371 1.0000002071705207 4.869358124999998 -v 1.5921078881668653 2.000000040542575 4.897095624999999 -v 1.5921078881668653 2.000000040542575 4.895533124999998 -v 1.592107553881342 1.000000096157867 4.897095624999999 -v 1.592107553881342 1.000000096157867 4.895533124999998 -v 3.0911938246445536 2.000000393228462 4.843183749999998 -v 3.091194111935215 1.000000383513464 4.843183749999998 -v 2.34165085640571 2.000000216885518 4.870920624999998 -v 2.34165085640571 2.000000216885518 4.869358124999998 -v 2.341651143696371 1.0000002071705207 4.870920624999998 -v 2.341651143696371 1.0000002071705207 4.869358124999998 -v 3.8407373491292933 1.9999998826649308 4.818571874999998 -v 3.8407370148437696 0.9999999382802227 4.818571874999998 -v 3.0911938246445536 2.000000393228462 4.843183749999998 -v 3.0911938246445536 2.000000393228462 4.844746249999998 -v 3.091194111935215 1.000000383513464 4.843183749999998 -v 3.091194111935215 1.000000383513464 4.844746249999998 -v 3.8307051699830654 0.9999998008544182 3.4985912499999987 -v 3.8568795467888255 2.0000000645461813 4.248134374999998 -v 3.8568798340794865 1.0000000548311836 4.248134374999998 -v 3.84815488772551 2.0000001653025583 3.998286874999998 -v 3.8481545534399864 1.0000002209178498 3.998286874999998 -v 3.874329486491642 1.9999997977031385 4.747829999999999 -v 3.8743291522061183 0.9999998533184309 4.747829999999999 -v 3.8045302839262725 2.0000001781688357 2.749048124999999 -v 3.8045305712169335 1.0000001684538375 2.749048124999999 -v 3.832267237623193 2.000000252429981 3.4985912499999987 -v 3.830704882692404 1.9999998105694163 3.4985912499999987 -v 3.8322675249138536 1.0000002427149828 3.4985912499999987 -v 3.8307051699830654 0.9999998008544182 3.4985912499999987 -v 3.7799179747606395 2.0000003660526344 1.9995049999999992 -v 3.7799182620513 1.0000003563376367 1.9995049999999992 -v 3.8045302839262725 2.0000001781688357 2.749048124999999 -v 3.806092573526771 1.9999999984532155 2.749048124999999 -v 3.8045305712169335 1.0000001684538375 2.749048124999999 -v 3.8060928608174325 0.9999999887382174 2.749048124999999 -v 3.752181021063719 2.000000291791489 1.2499618749999994 -v 3.7521813083543796 1.0000002820764915 1.2499618749999994 -v 3.7799179747606395 2.0000003660526344 1.9995049999999992 -v 3.778355619829851 1.9999999241920698 1.9995049999999992 -v 3.7799182620513 1.0000003563376367 1.9995049999999992 -v 3.778355907120512 0.9999999144770721 1.9995049999999992 -v 3.7174715044809976 2.0000002992615658 1.1972274999999994 -v 3.7174717917716587 1.000000289546568 1.1972274999999994 -v 2.973061623906436 1.9999998174800329 1.2886293749999993 -v 2.973061911197097 0.9999998077650352 1.2886293749999993 -v 2.973061623906436 1.9999998174800329 1.287066874999999 -v 2.973061623906436 1.9999998174800329 1.2886293749999993 -v 2.973061911197097 0.9999998077650352 1.287066874999999 -v 2.973061911197097 0.9999998077650352 1.2886293749999993 -v 2.2286524302383484 1.9999998919443942 1.3800312499999992 -v 2.2286520959528247 0.9999999475596866 1.3800312499999992 -v 3.832267237623193 2.000000252429981 3.4985912499999987 -v 1.5341598035965642 5.249999853802142 2.527539374999998 -v 2.534159813311562 5.250000141092803 2.527538749999998 -v 1.534159397824617 5.1250001346765535 2.527539374999999 -v 2.534159342209325 5.124999800391029 2.527538749999998 -v 1.53415918202038 5.249999919132431 3.527539374999998 -v 2.534159813311562 5.250000141092803 3.527538749999998 -v 1.534159397824617 5.1250001346765535 3.527539374999998 -v 2.534159342209325 5.124999800391029 3.527538749999998 +v 0.875 0.875 -0.1438 +v 1.6222 2.9818 2.1562 +v 1.8086 2.9622 2.1562 +v 1.5242 2.0494 2.2187 +v 1.7106 2.0298 2.2187 +v 1.6222 2.9818 2.3437 +v 1.8086 2.9622 2.3437 +v 1.5242 2.0494 2.4062 +v 1.7106 2.0298 2.4062 +v 1.5266 2.0656 2.2187 +v 1.4073 1.4521 2.2187 +v 1.5914 1.4163 2.2187 +v 1.5266 2.0656 2.4062 +v 1.4073 1.4521 2.4062 +v 1.5914 1.4163 2.4062 +v 1.7295 3.5339 2.1562 +v 1.9135 3.4981 2.1562 +v 1.8062 2.946 2.1562 +v 1.7295 3.5339 2.3437 +v 1.9135 3.4981 2.3437 +v 1.8062 2.946 2.3437 +v 1.9433 4.1212 2.1562 +v 2.1194 4.0571 2.1562 +v 1.9057 3.4698 2.1562 +v 1.9433 4.1212 2.3437 +v 2.1194 4.0571 2.3437 +v 1.9057 3.4698 2.3437 +v 1.875 4.375 2.0625 +v 2.125 4.375 2.0625 +v 1.875 4.0625 2.0625 +v 2.125 4.0625 2.0625 +v 1.875 4.375 2.9375 +v 2.125 4.375 2.9375 +v 1.875 4.0625 2.9375 +v 2.125 4.0625 2.9375 +v 1.9375 5.125 2.1875 +v 2.0625 5.125 2.1875 +v 1.9375 4.375 2.1875 +v 2.0625 4.375 2.1875 +v 1.9375 5.125 2.3125 +v 2.0625 5.125 2.3125 +v 1.9375 4.375 2.3125 +v 2.0625 4.375 2.3125 +v 1.6222 2.9818 2.4687 +v 1.8086 2.9622 2.4687 +v 1.5242 2.0494 2.5312 +v 1.7106 2.0298 2.5312 +v 1.6222 2.9818 2.6562 +v 1.8086 2.9622 2.6562 +v 1.5242 2.0494 2.7187 +v 1.7106 2.0298 2.7187 +v 1.5266 2.0656 2.5312 +v 1.4073 1.4521 2.5312 +v 1.5914 1.4163 2.5312 +v 1.5266 2.0656 2.7187 +v 1.4073 1.4521 2.7187 +v 1.5914 1.4163 2.7187 +v 1.7295 3.5339 2.4687 +v 1.9135 3.4981 2.4687 +v 1.8062 2.946 2.4687 +v 1.7295 3.5339 2.6562 +v 1.9135 3.4981 2.6562 +v 1.8062 2.946 2.6562 +v 1.9433 4.1212 2.4687 +v 2.1194 4.0571 2.4687 +v 1.9057 3.4698 2.4687 +v 1.9433 4.1212 2.6562 +v 2.1194 4.0571 2.6562 +v 1.9057 3.4698 2.6562 +v 4.3648 1.5751 3.1026 +v 4.1984 1.7369 2.5223 +v 4.3203 0.9714 2.9471 +v 4.1538 1.1331 2.3668 +v 4.9656 1.5751 2.9303 +v 4.7992 1.7369 2.35 +v 4.921 0.9714 2.7748 +v 4.7546 1.1331 2.1945 +v 4.2935 1.125 1.7281 +v 5.0257 1.125 1.8905 +v 4.2935 0.5 1.7281 +v 5.0257 0.5 1.8905 +v 4.1311 1.125 2.4603 +v 4.8634 1.125 2.6227 +v 4.1311 0.5 2.4603 +v 4.8634 0.5 2.6227 +v 4.8634 0.8125 2.6227 +v 5.0257 0.8125 1.8905 +v 4.2935 0.8125 1.7281 +v 4.1311 0.8125 2.4603 +v 4.9445 0.8125 2.2566 +v 4.9445 0.5 2.2566 +v 4.2123 0.5 2.0942 +v 4.2123 0.8125 2.0942 +v 4.2123 1.125 2.0942 +v 4.9445 1.125 2.2566 +v 4.5784 1.125 2.1754 +v 4.6596 1.125 1.8093 +v 4.6596 0.8125 1.8093 +v 4.6596 0.5 1.8093 +v 4.5784 0.5 2.1754 +v 4.4973 0.5 2.5415 +v 4.4973 0.8125 2.5415 +v 4.4973 1.125 2.5415 +v 4.0076 1 2.9148 +v 4.7005 1 2.6278 +v 4.0076 0.5 2.9148 +v 4.7005 0.5 2.6278 +v 4.2946 1 3.6077 +v 4.9875 1 3.3207 +v 4.2946 0.5 3.6077 +v 4.9875 0.5 3.3207 +v 4.9875 0.75 3.3207 +v 4.7005 0.75 2.6278 +v 4.0076 0.75 2.9148 +v 4.2946 0.75 3.6077 +v 4.844 0.75 2.9742 +v 4.844 0.5 2.9742 +v 4.1511 0.5 3.2612 +v 4.1511 0.75 3.2612 +v 4.1511 1 3.2612 +v 4.844 1 2.9742 +v 4.4975 1 3.1177 +v 4.354 1 2.7713 +v 4.354 0.75 2.7713 +v 4.354 0.5 2.7713 +v 4.4975 0.5 3.1177 +v 4.6411 0.5 3.4642 +v 4.6411 0.75 3.4642 +v 4.6411 1 3.4642 +v 0 1.75 3.4062 +v 0 1.5625 3.4062 +v -0.375 1.75 3.4062 +v -0.375 1.5625 3.4062 +v 0 1.75 3.5937 +v 0 1.5625 3.5937 +v -0.375 1.75 3.5937 +v -0.375 1.5625 3.5937 +v 0.1875 1.5625 3.4062 +v 0.1875 1.5625 3.5937 +v 0.1875 1.6875 3.4062 +v 0.1875 1.6875 3.5937 +v 0.1875 1.25 3.5937 +v 0.1875 1.25 3.4062 +v 0 1.25 3.4062 +v 0 1.25 3.5937 +v 0.1875 1.0625 3.5312 +v 0.1875 1.0625 3.4062 +v 0 1.0625 3.4062 +v 0 1.0625 3.5312 +v 0 1.0625 2.2812 +v 0.1875 1.0625 2.2812 +v 0.1875 1.25 2.2812 +v 0 1.25 2.2812 +v 0 1.0625 2.1562 +v 0.1875 1.0625 2.0937 +v 0.1875 1.25 2.0937 +v 0 1.25 2.1562 +v 1.1875 1.25 2.0937 +v 1.1875 1.0625 2.0937 +v 1.1875 1.0625 2.2812 +v 1.1875 1.25 2.2812 +v 0.1875 1.25 2.8437 +v 0 1.25 2.8437 +v 0 1.0625 2.8437 +v 0.1875 1.0625 2.8437 +v -0.3125 1.75 4.4062 +v -0.3125 1.5625 4.4062 +v -0.375 1.75 4.4062 +v -0.375 1.5625 4.4062 +v -0.3125 1.75 4.5937 +v -0.3125 1.5625 4.5937 +v -0.375 1.75 4.5937 +v -0.375 1.5625 4.5937 +v -0.125 1.5625 4.4062 +v -0.125 1.5625 4.5937 +v -0.125 1.6875 4.4062 +v -0.125 1.6875 4.5937 +v -0.125 1.5 4.5937 +v -0.125 1.5 4.4062 +v -0.3125 1.5 4.4062 +v -0.3125 1.5 4.5937 +v -0.125 1.3125 4.5312 +v -0.125 1.3125 4.4062 +v -0.3125 1.3125 4.4062 +v -0.3125 1.3125 4.5312 +v -0.3125 1.3125 3.2187 +v -0.125 1.3125 3.2187 +v -0.125 1.5 3.2187 +v -0.3125 1.5 3.2187 +v -0.3125 1.3125 3.0937 +v -0.125 1.3125 3.0312 +v -0.125 1.5 3.0312 +v -0.3125 1.5 3.0937 +v 0.25 1.5 3.0312 +v 0.25 1.3125 3.0312 +v 0.25 1.3125 3.2187 +v 0.25 1.5 3.2187 +v 0.4375 1.4375 3.0312 +v 0.4375 1.3125 3.0312 +v 0.4375 1.3125 3.2187 +v 0.4375 1.4375 3.2187 +v 0.4375 1.25 3.2187 +v 0.4375 1.25 3.0312 +v 0.25 1.25 3.0312 +v 0.25 1.25 3.2187 +v 0.4375 1.0625 3.2187 +v 0.4375 1.0625 3.0312 +v 0.25 1.125 3.0312 +v 0.25 1.125 3.2187 +v 0.5 1.0625 3.0312 +v 0.5 1.0625 3.2187 +v 0.5 1.25 3.2187 +v 0.5 1.25 3.0312 +v 0.6875 1.0625 3.0312 +v 0.6875 1.0625 3.1562 +v 0.6875 1.25 3.1562 +v 0.6875 1.25 3.0312 +v 0.6875 1.0625 2.6562 +v 0.6875 1.25 2.6562 +v 0.5 1.25 2.6562 +v 0.5 1.0625 2.6562 +v 0.6875 1.0625 2.4687 +v 0.6875 1.25 2.4687 +v 0.5 1.25 2.5312 +v 0.5 1.0625 2.5312 +v 1.1875 1.25 2.4687 +v 1.1875 1.0625 2.4687 +v 1.1875 1.0625 2.6562 +v 1.1875 1.25 2.6562 +v -0.3125 1.5 3.8437 +v -0.3125 1.3125 3.8437 +v -0.125 1.3125 3.8437 +v -0.125 1.5 3.8437 +v -0.6135 0.8125 0.1839 +v -0.1219 0.8125 0.275 +v -0.6135 0.5 0.1839 +v -0.1219 0.5 0.275 +v -0.7844 0.8125 1.1057 +v -0.2927 0.8125 1.1968 +v -0.7844 0.5 1.1057 +v -0.2927 0.5 1.1968 +v -0.3677 0.8125 0.2295 +v -0.5386 0.8125 1.1513 +v -0.5386 0.5 1.1513 +v -0.3677 0.5 0.2295 +v -0.4474 0.8125 0.6596 +v -0.6933 0.8125 0.6141 +v -0.6933 0.5 0.6141 +v -0.4474 0.5 0.6596 +v -0.2016 0.5 0.7052 +v -0.2016 0.8125 0.7052 +v -0.2016 0.6875 0.7052 +v -0.2927 0.6875 1.1968 +v -0.5386 0.6875 1.1513 +v -0.7844 0.6875 1.1057 +v -0.6933 0.6875 0.6141 +v -0.6135 0.6875 0.1839 +v -0.3677 0.6875 0.2295 +v -0.1219 0.6875 0.275 +v -1.0464 1.5 1.378 +v -0.0616 1.5 1.5516 +v -1.0464 0.5 1.378 +v -0.0616 0.5 1.5516 +v -1.22 1.5 2.3628 +v -0.2352 1.5 2.5365 +v -1.22 0.5 2.3628 +v -0.2352 0.5 2.5365 +v -1.0464 1 1.378 +v -1.22 1 2.3628 +v -0.2352 1 2.5365 +v -0.0616 1 1.5516 +v -1.1332 1 1.8704 +v -1.1332 0.5 1.8704 +v -0.1484 0.5 2.0441 +v -0.1484 1 2.0441 +v -0.1484 1.5 2.0441 +v -1.1332 1.5 1.8704 +v -0.6408 1.5 1.9572 +v -0.7276 1.5 2.4496 +v -0.7276 1 2.4496 +v -0.7276 0.5 2.4496 +v -0.6408 0.5 1.9572 +v -0.554 0.5 1.4648 +v -0.554 1 1.4648 +v -0.554 1.5 1.4648 +v 2.7006 1.25 6.258 +v 2.375 1.25 5.3125 +v 2.7006 0.875 6.258 +v 2.375 0.875 5.3125 +v 3.4097 1.25 6.0138 +v 3.0841 1.25 5.0683 +v 3.4097 0.875 6.0138 +v 3.0841 0.875 5.0683 +v 2.5378 1.25 5.7853 +v 3.2469 1.25 5.5411 +v 3.2469 0.875 5.5411 +v 2.5378 0.875 5.7853 +v 2.8924 1.25 5.6632 +v 3.0551 1.25 6.1359 +v 3.0551 0.875 6.1359 +v 2.8924 0.875 5.6632 +v 2.7296 0.875 5.1904 +v 2.7296 1.25 5.1904 +v 3.0551 1.0625 6.1359 +v 3.4097 1.0625 6.0138 +v 3.2469 1.0625 5.5411 +v 3.0841 1.0625 5.0683 +v 2.7296 1.0625 5.1904 +v 2.375 1.0625 5.3125 +v 2.5378 1.0625 5.7853 +v 2.7006 1.0625 6.258 +v 2.2813 0.875 5.7945 +v 2.9374 0.875 5.0398 +v 2.2813 0.5 5.7945 +v 2.9374 0.5 5.0398 +v 2.8473 0.875 6.2865 +v 3.5034 0.875 5.5318 +v 2.8473 0.5 6.2865 +v 3.5034 0.5 5.5318 +v 2.6093 0.875 5.4171 +v 3.1754 0.875 5.9092 +v 3.1754 0.5 5.9092 +v 2.6093 0.5 5.4171 +v 2.5643 0.875 6.0405 +v 2.5643 0.5 6.0405 +v 2.8924 0.5 5.6632 +v 3.2204 0.5 5.2858 +v 3.2204 0.875 5.2858 +v 2.5643 0.6875 6.0405 +v 2.8473 0.6875 6.2865 +v 3.1754 0.6875 5.9092 +v 3.5034 0.6875 5.5318 +v 3.2204 0.6875 5.2858 +v 2.9374 0.6875 5.0398 +v 2.6093 0.6875 5.4171 +v 2.2813 0.6875 5.7945 +v 1.3286 1.5 5.128 +v 2.3134 1.5 5.3016 +v 1.3286 0.5 5.128 +v 2.3134 0.5 5.3016 +v 1.155 1.5 6.1128 +v 2.1398 1.5 6.2865 +v 1.155 0.5 6.1128 +v 2.1398 0.5 6.2865 +v 1.3286 1 5.128 +v 1.155 1 6.1128 +v 2.1398 1 6.2865 +v 2.3134 1 5.3016 +v 1.2418 1 5.6204 +v 1.2418 0.5 5.6204 +v 2.2266 0.5 5.7941 +v 2.2266 1 5.7941 +v 2.2266 1.5 5.7941 +v 1.2418 1.5 5.6204 +v 1.7342 1.5 5.7072 +v 1.6474 1.5 6.1996 +v 1.6474 1 6.1996 +v 1.6474 0.5 6.1996 +v 1.7342 0.5 5.7072 +v 1.821 0.5 5.2148 +v 1.821 1 5.2148 +v 1.821 1.5 5.2148 +v 2.1371 5.0654 3.1713 +v 1.9003 5.0863 3.4096 +v 0.7386 0.9429 4.537 +v 0.5401 1.0767 4.7378 +v 1.9155 5.0676 2.951 +v 1.6788 5.0885 3.1892 +v 0.517 0.945 4.3166 +v 0.3186 1.0789 4.5175 +v 1.8992 5.0818 3.1742 +v 1.6616 5.1006 2.9366 +v 0.5358 0.9468 1.8108 +v 0.3355 1.0789 1.6105 +v 2.1202 5.0818 2.9533 +v 1.8826 5.1006 2.7156 +v 0.7567 0.9468 1.5898 +v 0.5565 1.0789 1.3896 +v 1.8702 5.0654 2.9494 +v 2.107 5.0863 2.7111 +v 3.2687 0.9429 1.5838 +v 3.4672 1.0767 1.3829 +v 2.0918 5.0676 3.1698 +v 2.3285 5.0885 2.9315 +v 3.4903 0.945 1.8041 +v 3.6887 1.0789 1.6032 +v 2.1081 5.0818 2.9465 +v 2.3457 5.1006 3.1841 +v 3.4715 0.9468 4.3099 +v 3.6718 1.0789 4.5102 +v 1.8871 5.0818 3.1675 +v 2.1247 5.1006 3.4051 +v 3.2506 0.9468 4.5309 +v 3.4508 1.0789 4.7312 +v 1.25 5.125 2.25 +v 2.8125 5.125 2.25 +v 1.25 4.9375 2.25 +v 2.8125 4.9375 2.25 +v 1.25 5.125 3.8125 +v 2.8125 5.125 3.8125 +v 1.25 4.9375 3.8125 +v 2.8125 4.9375 3.8125 +v 1.8125 5.0625 2.875 +v 2.1875 5.0625 2.875 +v 1.8125 3.5625 2.875 +v 2.1875 3.5625 2.875 +v 1.8125 5.0625 3.25 +v 2.1875 5.0625 3.25 +v 1.8125 3.5625 3.25 +v 2.1875 3.5625 3.25 +v 1.875 3.4375 2.9375 +v 2.125 3.4375 2.9375 +v 1.875 3.4375 3.1875 +v 2.125 3.4375 3.1875 +v -0.3125 1.75 5.4062 +v -0.3125 1.5625 5.4062 +v -0.375 1.75 5.4062 +v -0.375 1.5625 5.4062 +v -0.3125 1.75 5.5937 +v -0.3125 1.5625 5.5937 +v -0.375 1.75 5.5937 +v -0.375 1.5625 5.5937 +v -0.125 1.6875 5.4062 +v -0.125 1.5625 5.4062 +v -0.125 1.6875 5.5937 +v -0.125 1.5625 5.5937 +v -0.125 1.5 5.5937 +v -0.125 1.5 5.4062 +v -0.3125 1.5 5.4062 +v -0.3125 1.5 5.5937 +v -0.125 1.3125 5.5937 +v -0.125 1.3125 5.4062 +v -0.3125 1.375 5.4062 +v -0.3125 1.375 5.5937 +v 0.0625 1.3125 5.4062 +v 0.0625 1.3125 5.5937 +v 0.0625 1.5 5.5937 +v 0.0625 1.5 5.4062 +v 0.25 1.3125 5.4062 +v 0.25 1.3125 5.5937 +v 0.25 1.4375 5.5937 +v 0.25 1.4375 5.4062 +v 0.25 1.25 5.5937 +v 0.25 1.25 5.4062 +v 0.0625 1.25 5.4062 +v 0.0625 1.25 5.5937 +v 0.25 1.125 5.5937 +v 0.25 1.0625 5.4062 +v 0.0625 1.0625 5.4062 +v 0.0625 1.125 5.5937 +v 0.0625 1.0625 4.9062 +v 0.25 1.0625 4.9062 +v 0.25 1.25 4.9062 +v 0.0625 1.25 4.9062 +v 0.0625 1.0625 3.9687 +v 0.25 1.0625 3.9687 +v 0.25 1.25 3.9687 +v 0.0625 1.25 3.9687 +v 0.0625 1.0625 3.8437 +v 0.25 1.0625 3.7812 +v 0.25 1.25 3.7812 +v 0.0625 1.25 3.8437 +v 0.8125 1.25 3.7812 +v 0.8125 1.0625 3.7812 +v 0.8125 1.0625 3.9687 +v 0.8125 1.25 3.9687 +v 1 1.25 3.7812 +v 1 1.0625 3.7812 +v 1 1.0625 3.9062 +v 1 1.25 3.9062 +v 1 1.0625 3.0312 +v 1 1.25 3.0312 +v 0.8125 1.25 3.0312 +v 0.8125 1.0625 3.0312 +v 1 1.0625 2.8437 +v 1 1.25 2.8437 +v 0.875 1.25 2.8437 +v 0.875 1.0625 2.8437 +v 1.1875 1.25 2.8437 +v 1.1875 1.0625 2.8437 +v 1.1875 1.0625 3.0312 +v 1.1875 1.25 3.0312 +v 4.1365 0.8125 3.6214 +v 4.6281 0.8125 3.7125 +v 4.1365 0.5 3.6214 +v 4.6281 0.5 3.7125 +v 3.9656 0.8125 4.5432 +v 4.4573 0.8125 4.6343 +v 3.9656 0.5 4.5432 +v 4.4573 0.5 4.6343 +v 4.3823 0.8125 3.667 +v 4.2114 0.8125 4.5888 +v 4.2114 0.5 4.5888 +v 4.3823 0.5 3.667 +v 4.3026 0.8125 4.0971 +v 4.0567 0.8125 4.0516 +v 4.0567 0.5 4.0516 +v 4.3026 0.5 4.0971 +v 4.5484 0.5 4.1427 +v 4.5484 0.8125 4.1427 +v 4.5484 0.6875 4.1427 +v 4.4573 0.6875 4.6343 +v 4.2114 0.6875 4.5888 +v 3.9656 0.6875 4.5432 +v 4.0567 0.6875 4.0516 +v 4.1365 0.6875 3.6214 +v 4.3823 0.6875 3.667 +v 4.6281 0.6875 3.7125 +v 3.1741 1.125 0.1356 +v 3.9063 1.125 0.2979 +v 3.1741 0.5 0.1356 +v 3.9063 0.5 0.2979 +v 3.0118 1.125 0.8678 +v 3.744 1.125 1.0302 +v 3.0118 0.5 0.8678 +v 3.744 0.5 1.0302 +v 3.744 0.8125 1.0302 +v 3.9063 0.8125 0.2979 +v 3.1741 0.8125 0.1356 +v 3.0118 0.8125 0.8678 +v 3.8252 0.8125 0.664 +v 3.8252 0.5 0.664 +v 3.093 0.5 0.5017 +v 3.093 0.8125 0.5017 +v 3.093 1.125 0.5017 +v 3.8252 1.125 0.664 +v 3.4591 1.125 0.5829 +v 3.5402 1.125 0.2168 +v 3.5402 0.8125 0.2168 +v 3.5402 0.5 0.2168 +v 3.4591 0.5 0.5829 +v 3.3779 0.5 0.949 +v 3.3779 0.8125 0.949 +v 3.3779 1.125 0.949 +v 2.7041 1.5846 0.9596 +v 2.5529 1.577 0.3532 +v 2.854 0.9786 0.9298 +v 2.7028 0.971 0.3234 +v 3.2917 1.7373 0.8112 +v 3.1405 1.7297 0.2048 +v 3.4416 1.1312 0.7814 +v 3.2904 1.1236 0.175 +v 2.0701 1 0.3523 +v 2.763 1 0.0653 +v 2.0701 0.5 0.3523 +v 2.763 0.5 0.0653 +v 2.3571 1 1.0452 +v 3.05 1 0.7582 +v 2.3571 0.5 1.0452 +v 3.05 0.5 0.7582 +v 3.05 0.75 0.7582 +v 2.763 0.75 0.0653 +v 2.0701 0.75 0.3523 +v 2.3571 0.75 1.0452 +v 2.9065 0.75 0.4117 +v 2.9065 0.5 0.4117 +v 2.2136 0.5 0.6987 +v 2.2136 0.75 0.6987 +v 2.2136 1 0.6987 +v 2.9065 1 0.4117 +v 2.56 1 0.5552 +v 2.4165 1 0.2088 +v 2.4165 0.75 0.2088 +v 2.4165 0.5 0.2088 +v 2.56 0.5 0.5552 +v 2.7036 0.5 0.9017 +v 2.7036 0.75 0.9017 +v 2.7036 1 0.9017 +v 0.3961 0.8125 5.2213 +v 0.8852 0.8125 5.1173 +v 0.3961 0.5 5.2213 +v 0.8852 0.5 5.1173 +v 0.591 0.8125 6.1383 +v 1.0801 0.8125 6.0343 +v 0.591 0.5 6.1383 +v 1.0801 0.5 6.0343 +v 0.6407 0.8125 5.1693 +v 0.8356 0.8125 6.0863 +v 0.8356 0.5 6.0863 +v 0.6407 0.5 5.1693 +v 0.7316 0.8125 5.5973 +v 0.4871 0.8125 5.6492 +v 0.4871 0.5 5.6492 +v 0.7316 0.5 5.5973 +v 0.9762 0.5 5.5453 +v 0.9762 0.8125 5.5453 +v 0.9762 0.6875 5.5453 +v 1.0801 0.6875 6.0343 +v 0.8356 0.6875 6.0863 +v 0.591 0.6875 6.1383 +v 0.4871 0.6875 5.6492 +v 0.3961 0.6875 5.2213 +v 0.6407 0.6875 5.1693 +v 0.8852 0.6875 5.1173 +v 0 0.875 -1 +v 2 0.875 -1 +v 0 0.6875 -1 +v 2 0.6875 -1 +v 0 0.875 0 +v 2 0.875 0 +v 0 0.6875 0 +v 2 0.6875 0 +v 1.9375 0.9375 -0.9375 +v 1.9375 0.875 -0.9375 +v 0.875 0.9375 -0.9375 +v 0.875 0.875 -0.9375 +v 1.9375 0.9375 -0.0625 +v 1.9375 0.875 -0.0625 +v 0.875 0.9375 -0.0625 +v 0.875 0.875 -0.0625 +v 0.3437 1.0313 0.4812 +v 0.3437 1.0313 -0.0813 +v 0 1.1226 -0.5353 +v 0 0.9807 -0.8138 +v 0 1.0669 -0.5069 +v 0.875 1.1226 -0.5353 +v 0.875 0.9807 -0.8138 +v 0.875 1.0669 -0.5069 +v 0.875 0.9251 -0.7854 +v 0.6875 0.9807 -0.8138 +v 0.6875 0.9251 -0.7854 +v 0 0.9524 -0.8694 +v 0 0.8967 -0.8411 +v 0.6875 0.9524 -0.8694 +v 0.6875 0.8967 -0.8411 +v 0.6875 0.924 -0.9251 +v 0.6875 0.8683 -0.8968 +v 0.875 0.9524 -0.8694 +v 0.875 0.924 -0.9251 +v 0.875 0.8967 -0.8411 +v 0.875 0.8683 -0.8968 +v 0.75 0.9807 -0.8138 +v 0.75 0.9524 -0.8694 +v 0.75 0.9251 -0.7854 +v 0.75 0.8967 -0.8411 +v 0.8125 0.9807 -0.8138 +v 0.8125 0.9524 -0.8694 +v 0.8125 0.9251 -0.7854 +v 0.8125 0.8967 -0.8411 +v 0 1.0625 -0.1438 +v 0 1.0625 -0.5188 +v 0 0.875 -0.1438 +v 0 0.875 -0.8938 +v 0.875 1.0625 -0.1438 +v 0.875 1.0625 -0.5188 +v 0.875 0.875 -0.8938 +v 0.0789 1.0738 -0.2508 +v 0.8289 1.0738 -0.2508 +v 0.0789 1.038 -0.1996 +v 0.8289 1.038 -0.1996 +v 0.0789 1.2274 -0.1433 +v 0.8289 1.2274 -0.1433 +v 0.0789 1.1915 -0.0921 +v 0.8289 1.1915 -0.0921 +v 0.0758 1.125 -0.4009 +v 0.8258 1.125 -0.4009 +v 0.0758 1.0625 -0.4009 +v 0.8258 1.0625 -0.4009 +v 0.0758 1.125 -0.2134 +v 0.8258 1.125 -0.2134 +v 0.0758 1.0625 -0.2134 +v 0.8258 1.0625 -0.2134 +v 0.7008 1.1875 -0.3712 +v 0.8883 1.1875 -0.3712 +v 0.7008 1.0625 -0.3712 +v 0.8883 1.0625 -0.3712 +v 0.7008 1.1875 -0.2462 +v 0.8883 1.1875 -0.2462 +v 0.7008 1.0625 -0.2462 +v 0.8883 1.0625 -0.2462 +v 0.0577 1.195 -0.4041 +v 0.4306 1.1695 -0.3823 +v 0.0522 1.1476 -0.3636 +v 0.4258 1.1228 -0.3424 +v 0.0577 1.5197 -0.0239 +v 0.4306 1.4943 -0.0021 +v 0.0522 1.4724 0.0166 +v 0.4258 1.4475 0.0378 +v 0.8036 1.1938 -0.4031 +v 0.4354 1.1216 -0.3414 +v 0.809 1.1464 -0.3626 +v 0.8036 1.5185 -0.0229 +v 0.4354 1.4463 0.0388 +v 0.809 1.4712 0.0176 +v 1.5625 1.8438 -0.0625 +v 1.9375 1.8438 -0.0625 +v 1.5625 1.4688 -0.0625 +v 1.9375 1.4688 -0.0625 +v 1.5625 1.8438 0 +v 1.9375 1.8438 0 +v 1.5625 1.4688 0 +v 1.9375 1.4688 0 +v 1.125 1.8438 -0.0625 +v 1.5 1.8438 -0.0625 +v 1.125 1.4688 -0.0625 +v 1.5 1.4688 -0.0625 +v 1.125 1.8438 0 +v 1.5 1.8438 0 +v 1.125 1.4688 0 +v 1.5 1.4688 0 +v 1.125 1.4063 -0.0625 +v 1.5 1.4063 -0.0625 +v 1.125 1.0312 -0.0625 +v 1.5 1.0312 -0.0625 +v 1.125 1.4063 0 +v 1.5 1.4063 0 +v 1.125 1.0312 0 +v 1.5 1.0312 0 +v 1.5625 1.4062 -0.0625 +v 1.9375 1.4063 -0.0625 +v 1.5625 1.0312 -0.0625 +v 1.9375 1.0312 -0.0625 +v 1.5625 1.4062 0 +v 1.9375 1.4063 0 +v 1.5625 1.0312 0 +v 1.9375 1.0312 0 +v 2 1.5 0 +v 2 0.5 0 +v 0 1.5 0 +v 0 0.5 0 +v 2 1.5 1 +v 2 0.5 1 +v 0 1.5 1 +v 0 0.5 1 +v 1 1.5 1 +v 1 0.5 1 +v 1 0.5 0 +v 1 1.5 0 +v 1.0625 1.875 0 +v 2 1.875 0 +v 1.0625 1.5 0 +v 1.0625 1.875 0.25 +v 2 1.875 0.25 +v 1.0625 1.5 0.5 +v 2 1.5 0.5 +v 0.8451 1.625 0.802 +v 0.2278 1.625 0.7042 +v 0.8451 1.5 0.802 +v 0.2278 1.5 0.7042 +v 0.9038 1.625 0.4316 +v 0.2865 1.625 0.3338 +v 0.9038 1.5 0.4316 +v 0.2865 1.5 0.3338 +v 0.2014 1.75 0.5682 +v 0.7371 1.75 0.2463 +v 0.2014 1.625 0.5682 +v 0.7371 1.625 0.2463 +v 0.3945 1.75 0.8896 +v 0.9303 1.75 0.5677 +v 0.3945 1.625 0.8896 +v 0.9303 1.625 0.5677 +v 0.4063 1.14 -0.3764 +v 0.4687 1.14 -0.3764 +v 0.4062 1.0925 -0.3358 +v 0.4687 1.0925 -0.3358 +v 0.4062 1.4647 0.0038 +v 0.4687 1.4647 0.0038 +v 0.4063 1.4172 0.0444 +v 0.4688 1.4172 0.0444 +v 0.0625 0.6875 -0.9375 +v 0.25 0.6875 -0.9375 +v 0.0625 0 -0.9375 +v 0.25 0 -0.9375 +v 0.0625 0.6875 -0.75 +v 0.25 0.6875 -0.75 +v 0.0625 0 -0.75 +v 0.25 0 -0.75 +v 0.0625 0.6875 -0.25 +v 0.25 0.6875 -0.25 +v 0.0625 0 -0.25 +v 0.25 0 -0.25 +v 0.0625 0.6875 -0.0625 +v 0.25 0.6875 -0.0625 +v 0.0625 0 -0.0625 +v 0.25 0 -0.0625 +v 1.75 0.6875 -0.25 +v 1.9375 0.6875 -0.25 +v 1.75 0 -0.25 +v 1.9375 0 -0.25 +v 1.75 0.6875 -0.0625 +v 1.9375 0.6875 -0.0625 +v 1.75 0 -0.0625 +v 1.9375 0 -0.0625 +v 1.75 0.6875 -0.9375 +v 1.9375 0.6875 -0.9375 +v 1.75 0 -0.9375 +v 1.9375 0 -0.9375 +v 1.75 0.6875 -0.75 +v 1.9375 0.6875 -0.75 +v 1.75 0 -0.75 +v 1.9375 0 -0.75 +v 1.5312 1.0625 1.0625 +v 1.6563 1.0625 1.0625 +v 1.5312 1.0625 1.9375 +v 1.6563 1.0625 1.9375 +v 1.5313 1.1875 1.0625 +v 1.6562 1.1875 1.0625 +v 1.5313 1.1875 1.9375 +v 1.6562 1.1875 1.9375 +v 1.3125 1.0625 1.0625 +v 1.4375 1.0625 1.0625 +v 1.3125 1.0625 1.9375 +v 1.4375 1.0625 1.9375 +v 1.3125 1.1875 1.0625 +v 1.4375 1.1875 1.0625 +v 1.3125 1.1875 1.9375 +v 1.4375 1.1875 1.9375 +v 1.6375 1.4375 2.1562 +v 1.6375 1.375 2.1562 +v 1.325 1.4375 2.1562 +v 1.325 1.375 2.1562 +v 1.6375 1.4375 2.4687 +v 1.6375 1.375 2.4687 +v 1.325 1.4375 2.4687 +v 1.325 1.375 2.4687 +v 1.6375 1.4375 2.7812 +v 1.6375 1.375 2.7812 +v 1.325 1.4375 2.7812 +v 1.325 1.375 2.7812 +v 1.1875 1.375 2.0312 +v 1.25 1.375 2.0312 +v 1.1875 1.0625 2.0312 +v 1.25 1.0625 2.0312 +v 1.1875 1.375 2.3437 +v 1.25 1.375 2.3437 +v 1.1875 1.0625 2.3437 +v 1.25 1.0625 2.3437 +v 1.1875 1.375 2.4062 +v 1.25 1.375 2.4062 +v 1.1875 1.0625 2.4062 +v 1.25 1.0625 2.4062 +v 1.1875 1.375 2.7187 +v 1.25 1.375 2.7187 +v 1.1875 1.0625 2.7187 +v 1.25 1.0625 2.7187 +v 1.1875 1.375 2.7812 +v 1.25 1.375 2.7812 +v 1.1875 1.0625 2.7812 +v 1.25 1.0625 2.7812 +v 1.1875 1.375 3.0937 +v 1.25 1.375 3.0937 +v 1.1875 1.0625 3.0937 +v 1.25 1.0625 3.0937 +v 1.25 1 2 +v 1.75 1 2 +v 1.25 1 3.125 +v 1.75 1 3.125 +v 1.25 1.375 2 +v 1.75 1.375 2 +v 1.25 1.375 3.125 +v 1.75 1.375 3.125 +v 1.25 1.375 2.5625 +v 1.75 1.375 2.5625 +v 1.75 1 2.5625 +v 1.25 1 2.5625 +v 1.5 1.2188 2 +v 1.6875 1.2188 2 +v 1.5 1.0312 2 +v 1.6875 1.0313 2 +v 1.5 1.2188 1.9375 +v 1.6875 1.2188 1.9375 +v 1.5 1.0312 1.9375 +v 1.6875 1.0313 1.9375 +v 1.2812 1.2188 2 +v 1.4687 1.2188 2 +v 1.2812 1.0313 2 +v 1.4688 1.0313 2 +v 1.2812 1.2188 1.9375 +v 1.4687 1.2188 1.9375 +v 1.2812 1.0313 1.9375 +v 1.4688 1.0313 1.9375 +v 1.5 1.2188 1 +v 1.6875 1.2188 1 +v 1.5 1.0312 1 +v 1.6875 1.0313 1 +v 1.5 1.2188 1.0625 +v 1.6875 1.2188 1.0625 +v 1.5 1.0312 1.0625 +v 1.6875 1.0313 1.0625 +v 1.2812 1.2188 1 +v 1.4687 1.2188 1 +v 1.2812 1.0313 1 +v 1.4688 1.0313 1 +v 1.2812 1.2188 1.0625 +v 1.4687 1.2188 1.0625 +v 1.2812 1.0313 1.0625 +v 1.4688 1.0313 1.0625 +v 3.8125 2 4.75 +v 3.9375 2 4.75 +v 3.8125 1 4.75 +v 3.9375 1 4.75 +v 3.8125 2 4.875 +v 3.9375 2 4.875 +v 3.8125 1 4.875 +v 3.9375 1 4.875 +v 1.5921 2 4.8955 +v 1.5921 1 4.8955 +v 0.8426 2 4.9217 +v 0.8426 1 4.9217 +v 2.3417 2 4.8709 +v 2.3417 1 4.8709 +v 3.0912 2 4.8447 +v 3.0912 1 4.8447 +v 3.8407 2 4.817 +v 3.8407 1 4.817 +v 0.75 2 4.8562 +v 0.875 2 4.8562 +v 0.75 1 4.8562 +v 0.875 1 4.8562 +v 0.75 2 4.9812 +v 0.875 2 4.9812 +v 0.75 1 4.9812 +v 0.875 1 4.9812 +v 3.8307 2 3.4986 +v 3.8323 1 3.4986 +v 3.8584 2 4.2481 +v 3.8584 1 4.2481 +v 3.8497 2 3.9983 +v 3.8497 1 3.9983 +v 3.8759 2 4.7478 +v 3.8759 1 4.7478 +v 3.8061 2 2.749 +v 3.8061 1 2.749 +v 3.7784 2 1.9995 +v 3.7784 1 1.9995 +v 3.7537 2 1.25 +v 3.7537 1 1.25 +v 3.6875 2 1.125 +v 3.8125 2 1.125 +v 3.6875 1 1.125 +v 3.8125 1 1.125 +v 3.6875 2 1.25 +v 3.8125 2 1.25 +v 3.6875 1 1.25 +v 3.8125 1 1.25 +v 3.7175 2 1.1957 +v 3.7175 1 1.1957 +v 2.9731 2 1.2871 +v 2.9731 1 1.2871 +v 2.2287 2 1.3785 +v 2.2287 1 1.3785 +v 2.125 2 1.3062 +v 2.25 2 1.3062 +v 2.125 1 1.3062 +v 2.25 1 1.3062 +v 2.125 2 1.4312 +v 2.25 2 1.4312 +v 2.125 1 1.4312 +v 2.25 1 1.4312 +v 1.5921 2 4.8971 +v 1.5921 1 4.8971 +v 0.8426 2 4.9233 +v 0.8426 1 4.9233 +v 2.3417 2 4.8694 +v 2.3417 1 4.8694 +v 1.5921 2 4.8971 +v 1.5921 2 4.8955 +v 1.5921 1 4.8971 +v 1.5921 1 4.8955 +v 3.0912 2 4.8432 +v 3.0912 1 4.8432 +v 2.3417 2 4.8709 +v 2.3417 2 4.8694 +v 2.3417 1 4.8709 +v 2.3417 1 4.8694 +v 3.8407 2 4.8186 +v 3.8407 1 4.8186 +v 3.0912 2 4.8432 +v 3.0912 2 4.8447 +v 3.0912 1 4.8432 +v 3.0912 1 4.8447 +v 3.8307 1 3.4986 +v 3.8569 2 4.2481 +v 3.8569 1 4.2481 +v 3.8482 2 3.9983 +v 3.8482 1 3.9983 +v 3.8743 2 4.7478 +v 3.8743 1 4.7478 +v 3.8045 2 2.749 +v 3.8045 1 2.749 +v 3.8323 2 3.4986 +v 3.8307 2 3.4986 +v 3.8323 1 3.4986 +v 3.8307 1 3.4986 +v 3.7799 2 1.9995 +v 3.7799 1 1.9995 +v 3.8045 2 2.749 +v 3.8061 2 2.749 +v 3.8045 1 2.749 +v 3.8061 1 2.749 +v 3.7522 2 1.25 +v 3.7522 1 1.25 +v 3.7799 2 1.9995 +v 3.7784 2 1.9995 +v 3.7799 1 1.9995 +v 3.7784 1 1.9995 +v 3.7175 2 1.1972 +v 3.7175 1 1.1972 +v 2.9731 2 1.2886 +v 2.9731 1 1.2886 +v 2.9731 2 1.2871 +v 2.9731 2 1.2886 +v 2.9731 1 1.2871 +v 2.9731 1 1.2886 +v 2.2287 2 1.38 +v 2.2287 1 1.38 +v 3.8323 2 3.4986 +v 1.5342 5.25 2.5275 +v 2.5342 5.25 2.5275 +v 1.5342 5.125 2.5275 +v 2.5342 5.125 2.5275 +v 1.5342 5.25 3.5275 +v 2.5342 5.25 3.5275 +v 1.5342 5.125 3.5275 +v 2.5342 5.125 3.5275 vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0 @@ -4240,22 +4239,18 @@ vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0 vt 0.3125 0 -vt 0.3125 0.925218125 +vt 0.3125 0.9252 vt 0.5 0.9375 -vt 0.5 0.012281874999999998 +vt 0.5 0.0123 vt 0.3125 0 vt 0.3125 0.9375 -vt 0.5 0.925218125 +vt 0.5 0.9252 vt 0.5 0 -vt 0.3125 0.012281874999999998 -vt 0.49999125 0.3125 -vt 0.3125 0.312505625 -vt 0.312515625 0.937503125 -vt 0.5 0.937503125 -vt 0.3125 0.999996875 -vt 0.50000125 1 -vt 0.50000125 0.374996875 -vt 0.312506875 0.374999375 +vt 0.3125 0.0123 +vt 0.5 0.3125 +vt 0.3125 0.3125 +vt 0.3125 0.9375 +vt 0.5 0.9375 vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 @@ -4264,14 +4259,14 @@ vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 vt 0.3125 0.375 -vt 0.4999975 0.37499499999999997 -vt 0.31250375 0.37499499999999997 -vt 0.3124975 0.9374975 -vt 0.49999125 0.9374975 -vt 0.3125 0.937498125 -vt 0.50000125 0.9375 -vt 0.50000125 0.374996875 -vt 0.3125 0.37499499999999997 +vt 0.3125 1 +vt 0.5 1 +vt 0.5 0.375 +vt 0.3125 0.375 +vt 0.5 0.375 +vt 0.3125 0.375 +vt 0.3125 0.9375 +vt 0.5 0.9375 vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0.375 @@ -4280,14 +4275,18 @@ vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0.375 vt 0.3125 0.375 +vt 0.3125 0.9375 +vt 0.5 0.9375 +vt 0.5 0.375 +vt 0.3125 0.375 +vt 0.3125 1 +vt 0.5 1 +vt 0.5 0.375 +vt 0.3125 0.375 vt 0.3125 1 -vt 0.499993125 1 +vt 0.5 1 vt 0.5 0.375 -vt 0.312506875 0.375 -vt 0.3125 0.999998125 -vt 0.50000125 1 -vt 0.50000125 0.37500374999999997 -vt 0.3125 0.37500187500000004 +vt 0.3125 0.375 vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 @@ -4296,37 +4295,37 @@ vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 vt 0.3125 0.375 -vt 0.1328125 0.1875 -vt 0.1640625 0.1875 -vt 0.1640625 0.1484375 -vt 0.1328125 0.1484375 -vt 0.1328125 0.1875 -vt 0.1640625 0.1875 -vt 0.1640625 0.1484375 -vt 0.1328125 0.1484375 -vt 0.1640625 0.21875 -vt 0.2734375 0.21875 -vt 0.2734375 0.1875 -vt 0.1640625 0.1875 -vt 0.1640625 0.1796875 -vt 0.2734375 0.1796875 -vt 0.2734375 0.1484375 -vt 0.1640625 0.1484375 -vt 0.1640625 0.1875 -vt 0.2734375 0.1875 -vt 0.2734375 0.1484375 -vt 0.1640625 0.1484375 -vt 0.1640625 0.1875 -vt 0.2734375 0.1875 -vt 0.2734375 0.1484375 -vt 0.1640625 0.1484375 -vt 0.5625 0.9999975 +vt 0.1328 0.1875 +vt 0.1641 0.1875 +vt 0.1641 0.1484 +vt 0.1328 0.1484 +vt 0.1328 0.1875 +vt 0.1641 0.1875 +vt 0.1641 0.1484 +vt 0.1328 0.1484 +vt 0.1641 0.2188 +vt 0.2734 0.2188 +vt 0.2734 0.1875 +vt 0.1641 0.1875 +vt 0.1641 0.1797 +vt 0.2734 0.1797 +vt 0.2734 0.1484 +vt 0.1641 0.1484 +vt 0.1641 0.1875 +vt 0.2734 0.1875 +vt 0.2734 0.1484 +vt 0.1641 0.1484 +vt 0.1641 0.1875 +vt 0.2734 0.1875 +vt 0.2734 0.1484 +vt 0.1641 0.1484 +vt 0.5625 1 vt 0.6875 1 -vt 0.6875 0.24999812499999996 -vt 0.562506875 0.250000625 -vt 0.687483125 0.24999812499999996 -vt 0.5625 0.25000374999999997 -vt 0.56252375 1 +vt 0.6875 0.25 +vt 0.5625 0.25 +vt 0.6875 0.25 +vt 0.5625 0.25 +vt 0.5625 1 vt 0.6875 1 vt 0.5625 0.6875 vt 0.6875 0.6875 @@ -4348,22 +4347,18 @@ vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0 vt 0.3125 0 -vt 0.3125 0.925218125 +vt 0.3125 0.9252 vt 0.5 0.9375 -vt 0.5 0.012281874999999998 +vt 0.5 0.0123 vt 0.3125 0 vt 0.3125 0.9375 -vt 0.5 0.925218125 +vt 0.5 0.9252 vt 0.5 0 -vt 0.3125 0.012281874999999998 -vt 0.49999125 1 -vt 0.3125 0.999994375 -vt 0.312515625 0.374996875 -vt 0.5 0.374996875 -vt 0.3125 0.999996875 -vt 0.50000125 1 -vt 0.50000125 0.374996875 -vt 0.312506875 0.374999375 +vt 0.3125 0.0123 +vt 0.5 1 +vt 0.3125 1 +vt 0.3125 0.375 +vt 0.5 0.375 vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 @@ -4372,14 +4367,18 @@ vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 vt 0.3125 0.375 -vt 0.4999975 0.37499499999999997 -vt 0.31250375 0.37499499999999997 -vt 0.3124975 0.9374975 -vt 0.49999125 0.9374975 -vt 0.3125 0.937498125 -vt 0.50000125 0.9375 -vt 0.50000125 0.374996875 -vt 0.3125 0.37499499999999997 +vt 0.3125 1 +vt 0.5 1 +vt 0.5 0.375 +vt 0.3125 0.375 +vt 0.5 0.375 +vt 0.3125 0.375 +vt 0.3125 0.9375 +vt 0.5 0.9375 +vt 0.3125 0.9375 +vt 0.5 0.9375 +vt 0.5 0.375 +vt 0.3125 0.375 vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0.375 @@ -4389,13 +4388,13 @@ vt 0.5 0.9375 vt 0.5 0.375 vt 0.3125 0.375 vt 0.3125 1 -vt 0.499993125 1 +vt 0.5 1 vt 0.5 0.375 -vt 0.312506875 0.375 -vt 0.3125 0.999998125 -vt 0.50000125 1 -vt 0.50000125 0.37500374999999997 -vt 0.3125 0.37500187500000004 +vt 0.3125 0.375 +vt 0.3125 1 +vt 0.5 1 +vt 0.5 0.375 +vt 0.3125 0.375 vt 0.3125 1 vt 0.5 1 vt 0.5 0.375 @@ -4429,13 +4428,13 @@ vt 0.3125 0.5625 vt 0.3125 0.25 vt 0 0.25 vt 0.1875 1 -vt 0.1875 0.84375 -vt 0 0.84375 +vt 0.1875 0.8438 +vt 0 0.8438 vt 0 1 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.25 0.75 vt 0.4375 0.75 vt 0.4375 0.5625 @@ -4444,65 +4443,65 @@ vt 0.4375 0.8125 vt 0.25 0.8125 vt 0.25 1 vt 0.4375 1 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.1875 1 -vt 0.1875 0.84375 -vt 0 0.84375 +vt 0.1875 0.8438 +vt 0 0.8438 vt 0 1 -vt 0.1875 0.71875 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 -vt 0.1875 0.71875 +vt 0 0.7188 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 +vt 0 0.7188 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.1875 0.8125 vt 0 0.8125 vt 0 1 vt 0.1875 1 -vt 0.1875 0.71875 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 +vt 0 0.7188 vt 0.1875 1 -vt 0.1875 0.84375 -vt 0 0.84375 +vt 0.1875 0.8438 +vt 0 0.8438 vt 0 1 vt 0 0.75 vt 0.1875 0.75 vt 0.1875 0.5625 vt 0 0.5625 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.4375 0.8125 vt 0.25 0.8125 vt 0.25 1 vt 0.4375 1 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.25 0.75 vt 0.4375 0.75 @@ -4512,13 +4511,13 @@ vt 0 0.75 vt 0.1875 0.75 vt 0.1875 0.5625 vt 0 0.5625 -vt 0.1875 0.71875 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 +vt 0 0.7188 vt 0.1875 0.875 -vt 0.1875 0.71875 -vt 0 0.71875 +vt 0.1875 0.7188 +vt 0 0.7188 vt 0 0.875 vt 0.1875 0.8125 vt 0 0.8125 @@ -5004,12 +5003,12 @@ vt 0.3125 0.9375 vt 0.5 0.9375 vt 0.5 0.3125 vt 0.3125 0.3125 -vt 0.75 0.78125 -vt 0.875 0.78125 +vt 0.75 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.75 0.6875 -vt 0 0.65625 -vt 0.125 0.65625 +vt 0 0.6563 +vt 0.125 0.6563 vt 0.125 0.5625 vt 0 0.5625 vt 0.6875 1 @@ -5020,52 +5019,52 @@ vt 0.6875 0.8125 vt 0.6875 0.6875 vt 0.4375 0.6875 vt 0.4375 0.8125 -vt 0.4375 0.78125 -vt 0.6875 0.78125 +vt 0.4375 0.7813 +vt 0.6875 0.7813 vt 0.6875 0.6875 vt 0.4375 0.6875 -vt 0.625 0.78125 -vt 0.875 0.78125 +vt 0.625 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.625 0.6875 vt 0.6875 0.8125 vt 0.6875 0.6875 vt 0.4375 0.6875 vt 0.4375 0.8125 -vt 0.75 0.78125 -vt 0.875 0.78125 +vt 0.75 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.75 0.6875 vt 0.6875 1 vt 0.6875 0.875 vt 0.4375 0.875 vt 0.4375 1 -vt 0.4375 0.78125 -vt 0.5625 0.78125 +vt 0.4375 0.7813 +vt 0.5625 0.7813 vt 0.5625 0.6875 vt 0.4375 0.6875 -vt 0.65625 0.6875 -vt 0.65625 0.8125 +vt 0.6563 0.6875 +vt 0.6563 0.8125 vt 0.875 0.8125 vt 0.875 0.6875 -vt 0.65625 0.78125 -vt 0.875 0.78125 +vt 0.6563 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 -vt 0.65625 0.6875 -vt 0.65625 0.875 -vt 0.65625 1 +vt 0.6563 0.6875 +vt 0.6563 0.875 +vt 0.6563 1 vt 0.875 1 vt 0.875 0.875 -vt 0.65625 0.6875 -vt 0.65625 0.8125 +vt 0.6563 0.6875 +vt 0.6563 0.8125 vt 0.875 0.8125 vt 0.875 0.6875 -vt 0.4375 0.78125 -vt 0.65625 0.78125 -vt 0.65625 0.6875 +vt 0.4375 0.7813 +vt 0.6563 0.7813 +vt 0.6563 0.6875 vt 0.4375 0.6875 -vt 0.65625 0.875 -vt 0.65625 1 +vt 0.6563 0.875 +vt 0.6563 1 vt 0.875 1 vt 0.875 0.875 vt 0.875 0.9375 @@ -5085,8 +5084,8 @@ vt 0.4375 0.9375 vt 0.4375 1 vt 0.6875 1 vt 0.875 0.9375 -vt 0.65625 0.9375 -vt 0.65625 1 +vt 0.6563 0.9375 +vt 0.6563 1 vt 0.875 1 vt 0.5625 0.9375 vt 0.4375 0.9375 @@ -5096,10 +5095,10 @@ vt 0.875 0.9375 vt 0.75 0.9375 vt 0.75 1 vt 0.875 1 -vt 0.65625 0.9375 +vt 0.6563 0.9375 vt 0.4375 0.9375 vt 0.4375 1 -vt 0.65625 1 +vt 0.6563 1 vt 0.1875 0.75 vt 0.1875 1 vt 0.4375 1 @@ -5196,12 +5195,12 @@ vt 0.1875 0.8125 vt 0.4375 0.8125 vt 0.4375 0.5625 vt 0.1875 0.5625 -vt 0.4375 0.90625 -vt 0.1875 0.90625 +vt 0.4375 0.9063 +vt 0.1875 0.9063 vt 0.1875 1 vt 0.4375 1 -vt 0.25 0.90625 -vt 0 0.90625 +vt 0.25 0.9063 +vt 0 0.9063 vt 0 1 vt 0.25 1 vt 0.4375 0.875 @@ -5212,36 +5211,36 @@ vt 0.1875 0.8125 vt 0.1875 0.5625 vt 0 0.5625 vt 0 0.8125 -vt 0.625 0.90625 -vt 0.4375 0.90625 +vt 0.625 0.9063 +vt 0.4375 0.9063 vt 0.4375 1 vt 0.625 1 -vt 0.875 0.90625 -vt 0.6875 0.90625 +vt 0.875 0.9063 +vt 0.6875 0.9063 vt 0.6875 1 vt 0.875 1 vt 0.625 0.875 vt 0.875 0.875 vt 0.875 0.6875 vt 0.625 0.6875 -vt 0.875 0.90625 -vt 0.625 0.90625 +vt 0.875 0.9063 +vt 0.625 0.9063 vt 0.625 1 vt 0.875 1 vt 0.1875 1 vt 0.1875 0.75 vt 0 0.75 vt 0 1 -vt 0.25 0.90625 -vt 0 0.90625 +vt 0.25 0.9063 +vt 0 0.9063 vt 0 1 vt 0.25 1 vt 0.875 0.8125 vt 0.625 0.8125 vt 0.625 1 vt 0.875 1 -vt 0.875 0.90625 -vt 0.6875 0.90625 +vt 0.875 0.9063 +vt 0.6875 0.9063 vt 0.6875 1 vt 0.875 1 vt 0.25 0.75 @@ -5252,52 +5251,52 @@ vt 0.25 0.5625 vt 0.25 0.8125 vt 0.4375 0.8125 vt 0.4375 0.5625 -vt 0.625 0.90625 -vt 0.4375 0.90625 +vt 0.625 0.9063 +vt 0.4375 0.9063 vt 0.4375 1 vt 0.625 1 vt 0.6875 0.8125 vt 0.4375 0.8125 vt 0.4375 1 vt 0.6875 1 -vt 0.4375 0.78125 -vt 0.625 0.78125 +vt 0.4375 0.7813 +vt 0.625 0.7813 vt 0.625 0.6875 vt 0.4375 0.6875 -vt 0.625 0.78125 -vt 0.875 0.78125 +vt 0.625 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.625 0.6875 -vt 0 0.65625 -vt 0.25 0.65625 +vt 0 0.6563 +vt 0.25 0.6563 vt 0.25 0.5625 vt 0 0.5625 -vt 0.6875 0.78125 -vt 0.875 0.78125 +vt 0.6875 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.6875 0.6875 -vt 0 0.65625 -vt 0.1875 0.65625 +vt 0 0.6563 +vt 0.1875 0.6563 vt 0.1875 0.5625 vt 0 0.5625 -vt 0.1875 0.65625 -vt 0.4375 0.65625 +vt 0.1875 0.6563 +vt 0.4375 0.6563 vt 0.4375 0.5625 vt 0.1875 0.5625 -vt 0 0.65625 -vt 0.25 0.65625 +vt 0 0.6563 +vt 0.25 0.6563 vt 0.25 0.5625 vt 0 0.5625 -vt 0.6875 0.78125 -vt 0.875 0.78125 +vt 0.6875 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.6875 0.6875 -vt 0.4375 0.90625 -vt 0.1875 0.90625 +vt 0.4375 0.9063 +vt 0.1875 0.9063 vt 0.1875 1 vt 0.4375 1 -vt 0.25 0.90625 -vt 0 0.90625 +vt 0.25 0.9063 +vt 0 0.9063 vt 0 1 vt 0.25 1 vt 0.4375 0.875 @@ -5308,36 +5307,36 @@ vt 0.1875 0.8125 vt 0.1875 0.5625 vt 0 0.5625 vt 0 0.8125 -vt 0.625 0.90625 -vt 0.4375 0.90625 +vt 0.625 0.9063 +vt 0.4375 0.9063 vt 0.4375 1 vt 0.625 1 -vt 0.875 0.90625 -vt 0.6875 0.90625 +vt 0.875 0.9063 +vt 0.6875 0.9063 vt 0.6875 1 vt 0.875 1 vt 0.625 0.875 vt 0.875 0.875 vt 0.875 0.6875 vt 0.625 0.6875 -vt 0.875 0.90625 -vt 0.625 0.90625 +vt 0.875 0.9063 +vt 0.625 0.9063 vt 0.625 1 vt 0.875 1 vt 0.1875 1 vt 0.1875 0.75 vt 0 0.75 vt 0 1 -vt 0.25 0.90625 -vt 0 0.90625 +vt 0.25 0.9063 +vt 0 0.9063 vt 0 1 vt 0.25 1 vt 0.875 0.8125 vt 0.625 0.8125 vt 0.625 1 vt 0.875 1 -vt 0.875 0.90625 -vt 0.6875 0.90625 +vt 0.875 0.9063 +vt 0.6875 0.9063 vt 0.6875 1 vt 0.875 1 vt 0.25 0.75 @@ -5348,44 +5347,44 @@ vt 0.25 0.5625 vt 0.25 0.8125 vt 0.4375 0.8125 vt 0.4375 0.5625 -vt 0.625 0.90625 -vt 0.4375 0.90625 +vt 0.625 0.9063 +vt 0.4375 0.9063 vt 0.4375 1 vt 0.625 1 vt 0.6875 0.8125 vt 0.4375 0.8125 vt 0.4375 1 vt 0.6875 1 -vt 0.4375 0.78125 -vt 0.625 0.78125 +vt 0.4375 0.7813 +vt 0.625 0.7813 vt 0.625 0.6875 vt 0.4375 0.6875 -vt 0.625 0.78125 -vt 0.875 0.78125 +vt 0.625 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.625 0.6875 -vt 0 0.65625 -vt 0.25 0.65625 +vt 0 0.6563 +vt 0.25 0.6563 vt 0.25 0.5625 vt 0 0.5625 -vt 0.6875 0.78125 -vt 0.875 0.78125 +vt 0.6875 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.6875 0.6875 -vt 0 0.65625 -vt 0.1875 0.65625 +vt 0 0.6563 +vt 0.1875 0.6563 vt 0.1875 0.5625 vt 0 0.5625 -vt 0.1875 0.65625 -vt 0.4375 0.65625 +vt 0.1875 0.6563 +vt 0.4375 0.6563 vt 0.4375 0.5625 vt 0.1875 0.5625 -vt 0 0.65625 -vt 0.25 0.65625 +vt 0 0.6563 +vt 0.25 0.6563 vt 0.25 0.5625 vt 0 0.5625 -vt 0.6875 0.78125 -vt 0.875 0.78125 +vt 0.6875 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.6875 0.6875 vt 0.1875 0.75 @@ -5484,130 +5483,130 @@ vt 0.1875 0.8125 vt 0.4375 0.8125 vt 0.4375 0.5625 vt 0.1875 0.5625 -vt 0.5234375 1 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.5234375 1 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.5234 1 vt 0.5625 1 -vt 0.5625 0.4296875 -vt 0.5234375 0.4296875 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0.2734375 0.4765625 -vt 0.46875 0.4765625 -vt 0.46875 0.28125 -vt 0.2734375 0.28125 -vt 0.2734375 0.4765625 -vt 0.46875 0.4765625 -vt 0.46875 0.28125 -vt 0.2734375 0.28125 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0.2734375 0.28125 -vt 0.46875 0.28125 -vt 0.46875 0.2578125 -vt 0.2734375 0.2578125 -vt 0 0.4140625 -vt 0.046875 0.4140625 -vt 0.046875 0.2265625 -vt 0 0.2265625 -vt 0 0.3984375 -vt 0.046875 0.3984375 -vt 0.046875 0.2109375 -vt 0 0.2109375 -vt 0 0.3984375 -vt 0.046875 0.3984375 -vt 0.046875 0.2109375 -vt 0 0.2109375 -vt 0 0.3984375 -vt 0.046875 0.3984375 -vt 0.046875 0.2109375 -vt 0 0.2109375 -vt 0 0.21875 -vt 0.046875 0.21875 -vt 0.0390625 0.203125 -vt 0.0078125 0.203125 -vt 0 0.21875 -vt 0.046875 0.21875 -vt 0.0390625 0.203125 -vt 0.0078125 0.203125 -vt 0.1875 0.1796875 -vt 0.21875 0.1796875 -vt 0.21875 0.1484375 -vt 0.1875 0.1484375 -vt 0 0.21875 -vt 0.046875 0.21875 -vt 0.0390625 0.203125 -vt 0.0078125 0.203125 -vt 0 0.21875 -vt 0.046875 0.21875 -vt 0.0390625 0.203125 -vt 0.0078125 0.203125 +vt 0.5625 0.4297 +vt 0.5234 0.4297 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0.2734 0.4766 +vt 0.4688 0.4766 +vt 0.4688 0.2813 +vt 0.2734 0.2813 +vt 0.2734 0.4766 +vt 0.4688 0.4766 +vt 0.4688 0.2813 +vt 0.2734 0.2813 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0.2734 0.2813 +vt 0.4688 0.2813 +vt 0.4688 0.2578 +vt 0.2734 0.2578 +vt 0 0.4141 +vt 0.0469 0.4141 +vt 0.0469 0.2266 +vt 0 0.2266 +vt 0 0.3984 +vt 0.0469 0.3984 +vt 0.0469 0.2109 +vt 0 0.2109 +vt 0 0.3984 +vt 0.0469 0.3984 +vt 0.0469 0.2109 +vt 0 0.2109 +vt 0 0.3984 +vt 0.0469 0.3984 +vt 0.0469 0.2109 +vt 0 0.2109 +vt 0 0.2188 +vt 0.0469 0.2188 +vt 0.0391 0.2031 +vt 0.0078 0.2031 +vt 0 0.2188 +vt 0.0469 0.2188 +vt 0.0391 0.2031 +vt 0.0078 0.2031 +vt 0.1875 0.1797 +vt 0.2188 0.1797 +vt 0.2188 0.1484 +vt 0.1875 0.1484 +vt 0 0.2188 +vt 0.0469 0.2188 +vt 0.0391 0.2031 +vt 0.0078 0.2031 +vt 0 0.2188 +vt 0.0469 0.2188 +vt 0.0391 0.2031 +vt 0.0078 0.2031 vt 0.3125 0.875 vt 0.5 0.875 vt 0.5 0.8125 @@ -5840,10 +5839,10 @@ vt 1 0.125 vt 0.8125 0.125 vt 0.8125 0.25 vt 1 0.3125 -vt 0 0.80235625 +vt 0 0.8024 vt 0 1 vt 0.1875 1 -vt 0.1875 0.80235625 +vt 0.1875 0.8024 vt 1 0.3125 vt 0.8125 0.25 vt 0.8125 0.125 @@ -5864,12 +5863,12 @@ vt 0.3125 0.375 vt 0.3125 0.5625 vt 0.5 0.5625 vt 0.5 0.375 -vt 0.75 0.78125 -vt 0.875 0.78125 +vt 0.75 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.75 0.6875 -vt 0 0.65625 -vt 0.125 0.65625 +vt 0 0.6563 +vt 0.125 0.6563 vt 0.125 0.5625 vt 0 0.5625 vt 0.6875 1 @@ -5880,52 +5879,52 @@ vt 0.6875 0.8125 vt 0.6875 0.6875 vt 0.4375 0.6875 vt 0.4375 0.8125 -vt 0.4375 0.78125 -vt 0.6875 0.78125 +vt 0.4375 0.7813 +vt 0.6875 0.7813 vt 0.6875 0.6875 vt 0.4375 0.6875 -vt 0.625 0.78125 -vt 0.875 0.78125 +vt 0.625 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.625 0.6875 vt 0.6875 0.8125 vt 0.6875 0.6875 vt 0.4375 0.6875 vt 0.4375 0.8125 -vt 0.75 0.78125 -vt 0.875 0.78125 +vt 0.75 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.75 0.6875 vt 0.6875 1 vt 0.6875 0.875 vt 0.4375 0.875 vt 0.4375 1 -vt 0.4375 0.78125 -vt 0.5625 0.78125 +vt 0.4375 0.7813 +vt 0.5625 0.7813 vt 0.5625 0.6875 vt 0.4375 0.6875 -vt 0.65625 0.6875 -vt 0.65625 0.8125 +vt 0.6563 0.6875 +vt 0.6563 0.8125 vt 0.875 0.8125 vt 0.875 0.6875 -vt 0.65625 0.78125 -vt 0.875 0.78125 +vt 0.6563 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 -vt 0.65625 0.6875 -vt 0.65625 0.875 -vt 0.65625 1 +vt 0.6563 0.6875 +vt 0.6563 0.875 +vt 0.6563 1 vt 0.875 1 vt 0.875 0.875 -vt 0.65625 0.6875 -vt 0.65625 0.8125 +vt 0.6563 0.6875 +vt 0.6563 0.8125 vt 0.875 0.8125 vt 0.875 0.6875 -vt 0.4375 0.78125 -vt 0.65625 0.78125 -vt 0.65625 0.6875 +vt 0.4375 0.7813 +vt 0.6563 0.7813 +vt 0.6563 0.6875 vt 0.4375 0.6875 -vt 0.65625 0.875 -vt 0.65625 1 +vt 0.6563 0.875 +vt 0.6563 1 vt 0.875 1 vt 0.875 0.875 vt 0.875 0.9375 @@ -5945,8 +5944,8 @@ vt 0.4375 0.9375 vt 0.4375 1 vt 0.6875 1 vt 0.875 0.9375 -vt 0.65625 0.9375 -vt 0.65625 1 +vt 0.6563 0.9375 +vt 0.6563 1 vt 0.875 1 vt 0.5625 0.9375 vt 0.4375 0.9375 @@ -5956,18 +5955,18 @@ vt 0.875 0.9375 vt 0.75 0.9375 vt 0.75 1 vt 0.875 1 -vt 0.65625 0.9375 +vt 0.6563 0.9375 vt 0.4375 0.9375 vt 0.4375 1 -vt 0.65625 1 +vt 0.6563 1 vt 0.1875 1 -vt 0.1875 0.84375 -vt 0 0.84375 +vt 0.1875 0.8438 +vt 0 0.8438 vt 0 1 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.25 0.75 vt 0.4375 0.75 vt 0.4375 0.5625 @@ -5976,65 +5975,65 @@ vt 0.4375 0.8125 vt 0.25 0.8125 vt 0.25 1 vt 0.4375 1 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.1875 1 -vt 0.1875 0.84375 -vt 0 0.84375 +vt 0.1875 0.8438 +vt 0 0.8438 vt 0 1 -vt 0.1875 0.71875 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 -vt 0.1875 0.71875 +vt 0 0.7188 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 +vt 0 0.7188 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.1875 0.8125 vt 0 0.8125 vt 0 1 vt 0.1875 1 -vt 0.1875 0.71875 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 +vt 0 0.7188 vt 0.1875 1 -vt 0.1875 0.84375 -vt 0 0.84375 +vt 0.1875 0.8438 +vt 0 0.8438 vt 0 1 vt 0 0.75 vt 0.1875 0.75 vt 0.1875 0.5625 vt 0 0.5625 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.4375 0.8125 vt 0.25 0.8125 vt 0.25 1 vt 0.4375 1 -vt 0.25 0.84375 +vt 0.25 0.8438 vt 0.25 1 vt 0.4375 1 -vt 0.4375 0.84375 +vt 0.4375 0.8438 vt 0.25 0.5625 -vt 0.25 0.71875 -vt 0.4375 0.71875 +vt 0.25 0.7188 +vt 0.4375 0.7188 vt 0.4375 0.5625 vt 0.25 0.75 vt 0.4375 0.75 @@ -6044,13 +6043,13 @@ vt 0 0.75 vt 0.1875 0.75 vt 0.1875 0.5625 vt 0 0.5625 -vt 0.1875 0.71875 +vt 0.1875 0.7188 vt 0.1875 0.5625 vt 0 0.5625 -vt 0 0.71875 +vt 0 0.7188 vt 0.1875 0.875 -vt 0.1875 0.71875 -vt 0 0.71875 +vt 0.1875 0.7188 +vt 0 0.7188 vt 0 0.875 vt 0.1875 0.8125 vt 0 0.8125 @@ -6176,12 +6175,12 @@ vt 0.1875 0.8125 vt 0 0.8125 vt 0 1 vt 0.1875 1 -vt 0.75 0.78125 -vt 0.875 0.78125 +vt 0.75 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.75 0.6875 -vt 0 0.65625 -vt 0.125 0.65625 +vt 0 0.6563 +vt 0.125 0.6563 vt 0.125 0.5625 vt 0 0.5625 vt 0.6875 1 @@ -6192,52 +6191,52 @@ vt 0.6875 0.8125 vt 0.6875 0.6875 vt 0.4375 0.6875 vt 0.4375 0.8125 -vt 0.4375 0.78125 -vt 0.6875 0.78125 +vt 0.4375 0.7813 +vt 0.6875 0.7813 vt 0.6875 0.6875 vt 0.4375 0.6875 -vt 0.625 0.78125 -vt 0.875 0.78125 +vt 0.625 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.625 0.6875 vt 0.6875 0.8125 vt 0.6875 0.6875 vt 0.4375 0.6875 vt 0.4375 0.8125 -vt 0.75 0.78125 -vt 0.875 0.78125 +vt 0.75 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 vt 0.75 0.6875 vt 0.6875 1 vt 0.6875 0.875 vt 0.4375 0.875 vt 0.4375 1 -vt 0.4375 0.78125 -vt 0.5625 0.78125 +vt 0.4375 0.7813 +vt 0.5625 0.7813 vt 0.5625 0.6875 vt 0.4375 0.6875 -vt 0.65625 0.6875 -vt 0.65625 0.8125 +vt 0.6563 0.6875 +vt 0.6563 0.8125 vt 0.875 0.8125 vt 0.875 0.6875 -vt 0.65625 0.78125 -vt 0.875 0.78125 +vt 0.6563 0.7813 +vt 0.875 0.7813 vt 0.875 0.6875 -vt 0.65625 0.6875 -vt 0.65625 0.875 -vt 0.65625 1 +vt 0.6563 0.6875 +vt 0.6563 0.875 +vt 0.6563 1 vt 0.875 1 vt 0.875 0.875 -vt 0.65625 0.6875 -vt 0.65625 0.8125 +vt 0.6563 0.6875 +vt 0.6563 0.8125 vt 0.875 0.8125 vt 0.875 0.6875 -vt 0.4375 0.78125 -vt 0.65625 0.78125 -vt 0.65625 0.6875 +vt 0.4375 0.7813 +vt 0.6563 0.7813 +vt 0.6563 0.6875 vt 0.4375 0.6875 -vt 0.65625 0.875 -vt 0.65625 1 +vt 0.6563 0.875 +vt 0.6563 1 vt 0.875 1 vt 0.875 0.875 vt 0.875 0.9375 @@ -6257,8 +6256,8 @@ vt 0.4375 0.9375 vt 0.4375 1 vt 0.6875 1 vt 0.875 0.9375 -vt 0.65625 0.9375 -vt 0.65625 1 +vt 0.6563 0.9375 +vt 0.6563 1 vt 0.875 1 vt 0.5625 0.9375 vt 0.4375 0.9375 @@ -6268,18 +6267,18 @@ vt 0.875 0.9375 vt 0.75 0.9375 vt 0.75 1 vt 0.875 1 -vt 0.65625 0.9375 +vt 0.6563 0.9375 vt 0.4375 0.9375 vt 0.4375 1 -vt 0.65625 1 -vt 0.21875 1 -vt 0.71875 1 -vt 0.71875 0.953125 -vt 0.21875 0.953125 +vt 0.6563 1 +vt 0.2188 1 +vt 0.7188 1 +vt 0.7188 0.9531 +vt 0.2188 0.9531 vt 0.1875 1 vt 0.6875 1 -vt 0.6875 0.953125 -vt 0.1875 0.953125 +vt 0.6875 0.9531 +vt 0.1875 0.9531 vt 0 0 vt 0 0.25 vt 0.5 0.25 @@ -6288,510 +6287,510 @@ vt 0 0 vt 0 0.25 vt 0.5 0.25 vt 0.5 0 -vt 0.203125 1 -vt 0.453125 1 -vt 0.453125 0.953125 -vt 0.203125 0.953125 -vt 0.15625 1 -vt 0.40625 1 -vt 0.40625 0.953125 -vt 0.15625 0.953125 -vt 0.4765625 0.609375 -vt 0.484375 0.609375 -vt 0.484375 0.4765625 -vt 0.4765625 0.4765625 -vt 0.4140625 0.609375 -vt 0.421875 0.609375 -vt 0.421875 0.4765625 -vt 0.4140625 0.4765625 -vt 0.3828125 0.5859375 -vt 0.4921875 0.5859375 -vt 0.4921875 0.578125 -vt 0.3828125 0.578125 -vt 0.3828125 0.5625 -vt 0.4921875 0.5625 -vt 0.4921875 0.5546875 -vt 0.3828125 0.5546875 -vt 0.3828125 0.609375 -vt 0.4921875 0.609375 -vt 0.4921875 0.4765625 -vt 0.3828125 0.4765625 -vt 0.4375 0.34375 -vt 0 0.34375 +vt 0.2031 1 +vt 0.4531 1 +vt 0.4531 0.9531 +vt 0.2031 0.9531 +vt 0.1563 1 +vt 0.4063 1 +vt 0.4063 0.9531 +vt 0.1563 0.9531 +vt 0.4766 0.6094 +vt 0.4844 0.6094 +vt 0.4844 0.4766 +vt 0.4766 0.4766 +vt 0.4141 0.6094 +vt 0.4219 0.6094 +vt 0.4219 0.4766 +vt 0.4141 0.4766 +vt 0.3828 0.5859 +vt 0.4922 0.5859 +vt 0.4922 0.5781 +vt 0.3828 0.5781 +vt 0.3828 0.5625 +vt 0.4922 0.5625 +vt 0.4922 0.5547 +vt 0.3828 0.5547 +vt 0.3828 0.6094 +vt 0.4922 0.6094 +vt 0.4922 0.4766 +vt 0.3828 0.4766 +vt 0.4375 0.3438 +vt 0 0.3438 vt 0 0.5 vt 0.4375 0.5 vt 0 0.5 vt 0.4375 0.5 -vt 0.4375 0.46875 -vt 0 0.46875 -vt 0.40625125 0.34375156250000005 -vt 0.40625125 0.5 -vt 0.43750125 0.500000625 -vt 0.4375 0.343749375 -vt 0.34375 0.375 +vt 0.4375 0.4688 +vt 0 0.4688 +vt 0.4063 0.3438 +vt 0.4063 0.5 +vt 0.4375 0.5 +vt 0.4375 0.3437 +vt 0.3438 0.375 vt 0.4375 0.375 -vt 0.4375 0.34375 -vt 0.34375 0.34375 -vt 0.3125 0.34374875000000005 -vt 0.3437528125 0.34375 -vt 0.3437528125 0.31250156250000005 -vt 0.3125028125 0.31249875000000005 -vt 0.34375 0.3125 +vt 0.4375 0.3438 +vt 0.3438 0.3438 +vt 0.3125 0.3437 +vt 0.3438 0.3438 +vt 0.3438 0.3125 +vt 0.3125 0.3125 +vt 0.3438 0.3125 vt 0 0.3125 -vt 0 0.34375 -vt 0.34375 0.34375 -vt 0 0.34375 -vt 0.34375 0.34375 -vt 0.34375 0.3125 +vt 0 0.3438 +vt 0.3438 0.3438 +vt 0 0.3438 +vt 0.3438 0.3438 +vt 0.3438 0.3125 vt 0 0.3125 vt 0.375 0.3125 -vt 0.375 0.28125 -vt 0.34375 0.28125 -vt 0.34375 0.3125 -vt 0.4375 0.28125 -vt 0.34375 0.28125 -vt 0.34375 0.3125 +vt 0.375 0.2813 +vt 0.3438 0.2813 +vt 0.3438 0.3125 +vt 0.4375 0.2813 +vt 0.3438 0.2813 +vt 0.3438 0.3125 vt 0.4375 0.3125 -vt 0.34375 0.3125 +vt 0.3438 0.3125 vt 0.4375 0.3125 -vt 0.4375 0.28125 -vt 0.34375 0.28125 -vt 0.34375 0.3125 +vt 0.4375 0.2813 +vt 0.3438 0.2813 +vt 0.3438 0.3125 vt 0.4375 0.3125 -vt 0.4375 0.28125 -vt 0.34375 0.28125 -vt 0.40625 0.28125 -vt 0.40625 0.3125 +vt 0.4375 0.2813 +vt 0.3438 0.2813 +vt 0.4063 0.2813 +vt 0.4063 0.3125 vt 0.4375 0.3125 -vt 0.4375 0.28125 -vt 0.4062484375 0.34375 -vt 0.40625 0.3124971875 -vt 0.375 0.3124971875 -vt 0.375 0.3437471875 -vt 0.375 0.34374875000000005 -vt 0.4062528125 0.34375 -vt 0.4062528125 0.31250156250000005 -vt 0.3750028125 0.31249875000000005 -vt 0.40625 0.3125 +vt 0.4375 0.2813 +vt 0.4062 0.3438 +vt 0.4063 0.3125 +vt 0.375 0.3125 +vt 0.375 0.3437 +vt 0.375 0.3437 +vt 0.4063 0.3438 +vt 0.4063 0.3125 +vt 0.375 0.3125 +vt 0.4063 0.3125 vt 0.375 0.3125 -vt 0.375 0.34375 -vt 0.40625 0.34375 +vt 0.375 0.3438 +vt 0.4063 0.3438 vt 0 0.5 -vt 0.03125 0.5 -vt 0.0312540625 0.31249906250000004 -vt 0.0000040625 0.31249906250000004 -vt 0.53125 1 -vt 0.53125 0.8125 +vt 0.0313 0.5 +vt 0.0313 0.3125 +vt 0 0.3125 +vt 0.5313 1 +vt 0.5313 0.8125 vt 0.4375 0.625 vt 0.4375 1 -vt 0.53125 0.8125 -vt 0.53125 1 +vt 0.5313 0.8125 +vt 0.5313 1 vt 0.4375 1 vt 0.4375 0.625 vt 0 0.8125 vt 0.4375 0.8125 vt 0.4375 0.625 vt 0 0.625 -vt 0 0.834375 -vt 0.4375 0.834375 -vt 0.4375 0.740625 -vt 0 0.740625 -vt 0 0.834375 -vt 0.4375 0.834375 -vt 0.4375 0.6247437499999999 -vt 0 0.6247437499999999 -vt 0.03125 0.625 -vt 0.40625 0.625 -vt 0.40625 0.59375 -vt 0.03125 0.59375 -vt 0.046875 0.515625 -vt 0.046875 0.609375 -vt 0.421875 0.609375 -vt 0.421875 0.515625 -vt 0.046875 0.515625 -vt 0.046875 0.609375 -vt 0.421875 0.609375 -vt 0.421875 0.515625 -vt 0.0625 0.59375 +vt 0 0.8344 +vt 0.4375 0.8344 +vt 0.4375 0.7406 +vt 0 0.7406 +vt 0 0.8344 +vt 0.4375 0.8344 +vt 0.4375 0.6247 +vt 0 0.6247 +vt 0.0313 0.625 +vt 0.4063 0.625 +vt 0.4063 0.5938 +vt 0.0313 0.5938 +vt 0.0469 0.5156 +vt 0.0469 0.6094 +vt 0.4219 0.6094 +vt 0.4219 0.5156 +vt 0.0469 0.5156 +vt 0.0469 0.6094 +vt 0.4219 0.6094 +vt 0.4219 0.5156 +vt 0.0625 0.5938 vt 0.0625 0.5 -vt 0.03125 0.5 -vt 0.03125 0.59375 -vt 0.40625 0.5 -vt 0.40625 0.59375 -vt 0.4375 0.59375 +vt 0.0313 0.5 +vt 0.0313 0.5938 +vt 0.4063 0.5 +vt 0.4063 0.5938 +vt 0.4375 0.5938 vt 0.4375 0.5 vt 0.6875 0.4375 vt 0.6875 0.0625 -vt 0.65625 0.0625 -vt 0.65625 0.4375 -vt 0.5 0.3125 -vt 0.75 0.3125 -vt 0.75 0 -vt 0.5 0 -vt 0.65625 0.4375 +vt 0.6563 0.0625 +vt 0.6563 0.4375 +vt 1 0 +vt 1 0 +vt 1 0 +vt 1 0 +vt 0.6563 0.4375 vt 0.75 0.4375 vt 0.75 0.0625 -vt 0.65625 0.0625 -vt 0.65625 0.09375 -vt 0.75 0.09375 +vt 0.6563 0.0625 +vt 0.6563 0.0938 +vt 0.75 0.0938 vt 0.75 0.0625 -vt 0.65625 0.0625 -vt 0.65625 0.4375 +vt 0.6563 0.0625 +vt 0.6563 0.4375 vt 0.75 0.4375 -vt 0.75 0.40625 -vt 0.65625 0.40625 -vt 0.9375 0.78125 +vt 0.75 0.4063 +vt 0.6563 0.4063 +vt 0.9375 0.7813 vt 0.9375 0.6875 vt 0.875 0.6875 -vt 0.875 0.78125 +vt 0.875 0.7813 vt 0.9375 0.9375 -vt 0.9375 0.84375 -vt 0.875 0.84375 +vt 0.9375 0.8438 +vt 0.875 0.8438 vt 0.875 0.9375 -vt 0.875 0.71875 -vt 0.9375 0.71875 +vt 0.875 0.7188 +vt 0.9375 0.7188 vt 0.9375 0.625 vt 0.875 0.625 -vt 0.875 0.59375 -vt 0.9375 0.59375 -vt 0.9375 0.53125 -vt 0.875 0.53125 -vt 0.875 0.84375 -vt 0.9375 0.84375 -vt 0.9375 0.78125 -vt 0.875 0.78125 -vt 0 0.765625 -vt 0.046875 0.765625 -vt 0.046875 0.7578125 -vt 0 0.7578125 -vt 0 0.765625 -vt 0.046875 0.765625 -vt 0.046875 0.7578125 -vt 0 0.7578125 -vt 0 0.8046875 -vt 0.0625 0.8046875 -vt 0.0625 0.7578125 -vt 0 0.7578125 +vt 0.875 0.5938 +vt 0.9375 0.5938 +vt 0.9375 0.5313 +vt 0.875 0.5313 +vt 0.875 0.8438 +vt 0.9375 0.8438 +vt 0.9375 0.7813 +vt 0.875 0.7813 +vt 0 0.7656 +vt 0.0469 0.7656 +vt 0.0469 0.7578 +vt 0 0.7578 +vt 0 0.7656 +vt 0.0469 0.7656 +vt 0.0469 0.7578 +vt 0 0.7578 +vt 0 0.8047 +vt 0.0625 0.8047 +vt 0.0625 0.7578 +vt 0 0.7578 vt 0 0.8125 vt 0.0625 0.8125 -vt 0.0625 0.765625 -vt 0 0.765625 -vt 0 0.765625 -vt 0.0625 0.765625 -vt 0.0625 0.7578125 -vt 0 0.7578125 -vt 0.203125 0.7578125 -vt 0.265625 0.7578125 -vt 0.265625 0.75 -vt 0.203125 0.75 -vt 0 0.765625 -vt 0.046875 0.765625 -vt 0.046875 0.7578125 -vt 0 0.7578125 -vt 0 0.765625 -vt 0.046875 0.765625 -vt 0.046875 0.7578125 -vt 0 0.7578125 +vt 0.0625 0.7656 +vt 0 0.7656 +vt 0 0.7656 +vt 0.0625 0.7656 +vt 0.0625 0.7578 +vt 0 0.7578 +vt 0.2031 0.7578 +vt 0.2656 0.7578 +vt 0.2656 0.75 +vt 0.2031 0.75 +vt 0 0.7656 +vt 0.0469 0.7656 +vt 0.0469 0.7578 +vt 0 0.7578 +vt 0 0.7656 +vt 0.0469 0.7656 +vt 0.0469 0.7578 +vt 0 0.7578 vt 0 0.8125 vt 0.0625 0.8125 -vt 0.0625 0.765625 -vt 0 0.765625 -vt 0 0.8046875 -vt 0.0625 0.8046875 -vt 0.0625 0.7578125 -vt 0 0.7578125 -vt 0.1640625 0.7734375 -vt 0.2265625 0.7734375 -vt 0.2265625 0.765625 -vt 0.1640625 0.765625 -vt 0 0.765625 -vt 0.0625 0.765625 -vt 0.0625 0.7578125 -vt 0 0.7578125 +vt 0.0625 0.7656 +vt 0 0.7656 +vt 0 0.8047 +vt 0.0625 0.8047 +vt 0.0625 0.7578 +vt 0 0.7578 +vt 0.1641 0.7734 +vt 0.2266 0.7734 +vt 0.2266 0.7656 +vt 0.1641 0.7656 +vt 0 0.7656 +vt 0.0625 0.7656 +vt 0.0625 0.7578 +vt 0 0.7578 vt 0 1 -vt 0.09375 1 -vt 0.09375 0.90625 -vt 0 0.90625 +vt 0.0938 1 +vt 0.0938 0.9063 +vt 0 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.078125 1 -vt 0.09375 1 -vt 0.09375 0.90625 -vt 0.078125 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.0781 1 +vt 0.0938 1 +vt 0.0938 0.9063 +vt 0.0781 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.65625 1 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.6563 1 vt 0.75 1 -vt 0.75 0.90625 -vt 0.65625 0.90625 +vt 0.75 0.9063 +vt 0.6563 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.078125 1 -vt 0.09375 1 -vt 0.09375 0.90625 -vt 0.078125 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.0781 1 +vt 0.0938 1 +vt 0.0938 0.9063 +vt 0.0781 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 vt 0.1875 1 -vt 0.28125 1 -vt 0.28125 0.90625 -vt 0.1875 0.90625 +vt 0.2813 1 +vt 0.2813 0.9063 +vt 0.1875 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.078125 1 -vt 0.09375 1 -vt 0.09375 0.90625 -vt 0.078125 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.0781 1 +vt 0.0938 1 +vt 0.0938 0.9063 +vt 0.0781 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.28125 1 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.2813 1 vt 0.375 1 -vt 0.375 0.90625 -vt 0.28125 0.90625 +vt 0.375 0.9063 +vt 0.2813 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.078125 1 -vt 0.09375 1 -vt 0.09375 0.90625 -vt 0.078125 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.0781 1 +vt 0.0938 1 +vt 0.0938 0.9063 +vt 0.0781 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 vt 0 1 -vt 0.015625 1 -vt 0.015625 0.90625 -vt 0 0.90625 -vt 0.3984375 0.875 -vt 0.2734375 0.875 -vt 0.2734375 1 -vt 0.3984375 1 -vt 0.3984375 0.875 -vt 0.2734375 0.875 -vt 0.2734375 1 -vt 0.3984375 1 -vt 0.2734375 1 -vt 0.3984375 1 -vt 0.3984375 0.875 -vt 0.2734375 0.875 -vt 0.3984375 0.875 -vt 0.5234375 0.875 -vt 0.5234375 0.75 -vt 0.3984375 0.75 -vt 0.5234375 0.875 -vt 0.3984375 0.875 -vt 0.3984375 1 -vt 0.5234375 1 -vt 0.14898046875 0.87446171875 -vt 0.14789921875 0.99945703125 -vt 0.27289453125 1 -vt 0.27397578125 0.87554296875 -vt 0.3984375 0.875 -vt 0.5234375 0.875 -vt 0.5234375 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.5234375 0.875 -vt 0.5234375 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.5234375 0.875 -vt 0.5234375 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.5234375 0.875 -vt 0.5234375 0.75 -vt 0.3984375 0.75 -vt 0.28125 0.9609375 -vt 0.3984375 0.9609375 -vt 0.3984375 0.9140625 -vt 0.28125 0.9140625 -vt 0.2734375 0.96875 -vt 0.390625 0.96875 -vt 0.390625 0.91241328125 -vt 0.2734375 0.91241328125 -vt 0.3203125 1 -vt 0.3515625 1 -vt 0.3515625 0.8828125 -vt 0.3203125 0.8828125 -vt 0.2578125 0.640625 -vt 0.3203125 0.640625 -vt 0.3203125 0.59375 -vt 0.2578125 0.59375 -vt 0.2578125 0.640625 -vt 0.3203125 0.640625 -vt 0.3203125 0.59375 -vt 0.2578125 0.59375 +vt 0.0156 1 +vt 0.0156 0.9063 +vt 0 0.9063 +vt 0.3984 0.875 +vt 0.2734 0.875 +vt 0.2734 1 +vt 0.3984 1 +vt 0.3984 0.875 +vt 0.2734 0.875 +vt 0.2734 1 +vt 0.3984 1 +vt 0.2734 1 +vt 0.3984 1 +vt 0.3984 0.875 +vt 0.2734 0.875 +vt 0.3984 0.875 +vt 0.5234 0.875 +vt 0.5234 0.75 +vt 0.3984 0.75 +vt 0.5234 0.875 +vt 0.3984 0.875 +vt 0.3984 1 +vt 0.5234 1 +vt 0.149 0.8745 +vt 0.1479 0.9995 +vt 0.2729 1 +vt 0.274 0.8755 +vt 0.3984 0.875 +vt 0.5234 0.875 +vt 0.5234 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.5234 0.875 +vt 0.5234 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.5234 0.875 +vt 0.5234 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.5234 0.875 +vt 0.5234 0.75 +vt 0.3984 0.75 +vt 0.2813 0.9609 +vt 0.3984 0.9609 +vt 0.3984 0.9141 +vt 0.2813 0.9141 +vt 0.2734 0.9688 +vt 0.3906 0.9688 +vt 0.3906 0.9124 +vt 0.2734 0.9124 +vt 0.3203 1 +vt 0.3516 1 +vt 0.3516 0.8828 +vt 0.3203 0.8828 +vt 0.2578 0.6406 +vt 0.3203 0.6406 +vt 0.3203 0.5938 +vt 0.2578 0.5938 +vt 0.2578 0.6406 +vt 0.3203 0.6406 +vt 0.3203 0.5938 +vt 0.2578 0.5938 vt 0.0625 0.8125 -vt 0.140625 0.8125 -vt 0.140625 0.796875 -vt 0.0625 0.796875 -vt 0.0625 0.921875 -vt 0.140625 0.921875 -vt 0.140625 0.90625 -vt 0.0625 0.90625 +vt 0.1406 0.8125 +vt 0.1406 0.7969 +vt 0.0625 0.7969 +vt 0.0625 0.9219 +vt 0.1406 0.9219 +vt 0.1406 0.9063 +vt 0.0625 0.9063 vt 0 1 -vt 0.046875 1 -vt 0.046875 0.921875 -vt 0 0.921875 -vt 0.046940546875 0.906449453125 -vt 0.000067265625 0.90605109375 -vt 0 0.921675546875 -vt 0.046807734375 0.92207390625 -vt 0 0.921875 -vt 0.046875 0.921875 -vt 0.046875 0.90625 -vt 0 0.90625 -vt 0.0390625 0.828125 -vt 0.1171875 0.828125 -vt 0.1171875 0.8125 -vt 0.0390625 0.8125 +vt 0.0469 1 +vt 0.0469 0.9219 +vt 0 0.9219 +vt 0.0469 0.9064 +vt 0.0001 0.9061 +vt 0 0.9217 +vt 0.0468 0.9221 +vt 0 0.9219 +vt 0.0469 0.9219 +vt 0.0469 0.9063 +vt 0 0.9063 +vt 0.0391 0.8281 +vt 0.1172 0.8281 +vt 0.1172 0.8125 +vt 0.0391 0.8125 vt 0.0625 0.8125 -vt 0.140625 0.8125 -vt 0.140625 0.796875 -vt 0.0625 0.796875 -vt 0 0.90625 -vt 0.046875 0.90625 -vt 0.046875 0.828125 -vt 0 0.828125 -vt 0.046875 0.90625 -vt 0.09375 0.90625 -vt 0.09375 0.828125 -vt 0.046875 0.828125 -vt 0 0.828125 -vt 0.046875 0.828125 -vt 0.046875 0.8125 +vt 0.1406 0.8125 +vt 0.1406 0.7969 +vt 0.0625 0.7969 +vt 0 0.9063 +vt 0.0469 0.9063 +vt 0.0469 0.8281 +vt 0 0.8281 +vt 0.0469 0.9063 +vt 0.0938 0.9063 +vt 0.0938 0.8281 +vt 0.0469 0.8281 +vt 0 0.8281 +vt 0.0469 0.8281 +vt 0.0469 0.8125 vt 0 0.8125 -vt 0.046940546875 0.812699453125 -vt 0.000067265625 0.81230109375 -vt 0 0.827925546875 -vt 0.046807734375 0.82832390625 -vt 0.453125 0.734375 -vt 0.46875 0.734375 -vt 0.46875 0.71875 -vt 0.453125 0.71875 -vt 0.34375 0.796875 -vt 0.46875 0.796875 -vt 0.46875 0.78125 -vt 0.34375 0.78125 -vt 0.34375 0.75 -vt 0.46875 0.75 -vt 0.46875 0.734375 -vt 0.34375 0.734375 -vt 0.34375 0.734375 -vt 0.46875 0.734375 -vt 0.46875 0.71875 -vt 0.34375 0.71875 -vt 0.34375 0.734375 -vt 0.46875 0.734375 -vt 0.46875 0.71875 -vt 0.34375 0.71875 -vt 0.84375 0.703125 -vt 0.890625 0.703125 -vt 0.890625 0.53125 -vt 0.84375 0.53125 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.75 -vt 0.890625 0.75 -vt 0.890625 0.703125 -vt 0.84375 0.703125 -vt 0.84375 0.6875 -vt 0.890625 0.6875 -vt 0.890625 0.515625 -vt 0.84375 0.515625 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.703125 -vt 0.890625 0.703125 -vt 0.890625 0.53125 -vt 0.84375 0.53125 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.75 -vt 0.890625 0.75 -vt 0.890625 0.703125 -vt 0.84375 0.703125 -vt 0.84375 0.6875 -vt 0.890625 0.6875 -vt 0.890625 0.515625 -vt 0.84375 0.515625 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.703125 -vt 0.890625 0.703125 -vt 0.890625 0.53125 -vt 0.84375 0.53125 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.75 -vt 0.890625 0.75 -vt 0.890625 0.703125 -vt 0.84375 0.703125 -vt 0.84375 0.6875 -vt 0.890625 0.6875 -vt 0.890625 0.515625 -vt 0.84375 0.515625 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.703125 -vt 0.890625 0.703125 -vt 0.890625 0.53125 -vt 0.84375 0.53125 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 -vt 0.84375 0.75 -vt 0.890625 0.75 -vt 0.890625 0.703125 -vt 0.84375 0.703125 -vt 0.84375 0.6875 -vt 0.890625 0.6875 -vt 0.890625 0.515625 -vt 0.84375 0.515625 -vt 0.84375 0.671875 -vt 0.890625 0.671875 -vt 0.890625 0.5 -vt 0.84375 0.5 +vt 0.0469 0.8127 +vt 0.0001 0.8123 +vt 0 0.8279 +vt 0.0468 0.8283 +vt 0.4531 0.7344 +vt 0.4688 0.7344 +vt 0.4688 0.7188 +vt 0.4531 0.7188 +vt 0.3438 0.7969 +vt 0.4688 0.7969 +vt 0.4688 0.7813 +vt 0.3438 0.7813 +vt 0.3438 0.75 +vt 0.4688 0.75 +vt 0.4688 0.7344 +vt 0.3438 0.7344 +vt 0.3438 0.7344 +vt 0.4688 0.7344 +vt 0.4688 0.7188 +vt 0.3438 0.7188 +vt 0.3438 0.7344 +vt 0.4688 0.7344 +vt 0.4688 0.7188 +vt 0.3438 0.7188 +vt 0.8438 0.7031 +vt 0.8906 0.7031 +vt 0.8906 0.5313 +vt 0.8438 0.5313 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.75 +vt 0.8906 0.75 +vt 0.8906 0.7031 +vt 0.8438 0.7031 +vt 0.8438 0.6875 +vt 0.8906 0.6875 +vt 0.8906 0.5156 +vt 0.8438 0.5156 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.7031 +vt 0.8906 0.7031 +vt 0.8906 0.5313 +vt 0.8438 0.5313 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.75 +vt 0.8906 0.75 +vt 0.8906 0.7031 +vt 0.8438 0.7031 +vt 0.8438 0.6875 +vt 0.8906 0.6875 +vt 0.8906 0.5156 +vt 0.8438 0.5156 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.7031 +vt 0.8906 0.7031 +vt 0.8906 0.5313 +vt 0.8438 0.5313 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.75 +vt 0.8906 0.75 +vt 0.8906 0.7031 +vt 0.8438 0.7031 +vt 0.8438 0.6875 +vt 0.8906 0.6875 +vt 0.8906 0.5156 +vt 0.8438 0.5156 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.7031 +vt 0.8906 0.7031 +vt 0.8906 0.5313 +vt 0.8438 0.5313 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 +vt 0.8438 0.75 +vt 0.8906 0.75 +vt 0.8906 0.7031 +vt 0.8438 0.7031 +vt 0.8438 0.6875 +vt 0.8906 0.6875 +vt 0.8906 0.5156 +vt 0.8438 0.5156 +vt 0.8438 0.6719 +vt 0.8906 0.6719 +vt 0.8906 0.5 +vt 0.8438 0.5 vt 0.5625 0.9375 vt 0.6875 0.9375 vt 0.6875 0.0625 @@ -6824,1239 +6823,1239 @@ vt 0.5625 0.9375 vt 0.6875 0.9375 vt 0.6875 0.0625 vt 0.5625 0.0625 -vt 0.6875 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.6875 0.3671875 -vt 0.65625 0.3671875 -vt 0.6953125 0.3671875 -vt 0.6953125 0.359375 -vt 0.65625 0.359375 -vt 0.65625 0.2890625 -vt 0.6953125 0.2890625 -vt 0.6953125 0.28125 -vt 0.65625 0.28125 -vt 0.65625 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.65625 0.3671875 -vt 0.65625 0.3203125 -vt 0.6953125 0.3203125 -vt 0.6953125 0.28125 -vt 0.65625 0.28125 -vt 0.6796875 0.3984375 -vt 0.6875 0.3984375 -vt 0.6875 0.359375 -vt 0.6796875 0.359375 -vt 0.65625 0.3671875 -vt 0.6953125 0.3671875 -vt 0.6953125 0.359375 -vt 0.65625 0.359375 -vt 0.65625 0.2890625 -vt 0.6953125 0.2890625 -vt 0.6953125 0.28125 -vt 0.65625 0.28125 -vt 0.65625 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.65625 0.3671875 -vt 0.65625 0.3203125 -vt 0.6953125 0.3203125 -vt 0.6953125 0.28125 -vt 0.65625 0.28125 -vt 0.6875 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.6875 0.3671875 -vt 0.6796875 0.3984375 -vt 0.6875 0.3984375 -vt 0.6875 0.359375 -vt 0.6796875 0.359375 -vt 0.65625 0.3671875 -vt 0.6953125 0.3671875 -vt 0.6953125 0.359375 -vt 0.65625 0.359375 -vt 0.65625 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.65625 0.3671875 -vt 0.6875 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.6875 0.3671875 -vt 0.6796875 0.3984375 -vt 0.6875 0.3984375 -vt 0.6875 0.359375 -vt 0.6796875 0.359375 -vt 0.65625 0.3671875 -vt 0.6953125 0.3671875 -vt 0.6953125 0.359375 -vt 0.65625 0.359375 -vt 0.65625 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.65625 0.3671875 -vt 0.6875 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.6875 0.3671875 -vt 0.6796875 0.3984375 -vt 0.6875 0.3984375 -vt 0.6875 0.359375 -vt 0.6796875 0.359375 -vt 0.65625 0.3671875 -vt 0.6953125 0.3671875 -vt 0.6953125 0.359375 -vt 0.65625 0.359375 -vt 0.65625 0.40625 -vt 0.6953125 0.40625 -vt 0.6953125 0.3671875 -vt 0.65625 0.3671875 -vt 0.46875 0.109375 -vt 0.40625 0.109375 -vt 0.40625 0.1796875 -vt 0.46875 0.1796875 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.4765625 -vt 0.515625 0.4765625 -vt 0.515625 0.4140625 -vt 0.46875 0.4140625 -vt 0.46875 0.109375 -vt 0.421875 0.109375 -vt 0.421875 0.1796875 -vt 0.46875 0.1796875 -vt 0.4453125 0.109375 -vt 0.3984375 0.109375 -vt 0.3984375 0.1796875 -vt 0.4453125 0.1796875 -vt 0.3984375 0.125 -vt 0.4609375 0.125 -vt 0.4609375 0.0546875 -vt 0.3984375 0.0546875 -vt 0.3984375 0.125 -vt 0.4453125 0.125 -vt 0.4453125 0.0546875 -vt 0.3984375 0.0546875 -vt 0.3984375 0.125 -vt 0.4453125 0.125 -vt 0.4453125 0.0546875 -vt 0.3984375 0.0546875 -vt 1 0.640625 +vt 0.6875 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6875 0.3672 +vt 0.6563 0.3672 +vt 0.6953 0.3672 +vt 0.6953 0.3594 +vt 0.6563 0.3594 +vt 0.6563 0.2891 +vt 0.6953 0.2891 +vt 0.6953 0.2813 +vt 0.6563 0.2813 +vt 0.6563 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6563 0.3672 +vt 0.6563 0.3203 +vt 0.6953 0.3203 +vt 0.6953 0.2813 +vt 0.6563 0.2813 +vt 0.6797 0.3984 +vt 0.6875 0.3984 +vt 0.6875 0.3594 +vt 0.6797 0.3594 +vt 0.6563 0.3672 +vt 0.6953 0.3672 +vt 0.6953 0.3594 +vt 0.6563 0.3594 +vt 0.6563 0.2891 +vt 0.6953 0.2891 +vt 0.6953 0.2813 +vt 0.6563 0.2813 +vt 0.6563 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6563 0.3672 +vt 0.6563 0.3203 +vt 0.6953 0.3203 +vt 0.6953 0.2813 +vt 0.6563 0.2813 +vt 0.6875 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6875 0.3672 +vt 0.6797 0.3984 +vt 0.6875 0.3984 +vt 0.6875 0.3594 +vt 0.6797 0.3594 +vt 0.6563 0.3672 +vt 0.6953 0.3672 +vt 0.6953 0.3594 +vt 0.6563 0.3594 +vt 0.6563 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6563 0.3672 +vt 0.6875 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6875 0.3672 +vt 0.6797 0.3984 +vt 0.6875 0.3984 +vt 0.6875 0.3594 +vt 0.6797 0.3594 +vt 0.6563 0.3672 +vt 0.6953 0.3672 +vt 0.6953 0.3594 +vt 0.6563 0.3594 +vt 0.6563 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6563 0.3672 +vt 0.6875 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6875 0.3672 +vt 0.6797 0.3984 +vt 0.6875 0.3984 +vt 0.6875 0.3594 +vt 0.6797 0.3594 +vt 0.6563 0.3672 +vt 0.6953 0.3672 +vt 0.6953 0.3594 +vt 0.6563 0.3594 +vt 0.6563 0.4063 +vt 0.6953 0.4063 +vt 0.6953 0.3672 +vt 0.6563 0.3672 +vt 0.4688 0.1094 +vt 0.4063 0.1094 +vt 0.4063 0.1797 +vt 0.4688 0.1797 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.4766 +vt 0.5156 0.4766 +vt 0.5156 0.4141 +vt 0.4688 0.4141 +vt 0.4688 0.1094 +vt 0.4219 0.1094 +vt 0.4219 0.1797 +vt 0.4688 0.1797 +vt 0.4453 0.1094 +vt 0.3984 0.1094 +vt 0.3984 0.1797 +vt 0.4453 0.1797 +vt 0.3984 0.125 +vt 0.4609 0.125 +vt 0.4609 0.0547 +vt 0.3984 0.0547 +vt 0.3984 0.125 +vt 0.4453 0.125 +vt 0.4453 0.0547 +vt 0.3984 0.0547 +vt 0.3984 0.125 +vt 0.4453 0.125 +vt 0.4453 0.0547 +vt 0.3984 0.0547 +vt 1 0.6406 vt 1 0.6875 -vt 0.953125 0.6875 -vt 0.953125 0.640625 -vt 0.84375 1 -vt 0.84375 0.953125 -vt 0.828125 0.953125 -vt 0.828125 1 -vt 0.890625 0.953125 -vt 0.890625 1 +vt 0.9531 0.6875 +vt 0.9531 0.6406 +vt 0.8438 1 +vt 0.8438 0.9531 +vt 0.8281 0.9531 +vt 0.8281 1 +vt 0.8906 0.9531 +vt 0.8906 1 vt 0.875 1 -vt 0.875 0.953125 -vt 1 0.640625 +vt 0.875 0.9531 +vt 1 0.6406 vt 1 0.6875 -vt 0.984375 0.6875 -vt 0.984375 0.640625 -vt 0.96875 0.65625 -vt 0.96875 0.703125 -vt 0.953125 0.703125 -vt 0.953125 0.65625 -vt 1 0.640625 +vt 0.9844 0.6875 +vt 0.9844 0.6406 +vt 0.9688 0.6563 +vt 0.9688 0.7031 +vt 0.9531 0.7031 +vt 0.9531 0.6563 +vt 1 0.6406 vt 1 0.6875 -vt 0.953125 0.6875 -vt 0.953125 0.640625 -vt 0.84375 1 -vt 0.84375 0.953125 -vt 0.828125 0.953125 -vt 0.828125 1 -vt 0.890625 0.953125 -vt 0.890625 1 +vt 0.9531 0.6875 +vt 0.9531 0.6406 +vt 0.8438 1 +vt 0.8438 0.9531 +vt 0.8281 0.9531 +vt 0.8281 1 +vt 0.8906 0.9531 +vt 0.8906 1 vt 0.875 1 -vt 0.875 0.953125 -vt 1 0.640625 +vt 0.875 0.9531 +vt 1 0.6406 vt 1 0.6875 -vt 0.984375 0.6875 -vt 0.984375 0.640625 -vt 0.96875 0.65625 -vt 0.96875 0.703125 -vt 0.953125 0.703125 -vt 0.953125 0.65625 -vt 0.953125 0.6875 +vt 0.9844 0.6875 +vt 0.9844 0.6406 +vt 0.9688 0.6563 +vt 0.9688 0.7031 +vt 0.9531 0.7031 +vt 0.9531 0.6563 +vt 0.9531 0.6875 vt 1 0.6875 -vt 1 0.640625 -vt 0.953125 0.640625 -vt 0.828125 0.953125 -vt 0.84375 0.953125 -vt 0.84375 1 -vt 0.828125 1 +vt 1 0.6406 +vt 0.9531 0.6406 +vt 0.8281 0.9531 +vt 0.8438 0.9531 +vt 0.8438 1 +vt 0.8281 1 vt 0.875 1 -vt 0.890625 1 -vt 0.890625 0.953125 -vt 0.875 0.953125 -vt 0.984375 0.6875 +vt 0.8906 1 +vt 0.8906 0.9531 +vt 0.875 0.9531 +vt 0.9844 0.6875 vt 1 0.6875 -vt 1 0.640625 -vt 0.984375 0.640625 -vt 0.953125 0.703125 -vt 0.96875 0.703125 -vt 0.96875 0.65625 -vt 0.953125 0.65625 -vt 0.953125 0.6875 +vt 1 0.6406 +vt 0.9844 0.6406 +vt 0.9531 0.7031 +vt 0.9688 0.7031 +vt 0.9688 0.6563 +vt 0.9531 0.6563 +vt 0.9531 0.6875 vt 1 0.6875 -vt 1 0.640625 -vt 0.953125 0.640625 -vt 0.828125 0.953125 -vt 0.84375 0.953125 -vt 0.84375 1 -vt 0.828125 1 +vt 1 0.6406 +vt 0.9531 0.6406 +vt 0.8281 0.9531 +vt 0.8438 0.9531 +vt 0.8438 1 +vt 0.8281 1 vt 0.875 1 -vt 0.890625 1 -vt 0.890625 0.953125 -vt 0.875 0.953125 -vt 0.984375 0.6875 +vt 0.8906 1 +vt 0.8906 0.9531 +vt 0.875 0.9531 +vt 0.9844 0.6875 vt 1 0.6875 -vt 1 0.640625 -vt 0.984375 0.640625 -vt 0.953125 0.703125 -vt 0.96875 0.703125 -vt 0.96875 0.65625 -vt 0.953125 0.65625 -vt 0.6796875 0.3984375 -vt 0.6875 0.3984375 -vt 0.6875 0.359375 -vt 0.6796875 0.359375 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.921875 -vt 0.5625 0.921875 -vt 0.5625 0.90625 -vt 0.546875 0.90625 -vt 0.546875 0.0859375 -vt 0.5625 0.0859375 -vt 0.5625 0.0703125 -vt 0.546875 0.0703125 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.3046875 0.875 -vt 0.3984375 0.875 -vt 0.3984375 0.75 -vt 0.3046875 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.3046875 0.875 -vt 0.3046875 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.3046875 0.875 -vt 0.3046875 0.75 -vt 0.3046875 0.875 -vt 0.3984375 0.875 -vt 0.3984375 0.75 -vt 0.3046875 0.75 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.921875 -vt 0.5625 0.921875 -vt 0.5625 0.90625 -vt 0.546875 0.90625 -vt 0.546875 0.0859375 -vt 0.5625 0.0859375 -vt 0.5625 0.0703125 -vt 0.546875 0.0703125 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.3046875 0.875 -vt 0.3046875 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.3046875 0.875 -vt 0.3046875 0.75 -vt 0.3046875 0.875 -vt 0.3984375 0.875 -vt 0.3984375 0.75 -vt 0.3046875 0.75 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.3046875 0.875 -vt 0.3046875 0.75 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.921875 -vt 0.5625 0.921875 -vt 0.5625 0.90625 -vt 0.546875 0.90625 -vt 0.546875 0.0859375 -vt 0.5625 0.0859375 -vt 0.5625 0.0703125 -vt 0.546875 0.0703125 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.3046875 0.875 -vt 0.3984375 0.875 -vt 0.3984375 0.75 -vt 0.3046875 0.75 -vt 0.3046875 0.875 -vt 0.3984375 0.875 -vt 0.3984375 0.75 -vt 0.3046875 0.75 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.84375 -vt 0.5625 0.84375 -vt 0.5625 0.71875 -vt 0.546875 0.71875 -vt 0.546875 0.921875 -vt 0.5625 0.921875 -vt 0.5625 0.90625 -vt 0.546875 0.90625 -vt 0.546875 0.0859375 -vt 0.5625 0.0859375 -vt 0.5625 0.0703125 -vt 0.546875 0.0703125 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.5234375 0.84375 -vt 0.5390625 0.84375 -vt 0.5390625 0.71875 -vt 0.5234375 0.71875 -vt 0.2421875 0.75 -vt 0.2421875 0.875 -vt 0.1484375 0.875 -vt 0.1484375 0.75 -vt 0.1484375 0.2890625 -vt 0.2421875 0.2890625 -vt 0.2421875 0.2890625 -vt 0.1484375 0.2890625 -vt 0.1484375 0.875 -vt 0.2421875 0.875 -vt 0.2421875 0.75 -vt 0.1484375 0.75 -vt 0.1484375 0.2890625 -vt 0.2421875 0.2890625 -vt 0.2421875 0.2890625 -vt 0.1484375 0.2890625 -vt 0.2421875 0.75 -vt 0.2421875 0.875 -vt 0.1484375 0.875 -vt 0.1484375 0.75 -vt 0.1484375 0.2890625 -vt 0.2421875 0.2890625 -vt 0.2421875 0.2890625 -vt 0.1484375 0.2890625 -vt 0.2421875 0.75 -vt 0.2421875 0.875 -vt 0.1484375 0.875 -vt 0.1484375 0.75 -vt 0.1484375 0.2890625 -vt 0.2421875 0.2890625 -vt 0.2421875 0.2890625 -vt 0.1484375 0.2890625 -vt 0.1484375 0.875 -vt 0.2421875 0.875 -vt 0.2421875 0.75 -vt 0.1484375 0.75 -vt 0.3125 0.296875 -vt 0.40625 0.296875 -vt 0.40625 0.296875 -vt 0.3125 0.296875 -vt 0.3984375 0.75 -vt 0.3984375 0.875 -vt 0.3046875 0.875 -vt 0.3046875 0.75 -vt 0.40625 0.0703125 -vt 0.40625 0.0703125 -vt 0.40625 0.0703125 -vt 0.40625 0.0703125 -vt 0.3125 0.296875 -vt 0.40625 0.296875 -vt 0.40625 0.296875 -vt 0.3125 0.296875 -vt 0.2421875 0.75 -vt 0.2421875 0.875 -vt 0.1484375 0.875 -vt 0.1484375 0.75 -vt 0.3125 0.296875 -vt 0.40625 0.296875 -vt 0.40625 0.296875 -vt 0.3125 0.296875 -vt 0.2421875 0.75 -vt 0.2421875 0.875 -vt 0.1484375 0.875 -vt 0.1484375 0.75 -vt 0.3125 0.296875 -vt 0.40625 0.296875 -vt 0.40625 0.296875 -vt 0.3125 0.296875 -vt 0.1484375 0.875 -vt 0.2421875 0.875 -vt 0.2421875 0.75 -vt 0.1484375 0.75 -vt 0.40625 0.0703125 -vt 0.40625 0.0703125 -vt 0.40625 0.0703125 -vt 0.40625 0.0703125 -vt 0.3125 0.296875 -vt 0.40625 0.296875 -vt 0.40625 0.296875 -vt 0.3125 0.296875 -vt 0.2421875 0.75 -vt 0.2421875 0.875 -vt 0.1484375 0.875 -vt 0.1484375 0.75 -vt 0.2421875 0.0703125 -vt 0.2421875 0.0703125 -vt 0.2421875 0.0703125 -vt 0.2421875 0.0703125 -vt 0.1484375 0.2890625 -vt 0.2421875 0.2890625 -vt 0.2421875 0.2890625 -vt 0.1484375 0.2890625 -vt 0.1484375 0.875 -vt 0.2421875 0.875 -vt 0.2421875 0.75 -vt 0.1484375 0.75 -vt 0.2421875 0.0703125 -vt 0.2421875 0.0703125 -vt 0.2421875 0.0703125 -vt 0.2421875 0.0703125 -vt 0.1484375 0.2890625 -vt 0.2421875 0.2890625 -vt 0.2421875 0.2890625 -vt 0.1484375 0.2890625 -vt 0.1484375 0.875 -vt 0.2421875 0.875 -vt 0.2421875 0.75 -vt 0.1484375 0.75 -vt 0 0.5859375 -vt 0.125 0.5859375 -vt 0.125 0.5703125 -vt 0 0.5703125 -vt 0 0.5859375 -vt 0.125 0.5859375 -vt 0.125 0.5703125 -vt 0 0.5703125 -vt 0 0.7109375 -vt 0.125 0.7109375 -vt 0.125 0.5859375 -vt 0 0.5859375 -vt 0 0.5859375 -vt 0.125 0.5859375 -vt 0.125 0.5703125 -vt 0 0.5703125 -vt 0 0.5859375 -vt 0.125 0.5859375 -vt 0.125 0.5703125 -vt 0 0.5703125 -vn -0.006953129948134959 -0.06615461242412583 -0.997785157856609 -vn 0.006953129948134959 0.06615461242412583 0.997785157856609 -vn -0.9945218953682733 0.10452846326765335 -9.429054915185237e-18 -vn 0.9945218953682733 -0.10452846326765335 9.429054915185237e-18 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.981627139569143 0.19080922111182785 -1.7212064235367933e-17 -vn 0.981627139569143 -0.19080922111182785 1.7212064235367933e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.981627214811499 0.19080883402353155 -1.721202931782788e-17 -vn 0.9816270220859591 -0.19080982550867737 1.7212118755360924e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.9396926087880614 0.3420201762894807 -3.08521423114886e-17 -vn 0.9396925260457965 -0.34202040362187475 3.0852162818148315e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.0000010211914867330753 0.9999999999994788 -9.020562075074698e-17 -vn -7.598723487517447e-7 -0.9999999999997113 9.020562075076795e-17 -vn -0.9999999999988488 -0.0000015173765704895588 1.3687589545574377e-22 -vn 0.9999999999998888 -4.716667915960481e-7 4.2546995721338364e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000017264368727398786 0.9999999999985099 -9.020562075065957e-17 -vn -0.9999999999999946 1.0531672370306386e-7 -9.500160435341396e-24 -vn 0.9999999999999816 -1.9242363843985366e-7 1.7357693749704445e-23 -vn -0.006953129948134959 -0.06615461242412583 -0.997785157856609 -vn 0.006953129948134959 0.06615461242412583 0.997785157856609 -vn -0.9945218953682733 0.10452846326765335 -9.429054915185237e-18 -vn 0.9945218953682733 -0.10452846326765335 9.429054915185237e-18 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.981627139569143 0.19080922111182785 -1.7212064235367933e-17 -vn 0.981627139569143 -0.19080922111182785 1.7212064235367933e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.981627214811499 0.19080883402353155 -1.721202931782788e-17 -vn 0.9816270220859591 -0.19080982550867737 1.7212118755360924e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.9396926087880614 0.3420201762894807 -3.08521423114886e-17 -vn 0.9396925260457965 -0.34202040362187475 3.0852162818148315e-17 -vn -0.9612615527842403 2.196669901394221e-7 0.2756378550540234 -vn 0.9612616261715452 -2.910073124973156e-7 -0.2756375991223836 -vn 0.07134058557737862 0.9659257920869642 0.24879285566641132 -vn -0.07134034642238603 -0.9659257920869939 -0.24879292424312943 -vn 0.2662448125900969 -0.2588191748923587 0.9285075845015499 -vn -0.2662457713686589 0.25881827802364493 -0.9285075595756792 -vn 0.21643987640204748 3.2842079734918267e-7 -0.9762959489329857 -vn -0.21643987640172888 1.0208750224338647e-7 0.976295948933106 -vn 7.407180178248263e-7 0.999999999999573 -5.525780820466885e-7 -vn -9.108012873487727e-7 -0.9999999999994527 5.148716726812133e-7 -vn -0.9762957943484533 -0.0000014814083646313976 -0.21644057368092526 -vn 0.976296066525829 -4.6048643369267506e-7 0.21643934597476092 -vn 0.9762957162720931 -4.60486268685778e-7 0.21644092586326857 -vn 0.2164398764017311 -1.0208750224685592e-7 -0.9762959489331056 -vn -0.9762961446024037 2.563855203696619e-7 -0.21643899379367162 -vn -0.21643987640176396 5.6839362480576305e-8 0.976295948933102 -vn 0.9762961814151078 -4.604864880658477e-7 0.21643882774138984 -vn 6.697367446323321e-7 -0.9999999999992312 0.00000104371392012288 -vn -0.97629571627213 2.563854078901917e-7 -0.2164409258634404 -vn -0.976295753084585 -0.0000014814083020286972 -0.2164407598092569 -vn -0.0000010662011988293865 0.9999999999991546 7.446197061551699e-7 -vn 0.9762958311627261 -4.6048632269812817e-7 0.21644040762775799 -vn 9.108004501434674e-7 0.9999999999994528 -5.148718582912688e-7 -vn 0.21643983958846721 3.2842074149108674e-7 -0.9762959570943694 -vn 0.2164401898421009 -1.0208765008345999e-7 -0.9762958794449073 -vn 7.074442161109086e-7 -0.9999999999993683 8.736266964507545e-7 -vn -7.784237449487421e-7 -0.999999999999436 7.22662685699606e-7 -vn -0.21643987640176618 5.6839362480576305e-8 0.9762959489331015 -vn -0.2164398395888498 1.0208748488227395e-7 0.9762959570943346 -vn -0.0000012362876192911767 0.999999999998986 7.069125035309462e-7 -vn -0.38268279512602515 -5.606730116292091e-7 -0.9238797964639223 -vn 0.3826833811527889 -2.90790519379136e-7 0.9238795537240689 -vn 5.125968895874912e-7 0.9999999999992013 0.0000011553794317182706 -vn 1.217161799266231e-7 -0.999999999999922 3.759863845809884e-7 -vn -0.9238797850853899 -0.0000015950201299463891 0.38268282259337116 -vn 0.9238794794132584 0.0000013535865649033638 -0.3826835605526506 -vn 0.9238794794140401 -9.434578587957931e-7 -0.38268356055199504 -vn -0.3826833811527729 3.907930106808455e-7 -0.9238795537240387 -vn -0.923879137463964 9.434575096028963e-7 0.38268438609113914 -vn 0.38268331955939183 -3.90792947863039e-7 0.923879579236846 -vn 0.9238797234916254 -9.4345810805474e-7 -0.382682971296278 -vn 1.217153613869426e-7 -0.999999999999922 3.759860459956423e-7 -vn -0.9238794794140405 9.434578587819153e-7 0.382683560551994 -vn -0.9238795410079788 -0.0000015950197085751183 0.38268341184893623 -vn -5.5046834410155134e-8 0.9999999999999755 -2.1503302218275585e-7 -vn 0.9238791990582441 0.0000013535861541486005 -0.38268423738856217 -vn -0.0000010187671919265064 0.9999999999978797 0.0000017896911633896004 -vn -0.3826833811527696 -5.606738702271242e-7 -0.9238795537239527 -vn -0.3826833811527729 3.907930106808455e-7 -0.9238795537240387 -vn 1.2171560097307133e-7 -0.999999999999922 3.759866243873653e-7 -vn 1.2171536195593194e-7 -0.9999999999999221 3.7598604576742955e-7 -vn 0.3826833811527729 -3.907930107641122e-7 0.9238795537240386 -vn 0.3826833811527889 -2.90790519379136e-7 0.923879553724069 -vn -5.5046503827371764e-8 0.9999999999999756 -2.150331591041939e-7 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999928981 -0.0000037688076268277415 3.399676314659157e-22 -vn 1.0531672413327531e-7 0.9999999999999944 -9.020562075079349e-17 -vn -1.0531672413327531e-7 -0.9999999999999944 9.020562075079349e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.0000017264368765423925 -0.9999999999985099 9.020562075065957e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.3162254821869394 0.9486840593240922 -8.557663446771279e-17 -vn 0.9999999999988489 0.0000015173765706422149 -1.368758954696105e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999998888 4.7166679299770465e-7 -4.254699584922011e-23 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999987382 -0.00000158864237793932 1.4330447185139675e-22 -vn -0.316228256777759 5.023736097536924e-7 -0.948683134463266 -vn -0.9999999999990506 -0.0000013780034976845768 1.2430366090703957e-22 -vn 5.459464950396953e-7 -0.31622731328987486 0.9486834489592244 -vn 0.0000017264368765423925 -0.9999999999985099 9.020562075065957e-17 -vn 0.9999999999987382 -0.0000015886423779393195 1.4330447185139673e-22 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -0.9999999999990505 -0.0000013780034976845765 1.2430366090703954e-22 -vn 0.0000017264368765423925 -0.9999999999985099 9.020562075065957e-17 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -0.9999999999990506 -0.0000013780034976845768 1.2430366090703957e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -3.342855422056035e-7 -0.9999999999999443 9.020562075078896e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -2.8729065819355087e-7 0.9999999999999589 -9.020562075079028e-17 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -0.9999999999990505 -0.0000013780034976845765 1.2430366090703954e-22 -vn 0.0000017264368765423925 -0.9999999999985099 9.020562075065957e-17 -vn 0.9999999999987382 -0.0000015886423779393195 1.4330447185139673e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999947311 -0.0000032461828764346326 2.9282394143793953e-22 -vn -0.000001726436872004356 0.9999999999985097 -9.020562075065957e-17 -vn 0.0000017264368734892792 -0.9999999999985099 9.020562075065958e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.0000019370648894900815 -0.999999999998124 9.020562075062476e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.3162284118066917 0.9486830827869851 -8.557654637857688e-17 -vn 0.9999999999985099 0.0000017264368868535884 -1.5573431106714064e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999997681 -6.811436638887169e-7 6.144298702405559e-23 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999990506 0.0000013780034929800065 -1.243036604817942e-22 -vn -0.31622741245549724 -4.3576247901050413e-7 -0.9486834159041208 -vn -0.9999999999987381 0.00000158864237806422 -1.4330447186218196e-22 -vn -6.125548453472796e-7 -0.3162283559408097 0.9486831014087883 -vn -0.0000019370648894900815 -0.999999999998124 9.020562075062476e-17 -vn 0.9999999999990505 0.0000013780034929800065 -1.243036604817942e-22 -vn -0.0000017264368748631802 0.9999999999985099 -9.020562075065957e-17 -vn -0.9999999999987381 0.0000015886423780642196 -1.4330447186372268e-22 -vn -0.0000019370648894900815 -0.999999999998124 9.020562075062476e-17 -vn 0.9999999999985099 0.0000017264368729064117 -1.5573430981143432e-22 -vn -0.0000017264368748631798 0.9999999999985097 -9.020562075065955e-17 -vn -0.9999999999987381 0.00000158864237806422 -1.4330447186218196e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -1.0531672438307549e-7 -0.9999999999999944 9.020562075079349e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 1.0531672413327531e-7 0.9999999999999944 -9.020562075079349e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.31622905780222926 -0.9486828674544063 8.557652695436794e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.3162284118066917 0.9486830827869851 -8.557654637857688e-17 -vn 0.9999999999662257 -0.000008218807809795559 7.413826603123484e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999985099 -0.000001726436873086823 1.5573430982684176e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999985099 0.0000017264368775693484 -1.5573431022897593e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999985099 -0.0000017264368727121226 1.557343097929454e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.0000017264368770281147 -0.9999999999985097 9.020562075065955e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -6.811436674275528e-7 0.9999999999997681 -9.020562075077306e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.0000013780034965188426 -0.9999999999990506 9.020562075070834e-17 -vn 0.31622731328987497 5.459464954282733e-7 0.9486834489592243 -vn 0.0000015886423777866647 0.9999999999987382 -9.020562075068016e-17 -vn -0.3162283559424791 -5.459482954953132e-7 -0.9486831014082725 -vn 0.9999999999985097 0.0000017264368775832262 -1.5573431023051668e-22 -vn 0.0000015886423777866643 0.9999999999987382 -9.020562075068016e-17 -vn -0.999999999998124 0.000001937064889503959 -1.7473414079179125e-22 -vn 0.0000013780034965188426 -0.9999999999990506 9.020562075070834e-17 -vn 0.0000015886423777866643 0.9999999999987382 -9.020562075068016e-17 -vn -0.999999999998124 0.000001937064889503959 -1.7473414079179125e-22 -vn 0.0000013780034965188426 -0.9999999999990506 9.020562075070834e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -8.905320800639551e-7 -0.9999999999996035 9.020562075075822e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -2.219602310560287e-7 0.9999999999999755 -9.020562075079176e-17 -vn -0.9999999999987381 0.0000015886423780642196 -1.4330447186372268e-22 -vn -0.0000019370648894900815 -0.999999999998124 9.020562075062476e-17 -vn 0.9999999999990505 0.0000013780034929800065 -1.243036604817942e-22 -vn -0.0000017264368748631802 0.9999999999985099 -9.020562075065957e-17 -vn 0.1822347211341021 -3.53000480020349e-7 -0.9832550566425028 -vn -0.18223516663852884 2.8950650858214355e-7 0.9832549740734312 -vn 5.18652817235732e-7 0.9999999999998656 1.6384392028790923e-8 -vn -4.948419738276534e-7 -0.9999999999998672 -1.4485643223365217e-7 -vn -0.9832548617004921 -0.0000013549286338176978 -0.18223577294403578 -vn 0.9832548617004925 0.0000013549286385639014 0.18223577294403442 -vn -0.000001692882434081722 0.9999999999985333 -2.6061212359783826e-7 -vn -0.18223476795800844 -2.5112014758257867e-7 0.9832550479642747 -vn 0.000001926020774423165 -0.9999999999980499 4.3670971277075076e-7 -vn 0.18223521346265728 3.1461759280801416e-7 -0.9832549653951007 -vn -0.0000016435106728190933 0.9999999999985106 -5.269995254731376e-7 -vn -0.9832549049670946 -0.0000016975275234226705 -0.18223553949564428 -vn 0.0000021593701453881398 -0.9999999999973305 -8.223333902428989e-7 -vn -5.4421346917799e-7 -0.9999999999998447 1.2152879070442924e-7 -vn 0.9832549049665842 -0.0000019046285538448782 0.18223553949635085 -vn 5.442134694416679e-7 0.9999999999998447 -1.2152879014138614e-7 -vn 0.9832548616999833 0.0000016975274487324166 0.18223577294391277 -vn -0.1822351666373553 -3.146175111198857e-7 0.9832549740736412 -vn -0.18223476795798563 -2.1937196780646984e-7 0.9832550479642864 -vn -0.9832548616963211 0.0000031918250954499064 -0.18223577294362533 -vn -0.9832549049670946 -0.0000016975275303754422 -0.18223553949564425 -vn 0.18223521346261384 2.193725040233741e-7 -0.9832549653951348 -vn 0.1822347211346325 -6.868076056001926e-7 -0.9832550566422281 -vn 0.9832549049670946 0.0000016975275234226705 0.18223553949564433 -vn 0.17364756942744414 6.12318084153296e-8 -0.9848078602610446 -vn -0.17364880408011737 -6.123224378581926e-8 0.9848076425584548 -vn -8.326730700225495e-7 0.9999999999996443 -1.3538129447839626e-7 -vn 8.553623161156043e-7 -0.9999999999996342 6.704692757477477e-9 -vn -0.9848078948339537 -2.1858818836928412e-7 -0.17364737335378422 -vn 0.9848076822428296 2.185881411709278e-7 0.17364857901940497 -vn -0.9848076822427935 -3.472640337093269e-7 -0.17364857901940006 -vn -0.1736487817357039 -3.8543123411644e-8 0.9848076464983933 -vn 0.9848076822424764 -8.770028337712341e-7 0.17364857901933015 -vn 0.17364759177172132 3.854285960183668e-8 -0.984807856321161 -vn -0.9848076445504783 -3.4726402041440613e-7 -0.17364879278249573 -vn 8.326732364311029e-7 -0.9999999999996442 1.3538132426859642e-7 -vn 0.984807644550161 -8.770028002008654e-7 0.17364879278242787 -vn 0.9848078571421537 2.1858818000097807e-7 0.17364758711549003 -vn -8.553623161156043e-7 0.9999999999996342 -6.704692795641424e-9 -vn -0.9848076445505144 -2.1858813281649953e-7 -0.1736487927825006 -vn 5.202681010868515e-7 0.9999999999998593 1.031796086261637e-7 -vn -0.1736475917717283 -6.123181630138252e-8 0.9848078563211585 -vn -0.17364756942746146 -3.8542854328277316e-8 0.9848078602610429 -vn -4.975794651446153e-7 -0.9999999999998493 -2.3185461007829432e-7 -vn -3.915931610920521e-7 -0.9999999999999203 -8.049066164451779e-8 -vn 0.17364859148798442 3.854308149725538e-8 -0.9848076800443007 -vn 0.17364878173568482 6.12322358962969e-8 -0.9848076464983956 -vn 3.689041843113473e-7 0.9999999999999102 2.091657658369433e-7 -vn -0.9455184858198632 -0.0000013029277785431281 0.32556841519289875 -vn 0.9455188684995042 0.0000016323786419802917 -0.3255673038079108 -vn 2.935081538923967e-7 0.9999999999999063 -3.183330419065489e-7 -vn -1.287858028831135e-7 -0.9999999999999577 2.6161475369288466e-7 -vn 0.32556845085811015 5.620733795203003e-7 0.9455184735400649 -vn -0.32556799424655375 5.172111125564816e-7 -0.9455186307640948 -vn 1.713247087392622e-7 0.9999999999999758 -1.3807295091140904e-7 -vn 0.9455184858196672 -0.0000015020907356139142 -0.3255684151926094 -vn -3.36046925314415e-7 -0.9999999999999247 1.947914094015839e-7 -vn -0.9455188684994094 0.0000018315314023742424 0.32556730380712734 -vn 1.7132470769842811e-7 0.9999999999999758 -1.3807295055058616e-7 -vn 0.3255679942469083 4.4863383406867907e-7 0.9455186307640077 -vn -1.7132470826741744e-7 -0.9999999999999759 1.3807295073793656e-7 -vn -1.2878580293862465e-7 -0.9999999999999577 2.616147537137012e-7 -vn -0.32556845085828423 -4.4863446330839507e-7 -0.9455184735400657 -vn 2.9350815283768483e-7 0.9999999999999063 -3.1833304154572653e-7 -vn 0.3255684508595984 -5.17211837844367e-7 0.9455184735395782 -vn 0.9455184858198632 0.0000013029277782516946 -0.3255684151928987 -vn 0.9455188684999836 0.0000013029283055937535 -0.3255673038080043 -vn -0.3255679942464915 6.306463310942756e-7 -0.9455186307640473 -vn -0.3255684508582842 -4.486344632737005e-7 -0.9455184735400656 -vn -0.9455184858196674 0.000001502090735724937 0.32556841519260943 -vn -0.9455188684999065 0.0000015020913435720429 0.32556730380737003 -vn 0.32556799424693045 5.620725906860247e-7 0.9455186307639394 -vn -0.7547097608200278 -0.0000010399926903409407 -0.6560588212362477 -vn 0.7547092874970128 -0.0000014619208635185954 0.6560593657311921 -vn 8.07501221652962e-7 0.9999999999996448 -2.418808471710322e-7 -vn -5.903010381058672e-7 -0.9999999999997927 2.575644050140088e-7 -vn -0.6560587477987199 0.0000012708283658596775 0.7547098246579017 -vn 0.6560596971095167 -0.0000010422442371788023 -0.7547089994345391 -vn -0.0000013447567966257123 0.9999999999990532 -2.9249135458101943e-7 -vn 0.7547097608208654 -0.0000011989639098763938 0.6560588212350131 -vn 2.2528006463073957e-7 -0.999999999999743 -6.806543807523534e-7 -vn -0.7547092874982351 -0.0000013029579439549632 -0.656059365730121 -vn -2.25280064602984e-7 0.9999999999997431 6.806543808263683e-7 -vn -0.6560596971099031 -0.000001132645653267872 0.7547089994340729 -vn 9.379977836121436e-8 -0.9999999999996797 -7.949483863455935e-7 -vn -7.217809913362405e-7 -0.9999999999997294 1.4327071167172862e-7 -vn 0.6560587477993305 0.0000011326440151754325 -0.754709824657591 -vn 8.07501221652962e-7 0.9999999999996448 -2.418808471710322e-7 -vn -0.6560587477994354 -9.04051247682669e-7 0.7547098246578082 -vn 0.7547097608200279 0.000001039992688425806 0.6560588212362477 -vn 0.7547092874983659 0.0000010399920370302018 0.6560593657304401 -vn 0.6560596971100112 9.040525564829593e-7 -0.7547089994342874 -vn 0.6560587477994354 9.0405124748838e-7 -0.7547098246578081 -vn -0.7547097608200278 -0.000001039992689452762 -0.6560588212362476 -vn -0.7547092874973785 0.0000011989631572562054 -0.6560593657313046 -vn -0.6560596971092927 0.000001270830204874729 0.7547089994343836 -vn 0.17364735683676563 6.123173345445876e-8 -0.984807897746358 -vn -0.17364880408011873 -6.123224377888037e-8 0.9848076425584547 -vn -7.039966468391778e-7 0.999999999999746 -1.1269208696279126e-7 -vn 7.266858104149065e-7 -0.9999999999997359 -1.5984367293046626e-8 -vn -0.9848078948336256 8.770030230365045e-7 -0.17364737335356883 -vn 0.9848078948339536 2.1858818841091749e-7 0.17364737335378538 -vn -0.9848078948339537 -2.1858818836928412e-7 -0.17364737335378455 -vn -0.17364878173570567 -3.8543123723894235e-8 0.9848076464983931 -vn 0.9848076822427935 3.4726403369544917e-7 0.1736485790194004 -vn 0.173647591771718 3.854285959836723e-8 -0.9848078563211614 -vn -0.9848076668949091 -2.1858813777086983e-7 -0.1736486660615571 -vn 8.326732361535474e-7 -0.9999999999996443 1.353813237724657e-7 -vn 0.9848078571421152 3.472640953822159e-7 0.17364758711549935 -vn 0.9848078571421541 2.1858818005648923e-7 0.17364758711548767 -vn -8.553623160323376e-7 0.9999999999996342 -6.70469277829418e-9 -vn -0.9848078571418257 8.770029894661355e-7 -0.17364758711527287 -vn 3.915931608838853e-7 0.9999999999999203 8.049066151441362e-8 -vn -0.17364759177172676 -6.123181629097418e-8 0.9848078563211587 -vn -0.17364759177171804 -3.8542859598367236e-8 0.9848078563211615 -vn -3.6890444170267777e-7 -0.9999999999999102 -2.0916581113082817e-7 -vn -3.9159316123083e-7 -0.9999999999999203 -8.049066211636295e-8 -vn 0.17364880408011002 3.854312867826449e-8 -0.9848076425584573 -vn 0.17364878173568654 6.123223590670523e-8 -0.9848076464983953 -vn 3.689041846444142e-7 0.9999999999999102 2.0916576589765918e-7 -vn 0.7090271883959725 -0.006938145701428727 0.7051470117993326 -vn -0.7090271984877629 0.006937939031434177 -0.705147003685466 -vn 0.635079646240946 -0.42836661469670045 -0.6427875903778505 -vn -0.635079672458271 0.4283665374119192 0.6427876159790403 -vn -0.7071077745124313 8.0141194548633e-7 0.7071057878588143 -vn 0.7071058706104988 4.147542210092281e-7 -0.7071076917613021 -vn 0.6408568112100563 -0.4226183517517383 0.6408558935426298 -vn -0.6408563654965383 0.4226183625479175 -0.6408563321368403 -vn -0.7090266810003713 -0.006937558905452973 -0.7051475277599939 -vn 0.7090257804796728 0.006937074145808936 0.7051484380025859 -vn -0.635080710713751 -0.428366557234601 0.6427865769618188 -vn 0.6350798506367983 0.42836663142323217 -0.6427873772860313 -vn 0.7071070779213182 4.005652680660887e-7 -0.7071064844515389 -vn -0.7071062738111956 1.9457987683602074e-7 0.7071072885615086 -vn -0.6408559263814267 -0.42261834278815824 -0.6408567842824121 -vn 0.6408560772498205 0.4226183393520476 0.640856635680157 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 7.385805314563677e-8 0.9999999999999974 -9.020562075079375e-17 -vn -7.385805314563677e-8 -0.9999999999999974 9.020562075079375e-17 -vn -0.9999999999990505 -0.0000013780034953253526 1.2430366069441688e-22 -vn 0.9999999999990505 0.0000013780034953253526 -1.2430366069441688e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.9999999999999889 1.4887019941789423e-7 -1.3428928748052298e-23 -vn 0.9999999999999889 -1.488701993485053e-7 1.3428928741889323e-23 -vn -4.709910081390767e-8 -0.4472138847499819 -0.8944270463748442 -vn -4.7099169821207556e-8 -0.4472145400985257 0.8944267187000075 -vn -0.000001021191486552664 -0.9999999999994786 9.020562075074696e-17 -vn -0.8944264189125389 -0.4472151396713794 4.034131928320982e-17 -vn 0.8944279630846257 -0.4472120513272062 4.0341040697206574e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.000001726436872004356 0.9999999999985097 -9.020562075065957e-17 -vn 0.0000017264368734892792 -0.9999999999985099 9.020562075065958e-17 -vn 0.9999999999947311 -0.0000032461828764346326 2.9282394143793953e-22 -vn 0.3162284118066917 0.9486830827869851 -8.557654637857688e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.3162284118066917 -0.9486830827869851 8.557654637857688e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999985099 0.0000017264368868535884 -1.5573431106714064e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999997681 -6.811436638887169e-7 6.144298702405559e-23 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999992756 0.0000012037876764847688 -1.0858841461062008e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999947312 0.000003246182869745539 -2.9282394083550864e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.0000017264368760427921 -0.9999999999985099 9.020562075065957e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.0000016378422830753973 -0.9486835608012272 0.3162269777593652 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.31622612817453877 0.948683843996376 -8.557661504394248e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.9999999999985099 0.000001726436873086823 -1.5573430982684176e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.9999999999985099 -0.0000017264368727121226 1.557343097929454e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999930148 0.0000017264368727121222 -0.0000033150723792144176 -vn -0.3162282567777576 5.023736097536924e-7 -0.9486831344632665 -vn -0.9999999999990438 -0.0000013780034929661287 -1.1614425964222979e-7 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.0000017264368760427921 -0.9999999999985099 9.020562075065957e-17 -vn 0.9999999999987382 -0.00000158864237793932 1.4330447185139675e-22 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -0.9999999999990506 -0.0000013780034929800065 1.243036604817942e-22 -vn 0.0000017264368760427917 -0.9999999999985097 9.020562075065955e-17 -vn 0.9999999999987381 -0.0000015886423779531973 1.4330447185139673e-22 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -0.9999999999990505 -0.0000013780034929800065 1.243036604817942e-22 -vn 0.0000017264368760427921 -0.9999999999985099 9.020562075065957e-17 -vn 0.9999999999985097 0.0000017264368751962462 -1.5573431001635324e-22 -vn 0.0000019370648894900815 0.999999999998124 -9.020562075062476e-17 -vn -0.9999999999990506 -0.0000013780034929800065 1.243036604817942e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -7.15900050116125e-7 -0.9999999999997438 9.020562075077087e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -3.8912395282364464e-7 0.9999999999999244 -9.020562075078716e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.0000013780034967686428 -0.9999999999990506 9.020562075070835e-17 -vn 0.31622731328987563 5.459464946858117e-7 0.9486834489592242 -vn 0.0000015886423777866647 0.9999999999987382 -9.020562075068016e-17 -vn 0.9999999999985097 0.0000017264368752101245 -1.55734310017894e-22 -vn 0.0000015886423777866643 0.9999999999987382 -9.020562075068016e-17 -vn -0.999999999998124 0.000001937064889503959 -1.7473414079179125e-22 -vn 0.0000013780034967825208 -0.9999999999990506 9.020562075070835e-17 -vn 0.0000032461828711194416 0.9999999999947313 -9.020562075031872e-17 -vn -0.9486834616356173 0.0000018376614270010357 -0.3162272752557649 -vn 0.000001203787672945933 -0.9999999999992604 -1.7421610085389134e-7 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.0000015886423792160764 -0.9999999999987381 9.020562075068016e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000013780034953531084 0.9999999999990505 -9.020562075070834e-17 -vn 0.18223521346262483 2.511207611577415e-7 -0.983254965395125 -vn -0.18223521346262478 -2.511207612687638e-7 0.983254965395125 -vn 7.755965211603266e-7 0.9999999999996972 6.400615959598426e-8 -vn -7.755965211603268e-7 -0.9999999999996974 -6.400615959598427e-8 -vn -0.9832550844525023 -0.0000016975278361308632 -0.18223457107645952 -vn 0.9832548617004925 0.0000013549286371067337 0.18223577294403454 -vn 5.186528161393867e-7 0.9999999999998656 1.6384391820623924e-8 -vn -0.1822351666385286 2.8950650864112415e-7 0.9832549740734312 -vn -4.948419730921306e-7 -0.9999999999998672 -1.4485643206711827e-7 -vn 0.18223476795754343 -3.530005708296535e-7 -0.9832550479643294 -vn 5.442134683730783e-7 0.9999999999998447 -1.215287903951521e-7 -vn -0.9832548782103216 -0.0000013549286595471164 -0.1822356838650698 -vn -5.44213468386956e-7 -0.9999999999998447 1.215287903872219e-7 -vn -8.011571222821259e-7 -0.9999999999996764 7.39070957052885e-8 -vn 0.9832549049675949 0.0000013549286964342766 0.18223553949581367 -vn 8.011571221849814e-7 0.9999999999996764 -7.390709518982815e-8 -vn 0.9832548616963215 -0.000003191825090620437 0.18223577294362409 -vn -0.18223521346217367 5.915688287352894e-7 0.9832549653950629 -vn -0.18223516663735506 -3.146175116541805e-7 0.983254974073641 -vn -0.9832550844532351 -0.0000011836303490941889 -0.18223457107656799 -vn -0.9832548782055817 0.000003705698479405938 -0.1822356838580044 -vn 0.1822347679573413 -5.915673825622469e-7 -0.9832550479642523 -vn 0.1822352134626536 3.146175925165806e-7 -0.9832549653951015 -vn 0.9832549049633077 -0.0000031918252313273276 0.18223553949603025 -vn 0.21643987640172874 -1.0208750228155039e-7 -0.9762959489331061 -vn -0.21643828781214489 1.0208675299550052e-7 0.97629630111403 -vn 9.485078083792955e-7 0.9999999999993158 -6.84954578518122e-7 -vn 7.074442162219308e-7 -0.9999999999993682 8.736266958462977e-7 -vn -0.9762961446023745 4.604864708573908e-7 -0.2164389937934652 -vn 0.9762957943497506 -4.60486305572938e-7 0.21644057367965436 -vn 0.9762961446010041 0.0000014814088960951595 0.216438993795066 -vn 0.21644022665509852 -1.020876674862059e-7 -0.9762958712836387 -vn -0.9762961446023745 4.6048647078800187e-7 -0.21643899379346515 -vn -0.21643863806343974 -3.2841891828977454e-7 0.9762962234655707 -vn 0.9762961033380054 0.0000014814088334924591 0.21643917992090125 -vn -5.520458486590886e-7 -0.999999999999239 -0.0000011033759727978112 -vn -0.9762961814151079 4.6048648813523663e-7 -0.21643882774138953 -vn -0.9762961814151078 4.6048648820462546e-7 -0.2164388277413895 -vn -0.000001236287619318932 0.999999999998986 7.069125035525342e-7 -vn 0.976296103338679 -4.6048645131746557e-7 0.21643917992244302 -vn 9.485078083792955e-7 0.9999999999993158 -6.849545785181217e-7 -vn 0.21644018984210325 -1.0208765012509335e-7 -0.9762958794449068 -vn 0.2164398395888498 -1.0208748492390732e-7 -0.9762959570943346 -vn 7.074442156668194e-7 -0.9999999999993683 8.73626695719856e-7 -vn -5.520440533035577e-7 -0.9999999999992389 -0.0000011033755747809161 -vn -0.21644018984164737 -3.284212729236236e-7 0.9762958794449581 -vn -0.21643983958884744 1.020874849169684e-7 0.976295957094335 -vn -0.0000010662011988710198 0.9999999999991546 7.44619706173674e-7 -vn -0.9401786260764861 -0.24426958737014637 0.2374795143900832 -vn 0.9401789286337967 0.24426960257030025 -0.23747830093116662 -vn -0.23988200986954678 0.9696312327532529 0.04766438723359229 -vn 0.23988144639849462 -0.9696313791494443 -0.04766424490656527 -vn 0.24191024090072705 0.012153346729802943 0.9702225164933133 -vn -0.24190998076479572 -0.01215327914340266 -0.9702225822008261 -vn -0.38268338115274925 -6.606787013030413e-7 -0.9238795537238949 -vn 0.38268338115277295 -3.9079301084044005e-7 0.9238795537240386 -vn -5.504664066235955e-8 0.9999999999999755 -2.1503349087225899e-7 -vn 1.217161801764233e-7 -0.999999999999922 3.75986385071337e-7 -vn -0.9238797234908438 -0.000001353586922922534 0.382682971296934 -vn 0.9238794794141875 -7.020304698818203e-7 -0.3826835605521583 -vn 0.9238794794140401 -9.434578583517039e-7 -0.3826835605519948 -vn -0.382683381152773 3.907930108820734e-7 -0.9238795537240386 -vn -0.9238797850852268 7.020307021404769e-7 0.382682822596445 -vn 0.38268338115274925 6.606787013030413e-7 0.9238795537238949 -vn 0.923879785084927 -9.434581705186629e-7 -0.3826828225966504 -vn -1.0590613135075255e-7 -0.9999999999999547 2.817021188181068e-7 -vn -0.9238794794141875 7.020304698818203e-7 0.38268356055215824 -vn -0.9238794794132587 -0.0000013535865653335753 0.38268356055265007 -vn 3.923679625650323e-8 0.9999999999999013 -4.4265451792685377e-7 -vn 0.9238797234917725 -7.02030655316821e-7 -0.3826829712964418 -vn -5.5046640648481775e-8 0.9999999999999755 -2.1503349087225877e-7 -vn -0.38268338115274886 -6.606787013030413e-7 -0.9238795537238952 -vn -0.3826833811527726 3.907930108820734e-7 -0.9238795537240388 -vn 1.2171560165308295e-7 -0.999999999999922 3.759866246988447e-7 -vn 5.504650349430486e-8 -0.9999999999999756 2.1503315990602078e-7 -vn 0.3826833811527491 6.606787012961024e-7 0.9238795537238951 -vn 0.3826833811527728 -3.9079301084737894e-7 0.9238795537240387 -vn -1.2171536172000954e-7 0.9999999999999221 -3.7598604530175307e-7 -vn -0.20791228878424325 4.027395946216983e-7 -0.978147473631832 -vn 0.2079122887838219 2.865038607434423e-7 0.9781474736319625 -vn -5.990435257147154e-7 0.9999999999997771 2.955872440239896e-7 -vn 5.990435246600035e-7 -0.9999999999997771 -2.955872437915374e-7 -vn -0.9781476466877053 -0.0000013478908737901696 0.20791147461717327 -vn 0.9781476201150089 -0.000001894735411692161 -0.20791159962771275 -vn -0.0000011131233111499885 0.9999999999990056 -8.660669580079828e-7 -vn 0.2079122887837644 3.5894744172468296e-7 0.9781474736319508 -vn 8.274897955878879e-7 -0.9999999999995435 -4.777256245227423e-7 -vn -0.20790989685317898 -2.865005651296604e-7 -0.9781479820509873 -vn -9.20742030605104e-7 0.9999999999995755 3.9010785653474516e-8 -vn -0.9781476131763114 -0.0000016887101110946152 0.20791163227350565 -vn 6.253511704856774e-7 -0.999999999998784 -0.0000014287078105093526 -vn 6.961764070362308e-7 -0.9999999999997446 1.613856656967517e-7 -vn 0.9781475817911809 -0.0000015539267003289443 -0.20791177992997492 -vn -6.651294009313303e-7 0.9999999999997788 -1.532141980062894e-8 -vn 0.9781476201153977 0.0000011774820471571745 -0.207911599631183 -vn 0.20791228878377116 3.5894744251571697e-7 0.9781474736319494 -vn 0.20791228878376436 3.5894744247755305e-7 0.9781474736319509 -vn -0.978147646681775 0.000003686450303741484 0.20791147461675982 -vn -0.9781476131729302 0.000003175246025846623 0.20791163227202478 -vn -0.20790989685374897 6.74913545519601e-7 -0.9781479820506753 -vn -0.20791228878376442 -3.5894744175937753e-7 -0.9781474736319509 -vn 0.9781475817918218 0.0000016887100558193868 -0.2079117799259094 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 2.3497431611563264e-8 0.9999999999999999 -9.020562075079398e-17 -vn -2.3497431597685476e-8 -0.9999999999999999 9.020562075079398e-17 -vn -0.9999999999990506 -0.0000013780034976845768 1.2430366090703957e-22 -vn 0.9999999999990505 0.0000013780034953253526 -1.2430366069441688e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999985099 0.000001726436873086823 -1.5573430982684176e-22 -vn -0.9999999999985097 -0.0000017264368798036722 1.557343104308134e-22 -vn 2.130667667854525e-7 0.9999999999999775 -9.020562075079196e-17 -vn -7.279416182337518e-8 0.8910070557747745 -0.4539894564409651 -vn -7.098719604498038e-8 0.453992548863361 0.8910054801046646 -vn 0.9999999999867174 0.000005015960421586585 -0.0000011855668438060575 -vn 6.25597775583131e-7 -0.45398852593572503 -0.8910075298886739 -vn 0.9999999999775274 0.000005985478627040795 0.0000030197820636340195 -vn -5.633565518387008e-7 0.891004408170203 -0.4539946526347521 -vn 2.8704393401079997e-7 -0.4539885259339777 -0.8910075298897376 -vn -0.9999999999718802 -0.0000019272594536934307 0.0000072474564745016035 -vn -0.0000012278049320996187 0.8910027698809404 -0.4539978679057697 -vn 7.212254119690065e-7 0.45398852592850325 0.8910075298922813 -vn 6.255977759925259e-7 -0.45398852593571837 -0.8910075298886775 -vn 0.9999999999674783 -0.0000028757267649393015 0.00000753482940641197 -vn -0.9999999999674787 0.0000028757609784324503 -0.0000075347622738525455 -vn 0.99999999996652 -0.000007865282930855089 -0.0000022577795708890056 -vn 0.0000073230270609403475 0.8910084310763021 -0.45398675718276194 -vn -0.9999999999878054 0.000004360121971497265 -0.0000023191795499062837 -vn -0.9999999999987382 0.0000015886423779393195 -1.4330447185139673e-22 -vn 0.9999999999985097 0.0000017264368775832262 -1.5573431023051668e-22 -vn -1.563620289357637e-7 0.9999999999999878 -9.020562075079288e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -1.398544985375949e-7 0.8944274994613903 -0.4472129785764555 -vn 1.576244295781182e-7 0.8191531500717415 0.5735748571263548 -vn 6.040727920653133e-8 0.5735772705199458 -0.8191514601970049 -vn -1.1036952556053861e-7 -0.5735757129454463 0.8191525508225626 -vn -0.9999999999819765 0.0000015178329504095256 -0.0000058088971412014576 -vn 0.9999999999887426 -0.000003633844834316501 0.0000030512167746510276 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 1.053167242581754e-7 0.9999999999999944 -9.020562075079349e-17 -vn -0.9999999999997681 -6.811436635278945e-7 6.144298699015922e-23 -vn 0.9999999999985099 0.000001726436873086823 -1.5573430982684176e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000017264368767921927 0.9999999999985099 -9.020562075065958e-17 -vn -0.9999999999947312 0.000003246182876615044 -2.928239414548877e-22 -vn 0.9999999999992755 0.0000012037876727377659 -1.0858841427319713e-22 -vn -0.000008695820526816169 -0.649469396904066 -0.7603877316273927 -vn 0.000005406736835550374 0.6494506932301249 0.760403706614899 -vn 0.08935319430165375 0.7573646170889874 -0.6468499388959872 -vn -0.08715480762858249 -0.7575127196320055 0.6469764440093222 -vn -0.9961944027953835 0.06627599773712949 -0.0566056884340933 -vn 0.9969378642322239 -0.05946178153276836 0.05078574009543963 -vn -0.0000059159168012551406 -0.649451535604698 -0.760402987149381 -vn 0.000009276536204819165 0.6494226784477919 0.7604276327380811 -vn -0.08524702475868319 0.7576383239538252 -0.6470835454917945 -vn 0.08715499548953556 -0.7575133195539617 0.6469757162827339 -vn -0.997085355697318 -0.05801483252269521 0.04954868980423574 -vn 0.9961946702224567 0.06627351769037453 -0.05660388567328614 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 1.0531672296754113e-7 0.9999999999999944 -9.020562075079349e-17 -vn -1.0531672413327531e-7 -0.9999999999999944 9.020562075079349e-17 -vn -0.9999999999999944 1.0531672416103086e-7 -9.500160475400739e-24 -vn 0.9999999999999944 -1.0531672428593095e-7 9.500160487726691e-24 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 2.795304083064165e-7 0.9999999999999609 -9.020562075079046e-17 -vn -1.0531672413327531e-7 -0.9999999999999944 9.020562075079349e-17 -vn -0.9999999999987953 -0.0000015522198977269137 1.4001895941773094e-22 -vn 0.9999999999999944 -1.0531672416103086e-7 9.500160475400739e-24 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 2.795304083064165e-7 0.9999999999999609 -9.020562075079046e-17 -vn -1.0531672413327531e-7 -0.9999999999999944 9.020562075079349e-17 -vn -0.9999999999990506 -0.0000013780034965049646 1.243036608007282e-22 -vn 0.9999999999999609 -2.7953040833417203e-7 2.5215213998558743e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.0000015522198964640359 0.9999999999987954 -9.020562075068533e-17 -vn -1.053167242581754e-7 -0.9999999999999944 9.020562075079349e-17 -vn -0.9999999999999944 1.053167242304198e-7 -9.500160481563715e-24 -vn 0.9999999999999609 -2.795304082786609e-7 2.521521399393651e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999999443 -3.3428554176151426e-7 3.015443479943507e-23 -vn -0.9999999999999442 3.3428554220560347e-7 -3.0154434839494413e-23 -vn -2.8729065845722884e-7 0.9999999999999589 -9.020562075079028e-17 -vn 2.872906584155955e-7 -0.9999999999999589 9.020562075079028e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -3.3428554219172573e-7 -0.9999999999999442 9.020562075078895e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 3.3428554219172573e-7 0.9999999999999442 -9.020562075078895e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -1.0614065466818534e-7 0.5547002887865875 0.8320502326302572 -vn -1.9134775448848012e-7 0.9999999999999818 -9.020562075079234e-17 -vn -0.9999999999999944 1.0531672416103086e-7 -9.500160475400739e-24 -vn 0.9999999999999944 -1.0531672416103086e-7 9.500160475400739e-24 -vn -0.15643395493096757 -2.7007334780018716e-7 0.9876884213883361 -vn 0.15643397108125806 -5.078132777891486e-7 -0.987688418830296 -vn -6.310113354612846e-7 0.9999999999989544 0.0000013012694334665099 -vn 0.9876882154966947 0.000001705181361319474 0.15643525486937748 -vn -0.9876881885793997 -0.0000011889668626863248 -0.1564354248222916 -vn -0.5150378369831621 0.000001941078524157758 -0.8571674436607695 -vn 0.515037883129844 6.199962530942238e-7 0.8571674159350348 -vn 8.80182796092477e-8 0.9999999999991884 0.0000012709952008253198 -vn -8.508923881739296e-7 -0.999999999999308 -8.126148281115042e-7 -vn -0.8571675396131969 -0.0000014798456525327852 0.5150376772929032 -vn 0.8571676165204395 -0.0000027825228364752874 -0.5150375492922109 -vn -0.0000011212328062115697 0.6494490582405918 0.760405103053071 -vn -0.000001312792414151498 0.7604056847202972 -0.6494483771966272 -vn 0.0000013127934345991132 -0.76040627647603 0.6494476843396519 -vn -0.999999999991869 0.0000027381949624510904 -0.0000029605199497739155 -vn 0.9999999999822441 0.0000048242197913939125 -0.0000034983980811444847 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.000001937064890072948 -0.999999999998124 9.020562075062476e-17 -vn -0.9999999999999631 2.7183950901399356e-7 -2.4521451652887226e-23 -vn 0.9999999999999328 -3.668650631200032e-7 3.309329075003762e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.000001937064890072948 -0.999999999998124 9.020562075062476e-17 -vn -0.9999999999999631 2.7183950901399356e-7 -2.4521451652887226e-23 -vn 0.9999999999999328 -3.668650631200032e-7 3.309329075003762e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.000001937064890072948 -0.999999999998124 9.020562075062476e-17 -vn -0.9999999999999631 2.7183950901399356e-7 -2.4521451652887226e-23 -vn 0.9999999999999631 -2.7183950902787135e-7 2.452145165442797e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.000001937064890072948 -0.999999999998124 9.020562075062476e-17 -vn -0.9999999999999631 2.7183950901399356e-7 -2.4521451652887226e-23 -vn 0.9999999999999631 -2.7183950902787135e-7 2.452145165442797e-23 -vn 0.000001203787671183454 -0.9999999999992756 9.020562075072864e-17 -vn -0.0000017264368766672926 0.9999999999985097 -9.020562075065955e-17 -vn -0.9999999999947311 0.0000032461828731039635 -2.928239411359537e-22 -vn 0.9999999999985099 0.0000017264368762648363 -1.5573431011342013e-22 -vn 0.0000017264368762925923 -0.9999999999985099 9.020562075065957e-17 -vn -0.0000017264368762925923 0.9999999999985099 -9.020562075065957e-17 -vn -0.9999999999985097 -0.0000017264368764591254 1.5573431012882757e-22 -vn 0.9999999999985097 0.0000017264368764591254 -1.5573431012882757e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.9999999999985099 0.000001726436880539195 -1.5573431049860612e-22 -vn -0.9999999999985099 -0.0000017264368727121226 1.557343097929454e-22 -vn 4.716667928311714e-7 0.9999999999998889 -9.020562075078396e-17 -vn -4.716667915682926e-7 -0.9999999999998888 9.020562075078395e-17 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.9999999999985099 0.000001726436880539195 -1.5573431049860612e-22 -vn -0.9999999999985099 -0.0000017264368727121226 1.557343097929454e-22 -vn 4.716667928311714e-7 0.9999999999998889 -9.020562075078396e-17 -vn -4.716667915682926e-7 -0.9999999999998888 9.020562075078395e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000017264368798036726 0.9999999999985099 -9.020562075065958e-17 -vn -0.9999999999998888 4.7166679151278135e-7 -4.2546995713634644e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000017264368798036726 0.9999999999985099 -9.020562075065958e-17 -vn -0.9999999999998888 4.7166679151278135e-7 -4.2546995713634644e-23 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000017264368798036726 0.9999999999985099 -9.020562075065958e-17 -vn -0.9999999999998888 4.7166679151278135e-7 -4.2546995713634644e-23 -vn -2.219602315139957e-7 0.9999999999999754 -9.020562075079176e-17 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.9999999999999946 1.0531672421654203e-7 -9.500160480022972e-24 -vn 0.9999999999999946 -1.0531672421654203e-7 9.500160480022972e-24 -vn -2.219602315139957e-7 0.9999999999999754 -9.020562075079176e-17 -vn 0.9999999999999946 -1.0531672421654203e-7 9.500160480022972e-24 -vn -0.9999999999999946 1.0531672421654203e-7 -9.500160480022972e-24 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.0000013780034953531084 0.9999999999990505 -9.020562075070834e-17 -vn 0.0000017264368762925923 -0.9999999999985099 9.020562075065957e-17 -vn -0.9999999999990505 -0.0000013780034953253526 1.2430366069441688e-22 -vn 0.999999999998124 -0.0000019370648893790587 1.747341407794653e-22 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn -0.0000013780034965188426 0.9999999999990506 -9.020562075070834e-17 -vn -0.0000019370648906696934 -0.9999999999981241 9.020562075062477e-17 -vn -0.9999999999985099 -0.0000017264368753350245 1.5573431002867922e-22 -vn 0.9999999999990505 0.0000013780034953253526 -1.2430366069441688e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000013780034953531084 0.9999999999990505 -9.020562075070834e-17 -vn 0.0000017264368762925923 -0.9999999999985099 9.020562075065957e-17 -vn -0.9999999999990505 -0.0000013780034953253526 1.2430366069441688e-22 -vn 0.999999999998124 -0.0000019370648893790587 1.747341407794653e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000013780034965188426 0.9999999999990506 -9.020562075070834e-17 -vn -0.0000019370648906696934 -0.9999999999981241 9.020562075062477e-17 -vn -0.9999999999985099 -0.0000017264368753350245 1.5573431002867922e-22 -vn 0.9999999999990505 0.0000013780034953253526 -1.2430366069441688e-22 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.000003246182869717784 0.9999999999947312 -9.02056207503187e-17 -vn -0.0000032461828730762096 -0.9999999999947313 9.020562075031872e-17 -vn -0.9999999999999443 3.342855419558033e-7 -3.0154434817924e-23 -vn 0.9999999999999442 -3.3428554221948126e-7 3.0154434841035157e-23 -vn 0.03489917413841482 -1.1666289260157947e-8 0.9993908382832296 -vn -0.03490000645693001 1.1666567504165646e-8 -0.9993908092179488 -vn -0.03489917413840974 -1.0026206777140334e-8 -0.9993908382832298 -vn 0.034899148270836546 1.002619935816171e-8 0.9993908391865368 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000012037876733345112 0.9999999999992756 -9.020562075072864e-17 -vn 0.0000017264368766672926 -0.9999999999985097 9.020562075065955e-17 -vn -0.9999999999999587 -2.872906584017176e-7 2.5915232177609015e-23 -vn 0.9999999999999443 -3.3428554176151426e-7 3.015443479943507e-23 -vn -0.9993908281317014 3.340819045988263e-7 0.034899464840028135 -vn -0.9993908281317266 -2.871156489780979e-7 0.034899464839724434 -vn 0.9993908281317266 2.8711564901973125e-7 -0.0348994648397244 -vn -0.9993908281317266 -2.8711564876993107e-7 0.034899464839724774 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000012037876694209748 0.9999999999992756 -9.020562075072863e-17 -vn 0.0000017264368764868814 -0.9999999999985097 9.020562075065955e-17 -vn -0.9999999999999587 -2.872906583878398e-7 2.591523217606827e-23 -vn 0.9999999999999443 -3.342855419558033e-7 3.0154434817924e-23 -vn 0.12186912625478903 3.501186158529068e-8 0.9925461783040087 -vn 0.12186923703982037 -4.0739123912877935e-8 0.9925461647013355 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn -0.0000012037876729598107 0.9999999999992755 -9.020562075072863e-17 -vn 0.0000017264368745162355 -0.9999999999985099 9.020562075065958e-17 -vn -0.9999999999999587 -2.872906584017176e-7 2.5915232177609015e-23 -vn 0.9999999999999443 -3.3428554177539205e-7 3.0154434800975814e-23 -vn 0.9993908281317266 2.8711564899197567e-7 -0.03489946483972444 -vn 2.352672904409881e-7 -0.9999999999999725 9.02056207507915e-17 -vn -0.03489917413841482 1.1666289269265245e-8 -0.9993908382832296 -vn -1.4810700170453386e-7 0.9999999999999891 -9.020562075079301e-17 -vn 0.03490000645692492 1.0026445894893711e-8 0.999390809217949 -vn -2.3526729026057685e-7 0.9999999999999725 -9.02056207507915e-17 -vn 0.03489917413840975 1.0026206792319164e-8 0.9993908382832298 -vn -5.940063467491098e-7 -0.9999999999998237 9.020562075077809e-17 -vn -0.03489914827082179 1.1666280618199274e-8 -0.9993908391865374 -vn -0.0002828170078716247 0.9999999599535361 0.00001036660980597004 -vn -0.999390825093577 -2.8711564814543067e-7 0.034899551840920154 -vn -7.978431082079818e-18 -7.590970108780491e-17 -1 -vn 0.0001567881209801614 0.9999999876918412 -0.000005814012587128419 -vn 0.999390825093577 2.871156480205306e-7 -0.03489955184092005 -vn 0.00011503348603203456 0.9999999933741616 -0.000004355906300043622 -vn 0.999390825093577 2.8711564817318624e-7 -0.03489955184092012 -vn 0.0002828170078741505 -0.9999999599617887 -0.000009537361077831656 -vn -0.999390825093577 -2.871156478956305e-7 0.0348995518409201 -vn 7.978431082079818e-18 7.590970108780491e-17 1 -vn 0.00011503348603172925 0.9999999933741616 -0.000004355906300043635 -vn 0.999390825093577 2.8711564815930846e-7 -0.03489955184092045 -vn 0.9999999999999587 2.872906584017176e-7 -2.5915232177609015e-23 -vn 6.47199272924004e-7 -0.9999999999997906 9.02056207507751e-17 -vn -0.12186912625478903 -3.501186159569902e-8 -0.9925461783040087 -vn -0.9999999999999443 3.3428554220560347e-7 -3.0154434839494413e-23 -vn -1.8779259462753384e-7 -0.9999999999999823 9.020562075079239e-17 -vn -0.12186923703982788 -3.5011893422670643e-8 -0.9925461647013348 -vn -6.249999941350431e-7 2.3554288323924735e-12 -0.9999999999998048 -vn 6.249996056492605e-7 1.079098276808955e-12 0.9999999999998047 -vn -3.3428554215009237e-7 -0.9999999999999442 9.020562075078895e-17 -vn -0.9999999999945381 0.0000032461828697455397 -6.215763964314832e-7 -vn 0.9999999999928981 -0.0000037688076233027826 3.3996763114852233e-22 +vt 1 0.6406 +vt 0.9844 0.6406 +vt 0.9531 0.7031 +vt 0.9688 0.7031 +vt 0.9688 0.6563 +vt 0.9531 0.6563 +vt 0.6797 0.3984 +vt 0.6875 0.3984 +vt 0.6875 0.3594 +vt 0.6797 0.3594 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.9219 +vt 0.5625 0.9219 +vt 0.5625 0.9063 +vt 0.5469 0.9063 +vt 0.5469 0.0859 +vt 0.5625 0.0859 +vt 0.5625 0.0703 +vt 0.5469 0.0703 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.3047 0.875 +vt 0.3984 0.875 +vt 0.3984 0.75 +vt 0.3047 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.3047 0.875 +vt 0.3047 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.3047 0.875 +vt 0.3047 0.75 +vt 0.3047 0.875 +vt 0.3984 0.875 +vt 0.3984 0.75 +vt 0.3047 0.75 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.9219 +vt 0.5625 0.9219 +vt 0.5625 0.9063 +vt 0.5469 0.9063 +vt 0.5469 0.0859 +vt 0.5625 0.0859 +vt 0.5625 0.0703 +vt 0.5469 0.0703 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.3047 0.875 +vt 0.3047 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.3047 0.875 +vt 0.3047 0.75 +vt 0.3047 0.875 +vt 0.3984 0.875 +vt 0.3984 0.75 +vt 0.3047 0.75 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.3047 0.875 +vt 0.3047 0.75 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.9219 +vt 0.5625 0.9219 +vt 0.5625 0.9063 +vt 0.5469 0.9063 +vt 0.5469 0.0859 +vt 0.5625 0.0859 +vt 0.5625 0.0703 +vt 0.5469 0.0703 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.3047 0.875 +vt 0.3984 0.875 +vt 0.3984 0.75 +vt 0.3047 0.75 +vt 0.3047 0.875 +vt 0.3984 0.875 +vt 0.3984 0.75 +vt 0.3047 0.75 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.8438 +vt 0.5625 0.8438 +vt 0.5625 0.7188 +vt 0.5469 0.7188 +vt 0.5469 0.9219 +vt 0.5625 0.9219 +vt 0.5625 0.9063 +vt 0.5469 0.9063 +vt 0.5469 0.0859 +vt 0.5625 0.0859 +vt 0.5625 0.0703 +vt 0.5469 0.0703 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.5234 0.8438 +vt 0.5391 0.8438 +vt 0.5391 0.7188 +vt 0.5234 0.7188 +vt 0.2422 0.75 +vt 0.2422 0.875 +vt 0.1484 0.875 +vt 0.1484 0.75 +vt 0.1484 0.2891 +vt 0.2422 0.2891 +vt 0.2422 0.2891 +vt 0.1484 0.2891 +vt 0.1484 0.875 +vt 0.2422 0.875 +vt 0.2422 0.75 +vt 0.1484 0.75 +vt 0.1484 0.2891 +vt 0.2422 0.2891 +vt 0.2422 0.2891 +vt 0.1484 0.2891 +vt 0.2422 0.75 +vt 0.2422 0.875 +vt 0.1484 0.875 +vt 0.1484 0.75 +vt 0.1484 0.2891 +vt 0.2422 0.2891 +vt 0.2422 0.2891 +vt 0.1484 0.2891 +vt 0.2422 0.75 +vt 0.2422 0.875 +vt 0.1484 0.875 +vt 0.1484 0.75 +vt 0.1484 0.2891 +vt 0.2422 0.2891 +vt 0.2422 0.2891 +vt 0.1484 0.2891 +vt 0.1484 0.875 +vt 0.2422 0.875 +vt 0.2422 0.75 +vt 0.1484 0.75 +vt 0.3125 0.2969 +vt 0.4063 0.2969 +vt 0.4063 0.2969 +vt 0.3125 0.2969 +vt 0.3984 0.75 +vt 0.3984 0.875 +vt 0.3047 0.875 +vt 0.3047 0.75 +vt 0.4063 0.0703 +vt 0.4063 0.0703 +vt 0.4063 0.0703 +vt 0.4063 0.0703 +vt 0.3125 0.2969 +vt 0.4063 0.2969 +vt 0.4063 0.2969 +vt 0.3125 0.2969 +vt 0.2422 0.75 +vt 0.2422 0.875 +vt 0.1484 0.875 +vt 0.1484 0.75 +vt 0.3125 0.2969 +vt 0.4063 0.2969 +vt 0.4063 0.2969 +vt 0.3125 0.2969 +vt 0.2422 0.75 +vt 0.2422 0.875 +vt 0.1484 0.875 +vt 0.1484 0.75 +vt 0.3125 0.2969 +vt 0.4063 0.2969 +vt 0.4063 0.2969 +vt 0.3125 0.2969 +vt 0.1484 0.875 +vt 0.2422 0.875 +vt 0.2422 0.75 +vt 0.1484 0.75 +vt 0.4063 0.0703 +vt 0.4063 0.0703 +vt 0.4063 0.0703 +vt 0.4063 0.0703 +vt 0.3125 0.2969 +vt 0.4063 0.2969 +vt 0.4063 0.2969 +vt 0.3125 0.2969 +vt 0.2422 0.75 +vt 0.2422 0.875 +vt 0.1484 0.875 +vt 0.1484 0.75 +vt 0.2422 0.0703 +vt 0.2422 0.0703 +vt 0.2422 0.0703 +vt 0.2422 0.0703 +vt 0.1484 0.2891 +vt 0.2422 0.2891 +vt 0.2422 0.2891 +vt 0.1484 0.2891 +vt 0.1484 0.875 +vt 0.2422 0.875 +vt 0.2422 0.75 +vt 0.1484 0.75 +vt 0.2422 0.0703 +vt 0.2422 0.0703 +vt 0.2422 0.0703 +vt 0.2422 0.0703 +vt 0.1484 0.2891 +vt 0.2422 0.2891 +vt 0.2422 0.2891 +vt 0.1484 0.2891 +vt 0.1484 0.875 +vt 0.2422 0.875 +vt 0.2422 0.75 +vt 0.1484 0.75 +vt 0 0.5859 +vt 0.125 0.5859 +vt 0.125 0.5703 +vt 0 0.5703 +vt 0 0.5859 +vt 0.125 0.5859 +vt 0.125 0.5703 +vt 0 0.5703 +vt 0 0.7109 +vt 0.125 0.7109 +vt 0.125 0.5859 +vt 0 0.5859 +vt 0 0.5859 +vt 0.125 0.5859 +vt 0.125 0.5703 +vt 0 0.5703 +vt 0 0.5859 +vt 0.125 0.5859 +vt 0.125 0.5703 +vt 0 0.5703 +vn -0.01 -0.07 -1 +vn 0.01 0.07 1 +vn -0.99 0.1 0 +vn 0.99 -0.1 0 +vn 0 0 -1 +vn 0 0 1 +vn -0.98 0.19 0 +vn 0.98 -0.19 0 +vn 0 0 -1 +vn 0 0 1 +vn -0.98 0.19 0 +vn 0.98 -0.19 0 +vn 0 0 -1 +vn 0 0 1 +vn -0.94 0.34 0 +vn 0.94 -0.34 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn -0.01 -0.07 -1 +vn 0.01 0.07 1 +vn -0.99 0.1 0 +vn 0.99 -0.1 0 +vn 0 0 -1 +vn 0 0 1 +vn -0.98 0.19 0 +vn 0.98 -0.19 0 +vn 0 0 -1 +vn 0 0 1 +vn -0.98 0.19 0 +vn 0.98 -0.19 0 +vn 0 0 -1 +vn 0 0 1 +vn -0.94 0.34 0 +vn 0.94 -0.34 0 +vn -0.96 0 0.28 +vn 0.96 0 -0.28 +vn 0.07 0.97 0.25 +vn -0.07 -0.97 -0.25 +vn 0.27 -0.26 0.93 +vn -0.27 0.26 -0.93 +vn 0.22 0 -0.98 +vn -0.22 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 -0.22 +vn 0.98 0 0.22 +vn 0.98 0 0.22 +vn 0.22 0 -0.98 +vn -0.98 0 -0.22 +vn -0.22 0 0.98 +vn 0.98 0 0.22 +vn 0 -1 0 +vn -0.98 0 -0.22 +vn -0.98 0 -0.22 +vn 0 1 0 +vn 0.98 0 0.22 +vn 0 1 0 +vn 0.22 0 -0.98 +vn 0.22 0 -0.98 +vn 0 -1 0 +vn 0 -1 0 +vn -0.22 0 0.98 +vn -0.22 0 0.98 +vn 0 1 0 +vn -0.38 0 -0.92 +vn 0.38 0 0.92 +vn 0 1 0 +vn 0 -1 0 +vn -0.92 0 0.38 +vn 0.92 0 -0.38 +vn 0.92 0 -0.38 +vn -0.38 0 -0.92 +vn -0.92 0 0.38 +vn 0.38 0 0.92 +vn 0.92 0 -0.38 +vn 0 -1 0 +vn -0.92 0 0.38 +vn -0.92 0 0.38 +vn 0 1 0 +vn 0.92 0 -0.38 +vn 0 1 0 +vn -0.38 0 -0.92 +vn -0.38 0 -0.92 +vn 0 -1 0 +vn 0 -1 0 +vn 0.38 0 0.92 +vn 0.38 0 0.92 +vn 0 1 0 +vn 0 0 -1 +vn 0 0 1 +vn 1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0.32 0.95 0 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 1 0 0 +vn -0.32 0 -0.95 +vn -1 0 0 +vn 0 -0.32 0.95 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 0 1 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0.32 0.95 0 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 1 0 0 +vn -0.32 0 -0.95 +vn -1 0 0 +vn 0 -0.32 0.95 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn 0 0 -1 +vn -0.32 -0.95 0 +vn 0 0 1 +vn 0.32 0.95 0 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0.32 0 0.95 +vn 0 1 0 +vn -0.32 0 -0.95 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn 0.18 0 -0.98 +vn -0.18 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 -0.18 +vn 0.98 0 0.18 +vn 0 1 0 +vn -0.18 0 0.98 +vn 0 -1 0 +vn 0.18 0 -0.98 +vn 0 1 0 +vn -0.98 0 -0.18 +vn 0 -1 0 +vn 0 -1 0 +vn 0.98 0 0.18 +vn 0 1 0 +vn 0.98 0 0.18 +vn -0.18 0 0.98 +vn -0.18 0 0.98 +vn -0.98 0 -0.18 +vn -0.98 0 -0.18 +vn 0.18 0 -0.98 +vn 0.18 0 -0.98 +vn 0.98 0 0.18 +vn 0.17 0 -0.98 +vn -0.17 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 -0.17 +vn 0.98 0 0.17 +vn -0.98 0 -0.17 +vn -0.17 0 0.98 +vn 0.98 0 0.17 +vn 0.17 0 -0.98 +vn -0.98 0 -0.17 +vn 0 -1 0 +vn 0.98 0 0.17 +vn 0.98 0 0.17 +vn 0 1 0 +vn -0.98 0 -0.17 +vn 0 1 0 +vn -0.17 0 0.98 +vn -0.17 0 0.98 +vn 0 -1 0 +vn 0 -1 0 +vn 0.17 0 -0.98 +vn 0.17 0 -0.98 +vn 0 1 0 +vn -0.95 0 0.33 +vn 0.95 0 -0.33 +vn 0 1 0 +vn 0 -1 0 +vn 0.33 0 0.95 +vn -0.33 0 -0.95 +vn 0 1 0 +vn 0.95 0 -0.33 +vn 0 -1 0 +vn -0.95 0 0.33 +vn 0 1 0 +vn 0.33 0 0.95 +vn 0 -1 0 +vn 0 -1 0 +vn -0.33 0 -0.95 +vn 0 1 0 +vn 0.33 0 0.95 +vn 0.95 0 -0.33 +vn 0.95 0 -0.33 +vn -0.33 0 -0.95 +vn -0.33 0 -0.95 +vn -0.95 0 0.33 +vn -0.95 0 0.33 +vn 0.33 0 0.95 +vn -0.75 0 -0.66 +vn 0.75 0 0.66 +vn 0 1 0 +vn 0 -1 0 +vn -0.66 0 0.75 +vn 0.66 0 -0.75 +vn 0 1 0 +vn 0.75 0 0.66 +vn 0 -1 0 +vn -0.75 0 -0.66 +vn 0 1 0 +vn -0.66 0 0.75 +vn 0 -1 0 +vn 0 -1 0 +vn 0.66 0 -0.75 +vn 0 1 0 +vn -0.66 0 0.75 +vn 0.75 0 0.66 +vn 0.75 0 0.66 +vn 0.66 0 -0.75 +vn 0.66 0 -0.75 +vn -0.75 0 -0.66 +vn -0.75 0 -0.66 +vn -0.66 0 0.75 +vn 0.17 0 -0.98 +vn -0.17 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 -0.17 +vn 0.98 0 0.17 +vn -0.98 0 -0.17 +vn -0.17 0 0.98 +vn 0.98 0 0.17 +vn 0.17 0 -0.98 +vn -0.98 0 -0.17 +vn 0 -1 0 +vn 0.98 0 0.17 +vn 0.98 0 0.17 +vn 0 1 0 +vn -0.98 0 -0.17 +vn 0 1 0 +vn -0.17 0 0.98 +vn -0.17 0 0.98 +vn 0 -1 0 +vn 0 -1 0 +vn 0.17 0 -0.98 +vn 0.17 0 -0.98 +vn 0 1 0 +vn 0.71 -0.01 0.71 +vn -0.71 0.01 -0.71 +vn 0.64 -0.43 -0.64 +vn -0.64 0.43 0.64 +vn -0.71 0 0.71 +vn 0.71 0 -0.71 +vn 0.64 -0.42 0.64 +vn -0.64 0.42 -0.64 +vn -0.71 -0.01 -0.71 +vn 0.71 0.01 0.71 +vn -0.64 -0.43 0.64 +vn 0.64 0.43 -0.64 +vn 0.71 0 -0.71 +vn -0.71 0 0.71 +vn -0.64 -0.42 -0.64 +vn 0.64 0.42 0.64 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn -1 0 0 +vn 1 0 0 +vn 0 -0.45 -0.89 +vn 0 -0.45 0.89 +vn 0 -1 0 +vn -0.89 -0.45 0 +vn 0.89 -0.45 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn 1 0 0 +vn 0.32 0.95 0 +vn 0 0 -1 +vn -0.32 -0.95 0 +vn 0 0 1 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn 0 0 -1 +vn 0 -0.95 0.32 +vn 0 0 1 +vn 0.32 0.95 0 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 -1 +vn -1 0 0 +vn 0 0 1 +vn 1 0 0 +vn -0.32 0 -0.95 +vn -1 0 0 +vn 0 0 1 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0.32 0 0.95 +vn 0 1 0 +vn 1 0 0 +vn 0 1 0 +vn -1 0 0 +vn 0 -1 0 +vn 0 1 0 +vn -0.95 0 -0.32 +vn 0 -1 0 +vn 0 0 -1 +vn 0 -1 0 +vn 0 0 1 +vn 0 1 0 +vn 0.18 0 -0.98 +vn -0.18 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 -0.18 +vn 0.98 0 0.18 +vn 0 1 0 +vn -0.18 0 0.98 +vn 0 -1 0 +vn 0.18 0 -0.98 +vn 0 1 0 +vn -0.98 0 -0.18 +vn 0 -1 0 +vn 0 -1 0 +vn 0.98 0 0.18 +vn 0 1 0 +vn 0.98 0 0.18 +vn -0.18 0 0.98 +vn -0.18 0 0.98 +vn -0.98 0 -0.18 +vn -0.98 0 -0.18 +vn 0.18 0 -0.98 +vn 0.18 0 -0.98 +vn 0.98 0 0.18 +vn 0.22 0 -0.98 +vn -0.22 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 -0.22 +vn 0.98 0 0.22 +vn 0.98 0 0.22 +vn 0.22 0 -0.98 +vn -0.98 0 -0.22 +vn -0.22 0 0.98 +vn 0.98 0 0.22 +vn 0 -1 0 +vn -0.98 0 -0.22 +vn -0.98 0 -0.22 +vn 0 1 0 +vn 0.98 0 0.22 +vn 0 1 0 +vn 0.22 0 -0.98 +vn 0.22 0 -0.98 +vn 0 -1 0 +vn 0 -1 0 +vn -0.22 0 0.98 +vn -0.22 0 0.98 +vn 0 1 0 +vn -0.94 -0.24 0.24 +vn 0.94 0.24 -0.24 +vn -0.24 0.97 0.05 +vn 0.24 -0.97 -0.05 +vn 0.24 0.01 0.97 +vn -0.24 -0.01 -0.97 +vn -0.38 0 -0.92 +vn 0.38 0 0.92 +vn 0 1 0 +vn 0 -1 0 +vn -0.92 0 0.38 +vn 0.92 0 -0.38 +vn 0.92 0 -0.38 +vn -0.38 0 -0.92 +vn -0.92 0 0.38 +vn 0.38 0 0.92 +vn 0.92 0 -0.38 +vn 0 -1 0 +vn -0.92 0 0.38 +vn -0.92 0 0.38 +vn 0 1 0 +vn 0.92 0 -0.38 +vn 0 1 0 +vn -0.38 0 -0.92 +vn -0.38 0 -0.92 +vn 0 -1 0 +vn 0 -1 0 +vn 0.38 0 0.92 +vn 0.38 0 0.92 +vn 0 1 0 +vn -0.21 0 -0.98 +vn 0.21 0 0.98 +vn 0 1 0 +vn 0 -1 0 +vn -0.98 0 0.21 +vn 0.98 0 -0.21 +vn 0 1 0 +vn 0.21 0 0.98 +vn 0 -1 0 +vn -0.21 0 -0.98 +vn 0 1 0 +vn -0.98 0 0.21 +vn 0 -1 0 +vn 0 -1 0 +vn 0.98 0 -0.21 +vn 0 1 0 +vn 0.98 0 -0.21 +vn 0.21 0 0.98 +vn 0.21 0 0.98 +vn -0.98 0 0.21 +vn -0.98 0 0.21 +vn -0.21 0 -0.98 +vn -0.21 0 -0.98 +vn 0.98 0 -0.21 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 0 0.89 -0.45 +vn 0 0.45 0.89 +vn 1 0 0 +vn 0 -0.45 -0.89 +vn 1 0 0 +vn 0 0.89 -0.45 +vn 0 -0.45 -0.89 +vn -1 0 0 +vn 0 0.89 -0.45 +vn 0 0.45 0.89 +vn 0 -0.45 -0.89 +vn 1 0 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0.89 -0.45 +vn -1 0 0 +vn -1 0 0 +vn 1 0 0 +vn 0 1 0 +vn 0 0 1 +vn 0 0.89 -0.45 +vn 0 0.82 0.57 +vn 0 0.57 -0.82 +vn 0 -0.57 0.82 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 -0.65 -0.76 +vn 0 0.65 0.76 +vn 0.09 0.76 -0.65 +vn -0.09 -0.76 0.65 +vn -1 0.07 -0.06 +vn 1 -0.06 0.05 +vn 0 -0.65 -0.76 +vn 0 0.65 0.76 +vn -0.09 0.76 -0.65 +vn 0.09 -0.76 0.65 +vn -1 -0.06 0.05 +vn 1 0.07 -0.06 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 1 +vn 0 -1 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 0 -1 +vn 0 0.55 0.83 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn -0.16 0 0.99 +vn 0.16 0 -0.99 +vn 0 1 0 +vn 0.99 0 0.16 +vn -0.99 0 -0.16 +vn -0.52 0 -0.86 +vn 0.52 0 0.86 +vn 0 1 0 +vn 0 -1 0 +vn -0.86 0 0.52 +vn 0.86 0 -0.52 +vn 0 0.65 0.76 +vn 0 0.76 -0.65 +vn 0 -0.76 0.65 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 -1 0 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 -1 0 +vn 0 1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 1 +vn 1 0 0 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn -1 0 0 +vn 0 1 0 +vn 0 0 -1 +vn 0 0 1 +vn -1 0 0 +vn 1 0 0 +vn 0 1 0 +vn 1 0 0 +vn -1 0 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 -1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0 0 1 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0.03 0 1 +vn -0.03 0 -1 +vn -0.03 0 -1 +vn 0.03 0 1 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn -1 0 0.03 +vn -1 0 0.03 +vn 1 0 -0.03 +vn -1 0 0.03 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 0.12 0 0.99 +vn 0.12 0 0.99 +vn 0 0 -1 +vn 0 0 1 +vn 0 1 0 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 +vn 1 0 -0.03 +vn 0 -1 0 +vn -0.03 0 -1 +vn 0 1 0 +vn 0.03 0 1 +vn 0 1 0 +vn 0.03 0 1 +vn 0 -1 0 +vn -0.03 0 -1 +vn 0 1 0 +vn -1 0 0.03 +vn 0 0 -1 +vn 0 1 0 +vn 1 0 -0.03 +vn 0 1 0 +vn 1 0 -0.03 +vn 0 -1 0 +vn -1 0 0.03 +vn 0 0 1 +vn 0 1 0 +vn 1 0 -0.03 +vn 1 0 0 +vn 0 -1 0 +vn -0.12 0 -0.99 +vn -1 0 0 +vn 0 -1 0 +vn -0.12 0 -0.99 +vn 0 0 -1 +vn 0 0 1 +vn 0 -1 0 +vn -1 0 0 +vn 1 0 0 usemtl common_copper_cable f 656/1453/364 657/1454/364 659/1455/364 f 656/1453/364 659/1455/364 658/1456/364 From d1b68d5d1c5333ba47fd00c7826b61cfd34620d7 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Fri, 26 Jun 2026 15:27:44 +0200 Subject: [PATCH 02/12] Fixed element order in Chemical Bath GUI, closes #608 --- .../client/gui/block/GuiChemicalBath.java | 18 ++++++++++-------- .../client/gui/deco/DecoGui.java | 2 ++ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/GuiChemicalBath.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/GuiChemicalBath.java index 9a8d77b21..bbb05c866 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/GuiChemicalBath.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/GuiChemicalBath.java @@ -50,14 +50,6 @@ public void onInit() new DecoBar(176-8-8-2, -2) .withTemplate(DecoTemplates.BAR_ELECTRIC_ENERGY.apply(tile.energyStorage)), - imageProgress1 = new DecoImage(20-4, 5+18-4+24+2+2) - .withSize(19, 12) - .withImageLocation(TEXTURE, true) - .withUV(128, 0, 80, 19, 80+12), - imageProgress2 = new DecoImage(120-4+18-2-1, 5+18-4+24+2+2) - .withSize(21, 12) - .withImageLocation(TEXTURE, true) - .withUV(128, 19, 80, 19+21, 80+12), new DecoImage(20-4, 5+18-4+24+2+2) .withSize(19, 12) .withImageLocation(TEXTURE, true) @@ -76,6 +68,16 @@ public void onInit() .withSize(106, 36) .withImageLocation(TEXTURE, true) .withUV(128, 0, 32, 106, 32+36) + .withDisabled(true), + + imageProgress1 = new DecoImage(20-4, 5+18-4+24+2+2) + .withSize(19, 12) + .withImageLocation(TEXTURE, true) + .withUV(128, 0, 80, 19, 80+12), + imageProgress2 = new DecoImage(120-4+18-2-1, 5+18-4+24+2+2) + .withSize(21, 12) + .withImageLocation(TEXTURE, true) + .withUV(128, 19, 80, 19+21, 80+12) ); } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/DecoGui.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/DecoGui.java index 93c64aae7..e4d143dae 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/DecoGui.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/DecoGui.java @@ -720,6 +720,8 @@ protected List getTooltip() for(int i = buttonList.size()-1; i >= 0; i--) { GuiButton guiButton = buttonList.get(i); + if(!guiButton.enabled) + continue; if(guiButton instanceof DecoComponent&&guiButton.isMouseOver()) { this.hoveredElement = (DecoComponent)guiButton; From 3251ca3148929c69d404e5cefded670721c22451 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Tue, 30 Jun 2026 14:50:12 +0200 Subject: [PATCH 03/12] Complete rework of the Latex Collector, added new particle effects Closes #606 --- .../client/fx/IIParticles.java | 2 +- .../metal_device/LatexCollectorRenderer.java | 34 ++- .../client/util/amt/parts/AMTParticle.java | 12 +- .../common/IIConfigHandler.java | 14 +- .../tileentity/TileEntityLatexCollector.java | 247 +++++++++--------- .../common/util/easynbt/NBTSerialisation.java | 12 +- .../common/util/tile/TileEntityIIBase.java | 80 ++++++ .../latex_collector/latex_collector.obj.amt | 3 +- .../models/particle/fluid/latex_drip.mtl | 85 ++++++ .../models/particle/fluid/latex_drip.obj | 37 +++ .../particles/ammo/tracer.fx.amt | 4 +- .../particles/machine/latex_drip.fx.amt | 12 + .../textures/particle/fluid/fluid_drip01.png | Bin 0 -> 2021 bytes .../textures/particle/fluid/fluid_drip02.png | Bin 0 -> 2035 bytes .../textures/particle/fluid/fluid_drip03.png | Bin 0 -> 2069 bytes .../textures/particle/fluid/fluid_drip04.png | Bin 0 -> 2100 bytes .../textures/particle/fluid/fluid_drip05.png | Bin 0 -> 2122 bytes .../textures/particle/fluid/fluid_drip06.png | Bin 0 -> 2149 bytes .../textures/particle/fluid/fluid_drip07.png | Bin 0 -> 2166 bytes .../textures/particle/fluid/fluid_drip08.png | Bin 0 -> 2185 bytes .../textures/particle/fluid/fluid_drip09.png | Bin 0 -> 2209 bytes .../textures/particle/fluid/fluid_drip10.png | Bin 0 -> 2226 bytes .../textures/particle/fluid/fluid_drip11.png | Bin 0 -> 2217 bytes .../textures/particle/fluid/fluid_drip12.png | Bin 0 -> 2226 bytes .../textures/particle/fluid/fluid_drip13.png | Bin 0 -> 2223 bytes .../textures/particle/fluid/fluid_drip14.png | Bin 0 -> 2222 bytes .../textures/particle/fluid/fluid_drip15.png | Bin 0 -> 2222 bytes .../textures/particle/fluid/fluid_drip16.png | Bin 0 -> 2223 bytes .../textures/particle/fluid/fluid_drip17.png | Bin 0 -> 2208 bytes .../textures/particle/fluid/fluid_drip18.png | Bin 0 -> 2193 bytes .../textures/particle/fluid/fluid_drip19.png | Bin 0 -> 2179 bytes .../textures/particle/fluid/fluid_drip20.png | Bin 0 -> 2175 bytes .../textures/particle/fluid/fluid_drip21.png | Bin 0 -> 2156 bytes .../textures/particle/fluid/fluid_drip22.png | Bin 0 -> 2136 bytes .../textures/particle/fluid/fluid_drip23.png | Bin 0 -> 2111 bytes .../textures/particle/fluid/fluid_drip24.png | Bin 0 -> 2087 bytes .../textures/particle/fluid/fluid_drip25.png | Bin 0 -> 2062 bytes .../textures/particle/fluid/fluid_drip26.png | Bin 0 -> 2030 bytes 38 files changed, 401 insertions(+), 141 deletions(-) create mode 100644 src/main/java/pl/pabilo8/immersiveintelligence/common/util/tile/TileEntityIIBase.java create mode 100644 src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.mtl create mode 100644 src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.obj create mode 100644 src/main/resources/assets/immersiveintelligence/particles/machine/latex_drip.fx.amt create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip01.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip02.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip03.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip04.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip05.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip06.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip07.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip08.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip09.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip10.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip11.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip12.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip13.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip14.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip15.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip16.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip17.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip18.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip19.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip20.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip21.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip22.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip23.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip24.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip25.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip26.png diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/fx/IIParticles.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/fx/IIParticles.java index 39d41de47..0eb4a5193 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/fx/IIParticles.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/fx/IIParticles.java @@ -89,7 +89,7 @@ public void onParticleRender(AbstractParticle particle, float partialTicks) public void onParticleRender(AbstractParticle particle, float partialTicks) { int textures = (int)particle.getProperty(ParticleProperties.TEXTURES_COUNT); - particle.setProperty(ParticleProperties.TEXTURE_SHIFT, (int)(particle.getProgress(partialTicks)*textures)); + particle.setProperty(ParticleProperties.TEXTURE_SHIFT, (int)MathHelper.clamp(particle.getProgress(partialTicks)*textures, 0, textures)); } }); ParticleRegistry.registerProgram(() -> new ParticleProgram("retexture") diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/metal_device/LatexCollectorRenderer.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/metal_device/LatexCollectorRenderer.java index 798335ce5..39a622e1e 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/metal_device/LatexCollectorRenderer.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/metal_device/LatexCollectorRenderer.java @@ -3,13 +3,16 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.math.MathHelper; import net.minecraftforge.client.model.obj.OBJModel; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidUtil; import pl.pabilo8.immersiveintelligence.client.util.amt.AMTUtils; import pl.pabilo8.immersiveintelligence.client.util.amt.animation.IIAnimationCompiledMap; import pl.pabilo8.immersiveintelligence.client.util.amt.models.AMTModel; import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMT; import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMTFluid; +import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMTParticle; import pl.pabilo8.immersiveintelligence.client.util.amt.renderer.IITileRenderer; import pl.pabilo8.immersiveintelligence.client.util.amt.renderer.IITileRenderer.RegisteredTileRenderer; import pl.pabilo8.immersiveintelligence.common.IIConfigHandler.IIConfig.Machines.LatexCollector; @@ -29,6 +32,7 @@ public class LatexCollectorRenderer extends IITileRenderer new AMT[]{ this.latex = new AMTFluid("latex", header) - .withFluid(new FluidStack(IIContent.fluidLatex, 1000)) + .withFluid(new FluidStack(IIContent.fluidLatex, 1000)), + this.particle = new AMTParticle("particle", header) + .setParticle("machine/latex_drip") }); this.placeBucket = IIAnimationCompiledMap.create(this.model, IIReference.RES_II.with("latex_collector/place_bucket")); this.extractorVisibility = IIAnimationCompiledMap.create(this.model, IIReference.RES_II.with("latex_collector/extractor")); @@ -67,5 +88,6 @@ protected void nullifyModels() { this.model = AMTUtils.disposeOf(this.model); this.latex = null; + this.particle = null; } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTParticle.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTParticle.java index b65b21079..585f653da 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTParticle.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTParticle.java @@ -1,6 +1,5 @@ package pl.pabilo8.immersiveintelligence.client.util.amt.parts; -import blusunrize.immersiveengineering.client.ClientUtils; import net.minecraft.client.renderer.ActiveRenderInfo; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.GlStateManager; @@ -91,6 +90,11 @@ protected void draw(Tessellator tes, BufferBuilder buf) GlStateManager.enableBlend(); GlStateManager.alphaFunc(GL11.GL_GREATER, 0.003921569F); GlStateManager.disableCull(); + GlStateManager.color(1, 1, 1, 1); + GlStateManager.disableLighting(); + GlStateManager.depthMask(false); + GlStateManager.enableDepth(); + GlStateManager.enableTexture2D(); //Set up BufferBuilder with the particle stage ParticleDrawStages drawStage = particle.getDrawStage(); @@ -99,7 +103,7 @@ protected void draw(Tessellator tes, BufferBuilder buf) //Render AbstractParticle.interPos = Vec3d.ZERO; particle.preRender( - ClientUtils.mc().getRenderPartialTicks(), + 0, ActiveRenderInfo.getRotationX(), ActiveRenderInfo.getRotationXZ(), ActiveRenderInfo.getRotationZ(), @@ -107,7 +111,7 @@ protected void draw(Tessellator tes, BufferBuilder buf) ActiveRenderInfo.getRotationXY() ); particle.render(buf, - ClientUtils.mc().getRenderPartialTicks(), + 0, ActiveRenderInfo.getRotationX(), ActiveRenderInfo.getRotationXZ(), ActiveRenderInfo.getRotationZ(), @@ -116,6 +120,8 @@ protected void draw(Tessellator tes, BufferBuilder buf) ); tes.draw(); drawStage.clear(); + + GlStateManager.depthMask(true); } @Override diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/IIConfigHandler.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/IIConfigHandler.java index 087a133e1..daa3dbcbe 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/IIConfigHandler.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/IIConfigHandler.java @@ -1161,8 +1161,18 @@ public static class FuelStation public static class LatexCollector { - @Comment({"Collection time of a single bucket (in ticks)."}) - public static int collectTime = 12000; + @Comment({"Time required to place the bucket (in ticks)."}) + public static int bucketPlaceTime = 10; + + @Comment({"Delay between drops of latex into the bucket (in ticks)."}) + public static int dropTimer = 250; + + @Comment({"Amount of latex collected by each drop (in ticks)."}) + public static int dropAmount = 4; + + @Comment({"Penalty to the drop amount, when more than one collector is placed by the same tree.", + "Multiplied by the number of collectors placed.."}) + public static float dropPenalty = 0.25f; } public static class CO2Collector diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/metal_device/tileentity/TileEntityLatexCollector.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/metal_device/tileentity/TileEntityLatexCollector.java index e722aa5d8..9620070bd 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/metal_device/tileentity/TileEntityLatexCollector.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/metal_device/tileentity/TileEntityLatexCollector.java @@ -3,14 +3,12 @@ import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IBlockBounds; import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IDirectionalTile; import blusunrize.immersiveengineering.common.blocks.IEBlockInterfaces.IPlayerInteraction; -import blusunrize.immersiveengineering.common.blocks.TileEntityIEBase; import net.minecraft.block.state.IBlockState; import net.minecraft.client.resources.I18n; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.ITickable; @@ -18,6 +16,7 @@ import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidUtil; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandlerItem; import net.minecraftforge.fml.relauncher.Side; @@ -27,150 +26,144 @@ import pl.pabilo8.immersiveintelligence.common.IIContent; import pl.pabilo8.immersiveintelligence.common.block.simple.BlockIIRubberLog; import pl.pabilo8.immersiveintelligence.common.block.simple.BlockIIRubberLog.RubberLogs; -import pl.pabilo8.immersiveintelligence.common.network.IIPacketHandler; -import pl.pabilo8.immersiveintelligence.common.network.messages.MessageIITileSync; -import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyNBT; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT.SyncEvents; +import pl.pabilo8.immersiveintelligence.common.util.tile.TileEntityIIBase; + +import javax.annotation.Nonnull; /** * @author Pabilo8 (pabilo@iiteam.net) + * @updated 30.06.2026 + * @ii-approved 0.3.1 * @since 19.05.2021 */ -public class TileEntityLatexCollector extends TileEntityIEBase implements IPlayerInteraction, ITickable, IBlockBounds, IDirectionalTile, IAdvancedTextOverlay +public class TileEntityLatexCollector extends TileEntityIIBase implements IPlayerInteraction, ITickable, IBlockBounds, IDirectionalTile, IAdvancedTextOverlay { + @SyncNBT public EnumFacing facing = EnumFacing.NORTH; + @SyncNBT(events = SyncEvents.TILE_CUSTOM1) public ItemStack bucket = ItemStack.EMPTY; - public float timer = 0; - //Purely decorational, client only + @SyncNBT(events = {SyncEvents.TILE_CUSTOM1, SyncEvents.TILE_CUSTOM2}) + public int collectedLatex = 0, collectionTimer = 0; + @SyncNBT(events = {SyncEvents.TILE_CUSTOM1}) public int bucketTime = 10; @Override - public void readCustomNBT(NBTTagCompound nbt, boolean descPacket) - { - facing = EnumFacing.getFront(nbt.getInteger("facing")); - bucket = new ItemStack(nbt.getCompoundTag("bucket")); - if(nbt.hasKey("noSetup")) - bucketTime = 0; - this.timer = nbt.getFloat("timer"); - } - - @Override - public void writeCustomNBT(NBTTagCompound nbt, boolean descPacket) - { - nbt.setInteger("facing", facing.ordinal()); - nbt.setTag("bucket", bucket.serializeNBT()); - if(bucketTime < 10) - nbt.setBoolean("noSetup", true); - nbt.setFloat("timer", timer); - } - - /** - * @return available latex based on current progress fraction, in mB (0..1000). - * Fraction: floor((timer/collectTime)*1000). - */ - public int getAvailableLatexMilliBuckets() - { - if(LatexCollector.collectTime <= 0) - return 0; - if(!world.getBiome(pos).isHighHumidity()) - return 0; - float frac = Math.max(0f, Math.min(1f, timer/LatexCollector.collectTime)); - return (int)Math.floor(frac*1000f); - } - - /** - * Drains a partial amount of latex by reducing internal progress accordingly. - * - * @param amountMb requested mB - * @param doDrain whether to actually drain - * @return drained mB - */ - public int drainLatexMilliBuckets(int amountMb, boolean doDrain) + public void update() { - if(world==null||world.isRemote) - return 0; + //Handle bucket placement + if(bucket.isEmpty()||!bucket.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) + return; + if(bucketTime > 0) + { + bucketTime -= 1; + return; + } - int available = getAvailableLatexMilliBuckets(); - int drained = Math.max(0, Math.min(amountMb, available)); - if(drained <= 0) - return 0; + //Stop collecting if the bucket is full + IFluidHandlerItem capability = bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); + if(capability==null||capability.drain(1000, false)!=null) + return; - if(doDrain) + //Handle latex collection + if(collectionTimer < LatexCollector.dropTimer) + collectionTimer += 1; + else { - float deltaTimer = (drained/1000f)*LatexCollector.collectTime; - timer = Math.max(0f, timer-deltaTimer); - markDirty(); - world.notifyBlockUpdate(pos, world.getBlockState(pos), world.getBlockState(pos), 3); + //Increment collected amount + if(collectedLatex < 1000) + { + collectedLatex += (int)(LatexCollector.dropAmount*getIncomeModifier()); + collectionTimer = 0; + } + else + { + //Fill the bucket item (and stop collection next tick) + this.collectedLatex = 0; + if(!world.isRemote) + { + bucket = capability.getContainer(); + updateEntityForEvent(SyncEvents.ENTITY_CUSTOM1); + } + } } - - return drained; } @Override - public boolean interact(EnumFacing side, EntityPlayer player, EnumHand hand, ItemStack heldItem, float hitX, float hitY, float hitZ) + public boolean interact(@Nonnull EnumFacing side, @Nonnull EntityPlayer player, @Nonnull EnumHand hand, @Nonnull ItemStack heldItem, + float hitX, float hitY, float hitZ) { + //Handle bucket placement if(bucket.isEmpty()&&heldItem.getItem()==Items.BUCKET) { bucket = heldItem.copy(); bucket.setCount(1); heldItem.shrink(1); - updateBucket(); - this.timer = 0; + updateEntityForEvent(SyncEvents.ENTITY_CUSTOM1); + this.collectedLatex = 0; return true; } + //Handle bucket removal else if(!bucket.isEmpty()&&heldItem.isEmpty()) { player.inventory.addItemStackToInventory(bucket.copy()); bucket = ItemStack.EMPTY; - updateBucket(); - this.timer = 0; + updateEntityForEvent(SyncEvents.ENTITY_CUSTOM1); + this.collectedLatex = 0; return true; } else return heldItem.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); } - private void updateBucket() - { - IIPacketHandler.sendToClient(this, new MessageIITileSync(this, EasyNBT.newNBT().withItemStack("bucket", bucket))); - } + //--- Utils ---// - @Override - public void receiveMessageFromServer(NBTTagCompound message) + /** + * @return available latex stored in the collector's bucket, in mB (0..1000). + */ + public int getAvailableLatexMilliBuckets() { - super.receiveMessageFromServer(message); - if(message.hasKey("bucket")) - { - bucket = new ItemStack(message.getCompoundTag("bucket")); - bucketTime = 10; - } + FluidStack fs = FluidUtil.getFluidContained(bucket); + return MathHelper.clamp(fs==null?collectedLatex: fs.amount, 0, 1000); } - @Override - public void update() + /** + * Drains a partial amount of latex by reducing the stored collector amount. + * + * @param amountMb requested mB + * @param doDrain whether to actually drain + * @return drained mB + */ + public int drainLatexMilliBuckets(int amountMb, boolean doDrain) { - if(bucketTime > 0) - bucketTime -= 1; + if(world==null||world.isRemote||amountMb <= 0) + return 0; - if(!bucket.isEmpty()&&bucket.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) + //Drain bucket item + FluidStack fs = FluidUtil.getFluidContained(bucket); + if(fs!=null) { IFluidHandlerItem capability = bucket.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null); - if(capability==null) - return; - - if(capability.fill(new FluidStack(IIContent.fluidLatex, 1000), false)==1000&&timer < LatexCollector.collectTime&&isNextToTree()) - timer = Math.min(timer+getIncomeModifier(), LatexCollector.collectTime); - else if(timer==LatexCollector.collectTime) - if(capability.fill(new FluidStack(IIContent.fluidLatex, 1000), true)==1000) - { - this.timer = 0; - if(!world.isRemote) - { - bucket = capability.getContainer(); - updateBucket(); - } - } + assert capability!=null; + if(doDrain) + { + capability.drain(1000, true); + this.bucket = capability.getContainer(); + //Put back the remaining latex into the collector's stored amount; a bucket can only + this.collectedLatex = 1000-Math.min(amountMb, 1000); + updateEntityForEvent(SyncEvents.TILE_CUSTOM2); + } + return Math.min(amountMb, 1000); } - + //Drain the collector's stored latex + int collected = Math.min(amountMb, collectedLatex); + if(doDrain) + { + collectedLatex = collectedLatex-collected; + updateEntityForEvent(SyncEvents.TILE_CUSTOM2); + } + return collected; } public boolean isNextToTree() @@ -181,23 +174,38 @@ public boolean isNextToTree() public float getIncomeModifier() { - int def = 4; + float def = 1f; if(world.getTileEntity(pos.offset(facing, 2)) instanceof TileEntityLatexCollector) - def--; + def -= LatexCollector.dropPenalty; if(world.getTileEntity(pos.offset(facing).offset(facing.rotateY())) instanceof TileEntityLatexCollector) - def--; + def -= LatexCollector.dropPenalty; if(world.getTileEntity(pos.offset(facing).offset(facing.rotateYCCW())) instanceof TileEntityLatexCollector) - def--; - - return def/4f; + def -= LatexCollector.dropPenalty; + return def; } + //--- IAdvancedTextOverlay ---// + + @SideOnly(Side.CLIENT) @Override - public float[] getBlockBounds() + public String[] getOverlayText(EntityPlayer player, RayTraceResult mop) { - return new float[]{0f, 0, 0f, 1f, .875f, 1f}; + int latex = (int)MathHelper.clamp(collectedLatex, 0f, 1000); + FluidStack contained = FluidUtil.getFluidContained(bucket); + if(contained!=null&&contained.amount > latex) + latex = MathHelper.clamp(contained.amount, 0, 1000); + + if(latex==0) + return new String[]{I18n.format("gui.immersiveengineering.empty")}; + return new String[]{ + IIContent.fluidLatex.getLocalizedName(new FluidStack(IIContent.fluidLatex, latex)), + TextFormatting.GRAY.toString()+latex+"/1000 mB" + }; } + //--- Facing ---// + + @Nonnull @Override public EnumFacing getFacing() { @@ -205,7 +213,7 @@ public EnumFacing getFacing() } @Override - public void setFacing(EnumFacing facing) + public void setFacing(@Nonnull EnumFacing facing) { this.facing = facing; } @@ -217,36 +225,29 @@ public int getFacingLimitation() } @Override - public boolean mirrorFacingOnPlacement(EntityLivingBase placer) + public boolean mirrorFacingOnPlacement(@Nonnull EntityLivingBase placer) { return false; } @Override - public boolean canHammerRotate(EnumFacing side, float hitX, float hitY, float hitZ, EntityLivingBase entity) + public boolean canHammerRotate(@Nonnull EnumFacing side, float hitX, float hitY, float hitZ, @Nonnull EntityLivingBase entity) { return false; } @Override - public boolean canRotate(EnumFacing axis) + public boolean canRotate(@Nonnull EnumFacing axis) { return false; } - //--- IAdvancedTextOverlay ---// + //--- Block Bounds ---// - @SideOnly(Side.CLIENT) + @Nonnull @Override - public String[] getOverlayText(EntityPlayer player, RayTraceResult mop) + public float[] getBlockBounds() { - int latex = (int)MathHelper.clamp(timer/LatexCollector.collectTime*1000, 0f, 1000f); - if(latex==0) - return new String[]{I18n.format("gui.immersiveengineering.empty")}; - - return new String[]{ - IIContent.fluidLatex.getLocalizedName(new FluidStack(IIContent.fluidLatex, latex)), - TextFormatting.GRAY.toString()+latex+"/1000 mB" - }; + return new float[]{0f, 0, 0f, 1f, .875f, 1f}; } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/easynbt/NBTSerialisation.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/easynbt/NBTSerialisation.java index 3e60e5ba0..255205229 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/easynbt/NBTSerialisation.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/easynbt/NBTSerialisation.java @@ -4,6 +4,7 @@ import blusunrize.immersiveengineering.common.util.inventory.MultiFluidTank; import net.minecraft.item.ItemStack; import net.minecraft.nbt.*; +import net.minecraft.util.EnumFacing; import net.minecraft.util.NonNullList; import net.minecraft.util.math.Vec3d; import net.minecraftforge.common.util.INBTSerializable; @@ -112,6 +113,11 @@ public static void preInit() } ); + registerSerializer(EnumFacing.class, NBTTagInt.class, + facing -> new NBTTagInt(facing.getIndex()), + nbt -> EnumFacing.getFront(nbt.getInt()) + ); + //Register serializers for IE types //FluxStorage registerSerializer(FluxStorage.class, NBTTagInt.class, i -> new NBTTagInt(i.getEnergyStored()), (nbt, fluxStorage) -> @@ -232,7 +238,7 @@ public static void postInit() } public static void registerSerializer(Class dataClass, Class nbtClass, - Function serialize, Function deserialize) + Function serialize, Function deserialize) { serializerRegistry.put(dataClass, (field, annotation) -> new FieldSerializer(field, annotation) { @@ -252,8 +258,8 @@ protected NBT toNBT(FIELD field) } public static void registerSerializer(Class dataClass, Class nbtClass, - Function serialize, - BiFunction deserialize) + Function serialize, + BiFunction deserialize) { serializerRegistry.put(dataClass, (field, annotation) -> new FieldSerializer(field, annotation) { diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/tile/TileEntityIIBase.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/tile/TileEntityIIBase.java new file mode 100644 index 000000000..dadc9369e --- /dev/null +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/tile/TileEntityIIBase.java @@ -0,0 +1,80 @@ +package pl.pabilo8.immersiveintelligence.common.util.tile; + +import blusunrize.immersiveengineering.common.blocks.TileEntityIEBase; +import net.minecraft.entity.Entity; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import pl.pabilo8.immersiveintelligence.common.network.IIPacketHandler; +import pl.pabilo8.immersiveintelligence.common.network.messages.MessageIITileSync; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.NBTSerialisation; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; + +import javax.annotation.Nonnull; + +/** + * @author Pabilo8 (pabilo@iiteam.net) + * @ii-approved 0.3.1 + * @since 28.06.2026 + */ +@SuppressWarnings({"unchecked", "unused"}) +public class TileEntityIIBase extends TileEntityIEBase +{ + //--- NBT ---// + + @Override + public void readCustomNBT(@Nonnull NBTTagCompound nbt, boolean descPacket) + { + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.deserializeAll(this, nbt, false)); + } + + @Override + public void writeCustomNBT(@Nonnull NBTTagCompound nbt, boolean descPacket) + { + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.serializeAll(this, nbt)); + } + + @Override + public void receiveMessageFromServer(@Nonnull NBTTagCompound message) + { + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.deserializeAll(this, message, true)); + } + + @Override + public void receiveMessageFromClient(@Nonnull NBTTagCompound message) + { + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.deserializeAll(this, message, true)); + } + + + //--- Additional SyncNBT methods ---// + + public void updateEntityForTime(int time) + { + NBTTagCompound nbt = new NBTTagCompound(); + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.serializeForTime(entity, nbt, time)); + IIPacketHandler.sendToClient(new MessageIITileSync(this, nbt)); + } + + @SuppressWarnings({"unchecked"}) + public void updateEntityForEvent(SyncNBT.SyncEvents event) + { + NBTTagCompound nbt = new NBTTagCompound(); + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.serializeForEvent(entity, nbt, event)); + IIPacketHandler.sendToClient(new MessageIITileSync(this, nbt)); + } + + public void sendServerUpdateForEvent(SyncNBT.SyncEvents event) + { + NBTTagCompound nbt = new NBTTagCompound(); + NBTSerialisation.synchroniseFor(this, (tag, entity) -> tag.serializeForEvent(entity, nbt, event)); + IIPacketHandler.sendToServer(new MessageIITileSync(this, nbt)); + } + + //--- Built-In ---// + + @Override + public void onEntityCollision(@Nonnull World world, @Nonnull Entity entity) + { + super.onEntityCollision(world, entity); + } +} diff --git a/src/main/resources/assets/immersiveintelligence/models/block/metal_device/latex_collector/latex_collector.obj.amt b/src/main/resources/assets/immersiveintelligence/models/block/metal_device/latex_collector/latex_collector.obj.amt index e889a3e0a..b367acf95 100644 --- a/src/main/resources/assets/immersiveintelligence/models/block/metal_device/latex_collector/latex_collector.obj.amt +++ b/src/main/resources/assets/immersiveintelligence/models/block/metal_device/latex_collector/latex_collector.obj.amt @@ -3,7 +3,8 @@ "bucket": [8, 4.65, 9.5], "handle": [2.5, 15, 9], "extractor": [14, 17, 17], - "latex": [0, 0, 0] + "latex": [0, 0, 0], + "particle": [8, 19.005, 16.5] }, "hierarchy": { "handle": "bucket", diff --git a/src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.mtl b/src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.mtl new file mode 100644 index 000000000..8d84f695b --- /dev/null +++ b/src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.mtl @@ -0,0 +1,85 @@ +# Made by Pabilo8 with Blockbench + +newmtl fluid_drip_00 +map_Kd immersiveintelligence:blocks/empty + +newmtl fluid_drip_01 +map_Kd immersiveintelligence:particle/fluid/fluid_drip01 + +newmtl fluid_drip_02 +map_Kd immersiveintelligence:particle/fluid/fluid_drip02 + +newmtl fluid_drip_03 +map_Kd immersiveintelligence:particle/fluid/fluid_drip03 + +newmtl fluid_drip_04 +map_Kd immersiveintelligence:particle/fluid/fluid_drip04 + +newmtl fluid_drip_05 +map_Kd immersiveintelligence:particle/fluid/fluid_drip05 + +newmtl fluid_drip_06 +map_Kd immersiveintelligence:particle/fluid/fluid_drip06 + +newmtl fluid_drip_07 +map_Kd immersiveintelligence:particle/fluid/fluid_drip07 + +newmtl fluid_drip_08 +map_Kd immersiveintelligence:particle/fluid/fluid_drip08 + +newmtl fluid_drip_09 +map_Kd immersiveintelligence:particle/fluid/fluid_drip09 + +newmtl fluid_drip_10 +map_Kd immersiveintelligence:particle/fluid/fluid_drip10 + +newmtl fluid_drip_11 +map_Kd immersiveintelligence:particle/fluid/fluid_drip11 + +newmtl fluid_drip_12 +map_Kd immersiveintelligence:particle/fluid/fluid_drip12 + +newmtl fluid_drip_13 +map_Kd immersiveintelligence:particle/fluid/fluid_drip13 + +newmtl fluid_drip_14 +map_Kd immersiveintelligence:particle/fluid/fluid_drip14 + +newmtl fluid_drip_15 +map_Kd immersiveintelligence:particle/fluid/fluid_drip15 + +newmtl fluid_drip_16 +map_Kd immersiveintelligence:particle/fluid/fluid_drip16 + +newmtl fluid_drip_17 +map_Kd immersiveintelligence:particle/fluid/fluid_drip17 + +newmtl fluid_drip_18 +map_Kd immersiveintelligence:particle/fluid/fluid_drip18 + +newmtl fluid_drip_19 +map_Kd immersiveintelligence:particle/fluid/fluid_drip19 + +newmtl fluid_drip_20 +map_Kd immersiveintelligence:particle/fluid/fluid_drip20 + +newmtl fluid_drip_21 +map_Kd immersiveintelligence:particle/fluid/fluid_drip21 + +newmtl fluid_drip_22 +map_Kd immersiveintelligence:particle/fluid/fluid_drip22 + +newmtl fluid_drip_23 +map_Kd immersiveintelligence:particle/fluid/fluid_drip23 + +newmtl fluid_drip_24 +map_Kd immersiveintelligence:particle/fluid/fluid_drip24 + +newmtl fluid_drip_25 +map_Kd immersiveintelligence:particle/fluid/fluid_drip25 + +newmtl fluid_drip_26 +map_Kd immersiveintelligence:particle/fluid/fluid_drip26 + +newmtl fluid_drip_27 +map_Kd immersiveintelligence:blocks/empty diff --git a/src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.obj b/src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.obj new file mode 100644 index 000000000..c462941cb --- /dev/null +++ b/src/main/resources/assets/immersiveintelligence/models/particle/fluid/latex_drip.obj @@ -0,0 +1,37 @@ +# Made by Pabilo8 with Blockbench +# Exported with IIToolkit Plugin on 28/06/2026 +mtllib latex_drip.mtl + +o drip +v 0.0625 -0.0068 0.0148 +v 0.0625 -0.1742 -0.3894 +v -0.0625 -0.0068 0.0148 +v -0.0625 -0.1742 -0.3894 +v -0.0625 -0.1742 -0.3894 +v 0.0625 -0.1742 -0.3894 +v 0.0625 -0.6694 -0.3655 +v -0.0625 -0.6694 -0.3655 +v -0.0625 0.0484 -0.0213 +v 0.0625 0.0484 -0.0213 +vt 0.0625 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.5 +vt 0.0625 0.5 +vt 0.0625 0.5 +vt 0.1875 0.5 +vt 0.1875 0 +vt 0.0625 0 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.1875 0.9375 +vt 0.1875 1 +vn 0 0.92 -0.38 +vn 0 -0.05 -1 +vn 0 -0.55 -0.84 +usemtl fluid_drip_00 +f 3/1/1 1/2/1 2/3/1 +f 3/1/1 2/3/1 4/4/1 +f 5/5/2 6/6/2 7/7/2 +f 5/5/2 7/7/2 8/8/2 +f 3/9/3 9/10/3 10/11/3 +f 3/9/3 10/11/3 1/12/3 \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/particles/ammo/tracer.fx.amt b/src/main/resources/assets/immersiveintelligence/particles/ammo/tracer.fx.amt index 85efa1bdd..4ceea2d5e 100644 --- a/src/main/resources/assets/immersiveintelligence/particles/ammo/tracer.fx.amt +++ b/src/main/resources/assets/immersiveintelligence/particles/ammo/tracer.fx.amt @@ -1,8 +1,8 @@ { "type": "ParticleModel", - "models": ["ammo/tracer_mid.obj"], + "models": ["ammo/tracer_start.obj"], "max_lifetime": 2, - "draw_stage": "custom_additive", + "draw_stage": "custom", "chained": [ { "time": 1, diff --git a/src/main/resources/assets/immersiveintelligence/particles/machine/latex_drip.fx.amt b/src/main/resources/assets/immersiveintelligence/particles/machine/latex_drip.fx.amt new file mode 100644 index 000000000..b4b2f4a22 --- /dev/null +++ b/src/main/resources/assets/immersiveintelligence/particles/machine/latex_drip.fx.amt @@ -0,0 +1,12 @@ +{ + "type": "ParticleModel", + "models": ["fluid/latex_drip.obj"], + "max_lifetime": 28, + "draw_stage": "custom_solid", + "color": "ffffff", + "aabb": 0.25, + "size": 1, + "programs": [ + "lifetime_retexture" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip01.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip01.png new file mode 100644 index 0000000000000000000000000000000000000000..5a750826251e9b8f17d276be3fb3211b6ef27278 GIT binary patch literal 2021 zcmbtUdu&r>6hF7OuiLeOb{mgUpnI^5IhNbouCxtE*w%HIm)!$-Bqns-?N(VIw091O zk}(k+0h0*|B7X=93V)~*@Ij1WfT9vIm?&e$#Gxq6Xh2Y4A=dM?T?eEjKEB>_&*^u5 zzjMCd{l0rU-HTirm0kq^8os)+7X4UaN-5rt49^@wXY^LrE(BOx0MNbxU>K*`uK={N z07EMP96JHVhj$;XnFT=K6_)Zoo-YO^qOd9@1qvfllS;uweZ%Xv~1mm-4%J{DuBT{+9yZD7}BUfr- zOU*Xqvz*nzS{F858Z4BvG@PaFg*NA`nMn?XmvY_b_%|6<>vohzz{NzJ&@<%H;~VOsP;P7)Gg5 zXKB{Zvu)h0QnQ64MJR@0 z)EVjt8qEYQ$B@JQ>k&H!S|zTCp{ZPuXenAt#ZJOhT&IkRkAxH=l$Ofm3MHe;K){i) z>AenJ&jPSDsnpQRJ@5;?{TVQRbC*_hi?eyOwWmh;%TjapNaU z)K4oYESg?yDYMSB*&P*?&MH?mKd-KS@#9ODE?e$x6nst1{wJei>r-v3*Q|YZ!*d%q zJ>R+c#ckVPdU?mrS9a}v{f&M5-+b%9!S@awKJxwtAAWT7_=%IBes=2fFTU*i>ipN= zTado`23pski5mx(sj&i>k zbqkR?WVHxjD>0Hw_v@pDh|;D|6`__;q%Q373Sb)Zs)Wa6PAXZ6vg)yQx=+u$zdi9W zf-_TKCpLY|=Zgv=nC$F=7j7KKbXF?O2Ru!}0wLHWHiN}t(_Y@+k9pnw`6d2FOq;BI z%g3L_?5LQ!kWXy$L_9k1S&vR^kYe!{qj_7FxhOc;U=)#4-fi8eAC+wFSX6khAz{oTNgLMfFtg-ZpX? zr|^|?>x+85w|m>E#e*fMW9lujiPz|YjWx0pE(-RAv@6#+FLfdkc;}+Zx64;_{0+T@ BE&2ce literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip02.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip02.png new file mode 100644 index 0000000000000000000000000000000000000000..435eff6c5b387bad52f427de75eaf4bcca6e12b4 GIT binary patch literal 2035 zcmbtUdu&r>6hF7OuiLeOb{k`*K=*(Z9Lw!(SK0<7?A2agb`Knon9y~%TV;LF-Z>y@ z#zYW;8UzKAL;*$N4-sLg#27#nA0fa*88b$QqA;TYL4k!(&)0SxkdpZLde1$l-}(K{ z`F{8N?p^Dd=hCS3Dge;%?y5TUBZ(=cc<&yZI)KjTbJxuUSTPZxa}~fKPIX=cXlDTi z76Ul90OUos9jcuMK;IG;@P3}33`#^{RZ0pJMx-W{iVx$2grb4Qxz%Voj0uLAo{}Z} zdW^@U;!PNvQWy!wW=aAY^xM!ljC0WMK?|%&_WB6pQ)tS>&y5kOJmg*cT#u0}GqYtD zJMvl1=45S7&TceYo#o|Div!WrYr`u-Dll*xlC?>tAx#VkQ<_MNAx#w+)2a2!5hK4N z&P~NcJ0(fhbQ5kW-cJPLNUlBJ8~*`D&Z^;Suo01gxA?bE2}-$KA(tr?3I)R`Rq7m# zIx9<^uge~hGgd!-+*rNAU@R^xF&35<84RYWlS)~$)oLAI;+Ssdrj=Q&94SIE45Q9c zkJe~La|MP1?q84iVbCgZMGQ?9f<#NvS}J}F#^X9=RAMBh5TUeGCRZpKRTcueN0KK+ zOQf_+CdE@mJ%M?UYGt|t^GtbmtyfXFG>2QcVY{-ZV&9S6y3?17EltrbMl~vLbiRJV z#1hk_$<}h)RJ+4jSyf%*a`Ut58|FXUxM1NTU$fwEX$?FY6Wbr_Shjq{Q>&g{z2=#< z>t5Kn>BW~eZ+Us^j-9W+vFpvZcJFz2|AFp<@4f%Qp`#xk`{dK(pMCyC&sS%@{^o4& zxxW7MKmK&#=U*;f8o2Vu)oXwLb^XT8L86PoO&uCZW%uaPqArP4N=p?)7bWQ+!nIOa zfmyDbS*!3a%`W6tDsw6}Y~Oc;DYDdE&TWdGR*fpQ_D{G%q$QO7Ghto-Nm*Lhu&zE( z(-dwVt%VtIebBU{Q}sV=M*JLfo>^Isk4Mrp+f{|{<+DW`{$nEUg)x9E9WkosyC-kq zq(bE9Rx1YN22CMj=gyPYc!F5HKy3Dkg3}ij&?Vl_DXeV@XKyfDoECCDz_L!3-F>Nj z%3XwDxH;foet$ymffE~$U`lro13@7sdV`UBIaVj@NH%eG?cItTJ>dw;0)A&jK#X~W zXg#vp1hAJH$))@4!4gDi)2PaDTR2)D@%jWXk9bAGW3nKftU_50*gDgv=bhgl`4GX` zX>c_*eaP>R2_l#s?40MW9>sJ{I?V^YEy5fj)FQTm)oRyX*wu@9-QD@dKr^Pzww^_K zUt)GxOnuldc6g%#-1$k=o|>@_QN`&RVrzS_DdY{bWfpH7bB%1bAp^cL9E?PTSS%0@ zf$gRcX++$(47fX0aOE~nge70cG513z^*GkfZs|iz4ylR%>4e+opJU0c>ZO2;_6yiWeo*;x{5X(b9XL5 O9`M!ks@|?x-1RrxY&BZ| literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip03.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip03.png new file mode 100644 index 0000000000000000000000000000000000000000..e0f2672796854bc70002f20608ccf1e531a417c2 GIT binary patch literal 2069 zcmbtUd2kbD6n~q0(_|oN3vCEAJ)i|?XR}E|lHnM7r<5Ana?Yrv>86b~2g%kJ#-mg$ zg4ZBuE8+}?pzw!U0T0H}7En}%;gF-$aiAy)b##iLNT)-5Uy`Q4gc*-7`}Vzj@ArG} z`|bDbuCrH`D&-nE04Qx`MOEm>5|fGWzJF-O06LwstZF{Mswn`iYXF9Ds`Uy$69X`? z9KhNMFy6oAz=D|o!eMTS&1JJq0~w;QDkTC6BT|!!#@#p}poAdAxpp))#sou5Ly5!w z1&k*|<4qXnL@@%4^^^dV=(nJ;7$>3MgXUfv>Gc`LC(vZ!Ul~TE@`x|B&A02=JUx?V zFe9H~O;*NaWz9Oh(VCxcHCPZ$Z5>?^Qh|os5UEWnjcB4t7}Z2tjA$yrSQuTe1Tm63 z;^b&dv{Qme%`(D`#(RlC9Fet$dP5gsYT1RD_niq!O`ADwWc-Os+^$ zDiRVDsp`ZrNfR|`lO}4kT3uFNwk~6OrdFFXW9oE9Z!{XyvMsaB?94oaktIbanx+*A ziWH?Xg-zF{v;TU8xrLAr03lrotm4g$Naj#1g5DmM0)!|5);* zgaVOJEEeG@qn^Y(h*V;Ax_+)Cae+gcu_B3GyX|jqwy%9| z-TGHHZhG~#j?ULNZ{P9O&RuW6vwP16d-v`C@S~4EIdJgM;V-^C^3~Vhoci|knX~75 z&-e9T`r*gRKmB~=>cF+%uiyCN&zpbU8X~$V+|-c~QFf0m73va*L_(32=%NJ8M7T;M zPS;D+a~DV*D-tu<)v~054coeU=uAV^U~+BXq?8@NN$m+EbqsbZ)?U!yNj?RPji(2sdTV8dj3ELnuIYOr;@PtW_mJ@hGp z6Jy|FZ2F+f736r(TbPQMt{=p7QY>xrIO@3y&RfqnfYE4HUEbA;dG+1-#qK&x>rJPY zjX#RnQ8Cp%7vJm%aB$}*QFUTY7oxIaHTZ@mPp#MCZj3KpH{k}^ZfzWVq0i$FaKWJ4 z=LOR(&c7IOlj7j+RKez(?0$xP9Vgrm8PQ`|H?O`AVd4D@@6G5!%k9ObHZRWwoDB|d zJy+rjcpN+!SaZjb{vPDy#VH+^6MeKMi+<(CS-&82S{$am!N>bN93OBy!%a~$@8H9t z)yeBM$kN4OMUD_TOm=q**9eCGbH|n;mL}LH?_*wHvlsMz=?kC0Ny-T*<@j9g0PY3#qdWGr1Gamg9pj_q^Hv`Pru>#!hPI z(c6aMM-C3ACGP27dLWdV5;9zrRw#DJCC>|>%bt5?Yr(mFSQ%`^l|}CsEN}Z89^psj literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip04.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip04.png new file mode 100644 index 0000000000000000000000000000000000000000..4d98f4f396eddc8409a881138d4677296d92cc0e GIT binary patch literal 2100 zcmbtUd2ka|7=N41wP`XmX-m@(Xwriggu2;H(r5@9wDAds@ha#Ph@q0;{0uyFDUiRDX%lm%6 z?|Z*}Z+EqQc7;Nwks*W>w#w3K@QK)@Lbx9qDi{E#b5>SYA+&5FLhUOM8iJ|zs|dBy z2o2ODWbHyI)xYKN+-V4r!(5%sWwT92Qb0jfLWl^6a7`i_AAt!0K_U|7I>A&BV+=M8 zAqxBFAs!cvH$t2n#Rwoa5CWtCzXgneI2rt2F!#zxua6-<3nmT!Dj~v^M|_2?%C2Mb z40IlA20qQ0thC9>m~{rDH9z0VS^!PFF}fn4A`1P5BDHa)5ls{hqndDw5lzJqlhO5x z0VBREPKm}?J0XbFti;@Cd;klC5m|evC)9@$XO!E@p%In=x6n7J1WCnWiC83+NF)>` zmC2J8@`MC=nks2b@_0@9gz*}!R+p8Rqsy3*snzBdOqxO)j7DR6j%B);nU=>I8C-;* zC`z6nS1S~1Mz7T~|9XUuAf*&mM3F=W5-15$NraB0bXcc|2#<&qER+)i){8ffK{`2>ws{;)+$_%9#5W_O(X70(y9e^Bd-L<%jgU5& z&M!>;0#Mi)B6URGiA@?5~# z?C>^m<-UN&!6TM2Z#vn36gYWtO2_3yAFat^Sh`{QFTk7}hiPy2@jeg72i(qZQ_##i z_^@bI${G!@ba7abBZLo=-MxfsL2UoU(+dGhVQj1SNw2TXiwwQ`c~8M4;S0>JCC+Sb z!>7?>D=n(cJ>wkyWNUwFx39B6zE<6s)|J+!7OKBzr1UgrUsIy1ufDI|ThG1ZFn8;Y z=}!9B7On5k?4HxPRsOJgv4Ljy(cd=Iof>@nMj@%$BHC3GVu!b$7)(#vt3RL)v3-(R d@*T3PI}xgVoo&!~n+u^avX#v)eY?26<8QWYPU`>w literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip05.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip05.png new file mode 100644 index 0000000000000000000000000000000000000000..dca78f68b4dbbf430fe672d2a2eb2155d1c78aed GIT binary patch literal 2122 zcmbtUX;4#F6uvL}12UQbE+J~dB0+^oUP4GxmthGI1R5X~!Rd?vUP4;3m^?(CE`Sz_ z-Nr)eQae+v+RBewtJGyWb=Rt6U0V^`X`!_$j*eDak#U-yn}ncFoau7&&O0afeBU|u zd-uNAVJ-Uz;M2P*6o^P_5Ow*76P*9cNAOa#>lL*E8VS+`l5gX>(z{C(^3^obD z4fr=9P6)+a5Gz6$7Q`xog@oYOgHaI2f$s)$v2P`C&| zl4MMD%mkru0wtHqsee8E`;kZhD(BaVnGmaDRPv1L|%;-WaJWz_~jQqJ}R@#SZ4C#!3`tz^`= z@e?LWQl_RV(xz!LwOKm7Ave#MUr=Z&s<6y^u5x}=b!{DOv)4Ob@G*^xo0cqHwtU5F zZSAjjtbDh#>%I3^uUWfptuHAd~9z1mT$kAip96xdH{Dtqn zzu0@JuYcf|U$6Xj_1g8pJHOw(_s5_2haL=LT?B0E$OtNXLYD}1u{azyhmUm;tR^g6 z#Nou&_~G zeJF-az~-?-EO;#|Tb$ox`^D>4e^$r&a+$5$?b^oV1UzIz3NvGzO(U*rcF!+dAM#Fo#~^uo-e3 zjL%GaD}dENBi#%czQi|Yrvge8M&-I2+};Y0wU$PzF(0r@kd%j$c_7OIts{MUKEL(+ zR{)L;gN@MiS)0vAGf1UZ7QcP>Af)5MX_M1xr;BNqovB9}jZSoBOE2WbkLN2Lb&ytR z&sC2<3E5FG6>b~TWcAYM(NCi2%$)6jN)Fdx>KmOkE~}#4vL)8nOm zK8M?dv=3-cCEzAUz&)yh%G8=YO8j+9cp5UON8d5m-UqP2eg^htbfHCNV}Z%V(B9g5 ztIJO3yS+{;gVdC6^|Af~z{!YEIwB|ZXtjFP(#}~ofH^G!(_HUn+)kSDI%)$=K{I1z z0;0w7DPp*vy?24`64^AbGU4)tvh$Xjg#&4w zgVPtByirx%v3TgvwX4VEM+ZLqc3V$Q#>0JwvxbUqvr-10kr#EpYJue-ld&}Kvz&#k Fe*<73WK947 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip06.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip06.png new file mode 100644 index 0000000000000000000000000000000000000000..4995a021f9e0f08fc6cd423102f2a289e04dcd5c GIT binary patch literal 2149 zcmbtU3s4hR6n&fjhEPoaKOssWD3KzQY(hvfsAGUY5Fr9qrPCP$ERdEYm@I-$Ymxe? zj<%)#t!@3)svT{u+E&VR#80VOe~5~79K~OiRtKuqicaZ$NeJr1ncBYW-Fx%yIrqM^ z@9i$K=46Blr9y;Is3kKk5BxxE0uJ2w_9S^O+;w+NQ7$VA=Cp?wKox}QX$ki z9Uz65rE~tn_185UU9m3I)FojDk2E{B|(=LSL^RAU*{q@cuF(!j=1chGn8vP9>^U zi5fldRg})C(itheT&*=GB^fmaKojfxR|HfI`$pkUmzg`|- zcu&L;{upZ~SiYK>nCp*sV}USyYwvCAy^IECnJs2$gk`|3_ZO6k1Uw#}#})ATe3BFh zMd6{MkPy*ON!Wn!VbZAK!=y5qJT@^-9+RMu$&|^X5>#rfRvQ&(7^A0B5;a;17a>TJ z6orU}goX~GqGi$43yo3}c<|G0ba{+|#2df08;SU1HG1;&9j;KGsFBs;!^VniE4n62mZmbpl4;$Be0oAt7&4dy2Jhuk1qJ`e%FJmVghC|Ph?a|U z9>XM`u}nr#9lh<`GmGT$LoQh40K@Z4%)-m9F@; z$76Rnk?tW~IR$XTgW#T2K_%&|l`8yojC>x_r^m2pLRmY&y!+|hoBoAnS<^EtPKI_D zm)o3WwAtl$*chat^sAaXnt+oSq;yb@|Iz9U>RHRi{07YUAWUnyi*Y$<#%(Y5HU-U$ zjq!?>L@bs9OCE&fJ3{y{S?x7+1=4h!KVAq}5@V~JZ#Z4mPNZ&+p8O_E5-xX60daC; zH9n1>SklH9C{Nx#x+BL#$QE=*H6JARo8>Ce3BydCS;xx_DJ<%L>WP`zc2XRwV6c zO=+mEZ_Aqe^EK0@Q|6spzi=dUuWWzRwSH5H^YYn`cg%0dzA_>AT1VuvGw++S59c~h jo)gaRdL-#>`m|1AXdZj()#UHvVWr5Do|CrIG`;R0dLDES literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip07.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip07.png new file mode 100644 index 0000000000000000000000000000000000000000..73dc7c34dc1bebf5d35fb63833c3b64ad1432d1e GIT binary patch literal 2166 zcmbtU3s4hR6n&e20vSmNq7XIwkqVP+LQGPv6$r4Xl%JyXGX~f|Ecuu$4LZdEYOy-% zXtDKEJEPQEai%I&RM2+B+S=Oj16oAd&WP1k>Dci@t5Vzaz9fJ;ai*V_y?bxoJ?Gwc z_PyPedAV6)QG^H~B&M=63c!b86L8?(HZ*kroT4ndU=Bh{;}NP`j?fTH)m=xZT8YrW zLWB&P5DIr}?Z}^o5c?rLpE6Ta5)uFksuCPTK!j@&{`eS7un0C{!(1bn6k?3Q7C~^m zel^6A{&)k#iGBS3t~~6ss5yBGGDW3K zQR{%OB((;m)D~~d5Th{(P$*b>5X0!@N-atZJ7Nx?$d94?P95Q>5T z&=!K96r06ibGaNiWkfCH5l6z6MyY1JaSV7mVSaqqhK`0s< zK5l$OTzo>}(j?eSNC?{Dp6O zF7{sP>%a2j)oVZfeEr72?K^h|fBXI3{Rcx>7Xh0(JbcQY&?Ny~EDndw;bUC{%Z-Ig zINT@|PdYQ7Z(1B0P1Xx!Y3sMQb_!$E1-HUVon4}_v6}w4+gO@c**_E3@Sl{82piSa zhl1GzY#v*JW}tgRiOqGQ|6wycmr&h>`a*a-tkPLo8Sq}Ni6P;i(2>2sg;0p#@91Sr9r7| zxlx_`7{O{Ux0shaozQ#W^m-s9j&xuwR@%jwtd1u+8iP{rYm(KlcMEVLFo&+OmDvO5bMrZO6-#=OU(AQ?51%m7(M&^pkkXWy?c z9|dse2-pZsUoe|pG=o%nErogOF5)f z+U}C@Zy-A=rqFI?+$JZD9{nUr&dq2ARP0C%rn1^vYBO1?0*hBf4&v>W2f(M>tqv#c za#`#)qoxAA0uCvZ{%ln%)8KU%F`wWMkKFThL+z|5<(Gj=P@I4xz~rl6TI zF<#NquvHPjQUqZ6ju1Xfd6pWw3aR@qo-P5b5M!%tuiETx8&dT}&3zpv3A;15h&bEq z#;0*Fl`*p@@$Ai0svLGcGIpu&^4YB+P0?%SjprGcx18w7DZU*4QtrHk@5k5nt*cXv zZIty<&+p3*YU)%iiww$laN7?Z-djV-ch!m-&#Z2f?Kx0A{lyafnQ0yFt355ro8xmj zbIwTz)km6(+uOw}l3F&eb^r0o_d4p+_Jbd{be~_hZ7|kdalYPY-cuG`ysK8QsPNg$ xz9jLOQpulp9v%tLKPvNd+;hcsd3N;h@3YjKD2LT~)B#IJlrcABPujwUzX9^vb07c! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip08.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip08.png new file mode 100644 index 0000000000000000000000000000000000000000..2bbbe258fb5f4ca0fc849827637c8321ce8f9bd6 GIT binary patch literal 2185 zcmbtVX;4#F6uvKe0;wc`C`3tEB%)yQ5<-Ylhp;{n8v!daWom#2#FEA2QADkSs3=Z# zhPp353IbL;qeZ24=>iJcS{)U&B1~t57F0UzxYdO^rROC9)JbQ$+~mA-a?kgjbH8`* zd#N?dPZbIR1qdM_k(QJN-iJ0G3$Crhu|wdbg=txt2(6fgP}MqwhGDAeE<)uBgoc(N zq}zp1fNkHY1#=K$z94gnVuFZ7JU~HJjD;|W=$e>2Zi5L1#zah*s{s>3Ok-#Z#Mn;% zA;dxMcpJoWH--VR5@R4C_LjlLir8dDN#8nFc8ytyDy- zw7^&38l6I;!?jYSS{D<8ZhfHjm5Y^7%Z0 zx1Z44%gcMR*mr{8l)&JrQvxLtX;^fGG-PI|L?Vx!K2xDotJT2~aq(JwPP9sm(?u{o zpYQGEJxM5>gv%r{{9lieHYDP~iug<{1TjPyQ-qClpkP=h8*>hq6j~^g#pZB%e1R7L zT7Bp{#bmIUY&Hu{8TJ9>5lh4t%ajQm-vvf)$TB~COpLO+qn5w{D%@<4z zm^3*sd|HHjdZao=6RVBWB_<`Oq^1$+**Oc}UX;5yuds+LE-5uFbx`H+S1hkwv3A}1 znhhIkH+{5q+x8thckSNOu)ndX`M@U!4;?*ry!G=hPMkb-=4?mjx%1zCccJUr^&3Cj z?7r30*ZF#bUC!v@VQMK?@hL z*fJ$YoUnjvT;>~sui^RW>*`zD`Jt+;`~C&?tAdGP>b~#?v^1x(e>Bl&nO3tNlAUWCaKj&_5df4=8(%x#X7x- zau`T^Hn7S_q@5|Hzv5rti~y8q43%gtv)Z$5#zGP)C+uYqkd%!jlR#DuwD$Ds`Rup+ zF9Ga322O^iZxt6iND3+A6!W$`Is<9Hu{2>emXPyEO9@qq)M~A0pt&3J;#c#FOhu4Z zYP#|QzK86%m~3k?RbjM~=;c?U=*rv{K!uIfpi0Zl1s0>J%(HlD&|`YLB_8mJRwnc!O>H+t%3Oq(*uqo)bW6<9rU3%hbGfH{@=G;%`-i$9a-H@D0SSZq7 zSZcJCkSSKX*+?N3uHAXQuN^qi9!h)UxNof{PFcA%{uf|IdSDt#t(4VFQg&0Jvngn% zjFeNf*nd+Xu%sSXt|LSrCWC1?S%y@7H!tM@mQQ2LE$>;Z6&9rIku6*WlbF>$KL@+q zP(h!@GelBCj{Ne#1!ekK8%lZbZh^e9prc`9|7}CPwEZAYR~de}U-nM^V^%(^v$Ip* zCb%JZqvuLq*~1DEmp$wD%Cmpe%o4=ki9CH+lGbR+92gw7XB_R`U!EVIAJvp0G_UXJ z-o5f>%k0^LDMwQF;J(|p)OXb_+??BcddJC&*N?^YPP|w~G)_C$!VQiL8m!sTw6wOT ztv-1Mr=?k6G)P=)4r;9nXo`&(KBb@f;{LNw4n(HJEx3Mw$!2qEKAAS@5XvMGYqF~EZa$zt*lWUK>Nuu$s^ z)mAI~V6j#i$BIj}b{V&7Yez+^h;*o8t3}#ctk#8bq~|69)QK})ZgSo^x##=Nx!=3@ zy-8i#!X%-W#0w!LB$M?S;KyU*vEX`WD0%>#EI&CT6`_jh2vxp?&=5>j_9Ij(M`&OL zLb`1T`P-U~rq4!*`IK5h7Lw#l!~+ymC0K}n2-hUs@iCZS5KP2`xmqwW#2AB3La?2F zBgB*4@fL`~+!zML3W9-z;G4jd5c`5}2QzJO_4*3pPB5PHlME5AJmQnc)HIngQX!92 zX@M_SYIJgqPN|hC)VioBohk;j8@8u1E zL*wzCVlr4vHk$>fjCd3Bh$Ui+0~N6xpL7E^XqB(Bs-cA!9M^H&FXQ51h$_!s&G(w% zKXH;|+Vs${88g*UnrLl|E?%FIn3PPWWM(Z|oV_F`H@|=?EHavk9dzmHvhp<*>))!W z-SBo@{d=3Yy#K-0Z69uLZQJqD&X0HPZr^|4;Gs_sANlO)iIbTs ztKHXn`fmR8^R3&z^xqk{_vifwe?5Hk_{k8~MZl(x441N(bcsM0gT-R9xL6m#D8s@< zEOwxRBaThy8dmuPDXVzCaSbgU$N9mkj6uIV`$ew_A?m(q_pmglvVSJ5`adZf6*i`; z2ML%2Y#vjD=AlPJVXc*3|HI}DUqh9bt1{vCF!JUn>EXG2H&_Y3__pL62SVOrY{aGB zbx&cEOOvSy+yRbM7{u2qZ{o*z8lA9&E-=uPF5gapb3UIDa!rI%o25|cRQNkfF4xKB zyYG}nyg)Ep3rvM;UQOsec&-5mVWS;rlbLeR2D9yDj#?*=aWzS*{$x9FB$z{$n+kPt zCfbok*)xGvLLqIq41dMH&kY5XXcQH1EwS1&ZH9abDaJK2NJs{bCiNgI3tD@6_3XR5 z>Fb4s4vI#K82N%t_fJ6DcQj3!4Mo%f%2Grdky@=4-P+j=dGU++Y*PWG z6`D)A{@+1%OiZS=kS;UWDfIj+QPerF15hEOHE3h0InQD+m3S5}oBRN8x6}hZ-fFhl zDTl*kwIIzC%9ahdsUC38t58O1(rj}4cAWewq)Sgs-Ta~+fI0Wmxi@1AO-V~gA}us! z&o>$@MO32IZZ^8Iw+bcRyMAR>US4@rCr=;=GPcJSuQV5z>}e*Acc)Z0NAF59 zZroSQ`U|2Ytuuu#7@ZbkLq3&M@% literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip10.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip10.png new file mode 100644 index 0000000000000000000000000000000000000000..d74f0ebfdbad8a3e93627937ca28ed94f8d02c9c GIT binary patch literal 2226 zcmbtU2~bm46n#H?SVj^SF+>S_1fjt%zT3o7FDq2gm6}3?7Sd_XTo!X*e6{~fvO0D$%B!D_`rpwE}|K7ZN&b{ya_x@jz zo|f$H!gE0gxoc7qGr@b1#-hP}-#|=1IDsxDGZmqVP=qR%AT$6|mDdm|6(Q6=8zJQe zghrRtw`NR4i24N2)#x>vaKr)>RK;irgNUq&IpV`GLBXhq3Uk$9T!={wX*`T>^Y1|H z=ZM!rEOcNf5Q{MiatB`zCV|)s{7x{#GJCJDAU*}gvi(vZA}bI1WKC+iKoTVuMM)LF z7fIwwkz6TJ2*fgFbhJ_$3ux@akre?IvC&gxuT54O(!?f1hbFSckR}zxRL6Q5fMGln zdplxMJ4UhBOd+|BcrPgshJEdW-Gjd%k10u-Bxpp+fZO1YC;_n;3?_rlVltU*Hp|7$ z%iYb@)ol#dbClOup8vS9JU(9#92F)Aj11!Qg)!qJMPivu<{uV2NghS|9T7_MjRHbh)u-;5ruQD^WVXtb9Sm;w4L~ zmn~mWvwF?i_tvf7uyIqvM_WH`+_rtk&d>I??A!nOfiGH*96k0;d&jrOzw7$p%-M72 zyD#+gUb=jx@9MADuJ_-$d++{(KOR1MJV5HgU{i;NUD*q|IG~F{qfu#0QWr)kBZYHl z^Z+q~8=t|{&hreEEMj@7YPU4Ev4fj_LU2~Db++0Wp+2eK8COXO=DLa1|z0xf|nbru|)?fsk}l24E*vc*!Rl)NHDBBe;Q z<9g|Y=Lkk~fkD6E<%I5*leIt)4tF37M%+qhjU_K~WJ*!2y-9M_o=w2vksQ3-pjWC4 zgf$(vWC5!fM~X-Rd2w$}4g(Zt7?ofyHe0evv^pG#N7Yd@kPH}3CW5SNXzlFN^XaWw z2LbFk3|2$a*YtWTP9SltXxh8?jzHRLIIS^i3-M{VsgNi_GMR$Y*Vqkt?(_K^Ljk14 z@~*tmCm=f_Cd;fR%Cr_7J^M-IoQi7(RPb;OqNvoEZ_*lyor@Rv-6yx3?*yM_><^OzDPlyckJ)&!5Z#EStoZn&z6!WhNx<37EbRCNZ-mEgS1> zC?ikf4NYQvwy^VT=cI_G7{B_?&(@2=(ybovZw>P4D?iR$)fVi3IB@Zv-U#1FpHEU5 zbsN5K4;AwnzjGJgU2WZb+3Y#~%RhOy<{nu8x>v&T{T}&~dyd95s<@t4`ME9n3r*UH zbq9N5w&^=mT)&FnHWH1Ix{j8r2I=KnvMZ~*=Wi3Rz=tDtoZN;QG3+KGm=i$ z?PMOxJM?PV&5N7;IwxmGtNS{v0W-dS(DW$v`iXWG_i0*tobN&kCEmK_l@3D$$VM7< KT4IxGcGcfa7n7?1 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip11.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip11.png new file mode 100644 index 0000000000000000000000000000000000000000..1474765f6736367759c424db27988a4ee24f65ad GIT binary patch literal 2217 zcmbtU2~ZPf6#h4NfK(GeG@>LNf(SI(gpg!Z%AG~Qa23#@Lx2sWlEbiwQmsf8l~HHF z+d5OlipNZC@n|d4I-=rH$5HS?9II%pisM1GS{X)LcOKZktgqW|$Ji2<=j2|cV_m>1mg-QY=g8co%VkSn&+7#^>|B zJiSH>1fy}OzZC!1W8er9@?b@LCKiYoLX0WI29BcuSSK5E45t)YD3itJaCv+WPXHVo zNk1tjgT-XCS#Zj*g^))qAzLJs$8o$f4BWsuKKSB>ZM>lPmNwtajwiv2B6}_0W0c?M zG2)O3ppgwMLten3SBNBT}=nb3V?^%b!_XLK;iUOrKUzm2<1+&9DAq$>fmrHdqgCW}k!!WdPwa3PB= zm2*UK8C=60??8Mp&nLcNTT2^1NRj!(x5(b%F)CQu6VgXZb13^~!fOAMvLRu^y1J1U z6NAlT3Q;V2(I3`SD@+%PX6w!utUjO_R zOmZnAEs5L9@fQU0)%Y#?H4dSY@~9F6MQV%fBsj%iFtAcPHdpiE}6f-;zG?{bt{na0^9rS{v+z!B3Na-PYkjW7=EUDnm-8T6m|q3-Y43^SP!HNXu27 zGyTp$c34c7)kswt>?C^glPEkN+XATIp&C?KrMbvrFqOL(FB$uc-fn+4_ynujW+y8u zOjZk0y(De9fE(`y_ofOwTBWzi=&$40_aU8nG%Kc+b_2|@pN_p5UTCU5DTT05q`kPz zU@0Y&t#-44LJC~H;bc!6aH8ClcFS=+T9rmVf6bH!zzlc8)R$Q)tC^(irea4^&`cR9 zhiH*+y%<;$H!SB7q7ReaG>THX9AW_V=FDQE!HXvl6OmU7QiHCwWnue=bEbM z(|C(WjLQx?*M7cb63d3#`_4VCy4yKtX?sIKewbhT(T}8yYC0r~R=1z}YAZz+>Kk?I zCr#Yn8rS%s_mS;xX+ylc`bN*s)z)h1%YuyYK1cSw{_vr;V~e-<+=%d53Ts>QKHuEu z1zm#sd1+@>)tQJ{*Ei*4B#TPoyE}L0cHX(V16x@CLBwYreK%G0%hNAS&c{m<+ne^p zL>@CHbZ51#tXnM!(lyQw(d4G)n~!m(^j^LgwDX(Yrs+AC4;4|t>a|yH|GJ}f*VY^3 xJ~?Y5wx5n^p1L52xYjx2MC^qU(d)zg1Kh{ly@g`!I>HWW5s{RhxHrDA_HW(vlI{Qi literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip12.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip12.png new file mode 100644 index 0000000000000000000000000000000000000000..0371f9767cc93c87fadf136c27601e4841ed384e GIT binary patch literal 2226 zcmbtU2~ZPf6#h4N0vSvIIYbEo|RTq4XkHNXO~lMh!+?9+P-HJSQ9*J>Dng4UBUHT%p&^*6zK>A31fkyf2&pz9 z~THB!FCJ{Vkt&LeDGVraERT&w}RY4slp4HjBw&v)NoOhv)3Z zcXo1e_7b|fxJ~r-oix$g$43+p9wZWn`TO_;M}~w+q;k33Hz;bl5|0j-$#JR(#^rLI zot!=Sd{5lZ#}EJ4W8@eTa9~ATIwnRm0Y(>KBd3rrtdogZhfNA4l+IwX*c>j;2>@;5 zs3%3IG3ZPt15O#X81jfAU<&=DGgz+aTDG{%4PR2XgX15&_qcn;<$(ZMzPX0W8}H%i z)hU@-*>iH{=H?X?5=F%&x&;=pd|^dp)uN@#maka3 zYIW_p_4OM**|_P`%?*uB%{#x?)zbRyzWr?n4j%gM@QIVBPMO#(R z3^tE0Kr!g~P;f&v?|)d#$W2szbx9^X9$Nm)q$eYeC3KNEy~~`@>dWhcD(T@w?P(97rb2B@4AAp(-#F;H>ZGREc6LuFR6kR5I$CB9W*hl9mVM zQ(q(KjfJ|Rs<#t5_g|<3Lhxt@Ql}>@q*iZwlOtD2qHIl)YQEVF9B+z4RO*UUu{zSC zA%kfut^5Xlh9MjV9wkRu;5&^y%62Xx$SziEW%JsmLR!YDd^eR33=h``5av#q@{|E zJdg8`9TSsjEFvqkW&*wXNfca)*$b$E(Hdk)xjx^Z)s;FHFPiX#+HM~Q_&B59WF{;Y zozZ|4F9=f(;3hf1y{ZC_P-sjN>gzb+ZAhD*sMRxzy8ve0PwU={Ei^@wkfb({gt?$Z zYbYiXjb^=;L^52t@oe{T;DkFU?T}-Cw2CNc)%xjuzzlW3)RY)Wqn;qmx&muc&`fGc zt7xHntv9el4p_D$L>(rLu97H4vhEuf@&L=Fu;qsL4aN!sl6LuJe*lx1(VUirU2LeJ zPGg@senwXC#jh^MOktSNnZb+wKW(%07!Elnv6_cNA~m($O-(;f*)ur)2)}W;hiK^q z@reL&V?DlQ_(sp#D}RP%1hYQtABcV$eap4s^9=)iA~rrh_F3k%v{mkw13z}oDZAHE zmz#Tj=Z4*zT*}(p*4@cExTbz_K}T=i{+9MYvYpqu=$d=r)0SLU`RxUjoU$v8qW;{I zA8p>cW(7OJ>)|tDZ)?Y+vR&KnoLW9Dn>}fpSBmm_cjA{#g1(ycZ5^!Cs%wom#qWd= zab)xEP+iXVmf7bP&Z=#`@8r~f)bn)q;553gPRSb?IQ<^mh`G$;)SDj+f^4KtNQ?hE Hc7Dy@RCkxL literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip13.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip13.png new file mode 100644 index 0000000000000000000000000000000000000000..ed57d174404c4aaa9e8301e11b32c016c977877e GIT binary patch literal 2223 zcmbtV2~ZPf6#h5&a#Rxzxs-6pQB9Lg2uTDTxr1QCp&T=I3}FMQB*A16w6+6Lv8Z(h zv1lzbRkT`}jyF}Ajw2qm)nOE><*-(v+A1A89;g)^>DwfLI&r4QpS*o9|NFl8{%`+( zH}#tNX`XHYZU`Yyb$W6R_{p^KSa59{i5mhZ)TQTSA+%yTLN%)q8iA>r+Xz*P5gJ;I zkZLPJQ!1LZJ$^XP!Wz^AV+Pw(wHWk4xO6l7Gs(cA!a()%K;4M zrP#+A)7mkHqh>nIb;gHjfiN6vAMG8zfhK39s#Bp6Edws2S5Xq;aX4HKo5$sHah&Jo z;qB?+?(X3)@S5a3H6VD})PSHMVYnz#7&;>?C@3l}dWKjclgWZ3l?e(WUL=(fbP){4 zaSwM7KTl6TA|xn;_}63fB;xa6MK}`+MGQX1Nk5edBNy#axY3b^W+`I(~^9u@#bS0#|w9N3nm8x7;RlR)0s?}@i z)_z>SZd2ptPn))E{cKyy&Rt*b-t*Po)$l%;-x<39;NkG2$4~xxIzsEhU{lA2L)mM(_@IlyVli1<|e@FgKg4UFsD|)bhL&8+IJ*z{8|D_k4;iU2eYNvVn;Ev^2Z2e5D<=v9dZ z%BmqPxxgwXkz$6B{tE8Sjsz5c9F=4)H(PQmv^o+=CVkFOLo#GMnGCY>ptY-4&w)P| zeG6c(ac~MWeOIryk`$6C#hDu)o`SUZcv@}LmXevIsgx>1GMR#ZYj-c?1+V7w4JDA4 z$h(WCT!8F^m|U}-s?u6W^zti_e`(G^K!uOjpvo$Z#U`zx+_iXN;4r=2K`!t~W@Ckg zv|0^j6OunAEAjz1%?0jd6-2CDQz53`j)8ANI`k;(=au#Y%)X!Yy_r~Oh9)IVZK6nv zu1sqxB~#57qn1KaLb2uCKnHL{E=s%PIB%_7DOui_@CPtsTrf3dX3A_NDT_g8Zwi_z zEoB!i@L3lCETIdQ;|S4*Nn@xc%aL@Tr?UvKIE}3|Eisv^Oi0onvS1}lVrI+yJnUji z6@40StCQ#EMO|#`>Wo>fMQ86{f3|UlWb38}34Kw)UV-jSP3KdOGoPF^9>WR?I#boh zn4LbEO{uck-I;!MJ=NvAG;+&}_12;0YxTD4KF^*B-P=1__q}sBKD$7=z3lV}8#f`t zH>oXZI}s9>ON75BCjhY#YoR{H3<}>-UsX>pYg6i766Y-q1g+ zUzl`duUGWZ$MJ3c`Ee~Gv*!GIp)u!X;hu;)y*rN_S{8l5G(4}Q`GW;Hjb&%|<^7D? zbPdM++ib12_Ct$8f>-Jup6*$7AmVw+h_sX4HTuP)x31pMk=tkK=)ZcTPMM#)FLAN$ EZ;8N^ivR!s literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip14.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip14.png new file mode 100644 index 0000000000000000000000000000000000000000..218c628571422e3d91fc04e77442de4ede0bc9aa GIT binary patch literal 2222 zcmbtW2~bm46n#H?0vSmF#Sk^@QI;k@A%=|B5eN`e8XyWX)iJ;i#FB;Z5wWdmP5JG%iN@50hAIdlkxHb>`+?sBX0CGe`V!(6Fpl$+0ufdDu}{{`(M#|cxhzJZ z2EGheX=Ex5u9nD^n%G#4A`Z~lj?onX6>-rcFq$i^rPcA*Q?6%K{AR ziP+yAQ`#|_t7Zztb;k!NfiPTaAMPB!ihNR&bV<;Nk^z_D%P0YHSS&V+$zikETrP*_ z?Z@}_^70-p^c~|jK{RRN1d&)Q35|)61V@F4#nP#hqhxZWQaLFiZn_$u7Nbz&R1u8J z<$8O02k`j;c#t><|JP&q7!q(`MO-=-jA#OkF2IIQp-He#CgvP2DU?t;gUMoZxI8Za zH2Y9@icVwDnM?+pGVFE8BZhz}43f`e`KBA$!Nq>~it3%5koczK{uvkgLlwD>N-l5g zxPbAZu3-|)e%#t%Q*z2}ny2b(|r?DIp1PnyQT>{WWV=(9pHl+)rl~KY4 z3}%p=C7hYgHWvE^<109R@zpzJW}pXy()tSC|F9XumrzC9icGjYwA@+AiSS&$6@tSru03Ub2|`{%%COcS zmJh)so7BzGvin$KelS;!U!xx5FjAXM<{L>uljk77IiJsHnJOAr8{`U&g8D|vWEz=l zcW-I*Qv{1G-)t&>KB4pAxoRLtM>>#Z3sFKEE%s+QN{uYe)g-xc-!|ZgC=RjIY|_M= z$r3%`$OKjqfz(kF>MOkUVg#TBBd7#hkj2g#t3WFp8iKxIS&`}?Vb22GL=U(pRp7BIymLK|tb5TwJL=WGg^ zNh9eLE%aY20+z%B%XNgP!=yJaC5n)u`{KDAz;Y>Usr41Bt;~w#T|skSgGtQhNHbvP z>&vLq*rQ9FX^@`(;==jJlf~%tz{RqyOIpezw~C|W*N>^I>!bs0`;xm=>f6b`?X6u` zbEU5R;E*(yJ-#Zvp{ePeb$(~Hk@R8AH<;4BczjiGM=N;H&@E32# zcl5Qat&a}ONbP9Y|8ZDEN3A12?efN>1xM!b7l*d-d+&$eXs?VkF!?p2_nPbNSL4q_ zn~wIXs~;@NZf(vE?@sDyFl!5Py23X!H#A-|Wcl5{qI=b`uPAXtTg0Ze+Txha`s#UE zHSM-5yDAsHaCYIXhUo9uKXnfEH%n?)y}y2WW0Pd?&h|gsg78L?7?9wXIiMJs)q1W+f=^!T%H-^>5L@4f%q|KF|B z&5Cp3dGZiKF4}la3V2t_I1ISA3{L9@C(MaYNkV8*FhWZz5gLT4CASbN79-R@4v|anWOBt4&oJ*2JYkyC$l|u%;-8>Gt)q0KJIZqI{jdAz!^quJA>Fq5H3=0wZPYLk$7EPNpMJ$oa<-Q@R8A|E&FqvFR6~VY% zuCtT#co&!PQa^7$>AxOBM-iU`E8@~Ie?;SBbUrq868XY9nV5Chq)l?)X|!l*tmFYLTXz2s~MTI=j7z#dHDsz8y2#7VM%G(qIWBo zE?d5$YUKyDb!+O^uKRHPwvRt)*#7BfjXU=4+uw5Fi-TXb9zSui?bPXS&V1W(;o=XM zE_Yt(>b~*g&7PlnZ}s&L{C?-|ANTJ6`CyRJg~6r{51X=Qbn!tKjlrNZ*px1eRzeBq zGnjr7mLM{jtzY2gFD>V|N7Za?KE@4@rQG(&Hn;P}2FkmG1}JG(W&ccA#eY&ZB5YJw z7jmX!uz7Soia_@VMcbC}{)a^jT|rAOmZ!qwp=Bq=Y2dwlKR^oqxJB`^EeJUYD8o9g zEq(-(Y*L#P!|rE!yZCdJ(i_xk97M)slDT>kSLc{i}X1-l8o6v(?Zg3B&h*eY0%oyr)SS^ zS%(1ZHUf@;rmy7XS#T0bRN|Sd?i`1-`$$@A(C6bbabrGNfaG!|zh`?V-QEuH(I!KY z8MjynlMyK%;6)jLo9F=dqzY-cLRTcFzK&kcL)!GHsuJ_N0A}4!>)wnmG(i^=r!|te zIj2Bx%*SI*W`mwYGO2Ry>F#5|33E`|A;GDf|3nnp>c~%;B zZd(a;8hf>x$TZQpv+a?gCl;Vn1Lxj(=oWlnY}NL;$}L%S)yjgV>@$hFuu`Yj%fG5V z#97;*NqAwdCN!yP=3xGX1DmVeSAO36X6dFyo36SszYgt*a2|X)LUd*^k+EXUnqMZV z_w3f6JRF|%qT*U(=j!9jTA6>*Iwtmnf3%@JXyH!RrCF*fdUKgaZ7{Qm)#g8;C3AIV z+ul|6F(EtwebddurM1+R|2;!+LO|3+XBpEQQp4(! z`s#~!bVoL=Z%vLnm6cH0aNX-Q-y=Si>D?ig&4g&hbo!4V z9_5bLKrC@%Xb{UV8sdT92!=!K2i^f@T;b|<1mbgG9Oq995mkA>r|PDsi|}ZfG+M3# zz7$t#q)H9063G;rm>7**4QOoh(29VHxacqBs!dfI(8Q%ewF)Ki0KF2~Eq zkLTm*MV+g2x+y2L}b?|9bQvMSKpdh)c)Bh{nh0e5}6_jfHhGG3Rhep@h;IOctBN_3{Ql z{c!3@(P<1ilgWTnhP?}U#Naap!LoRk?@T>gT;hi>sjlUOB-AzdXPoa1mFL+ixn2Q* zBSs3t#)V79M<`;HlT>O=Vp4KSs#celnKkRJ?3~=$`2~cbu*f*yPL?h#TU5Sy>9P-& zuUJ{N>eHGvpMAb|-52Y(e6{uKZQFP3bnM-?zy7=Le>iaP*zv{_Cr_O|)6{yQ?cy)( z9hW-0uKa$r``YyzH+$~gfAH|p<0ns_^-;Po*wlgHQuc~2KIoz`7<2}k(uL8=DB*kt zGg!tF#Lr~wOMJ!n5{_R&b!}Y(H$z`*k?-dZL=nA_>NpmXuXTmD~ld?f!L%KSV z4;_Qeqw`T5deSG^QsMPKEUy0&s%Tr136F=CH#Id0-pkb?IQ-*UwYheLyakkDt(V_> z4wGzBH$9o%!wTYwxhnh$^%{qf$vI?!o+LE+HUgaU{fv?-qi|K0OsZ!=-A&}4Ft(x2hwOF?4;ggeU+ooNY$<;sg>WZ2ab^95Q~fkO@fiM zrxUhJU=3=Ty^TOGeiHfT;_3huI#`1&DmCSq^~Pe);zgq#QrjKm0iS3wS#5;f zZnT(@@)=>x2HY4AxEEF6G0JqSl=?c3dL7cGM_o0wuoGa;{dDfl&_dJFlT&qOlCb3$ z>CJ^iip6HqlSq!M)}HEW08X@r(jGbPN2^rJ%4;Uy0%n8j7z-%cqBUxwgtao4%v)E>2VJ%zA zsMB~umlU5RX}Q?+{K7te1nhc^tAH)*(10^5EHH!AdS6$w^ zfou|Ii_f0nmP@Y7p44k=Z%_H7>%s1p@POx=PXDB8jE`D(q1Uu2G+_D9bMQNFZ#S3R zI(hX@PTTzEq}6=Ow$d{P+HW^5+h3xaEWlgq_I$JBc#SYDcl;-hAI^V#x2+-}vUsOM z>(JJ2F38HQNqOWDR2NQca%6~0)N)5pafGA8%ICgOF!zvsSMtf~g{cAL99j3cy}O!^ z^LM>m$xUp-@CNCBw z8xR`q*mNjo0z&jB#0-PkU`Rw9KtWZEfiQ@unwT#>3KKMpj_5GA3`__yg`q4AV|x55 zh{JtxBg6?l3=Lu#Mnin?o517{hk)M+W?Am-br|BaU>wg+4-r*)!0QZI*&?|_CY31E zz?aHZ8mUSnSBqpyO>(kEkpgIJ^U#Wbig5HN^46v*4QRrt(5H!NF`y|GV!Cg=EWogy zibH)dr5&SrYw9VkFWyTDgyCJgyTknh3d+ndWI!WI2Hf12Q5xc~SZo%P!)CK_oWtdX z@Oc3Nyph7-z>ra4qa#O!MMQ{VB=MrCvC$C`3FF3$mCBS#<>>g7iE8--i9#u-ieNa7 z^8$Dy`1}!aafDd@uZR065^!KeI30^ZGyz5zVD45l8rI3gJi{x65=v(bj ze1&V}+iM!vu3Nw1osCUfKiIZ?$A`^3Kij)+|AEgBesSp7@z$@tK5_D!Q|H?+e0T9u zM`u^}wI8qF`03`Y+daMaAM`!^?a}X#`zc)*Z0f-9Dtktk0Cdq93_62N>B4ALlyCuq zDVDK>lXKXn`N2{0T24sn>MeU(@MuNuz0e}(Iqt9+Wp`{ZCC#Jkp9!n`Ps#>`4e9Da zJURxOM;D+;=uv+{Qw{fj*d%u+s<}{`2aktVG)0#V@8z4(a`=Zk^fN0E3J_9;oxk$N z6PRR^hAb_+hZVt(!qxI?)N33|YG;roCX&z;I|*=}_cKYVN|LLMGKEG#T`x+d8mYAT zc4gAv2v&QE#a#V-LdU+g)j&uX>_A$qL8-Wu>afk&LvnJI- zR%8>-JYba*NIh0WUBX{piU*Wn5S3;xw>$G3reXrg0^g+>ASoV9rh_aawD$Mu*?o7; zmjDhP1Z$z`D`s;AK_Xd-bn06VjzKzPFm14!N{Ok2t&}W7N~KzGV|xeWg@4Z%SV|x* zQ=Kmy{w-vO#N^q{WR=NDpr=2Hg0qwM04ip%23b~VEwY&`<^IKs!uzQ0j_`v|vs)cb zqN2iLw;|PI!chRYNI$rzRmhW7*$yf7bqs$V(yJ%MHKnu*V4nT-?9I?ZGqbfigN-Dd z#bqX2DUo4!T1_NU$kpplbhiLU;-|D1#17KW}21D41S%X@^V!<21VK$Igz_ocQ%z~U6P()Oy&US&hFE^+=Mn8fVPX-4c! zQx$a@I}PcRjR|M2oIWC{H=(7ySO2*Eerx<%{nqgU+|@bv+?|G?`j&+01>KR1H95Ly zi!#pD*q|>I=2$X~M-H!(@FYi5jw?2ms>S`|U2gHJdVKe`C&ll@wdUVBZ5(y^-gRx; zf!BAa@_+8+%)i?7f^Di{c5@Fmv+$7lVQ_Q6uN!muvCXrzIazad>Q=B1hdeB~ADMJ; zU(Bf(x&4&uKwa9+g>h}ovo1DTMk*Q?bI>A22#n#WD#}xL8@3R z+CfFEI#We!)p2aCVq0rFYW>o&3R(sFu~5G_b+lSh#*yBa1W+f=)b?fX-kW#Nx%ZuY zZ@0#jnI0qx7a@d#s0?E^_+V@T4&0l1le)pliZZgNBeZxNLX}Gq>V>Jw8wiyv5bB=CE2@WD4!ZitBd>AHJ1RJqot{O}NF~(pEC%7J8 z3-KslycXhEABF|7l3<}A@SDI$h(p2e0<$jn_WBOub6^6`F9RZ6x!SoW(%7W&aSEkctsWbro1`TtCaBaTE5BFcJ%3MM5?qM=UYH788BP&{$X}m+%a)6fBg@;qv$bp(p?V zO~Lp{u~{58m&<`uM!XGq#1V5P5z5KDkSsG_K0lOPQny7AnX>mtSa!>uC{>}WN+=pO ze8kA`=y5Tz<0q&SHAz~X-e62kOV6ODp$AixOLkn+dtj0bJrL9_BS2)@~f{89{v8<@e?Ocoo;SDf8nQ# zm)hDpI=lY3a`oEv8#lY}{&nyE-w%2oKI+A~2-wvA;Z^pWE-~n0aX4%aAL}Am6~k_MNaoSBq#^l)5weE|%s|_V0vM{U>Du!UlD9 zpg=YOo5vQTWYp6e+gK_3AC}zLjw&xK$$`hiDx8{bg!gh~Bnkh7&Wu@ZgaRbkh}K`< zc?^?$hMJzr@8(H^Yo|OY-MyF@O>epbU;OhbzZvE~1fg=tdR=$%uiZ5oF~;Yk!}f&u_nR z2*4o&;8bWj!(wsM3{vV8(^lO(3hB^+G-WfF(9>vp2~&#HYOVO{_BO~%p3Uc5iy^Jl zw9X#>17ruqA8!T-G8_Q_#$q z8INd5*otsq$^5XqM+hG#lXW3ohE$!G&ddg^5M#^j^X!faJ5qK;%zO(b35P2)mpI#4 zflp&IWt^NFd-iJcw+RL_s_eY}YD-?`hxaocZ%b(?44!&vNNx41+gsLbbVkN4P*Sz> z#8V@gd~u6fUT>nZR<(EW4&Ay}{mbRlC#Ow>vaS9}>!g(5^4#Y0O`{Ew?D&(t4^~P$ zhCHf!oxSs5Tfy#mXBry$9~4&9HI|>xi~jN04t-BtK}$uKtGU2#*uB|0r@emN(CEve z18e2<$JuL)~10fM5SgL_oU3N`Uk8#hYkP$ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip19.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip19.png new file mode 100644 index 0000000000000000000000000000000000000000..32f60ac14463807e3b4622063985321ca4ccd90a GIT binary patch literal 2179 zcmbtU3s4hR6n&e2LQ+Wp#fTby5)qhW6G9R{3=jxGph)mX>(meyh$RVzrJ$o7q!z1I zTdPH}PNz~om5v`2T6LHftiRf^DpEz9)?&3H9UZOK4`WO3O9H49XZm^ByZ7eZbMAd- z-`ic8lWi0UqymJH$dqo#1@DiI$AWuHe?lKPnKeB(3!%jm5UO5|P(Msn_aaoGK&Wp% zLi$YzjVjx6c*Ycjm`|uVrXrIm8u0)HRS6a%Ai^~XZ`=kG41$T6FjosEff!@3NeQ;w zzYFmgZ@d9wxfjELSV=ID2>cc>65>GcjbOGFo?c%;d=`x7{-r~ND-U|3DJw@t#witX zDlPC8q(-mM=t-?isn*BG>s2~H6Q2yP2&jmU{z9JGxYD2|J`TN_aEn1r$q+NW>*WB3 z^Hdzfj93bJ#1gY5p~@sqzzhpFY+)d|Y~5B~cyd#FQ0}=q5vl@L4PP*F zRPbnNY;vh=y-2>D5{5gk9i z`2;4pv?(i<+s6qJh4HoIRs0%9(y4RkLJLjltu6|j`~8enXktlio>HY(;cJpYp;st& z-K>axhG2IV+KLvvn9$XHdL0ntLmg z3gCbta4Ix?xu~d|qLEUk$Xt8x2&4mt(k8p5n98Ia#dHZ$tF_|mJGvk*c{V@WRtRaO zrXzpUcaR+xV|EtNl@=F;p8h0?&n7kjDq^SxT~c8$a9C`mzQxPN+{fD;;sc-Jw3oT4 z@^YKgfi#b)ve|$e=L7e&3Nl`kQ>MUQ$1yKLdi3a4PA~2Tn0r6ndo#SyjGR=X$w5;t zYl+2COr<$pb_@i3d5#c1OgXkHsuZbuE}qT@EFWVl9Irc^l@6rr4xPCKCJCo2JC8Wi zP>D}ttI3d*CqHxR)b5NF3##t9v1GEfSWB(F>0ieZ$E<#7R$)GOLes&|FI9A9O_Jsv zE$mpZk0+2m*eMql_7*GVwlc2tPcz-GY)^bdMDF8lj{e%Qy0dPnF+ZD*t#aLNGhF$& zUiD|hIDN~GJy(yNZL4i)?achXD@F1iJDlCVX5PaE$7@EU?u~0UhwJKl&mS<>PkxOf z{V6m4RnEOVhHDkV?TvN2PjU>N1#^P3#bHirZrt`nwDmkG+w^{VFz7(0 M)NI3^QCqb-7Nve`TPuEQ#X2h5iZ~s`)~d8JTD4Zjmfn{HP$$mV_GRzhn|IH-_nm!j zcdB%|Z`(qPu;J&wOR0lX&QF=}$LbHb;htHJL^r0id8N!9fH>xF+F?55okDU?VonEdY~1j4{}x1lQx2 zK|IJ8uYy?N!>}M$6D%YGUk^q>91MOtm~ElA*CB|{f(bmobck@}9-n5)G|Q+swJJ`d z2fm8Z8C5zXrI)F-#`t)n#sFwyL*I&kib(V~^47+cdNh$Z^l8E^dNd_M%=WF92N>QH zafmO*+6k7oW;*8j;@wyv4DZ^zTf48K{u!yJRA_`{z^(f-NlaG)fpU+`dQ#E`+#@NijlT#PJI85JI`7&Tm}Qfsx^h#12dJvBN`qor^Wf+R^{ zpm2alG=P$a%c*}ox(_3<09Hh@iAcl}6KpZjeGEmwI=O^rc%@*WYz~*l7mxvg0NC3f zKPfhg!{%~1aLR}|kVhObS0Y!BnV$skyZq1yPBOO(8kw?nG+}T{UDtXxM;( z(xJm*6vIbo<8`C-24hlkN@`lVDI+&;;-ty>Q>GRb)7Fww+v{$oVrJ#6s@e1Azq4TB zqQy&AtX#GF{WWXXt>5&~$D6lo{bbwr&vx(GyKn!2&kr6sdhGZ&C%!$|+;aZH_di^0 zz0}rz?Wdow|8nEzt&Y3D-@E_dkB5Ig>cYAR*wmikRrZW7G3a7(IBX6d>mpc{Sh$$O zm8*G@vDtjfjG#zrt{^zEc4K1`8Kud&6H@3p7Z4h)Z6A6UOYK)vhtv{zfaGu&S_r) zIH(t#0!=4at!|n@YJ+P0yZ4SjI=DA&vRg{%@wB6aDMebXUVME^E950l=O^2WA+6T6 zObt5)**-D3PAgMsanb0>Pons2LL;D}duuSI74|}h#a8BDyll{Yyxrk`@JUX4xr=tY zZB7T$J)+Ae18#^P+>}6F)SWe(grZketPz%Z=o6Hlr)orpU7yH4AM~gH7DAefD`AZv|o@N> zd>Rj!lE>yL&fIQ}9ha1is@reWPy3+rwXM9P_1U|WOPh)%p~XUF=+dukJ6_74zfQz! z9Qmp;a#2FT$@fmTkKwI6KK<$|S7M^y4*P3fgt?lhKmWL50=aGHjU%UrIHsY!$?$b{q&VIC(u*Q|4|Yg=5B! z8!wBS6tA3|piS0I)f*`}PrqB+kNm&`3Kub{1!RkjyBOwG%+bqf|QUh>A$ zWp6HTdUw_8_tvak*WA+fe*5MvTeofB@zL%*ogaVl>E3+@zc_UG$kAh89zXTX>2JR~ z({r}B@50X)FI~RUe|6x-&0DwsxO4a3{XwjYfK454K4p*T5`!)lhr{OZu`YsDi-n6h z+$c3qGBclVnI9HSH3+1sD_c7bkTIHq>)~bYlfp5v+P=6OSejSaKNHsYpOgiJjp*t{ zp=<&+k1a+i=r-hD%JL@ zHHnW9?9K|Cb-|MfJ$t%V0znz5z}W1xhq2gQk8`v}mBCjetMP*t;K(qCuCrNN~URRpDjeR@9p?fK6D z92Nj)K+$KcRu9b}wLvxOom&SXEDeNBc1tBai*{5pRYBgWpXgIyS&Qc zsH8KUZo7p+8cM(RXx{*kS<9Ny8taTuDZ`7PcFi1Gvvx|uCwpx4| zH=ELD7Ad>09Z$(=oR8}JuKX!I^!lO%>v^d`Td{(_t(C1@mv*<`Y^Z72)D^)IH80Lf zXiF0||J1!V&RGBZ;Eeq1wH-0{;+2b8{W~A*o8IQK&%1bT=W|=vY&>`W=7k@(w!R>p z$ShiMt-7*Z(h%K_BTY?7r`yL!a=Uk3EPEwy nj$!Sc8LPE<=Z@tvhrfQR?rK6y@kS%Q)X0=EJAGH`yvDx);skTx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip22.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip22.png new file mode 100644 index 0000000000000000000000000000000000000000..8d979c7f9125107fa5fb928c38c9ed514fc103a6 GIT binary patch literal 2136 zcmbtV2~bm46n#JY4=|bqmk=@RXf>1kgpg!Z6v7f*8Wz_sV}Kt>C5z!x#Hkjks5sS1 zU2E-((pHO|+FGSr+vzA;tvHOhv)mED`_;suCPTK!j@&!T2ytun0C{!`uomF~k^yO-6A2 z{!NHug7F53Q-c^5#A7@r5l|6{{z8G;xYB?o5{E%exW#~`Oo-XR_3{A2 zdn}F)##lSS3e?QQ++e&93xp9^yU**pf`;bjm~)^JmH`*vMU;gEJRYCN74Z3dk`xFd zrBRU)5s@Rsk|EMjveB`lWOBJ8QJJEMAD1APr>2h?r&4RR+R-V7iF#^+Qlq7C5rQPi z$cV@hQBfnPIC&iPuZQn25(!{MB%6pwED^yL5x!$+G^~?L_(wnr7Ru&ud3*sWi~vCE zP<*G@EDoE?<-jQ;mOvhHL|k#4dJ0ccVCBazlv2x@b_fzO_a2EZJaZ>eQ{t&7g~NuA z7%59iPDvdzR-2|v*BgvkrtF;DJac|g@yuDX=ggf~T1MN-E9|dSG1afuEUI1n#`1<0 zD_1qHetZ3fjhi-ad1q_$`yYI`bJs^LyFcHzzx9g)2fsYjcJ$b{$4`8Bvid6ul;iU#?9WlzuoKm{g3;9KIq4~2-wtt5m5G&E)nQraX4%aAL}AmHCVWa z!;Mq(#8V3R)`gOIYMDTq*|cNt5i&tjcqh8Vb4EBUQQMPr7fbUi`)9)H|C6$iut8nj zD3VRU=CMU61KsaWZLSmk56kd%p}OwKcC}Oy7830SgkQ?@b@{D%BWJc z+^in|1i|4dv)gK)P4MpTXaYiNr~_kn&{d4p;eMK#^s=4&uXxI8n8iPOzB z_%t?|O;d_fPv2@+uZ2H_$!F3fYDz*%8oj1Z;_{m>O>9fPt#Dr9C>33sG!+domi#_p zL!PDaJ;$t%3m12|maeN+_Qk%OmbhIo$@j1`W!LqiT?ZPQ4!0lg?7lR)>n;1bHKSf! zVrYNi#;T;$gD1aw*wIpPP~YOUUtA!RR$e|&w^_=PXSFf~=QbJ_m^UWI-_O|ddhCxT S?4YDZh^S*OzxrS%#|rCO2dSZr+-$E(^}7^d`pNeJr1nI13s_y6<$@B9Dv z?R&dvvdzqwNmWvWkc=s?7J?s!O(KBnp5BSw;520gg)~2;mQL(pP6CP&>1=^ zLvI2;MH?-Y(L$RvI)f!M)1o&6n)qOFML|d zqm{DgsHo@>ikP9wk*d+7Myk|mO-e?pCMhjht=3K)mqzIf2E*u7^JEh}DMN3daS?(f z$>^x)c$qAoPE;q-|9bQvL~;qNh~yJVh$koba-zQtjfQm!iNFX-!9w{0p-3ztrBMLb zGYsD;K2N|G3I%Y=h?gLb1ahGwQI{o(nQa#*EmG1At6C(<**jZf3(wq1(Ump!N2S!lYW4h#^izg891!Am=;MHQ` za)B^WCsJh17TXuaB+(5LW%jC;ovmcDzVJ?Lsqc(*c#5HG%v~%kpzNOsYy3~j!omi1 zb)slK0h`B{qbcY?uXaqxJj&u=aG z3cxX8a4s~R<#6~}4(ZI)^tbLEg0wQ6W?c3Pb~@{>;3|>9V3J?m(gAtJqxreca!Bip z?epVKKz2|}k;lQ++I=i~_?0L>J!L1LQo=R3${JUx+wQE6EMAjvA8)rh0zSv%^7>f6 z-|2B9V-M?{3%F4ca1X1XGmSPch2M?|PeKOun46|mbOJ1}pMkv@TJT8{=Im-e~K{IFP z0-_bM%_?ANBCvu-2p=Y!vyQDs`mXaQ=L43+*c$iqZcnWn={ghVyaIJK!3 zpT;`InpLblb@O=35MmKJ*me7r!;*{pH#_$=Rj;ngI(>^MeyaT5ki9RUHOg5n@y#a| zw;yZP_ME#MS9SS~zSdLEirW^Z_v|0h^8T@r+m$|X%+u4FR!*<-$h)^UY&m}E=)CT# vYvnu67A?)Z*p{?lR%;2nZTs!Uqd7NZ*0gxXgii(duN5)5Gp#$a7dHM4R!v>I literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip24.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip24.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8627a7d8f5ea0f3427581f0c4ddd4d3816bb29 GIT binary patch literal 2087 zcmbtUYj6`)6uz7HrU@l!$|DVsw1t)moy{gqlL#Vh(sm2f^npNUoN3x_+Gz72*;-%} zOF?Q8nW^Pbfggg%%NZ4U2#g~X5fDWlf|NSW*eVKjs6|kq!&uKv(iE65tHo0=VxV$nFKFttu#)gV2&m2sN%iXaJ@fuOU=V zA=F!ekhLA5(f-Yci>D#Pzt7HRTnv+eB!Ggdga8o`;hIDwJ_-{&f{*wxw-QVVF~(q1 z6T*;R4RKN=UJG%01jB<^Pw@h{a-( zlt^VNxhyVDHddJsuNtSGFn*j`qtT{jrfHL>q-Zqh*^{SGdZW=eAg0CP3kE02&P9YH*VJTQBUmz5TC8RVC z0Q*PcC&lLp_(GuoP8snsbHy{vVMBqe80M`FqO{!~L{pox@@ z8a-yLdg7$C^vM~D$YlSGu};e*Ed`&%a!|-h1=+TetuC^UmFS16UUUn>sYY${x|B09`zRfG-eZT?DTI z3s(q)I=x6avsmn0n2<~_lc;i9x9sU4Qw$~jiIsu#(ow0#?uj?Cw2-oYCamc{DT@jl z*42e%d;&I)uRt@!=#vF=Geu(B8@zmG}Ar!HJ-@X=X2Fgj!i`*`2 zj++ZQ*gz?;>R4o+qQ#f;##3p4QbbX?zB*r^)bFffkv@JCkAb8vnzVteGH4y^)AM29 zbDsb>Aquub(`Q_+Aj=`Wg_^zQ)-gz{qG`tCtYK%f-WskJ8I5Me)$N^-S3aDd=dOmd z-gKdS^p}tw7E|hTaShG@iyr(WD$dQ=1E|z!4X(D{Q|WcO>tc)7Cf&x{t%-rp^?CdO zHW+mKyvTHq_0I#`_!zhcRnS=`ho8b<$E3$0!+I<&vue5k7TV9y-V86a&|%MKyc`>- zs&#s6*gRjryV-Q@|kkLk{Da>eZlK%@FIPeZthDkN%#UqWyIO7 z4fr%xFt(Xx>1S`8){SVYK#k{{50WzJrj}E}oq`j!tB-xXw&C?1#r+4$>-t>ln)`Onea|C0Wb2u<-o35p>)r8f WJ4QI~XD2-ky%1wBvb~>E(eyXfFHZvi literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip25.png b/src/main/resources/assets/immersiveintelligence/textures/particle/fluid/fluid_drip25.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd1a6f299c46500371e0d57e4a9f5674298dfbd GIT binary patch literal 2062 zcmbtVdu&rx7(chSuiHnU-Nv?3SoeUH$ClgMuCxtE*w%HIm)!#gOHAmx+pW4jXzv^# znr$L5A|?n3B8d!@*B>eZii8-(&?$xh6J(4S9g4yf0)heyTEEkF9gvdvIPG`8ujl*y zzVH0*Irp~1Ip3j_X=Df?C0kxv34Sy-sSvIQho%jJ)49tl=OMIwB0{Yz5gLN2)+-1# z(+CYNM##1Wq4eOk!xhsJBJXnxSr5xjMp8gQRYHgeh;U6J9v_7X0YM@X=2n5JA;uVN z8bTEHuRuID9&dzLAIAtFHV^`&1iuZ8fjAZXUNGus ziUA{jAWnP$ZT}DVZDq z2S?*OMGAzZNF;<)M!W!dBvgsi*@ju-lnR$5XGtp4w!TxETfDC;t@6x`JY!v`osx}7 z&&bqFn3%7hG}%;So@TMyN=ofzj&gQ(RrP|WY8Ec4b=PyAhDPr*VZQmfmZi&= zZ_f8!=pVTB!;hDL`uWP$!JEI`y8ZhfckbRB!nz39)Zr0R_J}SO=n@Epq)>u&5rP&h zTqP7`8^r2a6%yBylpLl_np(WRb6*#gYplGHRu?)W8s)%grIfs5b>HB(oFAQjk>*t&_caKDhq$ z5dfzoz;r64AQBIH0yIUaC13-1K)^DCX4Fw&OXSiAI{f!>mhA0 z_tvI=1=$fXRRIs*;tFx-!B?W{^vr#L%1hMX8=HM~ewVi?xp>{!+jzURN$@2BUogal z!`^@&neTDI8o-TDf_qQ}Q)G4qY5aB^`#5AwkF{e?LqEWx`x)Jvk%i87+8wN)=R)pA zm%o843xs?w9vKe`7;Wh?vxcTJJCEzT6{gyP+~d5Y@p!n6gy9@E?1H}a1BDL?o8x~vt_ t1KY`p$RT;>b@49!#o(l}{oQNp4-?pG+9=JhbLf74H)%8Jp=Qg5d zOavidf}lL)51ER>AL@kpAjU96@sVYKC}YONp(xB~Ku};I&hNBc2c#rEPVaZm*Yo{; z-*Cd}V1J_A`m8WcVJKSTv5E(N$Sj4X|!LK+gt%2^{LV1kk|% zjIRN(?*^D1*mtycF@W^8(8RlWJ|9$w!mN}GDD+59D(WA@0SP4qDUNMK)1gl=#PpOr z+;2sHPSoFteqIzKL7$~0puv708i#%|_J`0sn-37CUD(vSxcxk={j zxWiA0`b0Y=iR7##+^Bz;2*ehd`{c;v_b{`noG-^hLo*@d~r%!OG7L*AkV3mMjIHmB#>mRPyPg(fpcl29~F zCnhAOYBZ@_h9QId*KP6`XjM2PT1sVtL`zAv)Z__B$9c-BaEnMGLZvdfLaCzF2?!XN zNmfcKkxAup8J;rgNsNO`E7xVP%M?kqPG#oWWN!WT{i>|u{=t;G(^s-h&B0z;J!^Jq znm%WKZr*}?bCG3{)n+d#Ei136hWJ-W20OCpm=WlExpl5`T` zTA4h9Rp^%0DxGVSGP(7tVPQ{9!6=HO}dtZegG&Q&5Utn8l&>-|s4V#20% zjY6W7!p)OvVJY00$m{D-{|{R_c^-PsuCK@Cku)!_D8=t`TNa1^=s@MF5I};C7u7szLvBbGIZElyFeyMh9C;qSA6u@rFD2G(RZk>>%1u`|rU z%N+%G5xo8ukGuQ+gpngd+mVnLs~~#3LP&Ia1NU;wcE%PdQqlX?UgYQrN9gjn?ZqB3 z+3)B?*tgj99P~Wi?>wcvsKczdiCH zf|Fw4GA#O#+Z_@_U~SBb=dK;caB?ind!4Pq3c=SZwt?Af)m}U>f^ps5@kUPzhFQy* z)w93E=(L!6zgz5d1_ikDO4OcO+K;I0SPrqR!`tk0dfMZQH_o|Ew%ZT~U*h)$f`tb3>~UOA~B|?=hdh(+BKm#>yvfkn#s>8mQsEPI4M^ z`O;+#dBd*T!#(K?yEQ+xMr} Date: Tue, 30 Jun 2026 15:19:09 +0200 Subject: [PATCH 04/12] Re-added rendering of the Redstone Interface to the manual, closes #613 --- .../MultiblockRedstoneInterface.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/multiblock/MultiblockRedstoneInterface.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/multiblock/MultiblockRedstoneInterface.java index 597ec46c2..76b421acc 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/multiblock/MultiblockRedstoneInterface.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/multiblock/MultiblockRedstoneInterface.java @@ -1,8 +1,14 @@ package pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock1.multiblock; +import blusunrize.immersiveengineering.api.IEProperties; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.Vec3i; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; import pl.pabilo8.immersiveintelligence.ImmersiveIntelligence; +import pl.pabilo8.immersiveintelligence.client.util.amt.AMTUtils; import pl.pabilo8.immersiveintelligence.common.IIContent; import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock1.BlockIIMetalMultiblock1.MetalMultiblocks1; import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock1.tileentity.TileEntityRedstoneDataInterface; @@ -42,4 +48,23 @@ protected TileEntityRedstoneDataInterface getMBInstance() { return new TileEntityRedstoneDataInterface(); } + + @Override + @SideOnly(Side.CLIENT) + public void renderFormedStructure() + { + GlStateManager.pushMatrix(); + + GlStateManager.rotate(EnumFacing.EAST.getHorizontalAngle(), 0, 1, 0); + GlStateManager.translate(offset.getX()+1, offset.getY(), -offset.getZ()-(useNewOffset()?1: 0)); + GlStateManager.rotate(EnumFacing.EAST.getHorizontalAngle(), 0, -1, 0); + + AMTUtils.getBRD().renderBlockBrightness( + IIContent.blockMetalMultiblock1.getStateFromMeta(MetalMultiblocks1.REDSTONE_DATA_INTERFACE.getMeta()) + .withProperty(IEProperties.FACING_HORIZONTAL, EnumFacing.SOUTH) + .withProperty(IEProperties.DYNAMICRENDER, true), + 1f + ); + GlStateManager.popMatrix(); + } } From 03baad9b260bb0a6f6ddbda0b473ab451dbf8904 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Tue, 30 Jun 2026 16:25:46 +0200 Subject: [PATCH 05/12] Fixed fluid port order and production animation in Chemical Painter Closes #632 --- .../metal/ChemicalPainterRenderer.java | 10 ++------- .../client/util/amt/parts/AMTItem.java | 21 ++++++++++++------- .../tileentity/TileEntityChemicalPainter.java | 2 +- .../aabb/multiblock/chemical_painter.json | 8 +++---- .../chemical_painter/production.json | 10 ++++++--- 5 files changed, 28 insertions(+), 23 deletions(-) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ChemicalPainterRenderer.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ChemicalPainterRenderer.java index 735edd470..678da74df 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ChemicalPainterRenderer.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ChemicalPainterRenderer.java @@ -3,6 +3,7 @@ import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.BufferBuilder; import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.math.MathHelper; import net.minecraftforge.client.model.obj.OBJModel; import pl.pabilo8.immersiveintelligence.client.util.ShaderUtil.Shaders; import pl.pabilo8.immersiveintelligence.client.util.amt.animation.IIAnimationCompiledMap; @@ -47,14 +48,7 @@ public void drawAnimated(TileEntityChemicalPainter te, BufferBuilder buf, float paintSmall.setShader(Shaders.COLOR, colors); paintBig.setShader(Shaders.COLOR, colors); paintAtomizer.setShader(Shaders.COLOR, colors); - /*if(productionProgress > 0.583f) - IIAnimationUtils.setModelShader(item, Shaders.COLOR, colors); - else if(productionProgress > 0.33) - { - IIColor mixed = IIColor.WHITE.mixedWith(te.color, (productionProgress-0.33f)/.253f); - colors = new Float[]{mixed.red/255f, mixed.green/255f, mixed.blue/255f}; - IIAnimationUtils.setModelShader(item, Shaders.COLOR, colors); - }*/ + item.setProperty(MathHelper.clamp((productionProgress-0.2f)/(0.5f-0.2f), 0, 1)); } else animationProduction.apply(0f); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTItem.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTItem.java index f209f4866..b76f1e3d9 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTItem.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/util/amt/parts/AMTItem.java @@ -81,22 +81,25 @@ else if(property==1) ClientUtils.mc().getRenderItem().renderItem(stackInto, TransformType.FIXED); else { + GlStateManager.disableCull(); //Use stencil buffer to interpolate between stack and stackInto based on special property GL11.glEnable(GL11.GL_STENCIL_TEST); - GL11.glClear(GL11.GL_STENCIL_BUFFER_BIT); - //Draw first item where stencil == 0 - GL11.glStencilFunc(GL11.GL_ALWAYS, 1, 0xFF); - GL11.glStencilOp(GL11.GL_KEEP, GL11.GL_KEEP, GL11.GL_REPLACE); - GL11.glColorMask(false, false, false, false); - GL11.glDepthMask(false); + GlStateManager.colorMask(false, false, false, false); + GlStateManager.depthMask(false); + + GL11.glStencilFunc(GL11.GL_NEVER, 1, 0xFF); + GL11.glStencilOp(GL11.GL_REPLACE, GL11.GL_KEEP, GL11.GL_KEEP); + + GL11.glStencilMask(0xFF); + GlStateManager.clear(GL11.GL_STENCIL_BUFFER_BIT); //Draw mask for interpolation GlStateManager.rotate(ClientUtils.mc().getRenderManager().playerViewY, 0.0F, 1.0F, 0.0F); GlStateManager.disableTexture2D(); buf.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION); - ClientUtils.renderBox(buf, .5, .5f, .5, -.5, -.5+property, -.5); + ClientUtils.renderBox(buf, -0.5, -0.5, -0.5, 0.5, 0.5-property, 0.5); tes.draw(); GlStateManager.enableTexture2D(); @@ -104,6 +107,7 @@ else if(property==1) GL11.glColorMask(true, true, true, true); GL11.glDepthMask(true); + GL11.glStencilMask(0x00); //Draw stack where stencil == 1 GL11.glStencilFunc(GL11.GL_EQUAL, 1, 0xFF); @@ -115,6 +119,9 @@ else if(property==1) ClientUtils.mc().getRenderItem().renderItem(stackInto, TransformType.FIXED); GL11.glDisable(GL11.GL_STENCIL_TEST); + GL11.glStencilMask(0xFF); + GlStateManager.clear(GL11.GL_STENCIL_BUFFER_BIT); + GlStateManager.enableCull(); } } else diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/tileentity/TileEntityChemicalPainter.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/tileentity/TileEntityChemicalPainter.java index b96782c44..7e9028d7d 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/tileentity/TileEntityChemicalPainter.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock1/tileentity/TileEntityChemicalPainter.java @@ -236,7 +236,7 @@ protected IIMultiblockProcess findNewProductionProcess() //Take stack from inventory this.recipeStack = ItemHandlerHelper.copyStackWithSize(inventory.get(SLOT_INPUT), 1); - this.resultStack = recipe.process.apply(color, this.recipeStack); + this.resultStack = recipe.process.apply(color, this.recipeStack.copy()); inventory.get(SLOT_INPUT).shrink(1); //Return new process diff --git a/src/main/resources/assets/immersiveintelligence/aabb/multiblock/chemical_painter.json b/src/main/resources/assets/immersiveintelligence/aabb/multiblock/chemical_painter.json index 8f3c4ea1f..34a1ef28f 100644 --- a/src/main/resources/assets/immersiveintelligence/aabb/multiblock/chemical_painter.json +++ b/src/main/resources/assets/immersiveintelligence/aabb/multiblock/chemical_painter.json @@ -46,10 +46,10 @@ }, "poi": { "fluid_inputs": [15, 16, 18, 19], - "input_cyan": 19, - "input_magenta": 18, - "input_yellow": 16, - "input_black": 15, + "input_cyan": 15, + "input_magenta": 16, + "input_yellow": 18, + "input_black": 19, "energy_input": 57, "redstone": 14, "data": 10, diff --git a/src/main/resources/assets/immersiveintelligence/animations/chemical_painter/production.json b/src/main/resources/assets/immersiveintelligence/animations/chemical_painter/production.json index f472106c0..d07ba0399 100644 --- a/src/main/resources/assets/immersiveintelligence/animations/chemical_painter/production.json +++ b/src/main/resources/assets/immersiveintelligence/animations/chemical_painter/production.json @@ -175,6 +175,10 @@ "visibility": [ { "time": 0, + "visibility": false + }, + { + "time": 0.02, "visibility": true }, { @@ -195,15 +199,15 @@ "property": [ { "time": 0.2, - "property": 0 + "property": 0.0 }, { "time": 0.5, - "property": 1 + "property": 1.0 }, { "time": 1, - "property": 1 + "property": 1.0 } ] }, From e276b8bc9ac57d6e14936d20904e2184444471fd Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Tue, 30 Jun 2026 16:35:39 +0200 Subject: [PATCH 06/12] Added Explosion fields to II Access Transformer Closes #587 --- src/main/resources/META-INF/immersiveintelligence_at.cfg | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/resources/META-INF/immersiveintelligence_at.cfg b/src/main/resources/META-INF/immersiveintelligence_at.cfg index f775b5f4c..3203e61e2 100644 --- a/src/main/resources/META-INF/immersiveintelligence_at.cfg +++ b/src/main/resources/META-INF/immersiveintelligence_at.cfg @@ -9,4 +9,7 @@ public net.minecraft.client.gui.inventory.GuiContainer field_147000_g #ySize public net.minecraft.client.gui.inventory.GuiContainer field_147003_i #guiLeft public net.minecraft.client.gui.inventory.GuiContainer field_147009_r #guiTop public net.minecraft.block.Block field_149782_v #blockHardness -public net.minecraft.client.gui.inventory.GuiContainerCreative func_147050_b(Lnet/minecraft/creativetab/CreativeTabs;)V #setCurrentCreativeTab \ No newline at end of file +public net.minecraft.client.gui.inventory.GuiContainerCreative func_147050_b(Lnet/minecraft/creativetab/CreativeTabs;)V #setCurrentCreativeTab +public net.minecraft.world.Explosion field_77280_f #size +public net.minecraft.world.Explosion field_77286_a #causesFire +public net.minecraft.world.Explosion field_82755_b #damagesTerrain \ No newline at end of file From e6249fe0721c332fed847e02cb8cda2329560142 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Wed, 1 Jul 2026 16:12:50 +0200 Subject: [PATCH 07/12] Some bugfixes for the ALM, DIM and circuit manual pages Closes #612, #636, #637, #638 --- .../api/data/types/DataTypeItemStack.java | 7 +- .../api/data/types/DataTypeVector.java | 4 +- .../GuiArithmeticLogicMachine.java | 40 +-- .../GuiArithmeticLogicMachineEdit.java | 14 +- .../GuiDataInputMachine.java | 33 +- .../GuiDataInputMachineEdit.java | 10 + .../button/DecoDropdownDataLetters.java | 2 +- .../component/data_editor/DecoDataEditor.java | 1 - .../data_editor/DecoDataEditorBoolean.java | 14 +- .../data_editor/DecoDataEditorFluidStack.java | 11 +- .../data_editor/DecoDataEditorItemStack.java | 14 +- .../data_editor/DecoDataEditorVector.java | 51 ++- .../panel/DecoIngredientStackPickerPanel.java | 333 +++++++++++++++--- .../deco/component/storage/DecoDustTank.java | 1 + .../deco/component/storage/DecoFluidTank.java | 1 + .../deco/component/storage/DecoTankBase.java | 2 +- .../deco/component/text/util/TextFilter.java | 4 +- .../manual/objects/IIManualCircuit.java | 20 +- .../TileEntityDataInputMachine.java | 26 +- .../immersiveintelligence/lang/en_us.lang | 7 +- 20 files changed, 458 insertions(+), 137 deletions(-) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeItemStack.java b/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeItemStack.java index 8dd0979b3..3f94565f9 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeItemStack.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeItemStack.java @@ -3,6 +3,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import pl.pabilo8.immersiveintelligence.api.data.types.generic.DataType; +import pl.pabilo8.immersiveintelligence.common.util.item.IIItemUtils; import javax.annotation.Nonnull; @@ -57,10 +58,6 @@ public boolean equals(Object obj) @Override public String toString() { - return String.format("%d*%s@%d%s", - value.getCount(), - value.getItem().getRegistryName(), - value.getMetadata(), - value.hasTagCompound()?value.getTagCompound().toString(): ""); + return IIItemUtils.getUniqueStackString(value); } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeVector.java b/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeVector.java index 1f4620d8d..981aca2da 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeVector.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/api/data/types/DataTypeVector.java @@ -57,8 +57,8 @@ public NBTTagCompound valueToNBT() NBTTagCompound nbt = getHeaderTag(); nbt.setFloat("X", x); - nbt.setFloat("Y", x); - nbt.setFloat("Z", x); + nbt.setFloat("Y", y); + nbt.setFloat("Z", z); nbt.setBoolean("IntegerVector", integerVector); return nbt; diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java index 7e8fb5fd0..ef7961938 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java @@ -35,8 +35,7 @@ import pl.pabilo8.immersiveintelligence.common.util.IIColor; import pl.pabilo8.immersiveintelligence.common.util.IIReference; import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; - -import javax.annotation.Nullable; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT.SyncEvents; /** * @author Pabilo8 (pabilo@iiteam.net) @@ -47,16 +46,15 @@ @DecoTemplate(name = "arithmetic_logic_machine", category = DecoGuiCategory.DATA_TILE) public class GuiArithmeticLogicMachine extends DecoTileGui implements IDataMachineGui { - @SyncNBT + @SyncNBT(name = "page", events = SyncEvents.TILE_CLIENT_MESSAGE) public int editedCircuit = 0; @SyncNBT public int scroll = 0; + @SyncNBT(events = SyncEvents.TILE_CLIENT_MESSAGE) + public DataPacket expressions = new DataPacket(); @SyncNBT public DataVariable variableToEdit = new DataVariable('a', new DataTypeNull()); - - @Nullable - protected DecoList list; - boolean isStorage; + private boolean isStorage; private GuiArithmeticLogicMachine(EntityPlayer player, TileEntityArithmeticLogicMachine tile, IIGUI gui) { @@ -78,8 +76,8 @@ public static GuiArithmeticLogicMachine getVariablesGui(EntityPlayer player, Til @Override public void onInit() { - syncAnimatedParts(tile.door, true); - syncAnimatedParts(tile.drawer, true); + syncAnimatedParts(tile.door, !isStorage); + syncAnimatedParts(tile.drawer, isStorage); syncAnimatedParts(tile.keyboard, false); //Refresh page when circuit slots change @@ -124,7 +122,7 @@ public void onInit() else if(tile.inventory.size() > editedCircuit) { ItemStack stack = tile.inventory.get(editedCircuit); - DataPacket storedData = IIContent.itemCircuit.getStoredData(stack); + this.expressions = IIContent.itemCircuit.getStoredData(stack); addLabel(stack.getDisplayName(), 4+2+16, 8) .withTextColor(DecoColors.H2) @@ -139,10 +137,10 @@ else if(tile.inventory.size() > editedCircuit) .withSize(16, 16) ); - list = addComponent( + addComponent( new DecoList(4+1, 8+16+2) .withSize(136+32-3, 120-16) - .withEntries(storedData.getAllVariables()) + .withEntries(expressions.getAllVariables()) .withCreateLaterAction(this::addVariable) .withGuiSaveAction(gui -> this.scroll = gui.getScroll()) //Display @@ -165,12 +163,15 @@ else if(tile.inventory.size() > editedCircuit) .withTemplate(DecoTemplates.ACTION_BUTTON_EDIT) .withOnLMBPressed(() -> { editVariable(p.getCurrentElement()); + expressions.remove(p.getCurrentElement().getName()); }) ) .withComponent(p -> new DecoButton(p.width-17+1, 2) .withTemplate(DecoTemplates.ACTION_BUTTON_REMOVE) .withOnLMBPressed(() -> { - p.getCurrentList().removeEntry(p.getCurrentElement()); + DataVariable current = p.getCurrentElement(); + p.getCurrentList().removeEntry(current); + expressions.remove(current.getName()); IIPacketHandler.sendToServer(new MessageIITileSync(tile, onSaveTileData())); }) ) @@ -272,12 +273,9 @@ private DataPacket getCircuitPacket() private char findNextFreeVariableName() { - if(list==null) - return '\0'; - DataPacket currentPacket = new DataPacket(list.getEntries()); - if(currentPacket.size() >= DataPacket.VARIABLE_NAMES.length) + if(expressions.size() >= DataPacket.VARIABLE_NAMES.length) return '\0'; - return IIUtils.cycleDataPacketCharsAvoiding('a', true, false, currentPacket); + return IIUtils.cycleDataPacketCharsAvoiding('0', true, false, expressions); } private void addVariable() @@ -291,10 +289,8 @@ private void addVariable() @Override public void editVariable(char name, DataType initialValue) { - DataPacket currentPacket = list==null?getCircuitPacket(): new DataPacket(list.getEntries()); - - if(!currentPacket.has(name)||currentPacket.get(name).getClass()!=initialValue.getClass()) - currentPacket.set(name, initialValue); + if(!expressions.has(name)||expressions.get(name).getClass()!=initialValue.getClass()) + expressions.set(name, initialValue); this.variableToEdit = new DataVariable(name, initialValue); changeGUI(IIGUI.ARITHMETIC_LOGIC_MACHINE_EDIT); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java index 28827904e..693e5e795 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java @@ -53,7 +53,7 @@ public class GuiArithmeticLogicMachineEdit extends DecoTileGui circuitOperations; @@ -327,4 +327,16 @@ private DecoElementDisplay getOperationDropdownDisplayFunctio }) .withElementTooltip(operation -> "datasystem.immersiveintelligence.function."+operation.name()+".desc"); } + + @Override + public void onGuiClosed() + { + if(!changeGUIFlag) + { + syncAnimatedParts(tile.door, false); + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.keyboard, false); + } + super.onGuiClosed(); + } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java index 189af4cc4..36dc98bd9 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java @@ -23,6 +23,7 @@ import pl.pabilo8.immersiveintelligence.client.gui.deco.component.visual.DecoImage.ImageAnimationDirection; import pl.pabilo8.immersiveintelligence.client.gui.deco.util.*; import pl.pabilo8.immersiveintelligence.client.gui.deco.util.DecoBackgroundBuilder.SlotStyle; +import pl.pabilo8.immersiveintelligence.common.IIContent; import pl.pabilo8.immersiveintelligence.common.IIGUI; import pl.pabilo8.immersiveintelligence.common.IIUtils; import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock0.tileentity.TileEntityDataInputMachine; @@ -111,11 +112,8 @@ public void onInit() { //Set animation for the machine hatches boolean isStorage = container.hasStorage; - if(!refreshGUIFlag) - { - syncAnimatedParts(tile.drawer, isStorage); - syncAnimatedParts(tile.hatch, !isStorage); - } + syncAnimatedParts(tile.drawer, isStorage); + syncAnimatedParts(tile.hatch, !isStorage); //Build background startBackground() @@ -145,14 +143,21 @@ public void onInit() addLabel(IIReference.GUI_LABEL_KEY+"data_input_machine.storage", 0, 8+4) .withSize(xSize, 11) .withAlign(DecoAlignment.TOP); - addLabel(IIReference.GUI_LABEL_KEY+"data_input_machine.memory", 0, 8+4+76+4+2+4) - .withSize(xSize, 11) - .withAlign(DecoAlignment.TOP); - addComponent(new DecoDropdown(32+8-4-2, 8+76+8+8+8-4+4) - .withWidth(96+8+4) - .withEntries("Slot 1", "Slot 2", "Slot 3", "Slot 4") - .withSelectedEntry(0) - ); + if(tile.isUpgradeInstalled(IIContent.UPGRADE_ADVANCED_DATA)) + { + addLabel(IIReference.GUI_LABEL_KEY+"data_input_machine.memory", 0, 8+4+76+4+2+4) + .withSize(xSize, 11) + .withAlign(DecoAlignment.TOP); + + addComponent(new DecoDropdown(32+8-4-2, 8+76+8+8+8-4+4) + .withWidth(96+8+4) + .withEntries("Slot 1", "Slot 2", "Slot 3", "Slot 4") + .withSelectedEntry(tile.selectedDataSlot) + .withOnSelectedEntry((oldEntry, newEntry) -> { + + }) + ); + } addComponent(new DecoBar(128+32-8+2, 24) .withHeight(95) .withTemplate(DecoTemplates.BAR_ELECTRIC_ENERGY.apply(tile.energyStorage)) @@ -258,7 +263,7 @@ private char findNextFreeVariableName() DataPacket currentPacket = new DataPacket(list.getEntries()); if(currentPacket.size() >= DataPacket.VARIABLE_NAMES.length) return '\0'; - return IIUtils.cycleDataPacketCharsAvoiding('a', true, false, currentPacket); + return IIUtils.cycleDataPacketCharsAvoiding('0', true, false, currentPacket); } private void addVariable() diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java index 13df45f3b..5085db855 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java @@ -51,6 +51,10 @@ public GuiDataInputMachineEdit(EntityPlayer player, TileEntityDataInputMachine t @Override public void onInit() { + //Sync machine's animated parts + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.hatch, true); + //Use a copy of the tile data packet = tile.storedData.clone(); @@ -170,6 +174,12 @@ private void changeVariableName(Character newName) @Override public void onGuiClosed() { + //Close the hatches + if(!refreshGUIFlag) + { + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.hatch, false); + } super.onGuiClosed(); } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/button/DecoDropdownDataLetters.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/button/DecoDropdownDataLetters.java index 58d837afa..8cff44870 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/button/DecoDropdownDataLetters.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/button/DecoDropdownDataLetters.java @@ -120,7 +120,7 @@ public int displayElement(Character character, int width, IIFontRenderer font, i } else if(isSelectable(character)) { - if(IIMath.isPointInRectangle(0, 0, ENTRY_SIZE, ENTRY_SIZE, mouseX, mouseY)) + if(getSelectedEntry()==character||IIMath.isPointInRectangle(0, 0, ENTRY_SIZE, ENTRY_SIZE, mouseX, mouseY)) color = IIReference.COLOR_IMMERSIVE_ORANGE; else color = IIColor.WHITE; diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditor.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditor.java index 765f99994..b69b5186f 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditor.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditor.java @@ -36,7 +36,6 @@ public abstract class DecoDataEditor extends DecoPanel protected T dataType; - public DecoDataEditor(int x, int y, T dataType) { super(x, y); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorBoolean.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorBoolean.java index ed69d2c74..c99d3bee1 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorBoolean.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorBoolean.java @@ -1,7 +1,7 @@ package pl.pabilo8.immersiveintelligence.client.gui.deco.component.data_editor; import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeBoolean; -import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoCheckbox; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoSwitch; import pl.pabilo8.immersiveintelligence.common.util.IIReference; /** @@ -10,7 +10,7 @@ */ public class DecoDataEditorBoolean extends DecoDataEditor { - private DecoCheckbox checkbox; + private DecoSwitch component; public DecoDataEditorBoolean(int x, int y, DataTypeBoolean data) { @@ -21,11 +21,9 @@ public DecoDataEditorBoolean(int x, int y, DataTypeBoolean data) protected boolean initialize() { //Add editor components - addLabel(IIReference.DESCRIPTION_KEY+"variable_value", 2, 2); - addComponents( - checkbox = new DecoCheckbox(16, 48+16) - .withText(IIReference.DESCRIPTION_KEY+"variable_value") - .withChecked(dataType.value) + component = addComponent(new DecoSwitch(2, 6) + .withText(IIReference.DESCRIPTION_KEY+"variable_value") + .withCurrentState(dataType.value) ); return super.initialize(); } @@ -33,7 +31,7 @@ protected boolean initialize() @Override public DataTypeBoolean outputType() { - dataType.value = checkbox.isChecked(); + dataType.value = component.getState(); return dataType; } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorFluidStack.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorFluidStack.java index e6a59a69d..a8f6b9462 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorFluidStack.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorFluidStack.java @@ -1,6 +1,5 @@ package pl.pabilo8.immersiveintelligence.client.gui.deco.component.data_editor; -import net.minecraftforge.fluids.FluidStack; import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeFluidStack; import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoIngredientStackPickerPanel; import pl.pabilo8.immersiveintelligence.common.util.IIReference; @@ -11,21 +10,20 @@ */ public class DecoDataEditorFluidStack extends DecoDataEditor { - private FluidStack fluidStack; + private DecoIngredientStackPickerPanel stackPicker; public DecoDataEditorFluidStack(int x, int y, DataTypeFluidStack dataType) { super(x, y, dataType); - this.fluidStack = dataType.value==null?null: dataType.value.copy(); } @Override protected boolean initialize() { addLabel(IIReference.DESCRIPTION_KEY+"variable_value", 2, 2); - addComponent(new DecoIngredientStackPickerPanel(0, 2+12) + addComponent((stackPicker = new DecoIngredientStackPickerPanel(0, 2+12)) .withFluidMode(true) - .withOnStackChanged(ingredientStack -> fluidStack = ingredientStack.fluid) + .withDataType(dataType) .withSize(width, height) ); return super.initialize(); @@ -34,7 +32,6 @@ protected boolean initialize() @Override public DataTypeFluidStack outputType() { - dataType.value = fluidStack; - return dataType; + return stackPicker.getFluidStackDataType(dataType); } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorItemStack.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorItemStack.java index 72fcde834..6225b67b6 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorItemStack.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorItemStack.java @@ -1,6 +1,5 @@ package pl.pabilo8.immersiveintelligence.client.gui.deco.component.data_editor; -import net.minecraft.item.ItemStack; import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeItemStack; import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoIngredientStackPickerPanel; import pl.pabilo8.immersiveintelligence.common.util.IIReference; @@ -11,21 +10,21 @@ */ public class DecoDataEditorItemStack extends DecoDataEditor { - private ItemStack scanned; + private DecoIngredientStackPickerPanel stackPicker; public DecoDataEditorItemStack(int x, int y, DataTypeItemStack dataType) { super(x, y, dataType); - this.scanned = dataType.value; } @Override protected boolean initialize() { addLabel(IIReference.DESCRIPTION_KEY+"variable_value", 2, 2); - addComponent(new DecoIngredientStackPickerPanel(0, 2+12) - .withOnStackChanged(ingredientStack -> scanned = ingredientStack.getExampleStack()) - .withSize(width, height) + addComponent((stackPicker = new DecoIngredientStackPickerPanel(0, 2+12)) + .withItemDataTypeMode(true) + .withDataType(dataType) + .withSize(width, height-6) ); return super.initialize(); } @@ -33,7 +32,6 @@ protected boolean initialize() @Override public DataTypeItemStack outputType() { - dataType.value = scanned.copy(); - return dataType; + return stackPicker.getItemStackDataType(dataType); } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java index 8c3cfd7ac..28e56c228 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java @@ -27,37 +27,66 @@ protected boolean initialize() this.x = new DecoTextField(2, 12) .withSize(width-8, 16) .withText(dataType.x) - .withFilter(TextFilter.FLOAT), + .withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT), this.y = new DecoTextField(2, 12+18) .withSize(width-8, 16) .withText(dataType.y) - .withFilter(TextFilter.FLOAT), + .withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT), this.z = new DecoTextField(2, 12+18+18) .withSize(width-8, 16) .withText(dataType.z) - .withFilter(TextFilter.FLOAT), + .withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT), new DecoSwitch(2, 12+18+18+18) - .withText("Integer Vector") + .withText(IIReference.DESCRIPTION_KEY+"variable_value.integer_vector") .withCurrentState(dataType.integerVector) .withOnToggle(newValue -> { dataType.integerVector = newValue; - x.withFilter(newValue?TextFilter.DECIMAL: TextFilter.FLOAT); - y.withFilter(newValue?TextFilter.DECIMAL: TextFilter.FLOAT); - z.withFilter(newValue?TextFilter.DECIMAL: TextFilter.FLOAT); + refreshFieldFormatting(x); + refreshFieldFormatting(y); + refreshFieldFormatting(z); }) - .withTranslatedTooltip(IIReference.DESCRIPTION_KEY+"variable_value.integer_vector") + .withTranslatedTooltip(IIReference.DESCRIPTION_KEY+"variable_value.integer_vector.tooltip") ); return super.initialize(); } + private void refreshFieldFormatting(DecoTextField field) + { + float currentValue = parseFloatValue(field.getText()); + field.withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT) + .withText(dataType.integerVector?Integer.toString((int)currentValue): Float.toString(currentValue)); + } + + private int parseIntValue(String text) + { + try + { + return Integer.parseInt(text); + } catch(NumberFormatException e) + { + return 0; + } + } + + private float parseFloatValue(String text) + { + try + { + return Float.parseFloat(text); + } catch(NumberFormatException e) + { + return 0; + } + } + @Override public DataTypeVector outputType() { - dataType.x = Float.parseFloat(x.getText()); - dataType.y = Float.parseFloat(y.getText()); - dataType.z = Float.parseFloat(z.getText()); + dataType.x = parseFloatValue(x.getText()); + dataType.y = parseFloatValue(y.getText()); + dataType.z = parseFloatValue(z.getText()); return dataType; } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/panel/DecoIngredientStackPickerPanel.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/panel/DecoIngredientStackPickerPanel.java index 0d035ccad..14053e3be 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/panel/DecoIngredientStackPickerPanel.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/panel/DecoIngredientStackPickerPanel.java @@ -10,6 +10,9 @@ import net.minecraftforge.oredict.OreDictionary; import org.lwjgl.input.Keyboard; import pl.pabilo8.immersiveintelligence.api.LogisticTag; +import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeFluidStack; +import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeItemStack; +import pl.pabilo8.immersiveintelligence.api.data.types.generic.DataType; import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoSlider; import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoSwitch; import pl.pabilo8.immersiveintelligence.client.gui.deco.component.storage.DecoFluidTank; @@ -24,7 +27,6 @@ import pl.pabilo8.immersiveintelligence.common.IIContent; import pl.pabilo8.immersiveintelligence.common.util.IIColor; import pl.pabilo8.immersiveintelligence.common.util.IIReference; -import pl.pabilo8.immersiveintelligence.common.util.IIStringUtil; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -47,7 +49,7 @@ public class DecoIngredientStackPickerPanel extends DecoPanel protected DecoItemStackDisplay stackDisplay; protected DecoFluidTank fluidDisplay; - protected DecoTextField countField, damageField; + protected DecoTextField countField, metadataField; protected DecoSwitch toggleNBT, toggleOre; protected DecoSlider energySlider; protected DecoTextField energyField, fluidNameField; @@ -69,70 +71,133 @@ public DecoIngredientStackPickerPanel withStack(@Nonnull ItemStack stack) public DecoIngredientStackPickerPanel withIngredientStack(@Nonnull IngredientStack stack) { this.stack = stack; + this.stack.inputSize = clampInteger(this.stack.inputSize, getMinimumCount(), Integer.MAX_VALUE); + if(!isFluidMode()&&this.stack.stack==null) + this.stack.stack = ItemStack.EMPTY; + if(isItemDataTypeMode()) + this.stack.oreName = null; + applyToUI(); if(!initialized) return this; - countField.withText(String.valueOf(Math.max(1, stack.inputSize))); + if(countField!=null) + countField.withText(String.valueOf(Math.max(getMinimumCount(), this.stack.inputSize))); switch(mode) { case ITEM: case ITEM_LOGISTIC_TAG: + case ITEM_DATA_TYPE: { - damageField.withText(stack.stack.getMetadata()==OreDictionary.WILDCARD_VALUE?"": String.valueOf(Math.max(0, stack.stack.getMetadata()))); - toggleNBT.withCurrentState(this.stack.useNBT); - toggleOre.withCurrentState(this.stack.oreName!=null); + if(metadataField!=null&&this.stack.stack!=null) + metadataField.withText(this.stack.stack.getMetadata()==OreDictionary.WILDCARD_VALUE?"": String.valueOf(Math.max(0, this.stack.stack.getMetadata()))); + if(toggleNBT!=null) + toggleNBT.withCurrentState(isItemDataTypeMode()?hasNonEmptyTag(this.stack.stack): this.stack.useNBT); + if(toggleOre!=null) + toggleOre.withCurrentState(this.stack.oreName!=null); } break; case FLUID: { - toggleNBT.withCurrentState(this.stack.useNBT); + if(toggleNBT!=null) + toggleNBT.withCurrentState(this.stack.useNBT); } break; case ENERGY: { - energyField.withText(String.valueOf(stack.inputSize)); - energySlider.withValue(stack.inputSize); + if(energyField!=null) + energyField.withText(String.valueOf(this.stack.inputSize)); + if(energySlider!=null) + energySlider.withValue(Math.min(this.stack.inputSize, maxEnergyCount)); } } return this; } + public DecoIngredientStackPickerPanel withDataType(@Nonnull DataType dataType) + { + if(dataType instanceof DataTypeItemStack) + return withItemStackDataType((DataTypeItemStack)dataType); + if(dataType instanceof DataTypeFluidStack) + return withFluidStackDataType((DataTypeFluidStack)dataType); + return this; + } + + public DecoIngredientStackPickerPanel withItemStackDataType(@Nonnull DataTypeItemStack dataType) + { + ItemStack itemStack = dataType.value==null?ItemStack.EMPTY: dataType.value.copy(); + IngredientStack ingredientStack = new IngredientStack(itemStack); + ingredientStack.inputSize = itemStack.isEmpty()?1: Math.max(1, itemStack.getCount()); + ingredientStack.oreName = null; + ingredientStack.useNBT = false; + return withIngredientStack(ingredientStack); + } + + public DecoIngredientStackPickerPanel withFluidStackDataType(@Nonnull DataTypeFluidStack dataType) + { + IngredientStack ingredientStack; + if(dataType.value==null) + ingredientStack = new IngredientStack(ItemStack.EMPTY); + else + { + ingredientStack = new IngredientStack(dataType.value.copy()); + ingredientStack.inputSize = Math.max(1, dataType.value.amount); + } + return withIngredientStack(ingredientStack); + } + public DecoIngredientStackPickerPanel withMaxEnergy(int maxEnergy) { - this.maxEnergyCount = maxEnergy; + this.maxEnergyCount = Math.max(0, maxEnergy); return this; } public DecoIngredientStackPickerPanel withCount(int count) { - this.stack.inputSize = Math.max(1, count); + this.stack.inputSize = clampInteger(count, getMinimumCount(), Integer.MAX_VALUE); applyToUI(); return this; } - public DecoIngredientStackPickerPanel withDamage(int damage) + public DecoIngredientStackPickerPanel withMetadata(int metadata) { if(this.stack.stack!=null) { this.stack.stack = this.stack.stack.copy(); - this.stack.stack.setItemDamage(Math.max(0, damage)); + this.stack.stack.setItemDamage(clampInteger(metadata, 0, Integer.MAX_VALUE)); applyToUI(); } return this; } + @Deprecated + public DecoIngredientStackPickerPanel withDamage(int damage) + { + return withMetadata(damage); + } + public DecoIngredientStackPickerPanel withMatchNBT(boolean match) { - this.stack.useNBT = match; + if(isItemDataTypeMode()) + { + if(!match&&this.stack.stack!=null&&!this.stack.stack.isEmpty()) + { + this.stack.stack = this.stack.stack.copy(); + this.stack.stack.setTagCompound(null); + } + } + else + this.stack.useNBT = match; applyToUI(); return this; } public DecoIngredientStackPickerPanel withOreDictBased(boolean oreDict) { - if(oreDict) + if(isItemDataTypeMode()) + this.stack.oreName = null; + else if(oreDict&&this.stack.stack!=null&&!this.stack.stack.isEmpty()) this.stack.oreName = findFirstOreName(this.stack.stack); else this.stack.oreName = null; @@ -161,6 +226,11 @@ private boolean isLogisticTagMode() return mode==PickerPanelMode.ITEM_LOGISTIC_TAG; } + private boolean isItemDataTypeMode() + { + return mode==PickerPanelMode.ITEM_DATA_TYPE; + } + public DecoIngredientStackPickerPanel withMode(@Nonnull PickerPanelMode mode) { this.mode = mode; @@ -183,6 +253,11 @@ public DecoIngredientStackPickerPanel withLogisticTagMode(boolean logisticTagMod return withMode(logisticTagMode?PickerPanelMode.ITEM_LOGISTIC_TAG: PickerPanelMode.ITEM); } + public DecoIngredientStackPickerPanel withItemDataTypeMode(boolean itemDataTypeMode) + { + return withMode(itemDataTypeMode?PickerPanelMode.ITEM_DATA_TYPE: PickerPanelMode.ITEM); + } + @Override protected boolean initialize() { @@ -206,16 +281,12 @@ protected boolean initialize() .withSize(width-4-4, 16) .withFilter(TextFilter.DECIMAL) .withText(String.valueOf(Math.max(0, stack.inputSize))) - .withOnTextChanged(string -> { - withCount(Math.max(0, IIStringUtil.parseInt(string))); - if(energySlider!=null) - energySlider.withValue(Math.max(0, stack.inputSize)); - }) + .withOnTextChanged(this::handleEnergyTextChanged) .withTranslatedTooltip(TRANSLATION_KEY+"energy.tooltip"), energySlider = new DecoSlider(4, 2+16+18) .withSize(width-4-4, 16) .withRange(0, maxEnergyCount) - .withValue(Math.max(0, stack.inputSize)) + .withValue(Math.min(Math.max(0, stack.inputSize), maxEnergyCount)) .withBarColors(IIColor.fromPackedRGB(0x663f26), IIColor.fromPackedRGB(0xb37e28)) .withOnValueChanged(value -> { withCount(value.intValue()); @@ -258,7 +329,7 @@ protected boolean initialize() }) ); - //shared "count" only (no damage in fluid mode) + //shared "count" only (no metadata in fluid mode) addLabel(TRANSLATION_KEY+"count", 32+2+4, 2) .withSize(48-4, 18) .withAlign(DecoAlignment.LEFT); @@ -271,8 +342,8 @@ protected boolean initialize() countField = new DecoTextField(32+2+48, 2) .withSize(width-(32+2+48+4), 16) .withFilter(TextFilter.DECIMAL) - .withText(String.valueOf(stack.inputSize)) - .withOnTextChanged(string -> withCount(IIStringUtil.parseInt(string))) + .withText(String.valueOf(Math.max(1, stack.inputSize))) + .withOnTextChanged(this::handleCountTextChanged) .withTranslatedTooltip(TRANSLATION_KEY+"count.tooltip") ); @@ -288,6 +359,7 @@ protected boolean initialize() break; case ITEM: case ITEM_LOGISTIC_TAG: + case ITEM_DATA_TYPE: default: { addComponents( @@ -322,7 +394,7 @@ protected boolean initialize() addLabel(TRANSLATION_KEY+"count", 32+2+4, 2) .withSize(48-4, 18) .withAlign(DecoAlignment.LEFT); - addLabel(TRANSLATION_KEY+"damage", 32+2+4, 4+16) + addLabel(TRANSLATION_KEY+"metadata", 32+2+4, 4+16) .withSize(48-4, 18) .withAlign(DecoAlignment.LEFT); @@ -330,29 +402,33 @@ protected boolean initialize() countField = new DecoTextField(32+2+48, 2) .withSize(width-(32+2+48+4), 16) .withFilter(TextFilter.DECIMAL) - .withText(String.valueOf(stack.inputSize)) - .withOnTextChanged(string -> withCount(IIStringUtil.parseInt(string))) + .withText(String.valueOf(Math.max(1, stack.inputSize))) + .withOnTextChanged(this::handleCountTextChanged) .withTranslatedTooltip(TRANSLATION_KEY+"count.tooltip"), - damageField = new DecoTextField(32+2+48, 4+16) + metadataField = new DecoTextField(32+2+48, 4+16) .withSize(width-(32+2+48+4), 16) .withFilter(TextFilter.DECIMAL) - .withText(stack.stack.getMetadata()) - .withOnTextChanged(string -> withDamage(IIStringUtil.parseInt(string))) - .withTranslatedTooltip(TRANSLATION_KEY+"damage.tooltip") + .withText(stack.stack!=null&&stack.stack.getMetadata()!=OreDictionary.WILDCARD_VALUE?String.valueOf(stack.stack.getMetadata()): "") + .withOnTextChanged(this::handleMetadataTextChanged) + .withTranslatedTooltip(TRANSLATION_KEY+"metadata.tooltip") ); addComponents( toggleNBT = new DecoSwitch(4, height-16-2) - .withSize(width/2-8, 16) + .withSize(isItemDataTypeMode()?width-8: width/2-8, 16) .withText(TRANSLATION_KEY+"nbt") .withOnToggle(this::withMatchNBT) - .withTranslatedTooltip(TRANSLATION_KEY+"nbt.item.tooltip"), - toggleOre = new DecoSwitch(4+width/2, height-16-2) - .withSize(width/2-8, 16) - .withText(TRANSLATION_KEY+"oredict") - .withOnToggle(this::withOreDictBased) - .withTranslatedTooltip(TRANSLATION_KEY+"oredict.tooltip") + .withTranslatedTooltip(TRANSLATION_KEY+(isItemDataTypeMode()?"nbt.data_type.tooltip": "nbt.item.tooltip")) ); + + if(!isItemDataTypeMode()) + addComponents( + toggleOre = new DecoSwitch(4+width/2, height-16-2) + .withSize(width/2-8, 16) + .withText(TRANSLATION_KEY+"oredict") + .withOnToggle(this::withOreDictBased) + .withTranslatedTooltip(TRANSLATION_KEY+"oredict.tooltip") + ); } break; } @@ -371,13 +447,26 @@ private void applyToUI() { case ITEM: case ITEM_LOGISTIC_TAG: + case ITEM_DATA_TYPE: { boolean fieldsHidden = isLogisticTagMode()&&getLogisticTag()!=null; - damageField.visible = !fieldsHidden; - toggleOre.visible = !fieldsHidden; - toggleNBT.visible = !fieldsHidden; - - this.stack.stack.setCount(this.stack.inputSize); + if(metadataField!=null) + metadataField.visible = !fieldsHidden; + if(toggleOre!=null) + toggleOre.visible = !fieldsHidden&&!isItemDataTypeMode(); + if(toggleNBT!=null) + { + toggleNBT.visible = !fieldsHidden; + toggleNBT.withCurrentState(isItemDataTypeMode()?hasNonEmptyTag(this.stack.stack): this.stack.useNBT); + } + + if(this.stack.stack!=null&&!this.stack.stack.isEmpty()) + this.stack.stack.setCount(this.stack.inputSize); + if(isItemDataTypeMode()) + { + this.stack.oreName = null; + this.stack.useNBT = false; + } if(stackDisplay!=null) stackDisplay.withStack(stack); } @@ -387,7 +476,7 @@ private void applyToUI() if(stack.fluid!=null) this.stack.fluid.amount = this.stack.inputSize; if(fluidDisplay!=null) - fluidDisplay.withFluidTank(new FluidTank(stack.fluid, stack.fluid!=null?stack.fluid.amount*2: 1)); + fluidDisplay.withFluidTank(new FluidTank(stack.fluid, stack.fluid!=null?getDisplayTankCapacity(stack.fluid.amount): 1)); if(fluidNameField!=null) fluidNameField.withText(stack.fluid!=null?FluidRegistry.getFluidName(stack.fluid): "*"); } @@ -399,7 +488,7 @@ private void applyToUI() if(energyField!=null) energyField.withText(String.valueOf(stack.inputSize)).visible = true; if(energySlider!=null) - energySlider.withValue(stack.inputSize).visible = true; + energySlider.withValue(Math.min(stack.inputSize, maxEnergyCount)).visible = true; } break; } @@ -411,7 +500,11 @@ private void applyToUI() @Nonnull public ItemStack getItemStack() { - return isFluidMode()?ItemStack.EMPTY: stack.getExampleStack(); + if(isFluidMode()||isEnergyMode()) + return ItemStack.EMPTY; + if(isItemDataTypeMode()&&stack.stack!=null) + return stack.stack.copy(); + return stack.getExampleStack(); } @Nonnull @@ -420,11 +513,66 @@ public IngredientStack getIngredientStack() return stack; } + @Nonnull + public DataType getDataType() + { + switch(mode) + { + case FLUID: + return getFluidStackDataType(); + case ITEM: + case ITEM_LOGISTIC_TAG: + case ITEM_DATA_TYPE: + default: + return getItemStackDataType(); + } + } + + @SuppressWarnings("unchecked") + @Nonnull + public T getDataType(@Nonnull T dataType) + { + if(dataType instanceof DataTypeItemStack) + return (T)getItemStackDataType((DataTypeItemStack)dataType); + if(dataType instanceof DataTypeFluidStack) + return (T)getFluidStackDataType((DataTypeFluidStack)dataType); + return dataType; + } + + @Nonnull + public DataTypeItemStack getItemStackDataType() + { + return getItemStackDataType(new DataTypeItemStack()); + } + + @Nonnull + public DataTypeItemStack getItemStackDataType(@Nonnull DataTypeItemStack dataType) + { + dataType.value = getItemStack(); + return dataType; + } + + @Nonnull + public DataTypeFluidStack getFluidStackDataType() + { + return getFluidStackDataType(new DataTypeFluidStack()); + } + + @Nonnull + public DataTypeFluidStack getFluidStackDataType(@Nonnull DataTypeFluidStack dataType) + { + dataType.value = stack.fluid==null?null: stack.fluid.copy(); + if(dataType.value!=null) + dataType.value.amount = Math.max(1, stack.inputSize); + return dataType; + } + public LogisticTag getLogisticTag() { - if(isLogisticTagMode()&&stack.getExampleStack().getItem()==IIContent.itemLogisticTag) + ItemStack itemStack = getItemStack(); + if(isLogisticTagMode()&&!itemStack.isEmpty()&&itemStack.getItem()==IIContent.itemLogisticTag) { - LogisticTag tag = LogisticTag.getLogisticsTagFromStack(getItemStack()); + LogisticTag tag = LogisticTag.getLogisticsTagFromStack(itemStack); return tag==null?new LogisticTag(): tag; } return null; @@ -435,6 +583,8 @@ private static String findFirstOreName(@Nonnull ItemStack stack) { try { + if(stack.isEmpty()) + return null; int[] ids = OreDictionary.getOreIDs(stack); if(ids.length==0) return null; @@ -445,6 +595,86 @@ private static String findFirstOreName(@Nonnull ItemStack stack) } } + private void handleCountTextChanged(String string) + { + int count = parseClampedInteger(string, getMinimumCount()); + withCount(count); + syncIntegerField(countField, count, string); + } + + private void handleMetadataTextChanged(String string) + { + if(string.isEmpty()) + { + withMetadata(OreDictionary.WILDCARD_VALUE); + return; + } + + int metadata = parseClampedInteger(string, 0); + withMetadata(metadata); + syncIntegerField(metadataField, metadata, string); + } + + private void handleEnergyTextChanged(String string) + { + int energy = parseClampedInteger(string, 0); + withCount(energy); + if(energySlider!=null) + energySlider.withValue(Math.min(stack.inputSize, maxEnergyCount)); + syncIntegerField(energyField, energy, string); + } + + private int getMinimumCount() + { + return isEnergyMode()?0: 1; + } + + private static int parseClampedInteger(@Nullable String string, int minValue) + { + if(string==null||string.isEmpty()) + return minValue; + + long value = 0; + boolean hasDigit = false; + for(int i = 0; i < string.length(); i++) + { + char c = string.charAt(i); + if(c < '0'||c > '9') + continue; + hasDigit = true; + value = value*10+(c-'0'); + if(value >= Integer.MAX_VALUE) + return Integer.MAX_VALUE; + } + return hasDigit?clampInteger((int)value, minValue, Integer.MAX_VALUE): minValue; + } + + private static int clampInteger(int value, int minValue, int maxValue) + { + return Math.max(minValue, Math.min(maxValue, value)); + } + + private static int getDisplayTankCapacity(int amount) + { + if(amount >= Integer.MAX_VALUE/2) + return Integer.MAX_VALUE; + return Math.max(1, amount*2); + } + + private static boolean hasNonEmptyTag(@Nullable ItemStack itemStack) + { + return itemStack!=null&&!itemStack.isEmpty()&&itemStack.hasTagCompound()&&!itemStack.getTagCompound().hasNoTags(); + } + + private static void syncIntegerField(@Nullable DecoTextField field, int value, @Nullable String originalText) + { + if(field==null) + return; + String clampedText = String.valueOf(value); + if(!clampedText.equals(originalText)) + field.withText(clampedText); + } + @Override public void onGuiEvent(DecoGuiEvent event) { @@ -460,7 +690,11 @@ public void onGuiEvent(DecoGuiEvent event) case PASTE: NBTTagCompound nbt = DecoGuiUtils.getClipboardNBT(); if(!nbt.hasNoTags()) - withIngredientStack(IngredientStack.readFromNBT(nbt)); + { + IngredientStack ingredientStack = IngredientStack.readFromNBT(nbt); + if(ingredientStack!=null) + withIngredientStack(ingredientStack); + } break; default: super.onGuiEvent(event); @@ -475,6 +709,7 @@ public enum PickerPanelMode { ITEM, ITEM_LOGISTIC_TAG, + ITEM_DATA_TYPE, FLUID, ENERGY } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoDustTank.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoDustTank.java index 5e77d5423..3df66dfa5 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoDustTank.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoDustTank.java @@ -32,6 +32,7 @@ public DecoDustTank withDustTank(DustTank tank, int capacity) { this.tank = tank; this.capacity = capacity; + cleanup(); return this; } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoFluidTank.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoFluidTank.java index 93cfd9011..c9083ce98 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoFluidTank.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoFluidTank.java @@ -34,6 +34,7 @@ public DecoFluidTank(int x, int y) public DecoFluidTank withFluidTank(IFluidTank fluidTank) { this.fluidTank = fluidTank; + cleanup(); return this; } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoTankBase.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoTankBase.java index eacbce1ec..2cd0c33b4 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoTankBase.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/storage/DecoTankBase.java @@ -212,7 +212,7 @@ protected void draw(int mouseX, int mouseY, float partialTicks) @Override public void cleanup() { - + displayedAmounts.clear(); } /** diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/text/util/TextFilter.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/text/util/TextFilter.java index 5fc8e47ff..4ac51e403 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/text/util/TextFilter.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/text/util/TextFilter.java @@ -13,10 +13,10 @@ public enum TextFilter ALPHANUMERIC((s) -> s.matches("[a-zA-Z0-9_]*")), LOWERCASE((s) -> s.matches("[a-z0-9_]*")), UPPERCASE((s) -> s.matches("[A-Z0-9_]*")), - DECIMAL((s) -> s.matches("[0-9.-]*")), + DECIMAL((s) -> s.matches("[0-9-]*")), HEXADECIMAL((s) -> s.matches("[0-9A-Fa-f]*")), BINARY((s) -> s.matches("[01]*")), - FLOAT((s) -> s.matches("[0-9.-]*")||s.matches("[0-9.-]*[eE][+-]?[0-9]+")); + FLOAT((s) -> s.matches("[0-9.-]*")); private final Predicate filter; diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/manual/objects/IIManualCircuit.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/manual/objects/IIManualCircuit.java index 56508659a..dd7a6d8f9 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/manual/objects/IIManualCircuit.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/manual/objects/IIManualCircuit.java @@ -1,11 +1,15 @@ package pl.pabilo8.immersiveintelligence.client.manual.objects; +import blusunrize.immersiveengineering.client.ClientUtils; import blusunrize.lib.manual.gui.GuiClickableList; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; +import net.minecraft.util.math.MathHelper; +import net.minecraftforge.fml.relauncher.ReflectionHelper; import pl.pabilo8.immersiveintelligence.client.manual.IIManualObject; import pl.pabilo8.immersiveintelligence.client.manual.IIManualPage; import pl.pabilo8.immersiveintelligence.common.item.data.ItemIIFunctionalCircuit.Circuits; +import pl.pabilo8.immersiveintelligence.common.util.IIMath; import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyNBT; import javax.annotation.Nonnull; @@ -46,7 +50,11 @@ public boolean mousePressed(Minecraft mc, int mx, int my) { boolean b = super.mousePressed(mc, mx, my); if(selectedOption==-1) - return b; + return false; + gui.previousSelectedEntry.push(gui.getSelectedEntry()); + gui.setSelectedEntry(circuit.getName()); + gui.page = selectedOption; + gui.initGui(); return b; } }; @@ -64,6 +72,14 @@ protected int getDefaultHeight() @Override public boolean mousePressed(Minecraft mc, int mouseX, int mouseY) { + if(IIMath.isPointInRectangle(this.x+list.width, this.y, this.x+list.width+8, this.y+list.height, mouseX, mouseY)) + { + int maxOffset = ReflectionHelper.getPrivateValue(GuiClickableList.class, list, "maxOffset"); + int clickedOffset = (int)MathHelper.clamp((float)(mouseY-this.y)/(list.height)*1.25*maxOffset, 0, maxOffset); + ReflectionHelper.setPrivateValue(GuiClickableList.class, list, clickedOffset, "offset"); + return true; + } + return list.mousePressed(mc, mouseX, mouseY); } @@ -77,7 +93,7 @@ public void drawButton(Minecraft mc, int mx, int my, float partialTicks) @Override public void mouseDragged(int x, int y, int clickX, int clickY, int mx, int my, int lastX, int lastY, int button) { - + this.mousePressed(ClientUtils.mc(), lastX, lastY); } @Override diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java index 286544a05..66abd41c9 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java @@ -57,6 +57,8 @@ public class TileEntityDataInputMachine extends TileEntityMultiblockProductionSi */ @SyncNBT(name = "variables", events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_RECIPE_CHANGED, SyncEvents.TILE_CLIENT_MESSAGE}) public DataPacket storedData = new DataPacket(); + @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_RECIPE_CHANGED, SyncEvents.TILE_CLIENT_MESSAGE}) + public DataPacket packet1 = new DataPacket(), packet2 = new DataPacket(), packet3 = new DataPacket(), packet4 = new DataPacket(); @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_CLIENT_MESSAGE}) public int selectedDataSlot = 0; @@ -92,6 +94,28 @@ protected void dummyCleanup() upgradeManager = null; } + /*@Override + public void onBeforeFirstTick() + { + super.onBeforeFirstTick(); + if(!world.isRemote) + switch(selectedDataSlot) + { + case 0: + packet1 = storedData; + break; + case 1: + packet2 = storedData; + break; + case 2: + packet3 = storedData; + break; + case 3: + packet4 = storedData; + break; + } + }*/ + @Override protected void onUpdate() { @@ -105,7 +129,7 @@ protected void onUpdate() //Send packet on rising edge redstone signal or ui button press boolean currentSignal = getRedstoneAtPos(0); - if(sendPacket || ((prevSignal ^ currentSignal) & currentSignal)) + if(sendPacket||((prevSignal^currentSignal)¤tSignal)) { this.sendData(storedData, getDirection("data"), getPOI(MultiblockPOI.DATA_OUTPUT)[0]); sendPacket = false; diff --git a/src/main/resources/assets/immersiveintelligence/lang/en_us.lang b/src/main/resources/assets/immersiveintelligence/lang/en_us.lang index 3c52871c0..c7ce774b0 100644 --- a/src/main/resources/assets/immersiveintelligence/lang/en_us.lang +++ b/src/main/resources/assets/immersiveintelligence/lang/en_us.lang @@ -1282,6 +1282,8 @@ desc.immersiveintelligence.variable_remove_desc=Remove a variable desc.immersiveintelligence.variable_properties=Properties desc.immersiveintelligence.variable_properties.tooltip=Edit expression properties, like conditional variables. desc.immersiveintelligence.variable_value=Value: +desc.immersiveintelligence.variable_value.integer_vector=Integer Vector +desc.immersiveintelligence.variable_value.integer_vector.tooltip=An Integer Vector does not allow numbers with decimal points. desc.immersiveintelligence.operation=Operation: desc.immersiveintelligence.conditional_variable=Conditional Variable: @@ -3278,11 +3280,12 @@ ii.gui.packer.picker.logitag.tooltip=Logistic tag to be applied to the container ii.gui.itemstack_editor.count=Count: ii.gui.itemstack_editor.count.tooltip=The amount of items in the stack -ii.gui.itemstack_editor.damage=Damage: -ii.gui.itemstack_editor.damage.tooltip=The damage value of the item (leave empty for wildcard) +ii.gui.itemstack_editor.metadata=Metadata: +ii.gui.itemstack_editor.metadata.tooltip=The metadata value of the item, often represents item damage (leave empty for wildcard) ii.gui.itemstack_editor.nbt=NBT ii.gui.itemstack_editor.nbt.item.tooltip=When active, the item is matched by its NBT data ii.gui.itemstack_editor.nbt.fluid.tooltip=When active, the fluid is matched by its NBT data +ii.gui.itemstack_editor.nbt.data_type.tooltip=When active, the variable will store the item's NBT data. ii.gui.itemstack_editor.oredict=OreDict ii.gui.itemstack_editor.oredict.tooltip=When active, the item is matched by its OreDictionary name ii.gui.itemstack_editor.energy=Immersive Flux From 8ae118b360bb3bc9065dc7fd8ca4218e8be2206a Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Wed, 1 Jul 2026 16:56:39 +0200 Subject: [PATCH 08/12] Added missing manual trait icons Closes #611 Co-authored-by: Carvercarver1 --- .../textures/gui/manual/traits/decorations.png | Bin 0 -> 186 bytes .../textures/gui/manual/traits/paintable.png | Bin 0 -> 198 bytes .../textures/gui/manual/traits/repairable.png | Bin 0 -> 193 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/resources/assets/immersiveintelligence/textures/gui/manual/traits/decorations.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/gui/manual/traits/paintable.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/gui/manual/traits/repairable.png diff --git a/src/main/resources/assets/immersiveintelligence/textures/gui/manual/traits/decorations.png b/src/main/resources/assets/immersiveintelligence/textures/gui/manual/traits/decorations.png new file mode 100644 index 0000000000000000000000000000000000000000..5fd693c22186f12790ad27757239843d36cccec2 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP%y{S z#WBR9_w1xVt^)=f&W~^WUH_&oP4Z&M@j5k;BgcM3u@wEN-C@?{^E=`M_PYQ|4?|=cvth4|Ar<=1u?WcUmV-aJ<-aq(daiCA5n9;FN?d0*Sqz`-}WMkLYo2bNarO z@y@3W0!bfQ{5L2#elS1OuA%gHspP>;Q9r+J*~?s1B75YKS7qm{Gt6h6>)P{ATsf`c nJAcM)pUhosDGC;C=>gTe~DWM4fUr|Iz literal 0 HcmV?d00001 From b5d3fde200eb84e0cc19dc2b70977cbe2f676217 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Wed, 1 Jul 2026 19:52:42 +0200 Subject: [PATCH 09/12] Fixed variable saving issues in DIM and ALM Closes #635 --- .../GuiArithmeticLogicMachine.java | 56 ++++++++-- .../GuiArithmeticLogicMachineEdit.java | 77 ++++++++----- .../GuiDataInputMachine.java | 22 ++-- .../GuiDataInputMachineEdit.java | 33 +++--- .../data_editor/DecoDataEditorVector.java | 23 ++-- .../TileEntityArithmeticLogicMachine.java | 4 +- .../TileEntityDataInputMachine.java | 101 ++++++++++++++---- .../immersiveintelligence/lang/en_us.lang | 4 +- 8 files changed, 225 insertions(+), 95 deletions(-) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java index ef7961938..4959d5a37 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java @@ -4,13 +4,14 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.NonNullList; import net.minecraft.util.text.TextFormatting; import pl.pabilo8.immersiveintelligence.api.data.DataPacket; import pl.pabilo8.immersiveintelligence.api.data.DataVariable; import pl.pabilo8.immersiveintelligence.api.data.IDataMachineGui; -import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeInteger; +import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeExpression; import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeNull; import pl.pabilo8.immersiveintelligence.api.data.types.generic.DataType; import pl.pabilo8.immersiveintelligence.api.data.types.generic.DataType.TypeMetaInfo; @@ -34,6 +35,7 @@ import pl.pabilo8.immersiveintelligence.common.network.messages.MessageIITileSync; import pl.pabilo8.immersiveintelligence.common.util.IIColor; import pl.pabilo8.immersiveintelligence.common.util.IIReference; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyNBT; import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT.SyncEvents; @@ -50,11 +52,11 @@ public class GuiArithmeticLogicMachine extends DecoTileGui editedCircuit) { - ItemStack stack = tile.inventory.get(editedCircuit); + displayedCircuit = editedCircuit; + ItemStack stack = tile.inventory.get(displayedCircuit); this.expressions = IIContent.itemCircuit.getStoredData(stack); addLabel(stack.getDisplayName(), 4+2+16, 8) @@ -156,7 +159,7 @@ else if(tile.inventory.size() > editedCircuit) char name = findNextFreeVariableName(); if(name=='\0') return; - editVariable(name, current.getValue()); + editVariable(name, current.getValue().clone()); }) ) .withComponent(p -> new DecoButton(p.width-17-16+3, 2) @@ -264,13 +267,32 @@ public void onGuiClosed() private DataPacket getCircuitPacket() { - if(tile.inventory.size() <= editedCircuit) + if(tile.inventory.size() <= displayedCircuit) return new DataPacket(); - ItemStack stack = tile.inventory.get(editedCircuit); + ItemStack stack = tile.inventory.get(displayedCircuit); return IIContent.itemCircuit.getStoredData(stack); } + private void updateLocalCircuitStack(int circuit, DataPacket packet) + { + if(tile.getInventory().size() <= circuit) + return; + ItemStack stack = tile.getInventory().get(circuit); + if(stack.isEmpty()||!(stack.getItem() instanceof ItemIIFunctionalCircuit)) + return; + ((ItemIIFunctionalCircuit)stack.getItem()).writeDataToItem(stack, packet); + tile.getInventory().set(circuit, stack); + } + + private NBTTagCompound getExpressionsTag(int circuit, DataPacket packet) + { + return EasyNBT.newNBT() + .withInt("page", circuit) + .withSerializable("list", packet) + .unwrap(); + } + private char findNextFreeVariableName() { if(expressions.size() >= DataPacket.VARIABLE_NAMES.length) @@ -283,7 +305,25 @@ private void addVariable() char name = findNextFreeVariableName(); if(name=='\0') return; - editVariable(name, new DataTypeInteger()); + editVariable(name, new DataTypeExpression()); + } + + private void editExistingVariable(DataVariable variable) + { + expressions.remove(variable.getName()); + this.variableToEdit = variable; + changeGUI(IIGUI.ARITHMETIC_LOGIC_MACHINE_EDIT); + } + + @Override + protected EasyNBT onSaveTileData() + { + EasyNBT nbt = super.onSaveTileData(); + if(isStorage||tile.inventory.size() <= displayedCircuit) + return nbt; + + updateLocalCircuitStack(displayedCircuit, expressions); + return nbt.withTag("expressions", getExpressionsTag(displayedCircuit, expressions)); } @Override @@ -292,7 +332,7 @@ public void editVariable(char name, DataType initialValue) if(!expressions.has(name)||expressions.get(name).getClass()!=initialValue.getClass()) expressions.set(name, initialValue); - this.variableToEdit = new DataVariable(name, initialValue); + this.variableToEdit = new DataVariable(name, initialValue.clone()); changeGUI(IIGUI.ARITHMETIC_LOGIC_MACHINE_EDIT); } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java index 693e5e795..32171f816 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineEdit.java @@ -33,6 +33,8 @@ import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock0.tileentity.TileEntityArithmeticLogicMachine; import pl.pabilo8.immersiveintelligence.common.gui.ContainerArithmeticLogicMachine; import pl.pabilo8.immersiveintelligence.common.item.data.ItemIIFunctionalCircuit; +import pl.pabilo8.immersiveintelligence.common.network.IIPacketHandler; +import pl.pabilo8.immersiveintelligence.common.network.messages.MessageIITileSync; import pl.pabilo8.immersiveintelligence.common.util.IIColor; import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyNBT; import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; @@ -61,6 +63,7 @@ public class GuiArithmeticLogicMachineEdit extends DecoTileGui editor; @@ -82,6 +85,8 @@ public void onInit() //Get circuit and list of all allowed operations this.circuitStack = editedCircuit >= 0&&editedCircuit < tile.getInventory().size()?tile.getInventory().get(editedCircuit): ItemStack.EMPTY; this.packet = this.packet==null?getCircuitPacket().clone(): this.packet; + if(originalVariableName==null) + originalVariableName = variableToEdit.getName(); this.circuitOperations = IIContent.itemCircuit.getOperationsList(this.circuitStack).stream() .map(IIDataOperationUtils::getOperationMeta) .filter(Objects::nonNull) @@ -162,27 +167,11 @@ public void onInit() new DecoButton(162+16-4, 2+8+4+1) .withTemplate(DecoTemplates.ACTION_BUTTON_DUPLICATE) .withSize(18, 18) - .withOnLMBPressed(() -> { - char name = findNextFreeVariableName(); - if(name=='\0') - return; - cancel = true; - storeEditorOutput(); - packet.with(variableToEdit); - variableToEdit = new DataVariable(name, edited.clone()); - refreshGUI(); - }), + .withOnLMBPressed(this::duplicateVariable), new DecoButton(162+16-4+1+18, 2+8+4+1) - .withTemplate(DecoTemplates.ACTION_BUTTON_CLEAR) + .withTemplate(DecoTemplates.ACTION_BUTTON_REMOVE) .withSize(18, 18) - .withOnLMBPressed(() -> { - cancel = true; - edited = new DataTypeExpression(); - if(!circuitOperations.isEmpty()) - edited.setOperation(IIDataOperationUtils.getOperationInstance(circuitOperations.iterator().next().name())); - variableToEdit = new DataVariable(variableToEdit.getName(), edited); - refreshGUI(); - }) + .withOnLMBPressed(this::removeVariable) ); //Add editor @@ -237,12 +226,38 @@ private void changeVariableName(Character newName) private char findNextFreeVariableName() { - DataPacket currentPacket = packet.clone(); - currentPacket.remove(variableToEdit.getName()); - for(char c : DataPacket.VARIABLE_NAMES) - if(!currentPacket.has(c)) - return c; - return '\0'; + if(packet.size() >= DataPacket.VARIABLE_NAMES.length) + return '\0'; + return IIUtils.cycleDataPacketCharsAvoiding(variableToEdit.getName(), true, false, packet); + } + + private void duplicateVariable() + { + if(editor==null) + return; + + storeEditorOutput(); + packet.with(variableToEdit); + savePacketToCircuit(packet); + + char name = findNextFreeVariableName(); + if(name=='\0') + return; + + cancel = true; + variableToEdit = new DataVariable(name, edited.clone()); + refreshGUI(); + } + + private void removeVariable() + { + if(originalVariableName!=null) + packet.remove(originalVariableName); + packet.remove(variableToEdit.getName()); + savePacketToCircuit(packet); + + cancel = true; + changeGUI(IIGUI.ARITHMETIC_LOGIC_MACHINE_VARIABLES); } private boolean isOperationAllowed(DataOperationMeta meta) @@ -281,6 +296,18 @@ private void updateLocalCircuitStack(DataPacket packet) tile.getInventory().set(editedCircuit, stack); } + private void savePacketToCircuit(DataPacket packet) + { + updateLocalCircuitStack(packet); + NBTTagCompound expressions = EasyNBT.newNBT() + .withInt("page", editedCircuit) + .withSerializable("list", packet) + .unwrap(); + IIPacketHandler.sendToServer(new MessageIITileSync(tile, EasyNBT.newNBT() + .withTag("expressions", expressions) + )); + } + @Override protected EasyNBT onSaveTileData() { diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java index 36dc98bd9..3f5d2c629 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachine.java @@ -149,12 +149,16 @@ public void onInit() .withSize(xSize, 11) .withAlign(DecoAlignment.TOP); - addComponent(new DecoDropdown(32+8-4-2, 8+76+8+8+8-4+4) + addComponent(new DecoDropdown(32+8-4-2, 8+76+8+8+8-4+4) .withWidth(96+8+4) - .withEntries("Slot 1", "Slot 2", "Slot 3", "Slot 4") + .withEntries(0, 1, 2, 3) .withSelectedEntry(tile.selectedDataSlot) .withOnSelectedEntry((oldEntry, newEntry) -> { - + tile.switchDataSlot(newEntry); + IIPacketHandler.sendToServer(new MessageIITileSync(tile, EasyNBT.newNBT() + .withInt("selectedDataSlot", newEntry) + )); + refreshGUI(); }) ); } @@ -184,7 +188,7 @@ public void onInit() char name = findNextFreeVariableName(); if(name=='\0') return; - editVariable(name, current.getValue()); + editVariable(name, current.getValue().clone()); }) ) .withComponent(p -> new DecoButton(p.width-17-16+3, 2) @@ -253,9 +257,11 @@ public void onGuiClosed() protected EasyNBT onSaveTileData() { return super.onSaveTileData() - .conditionally(list!=null, e -> e - .withSerializable("variables", new DataPacket(list.getEntries())) - ); + .conditionally(list!=null, e -> { + DataPacket packet = new DataPacket(list.getEntries()); + tile.setStoredDataPacket(packet); + e.withSerializable("variables", packet); + }); } private char findNextFreeVariableName() @@ -282,7 +288,7 @@ public void editVariable(char name, DataType initialValue) if(!currentPacket.has(name)||currentPacket.get(name).getClass()!=initialValue.getClass()) currentPacket.set(name, initialValue); - variableToEdit = new DataVariable(name, initialValue); + variableToEdit = new DataVariable(name, initialValue.clone()); changeGUI(IIGUI.DATA_INPUT_MACHINE_EDIT); } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java index 5085db855..fe2fff698 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/data_input_machine/GuiDataInputMachineEdit.java @@ -38,6 +38,7 @@ public class GuiDataInputMachineEdit extends DecoTileGui { - variableToEdit = new DataVariable(variableToEdit.getName(), editor.outputType()); - easyNBT.withSerializable("variables", - packet.with(variableToEdit) - ); + storeEditorOutput(); + DataPacket updatedPacket = packet.clone().with(variableToEdit); + tile.setStoredDataPacket(updatedPacket); + easyNBT.withSerializable("variables", updatedPacket); }); } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java index 28e56c228..46ac1ad10 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/deco/component/data_editor/DecoDataEditorVector.java @@ -26,16 +26,13 @@ protected boolean initialize() addComponents( this.x = new DecoTextField(2, 12) .withSize(width-8, 16) - .withText(dataType.x) - .withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT), + .withText(dataType.x), this.y = new DecoTextField(2, 12+18) .withSize(width-8, 16) - .withText(dataType.y) - .withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT), + .withText(dataType.y), this.z = new DecoTextField(2, 12+18+18) .withSize(width-8, 16) - .withText(dataType.z) - .withFilter(dataType.integerVector?TextFilter.DECIMAL: TextFilter.FLOAT), + .withText(dataType.z), new DecoSwitch(2, 12+18+18+18) .withText(IIReference.DESCRIPTION_KEY+"variable_value.integer_vector") @@ -49,6 +46,9 @@ protected boolean initialize() }) .withTranslatedTooltip(IIReference.DESCRIPTION_KEY+"variable_value.integer_vector.tooltip") ); + refreshFieldFormatting(x); + refreshFieldFormatting(y); + refreshFieldFormatting(z); return super.initialize(); } @@ -59,17 +59,6 @@ private void refreshFieldFormatting(DecoTextField field) .withText(dataType.integerVector?Integer.toString((int)currentValue): Float.toString(currentValue)); } - private int parseIntValue(String text) - { - try - { - return Integer.parseInt(text); - } catch(NumberFormatException e) - { - return 0; - } - } - private float parseFloatValue(String text) { try diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java index 91e2098e7..df6e0c831 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java @@ -97,7 +97,9 @@ public void receiveMessageFromClient(@Nonnull NBTTagCompound message) if(stack.isEmpty()||!(stack.getItem() instanceof ItemIIFunctionalCircuit)) return; - DataPacket packet = new DataPacket(expressions.getCompoundTag("list")); + DataPacket packet = expressions.hasKey("list")? + new DataPacket(expressions.getCompoundTag("list")): + new DataPacket(expressions); ((ItemIIFunctionalCircuit)stack.getItem()).writeDataToItem(stack, packet); inventory.set(page, stack); markDirty(); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java index 66abd41c9..c822a6484 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityDataInputMachine.java @@ -3,6 +3,7 @@ import blusunrize.immersiveengineering.api.energy.immersiveflux.FluxStorageAdvanced; import blusunrize.immersiveengineering.common.util.inventory.IEInventoryHandler; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.NonNullList; import net.minecraft.util.SoundCategory; import pl.pabilo8.immersiveintelligence.api.crafting.DataProgrammingRecipe; @@ -57,9 +58,9 @@ public class TileEntityDataInputMachine extends TileEntityMultiblockProductionSi */ @SyncNBT(name = "variables", events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_RECIPE_CHANGED, SyncEvents.TILE_CLIENT_MESSAGE}) public DataPacket storedData = new DataPacket(); - @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_RECIPE_CHANGED, SyncEvents.TILE_CLIENT_MESSAGE}) + @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_RECIPE_CHANGED}) public DataPacket packet1 = new DataPacket(), packet2 = new DataPacket(), packet3 = new DataPacket(), packet4 = new DataPacket(); - @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_CLIENT_MESSAGE}) + @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED}) public int selectedDataSlot = 0; @SyncNBT(name = "upgrades", events = SyncEvents.TILE_UPGRADES_MODIFIED) @@ -94,27 +95,82 @@ protected void dummyCleanup() upgradeManager = null; } - /*@Override - public void onBeforeFirstTick() + @Override + public void receiveMessageFromClient(@Nonnull NBTTagCompound message) { - super.onBeforeFirstTick(); - if(!world.isRemote) - switch(selectedDataSlot) - { - case 0: - packet1 = storedData; - break; - case 1: - packet2 = storedData; - break; - case 2: - packet3 = storedData; - break; - case 3: - packet4 = storedData; - break; - } - }*/ + super.receiveMessageFromClient(message); + + if(message.hasKey("selectedDataSlot")) + { + selectedDataSlot = clampDataSlot(message.getInteger("selectedDataSlot")); + setStoredDataPacket(getDataPacket(selectedDataSlot).clone()); + updateTileForEvent(SyncEvents.TILE_GUI_OPENED); + } + if(message.hasKey("variables")) + { + setStoredDataPacket(storedData); + updateTileForEvent(SyncEvents.TILE_GUI_OPENED); + } + } + + public void switchDataSlot(int slot) + { + slot = clampDataSlot(slot); + if(slot==selectedDataSlot) + return; + setDataPacket(selectedDataSlot, storedData); + selectedDataSlot = slot; + storedData = getDataPacket(selectedDataSlot).clone(); + } + + public void setStoredDataPacket(@Nonnull DataPacket packet) + { + storedData = packet.clone(); + setDataPacket(selectedDataSlot, storedData); + } + + @Nonnull + private DataPacket getDataPacket(int slot) + { + switch(clampDataSlot(slot)) + { + case 1: + return packet2; + case 2: + return packet3; + case 3: + return packet4; + case 0: + default: + return packet1; + } + } + + private void setDataPacket(int slot, @Nonnull DataPacket packet) + { + DataPacket copy = packet.clone(); + switch(clampDataSlot(slot)) + { + case 1: + packet2 = copy; + break; + case 2: + packet3 = copy; + break; + case 3: + packet4 = copy; + break; + case 0: + default: + packet1 = copy; + break; + } + } + + private int clampDataSlot(int slot) + { + return Math.max(0, Math.min(3, slot)); + } @Override protected void onUpdate() @@ -230,6 +286,7 @@ protected boolean attemptProductionOutput(IIMultiblockProcess storedData = dataTypes); + setStoredDataPacket(storedData); //Try to output return outputHandler.insertItem(0, output, false).isEmpty()&& !inputHandler.extractItem(0, 1, false).isEmpty(); diff --git a/src/main/resources/assets/immersiveintelligence/lang/en_us.lang b/src/main/resources/assets/immersiveintelligence/lang/en_us.lang index c7ce774b0..47a95abee 100644 --- a/src/main/resources/assets/immersiveintelligence/lang/en_us.lang +++ b/src/main/resources/assets/immersiveintelligence/lang/en_us.lang @@ -3305,8 +3305,8 @@ ii.gui.data_editor.logistics_tag.color=Color ii.gui.data_input_machine.storage=Punchtape Storage ii.gui.data_input_machine.memory=Built-In Memory -ii.gui.data_input_machine.memory.switch=Switch -ii.gui.data_input_machine.memory.switch.tooltip=Switch Current Memory Slot +ii.gui.data_input_machine.memory.page=Memory Page #%s +ii.gui.data_input_machine.memory.page.tooltip=Allows to select the memory page that the machine will operate on ii.gui.arithmetic_logic_machine.storage=Circuit Storage From 089eb81d24b21cde9c212c1304b9a4c1edec6495 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Wed, 1 Jul 2026 23:30:16 +0200 Subject: [PATCH 10/12] Fixed II fluid tooltips in JEI to include only the amount of mB, fixed Coagulator item display angles Closes #596 --- .../common/compat/jei/IIRecipeJEICategory.java | 16 ++++++++-------- .../jei/ingredients/JEIDustStackRenderer.java | 3 ++- .../metal_multiblock1/coagulator.json | 8 ++++---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/IIRecipeJEICategory.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/IIRecipeJEICategory.java index 66f1d7b1a..bcda6ec6c 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/IIRecipeJEICategory.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/IIRecipeJEICategory.java @@ -181,8 +181,8 @@ else if(component.getIoType()==IOType.OUTPUT) //--- Layout setup methods ---// private void setupSlot(LayoutComponent component, IGuiItemStackGroup itemStacks, - IIngredients ingredients, int x, int y, - int itemInputIndex, int itemOutputIndex) + IIngredients ingredients, int x, int y, + int itemInputIndex, int itemOutputIndex) { IOType ioType = component.getIoType(); @@ -209,8 +209,8 @@ private void setupSlot(LayoutComponent component, IGuiItemStackGroup itemStacks, } private void setupFluidTank(LayoutComponent component, IGuiFluidStackGroup fluidStacks, - IIngredients ingredients, int x, int y, - int fluidInputIndex, int fluidOutputIndex) + IIngredients ingredients, int x, int y, + int fluidInputIndex, int fluidOutputIndex) { IOType ioType = component.getIoType(); @@ -226,7 +226,7 @@ private void setupFluidTank(LayoutComponent component, IGuiFluidStackGroup fluid { int tankIndex = getFluidTankIndex(true, fluidInputIndex, ingredients); fluidStacks.init(tankIndex, true, x+1, y+1, - width-2, height-1, 1000, true, null); + width-2, height-1, 1000, false, null); fluidStacks.set(tankIndex, ingredients.getInputs(VanillaTypes.FLUID).get(fluidInputIndex)); } } @@ -236,14 +236,14 @@ private void setupFluidTank(LayoutComponent component, IGuiFluidStackGroup fluid { int tankIndex = getFluidTankIndex(false, fluidOutputIndex, ingredients); fluidStacks.init(tankIndex, false, x+1, y+1, - width-2, height-1, 1000, true, null); + width-2, height-1, 1000, false, null); fluidStacks.set(tankIndex, ingredients.getOutputs(VanillaTypes.FLUID).get(fluidOutputIndex)); } } private void setupDustTank(LayoutComponent component, IRecipeLayout recipeLayout, - IIngredients ingredients, int x, int y, - int dustInputIndex, int dustOutputIndex) + IIngredients ingredients, int x, int y, + int dustInputIndex, int dustOutputIndex) { IOType ioType = component.getIoType(); boolean isInput = ioType==IOType.INPUT; diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/ingredients/JEIDustStackRenderer.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/ingredients/JEIDustStackRenderer.java index 504f597e4..6ef1cf4c2 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/ingredients/JEIDustStackRenderer.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/compat/jei/ingredients/JEIDustStackRenderer.java @@ -4,6 +4,7 @@ import mezz.jei.api.ingredients.IIngredientRenderer; import net.minecraft.client.Minecraft; import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.util.text.TextFormatting; import pl.pabilo8.immersiveintelligence.api.crafting.DustStack; import pl.pabilo8.immersiveintelligence.api.crafting.DustUtils; import pl.pabilo8.immersiveintelligence.client.gui.deco.util.DecoTextures; @@ -51,6 +52,6 @@ public void render(Minecraft minecraft, int xPosition, int yPosition, @Nullable @Override public List getTooltip(Minecraft minecraft, DustStack ingredient, ITooltipFlag tooltipFlag) { - return Arrays.asList(DustUtils.getDustName(ingredient), ingredient.amount+" mB"); + return Arrays.asList(DustUtils.getDustName(ingredient), TextFormatting.GRAY.toString()+ingredient.amount+" mB"+TextFormatting.RESET); } } diff --git a/src/main/resources/assets/immersiveintelligence/blockstates/metal_multiblock1/coagulator.json b/src/main/resources/assets/immersiveintelligence/blockstates/metal_multiblock1/coagulator.json index 486ed1e69..961765b26 100644 --- a/src/main/resources/assets/immersiveintelligence/blockstates/metal_multiblock1/coagulator.json +++ b/src/main/resources/assets/immersiveintelligence/blockstates/metal_multiblock1/coagulator.json @@ -14,10 +14,10 @@ { "model": "immersiveintelligence:multiblock/coagulator/coagulator_inv.obj", "transform": { - "scale": 0.135, + "scale": 0.125, "translation": [ - -0.5, - -0.25, + 0, + -0.125, 0 ], "rotation": [ @@ -25,7 +25,7 @@ "x": 20 }, { - "y": -225 + "y": -45 } ] } From f8cce88d91c3cdacc03764118b930353f8967494 Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Thu, 2 Jul 2026 11:51:47 +0200 Subject: [PATCH 11/12] Added functionality to the Built-in Memory upgrade for the ALM --- .../GuiArithmeticLogicMachine.java | 18 +- .../GuiArithmeticLogicMachineMemory.java | 196 +++++++++++++++++ .../GuiArithmeticLogicMachineMemoryEdit.java | 203 ++++++++++++++++++ .../metal/ArithmeticLogicMachineRenderer.java | 4 +- .../common/IIContent.java | 3 +- .../immersiveintelligence/common/IIGUI.java | 11 + .../TileEntityArithmeticLogicMachine.java | 140 +++++++++++- .../immersiveintelligence/lang/en_us.lang | 12 ++ 8 files changed, 567 insertions(+), 20 deletions(-) create mode 100644 src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemory.java create mode 100644 src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemoryEdit.java diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java index 4959d5a37..951cb6604 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachine.java @@ -212,18 +212,10 @@ else if(tile.inventory.size() > editedCircuit) } //Storage page tab - addComponent(new DecoTab() - .withLink(IIGUI.ARITHMETIC_LOGIC_MACHINE_STORAGE) - .withIcon(DecoTextures.ICON_STORAGE) - .withTranslatedTooltip(IIReference.DESCRIPTION_KEY+"storage_module") - ); + addLinkTab(IIGUI.ARITHMETIC_LOGIC_MACHINE_STORAGE, DecoTextures.ICON_STORAGE, "storage_module"); if(tile.isUpgradeInstalled(IIContent.UPGRADE_MEMORY)) - addComponent(new DecoTab() - .withLink(IIGUI.ARITHMETIC_LOGIC_MACHINE_STORAGE) - .withIcon(DecoTextures.ICON_MEMORY) - .withTranslatedTooltip(IIReference.DESCRIPTION_KEY+"memory_in_module") - ); + addLinkTab(IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN, DecoTextures.ICON_MEMORY, "memory_in_module"); //Circuit tabs NonNullList inventory = tile.inventory; @@ -246,11 +238,7 @@ else if(tile.inventory.size() > editedCircuit) } if(tile.isUpgradeInstalled(IIContent.UPGRADE_MEMORY)) - addComponent(new DecoTab() - .withLink(IIGUI.ARITHMETIC_LOGIC_MACHINE_STORAGE) - .withIcon(DecoTextures.ICON_MEMORY) - .withTranslatedTooltip(IIReference.DESCRIPTION_KEY+"memory_out_module") - ); + addLinkTab(IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT, DecoTextures.ICON_MEMORY, "memory_out_module"); } @Override diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemory.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemory.java new file mode 100644 index 000000000..973e9fb4b --- /dev/null +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemory.java @@ -0,0 +1,196 @@ +package pl.pabilo8.immersiveintelligence.client.gui.block.arithmetic_logic_machine; + +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.NonNullList; +import net.minecraft.util.text.TextFormatting; +import pl.pabilo8.immersiveintelligence.client.gui.deco.DecoTileGui; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoButton; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoTab; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.label.DecoLabel; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoEntryPanelBuilder; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoTaskList; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoTaskList.ListMode; +import pl.pabilo8.immersiveintelligence.client.gui.deco.util.*; +import pl.pabilo8.immersiveintelligence.client.gui.deco.util.DecoBackgroundBuilder.SlotStyle; +import pl.pabilo8.immersiveintelligence.common.IIGUI; +import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock0.tileentity.TileEntityArithmeticLogicMachine; +import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock0.tileentity.TileEntityArithmeticLogicMachine.MemoryTransferRule; +import pl.pabilo8.immersiveintelligence.common.gui.ContainerArithmeticLogicMachine; +import pl.pabilo8.immersiveintelligence.common.item.data.ItemIIFunctionalCircuit; +import pl.pabilo8.immersiveintelligence.common.util.IIColor; +import pl.pabilo8.immersiveintelligence.common.util.IIReference; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyCollection; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyNBT; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; + +/** + * Arithmetic Logic Machine memory transfer rule list. + * The same screen is used for memory input and memory output rules. + * + * @author Pabilo8 (pabilo@iiteam.net) + * @ii-approved 0.3.1 + * @since 01.07.2026 + */ +@DecoTemplate(name = "arithmetic_logic_machine_memory", category = DecoGuiCategory.DATA_TILE) +public class GuiArithmeticLogicMachineMemory extends DecoTileGui +{ + private static final String KEY = IIReference.GUI_LABEL_KEY+"arithmetic_logic_machine.memory."; + public EasyCollection rules; + @SyncNBT + public int editedRule = -1; + @SyncNBT + public boolean editLoadRules = true; + @SyncNBT + public ListMode mode = ListMode.JOBS; + + private GuiArithmeticLogicMachineMemory(EntityPlayer player, TileEntityArithmeticLogicMachine tile, IIGUI gui) + { + super(player, tile, gui); + } + + public static GuiArithmeticLogicMachineMemory getMemoryInputGui(EntityPlayer player, TileEntityArithmeticLogicMachine te) + { + return new GuiArithmeticLogicMachineMemory(player, te, IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN); + } + + public static GuiArithmeticLogicMachineMemory getMemoryOutputGui(EntityPlayer player, TileEntityArithmeticLogicMachine te) + { + return new GuiArithmeticLogicMachineMemory(player, te, IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT); + } + + @Override + public void onInit() + { + syncAnimatedParts(tile.door, true); + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.keyboard, false); + + this.editLoadRules = gui==IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN; + this.rules = (this.editLoadRules?tile.memoryLoadRules: tile.memorySaveRules).clone(); + + startBackground() + .withBox(DecoTextures.BG_STEEL, 0, 0, 176, 128+8) + .withTitleBar(tile) + .withBox(DecoTextures.BG_WOODEN, DecoTextures.TEMPLATE_ROUND_WOODEN, 0, 128+8, 176, 92) + .withInventorySlots(SlotStyle.VANILLA, container.playerInventory) + .withInventoryTitleBar() + .build(); + + DecoTaskList ruleList; + addComponent((ruleList = new DecoTaskList<>(0, 8-4)) + .withSize(176, 120-16-8-4) + .withEntries(rules) + .withIsJobPredicate(MemoryTransferRule::isJob) + .withModeHandling(mode, m -> mode = m) + .withBlankTaskSupplier(() -> { + MemoryTransferRule rule = new MemoryTransferRule(); + rule.usageLimit = ruleList.getMode()==ListMode.REQUESTS?1: -1; + return rule; + }) + .withDisplayFunction(new DecoEntryPanelBuilder() + .withBackground(DecoTextures.BG_PAPER) + .withBackgroundMask(DecoTextures.TEMPLATE_TICKET) + .withComponent("source", new DecoButton(3, 2) + .withSize(16, 16) + .withDisabled(true) + .withTextDisabledColor(IIColor.fromPackedRGB(0xafafaf)) + ) + .withLabel("route", new DecoLabel(fontRenderer, 3+16, 5) + .withRawText(" into ") + .withSize(24, 12) + .withAlign(DecoAlignment.CENTER) + ) + .withComponent("destination", new DecoButton(3+16+24, 2) + .withSize(16, 16) + .withDisabled(true) + .withTextDisabledColor(IIColor.fromPackedRGB(0xafafaf)) + ) + .withLabel("behavior", new DecoLabel(fontRenderer, 3+16+24+16+3, 5) + .withSize(24, 12) + .withAlign(DecoAlignment.LEFT) + ) + .withComponent(p -> new DecoButton(p.width-17+1-14, 2) + .withTemplate(DecoTemplates.ACTION_BUTTON_EDIT) + .withOnLMBPressed(() -> { + editedRule = rules.indexOf(p.getCurrentElement()); + if(editedRule >= 0) + changeGUI(IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_EDIT); + }) + ) + .withComponent(p -> new DecoButton(p.width-17+1, 2) + .withTemplate(DecoTemplates.ACTION_BUTTON_REMOVE) + .withOnLMBPressed(() -> { + int index = rules.indexOf(p.getCurrentElement()); + if(index >= 0) + { + rules.remove(index); + refreshGUI(); + } + }) + ) + .withElementApplyMethod((rule, panel) -> { + panel.component("source", DecoButton.class) + .withRawText(String.valueOf(rule.sourceVariable)) + .withBackground(DecoTextures.COMPONENT_BUTTON_PAPER) + .withBackgroundColor(editLoadRules?DecoColors.IN: DecoColors.OUT); + panel.component("destination", DecoButton.class) + .withRawText(String.valueOf(rule.targetVariable)) + .withBackground(DecoTextures.COMPONENT_BUTTON_PAPER) + .withBackgroundColor(editLoadRules?DecoColors.OUT: DecoColors.IN); + panel.label("behavior") + .withText(KEY+"mode."+(rule.overwriteExisting?"overwrite": "supplement")); + }) + ) + ); + + addLinkTab(IIGUI.ARITHMETIC_LOGIC_MACHINE_STORAGE, DecoTextures.ICON_STORAGE, "storage_module"); + addLinkTab(IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN, DecoTextures.ICON_MEMORY, "memory_in_module"); + + //Circuit tabs + NonNullList inventory = tile.inventory; + for(int i = 0, inventorySize = inventory.size(); i < inventorySize; i++) + { + ItemStack circuit = inventory.get(i); + if(!circuit.isEmpty()&&circuit.getItem() instanceof ItemIIFunctionalCircuit) + { + int circuitIndex = i; + addComponent(new DecoTab() + .withOnPressed((gui, button, mouseX, mouseY) -> + changeGUI(IIGUI.ARITHMETIC_LOGIC_MACHINE_VARIABLES, + EasyNBT.newNBT().withInt("editedCircuit", circuitIndex), null)) + .withIcon(circuit) + .withTranslatedTooltip(circuit.getDisplayName(), + TextFormatting.GRAY.toString()+TextFormatting.ITALIC+I18n.format(IIReference.DESCRIPTION_KEY+"variables_module")) + ); + } + } + + addLinkTab(IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT, DecoTextures.ICON_MEMORY, "memory_out_module"); + } + + @Override + public void onGuiClosed() + { + if(!changeGUIFlag) + { + syncAnimatedParts(tile.door, false); + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.keyboard, false); + } + super.onGuiClosed(); + } + + @Override + protected EasyNBT onSaveTileData() + { + if(editLoadRules) + tile.memoryLoadRules = rules; + else + tile.memorySaveRules = rules; + return super.onSaveTileData() + .withSerializable(editLoadRules?"memory_load_rules": "memory_save_rules", rules); + } +} diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemoryEdit.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemoryEdit.java new file mode 100644 index 000000000..fa20d507e --- /dev/null +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/gui/block/arithmetic_logic_machine/GuiArithmeticLogicMachineMemoryEdit.java @@ -0,0 +1,203 @@ +package pl.pabilo8.immersiveintelligence.client.gui.block.arithmetic_logic_machine; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import pl.pabilo8.immersiveintelligence.api.data.DataPacket; +import pl.pabilo8.immersiveintelligence.client.gui.deco.DecoTileGui; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoButton; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoCheckbox; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.button.DecoDropdownDataLetters; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoPanel; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.panel.DecoTaskList.ListMode; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.text.DecoTextField; +import pl.pabilo8.immersiveintelligence.client.gui.deco.component.text.util.TextFilter; +import pl.pabilo8.immersiveintelligence.client.gui.deco.util.*; +import pl.pabilo8.immersiveintelligence.client.gui.deco.util.DecoBackgroundBuilder.SlotStyle; +import pl.pabilo8.immersiveintelligence.common.IIGUI; +import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock0.tileentity.TileEntityArithmeticLogicMachine; +import pl.pabilo8.immersiveintelligence.common.block.multiblock.metal_multiblock0.tileentity.TileEntityArithmeticLogicMachine.MemoryTransferRule; +import pl.pabilo8.immersiveintelligence.common.gui.ContainerArithmeticLogicMachine; +import pl.pabilo8.immersiveintelligence.common.util.IIColor; +import pl.pabilo8.immersiveintelligence.common.util.IIReference; +import pl.pabilo8.immersiveintelligence.common.util.IIStringUtil; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyCollection; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyNBT; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT.SyncEvents; + +/** + * Arithmetic Logic Machine memory transfer rule editor. + * + * @author Pabilo8 (pabilo@iiteam.net) + * @ii-approved 0.3.1 + * @since 01.07.2026 + */ +@DecoTemplate(name = "arithmetic_logic_machine_memory_edit", category = DecoGuiCategory.DATA_TILE) +public class GuiArithmeticLogicMachineMemoryEdit extends DecoTileGui +{ + private static final String KEY = IIReference.GUI_LABEL_KEY+"arithmetic_logic_machine.memory."; + + @SyncNBT(events = SyncEvents.TILE_CLIENT_MESSAGE) + public EasyCollection rules; + @SyncNBT + public int editedRule = -1; + @SyncNBT + public boolean editLoadRules = true; + @SyncNBT + public ListMode mode = ListMode.JOBS; + @SyncNBT + public MemoryTransferRule edited = new MemoryTransferRule(); + private boolean cancel = true, loaded = false; + + public GuiArithmeticLogicMachineMemoryEdit(EntityPlayer player, TileEntityArithmeticLogicMachine tile) + { + super(player, tile, IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_EDIT); + } + + @Override + public void onInit() + { + syncAnimatedParts(tile.door, true); + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.keyboard, false); + + if(rules==null) + rules = (editLoadRules?tile.memoryLoadRules: tile.memorySaveRules).clone(); + if(editedRule < 0||editedRule >= rules.size()) + { + cancel = true; + changeGUI(editLoadRules?IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN: IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT); + return; + } + if(!loaded) + { + edited = rules.get(editedRule).copy(); + loaded = true; + } + + startBackground() + .withBox(DecoTextures.BG_STEEL, 0, 0, 176, 128+8) + .withTitleBar(KEY+(editLoadRules?"load_rule_properties": "save_rule_properties")) + .withNextLayer() + + .withBox(DecoTextures.BG_WOODEN, DecoTextures.TEMPLATE_ROUND_WOODEN, 0, 128+8, 176, 92) + .withInventorySlots(SlotStyle.VANILLA, container.playerInventory) + .withFrame(DecoTextures.FRAME_WOODEN_THIN, 4, false, new boolean[]{true, false, false, false}) + .withInventoryTitleBar() + .withNextLayer() + + .withBox(DecoTextures.BG_STEEL, DecoTextures.TEMPLATE_ROUND, 4, 8+4, 168-4, 108) + .withTitleBar(KEY+"transfer", DecoAlignment.TOP_LEFT) + .build(); + + DecoPanel panel = addComponent(new DecoPanel(12, 16)) + .withSize(152, 128) + .withBackground(null); + + addTransferSection(panel, 0); + + addComponents( + new DecoButton(xSize-48-4, 156+8-8-2-24) + .withBackground(DecoTextures.COMPONENT_BUTTON_ROUND) + .withText("ii.gui.button.apply") + .withSize(48, 12) + .withOnPressed((gui, button, mouseX, mouseY) -> { + rules.set(editedRule, edited.copy()); + cancel = false; + return changeGUI(editLoadRules?IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN: IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT); + }), + new DecoButton(xSize-48*2-4, 156+8-8-2-24) + .withBackground(DecoTextures.COMPONENT_BUTTON_ROUND) + .withText("ii.gui.button.cancel") + .withSize(48, 12) + .withOnPressed((gui, button, mouseX, mouseY) -> { + cancel = true; + return changeGUI(editLoadRules?IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN: IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT); + }) + ); + } + + private void addTransferSection(DecoPanel panel, int yy) + { + panel.addLabel("From:", -4+2, yy+4+2); + DecoPanel panelPaper = panel.addComponent(new DecoPanel(-4, yy+4+12) + .withBackground(DecoTextures.BG_PAPER) + .withBackgroundMask(DecoTextures.TEMPLATE_PAPER) + .withSize(160, 18) + ); + panelPaper.addLabel(KEY+(editLoadRules?"memory_variable": "packet_variable"), 4, 6) + .withSize(112, 9) + .withAlign(DecoAlignment.LEFT); + panelPaper.addComponent(new DecoDropdownDataLetters(160-18, 0) + .withConstraints(new DataPacket()) + .withSelectedEntry((Character)edited.sourceVariable) + .withTextColor(DecoColors.H1, IIColor.fromPackedRGB(0x35322c)) + .withBackground(DecoTextures.COMPONENT_DROPDOWN_DATA_LETTER_PAPER) + .withDropdownSymbol(DecoTextures.COMPONENT_DROPDOWN_SYMBOL_PAPER) + .withOnSelectedEntry((oldChar, newChar) -> edited.sourceVariable = newChar) + ); + + panel.addLabel("Into:", -4+2, yy+28+8+1); + DecoPanel panelPaperTarget = panel.addComponent(new DecoPanel(-4, yy+28+12+8-2+1) + .withBackground(DecoTextures.BG_PAPER) + .withBackgroundMask(DecoTextures.TEMPLATE_PAPER) + .withSize(160, 18) + ); + panelPaperTarget.addLabel(KEY+(editLoadRules?"packet_variable": "memory_variable"), 4, 6) + .withSize(112, 9) + .withAlign(DecoAlignment.LEFT); + panelPaperTarget.addComponent(new DecoDropdownDataLetters(160-18, 0) + .withConstraints(new DataPacket()) + .withSelectedEntry((Character)edited.targetVariable) + .withTextColor(DecoColors.H1, IIColor.fromPackedRGB(0x35322c)) + .withBackground(DecoTextures.COMPONENT_DROPDOWN_DATA_LETTER_PAPER) + .withDropdownSymbol(DecoTextures.COMPONENT_DROPDOWN_SYMBOL_PAPER) + .withOnSelectedEntry((oldChar, newChar) -> edited.targetVariable = newChar) + ); + + panel.addComponent(new DecoCheckbox(-2, yy+56+12+2) + .withSize(148, 12) + .withText(KEY+"overwrite_existing") + .withChecked(edited.overwriteExisting) + .withOnToggle(checked -> edited.overwriteExisting = checked) + .withTranslatedTooltip(KEY+"overwrite_existing.tooltip") + ); + + panel.addLabel(KEY+"usage_limit", 0, yy+76+3+12-4) + .withSize(74, 9) + .withAlign(DecoAlignment.LEFT) + .withTranslatedTooltip(KEY+"usage_limit.tooltip"); + panel.addComponent(new DecoTextField(78, yy+76-1+12-4) + .withSize(42, 16) + .withFilter(TextFilter.DECIMAL) + .withText(edited.usageLimit < 0?"": String.valueOf(edited.usageLimit)) + .withOnTextChanged(text -> edited.usageLimit = text==null||text.trim().isEmpty()?-1: IIStringUtil.parseInt(text.trim())) + .withTranslatedTooltip(KEY+"usage_limit.tooltip") + ); + } + + @Override + protected EasyNBT onSaveTileData() + { + return super.onSaveTileData() + .conditionally(!cancel&&rules!=null, easyNBT -> { + if(editLoadRules) + tile.memoryLoadRules = rules; + else + tile.memorySaveRules = rules; + easyNBT.withSerializable(editLoadRules?"memory_load_rules": "memory_save_rules", rules); + }); + } + + @Override + public void onGuiClosed() + { + if(!changeGUIFlag) + { + syncAnimatedParts(tile.door, false); + syncAnimatedParts(tile.drawer, false); + syncAnimatedParts(tile.keyboard, false); + } + super.onGuiClosed(); + } +} diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ArithmeticLogicMachineRenderer.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ArithmeticLogicMachineRenderer.java index 1ff8e1a48..d2c8403c3 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ArithmeticLogicMachineRenderer.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/metal/ArithmeticLogicMachineRenderer.java @@ -129,8 +129,8 @@ public void compileModels(IBlockState state, OBJModel model) UpgradeTechTree.getTreeFor(TileEntityArithmeticLogicMachine.class) .withBaseModelLocation(IIReference.RES_BLOCK_MODEL.with("multiblock/arithmetic_logic_machine/arithmetic_logic_machine_preview.obj")) - .withUpgradeModelLocation(IIContent.UPGRADE_MEMORY, resFolder.with("upgrades/circuit_racks.obj")) - .withUpgradeModelLocation(IIContent.UPGRADE_CIRCUIT_RACKS, resFolder.with("upgrades/memory.obj")); + .withUpgradeModelLocation(IIContent.UPGRADE_MEMORY, resFolder.with("upgrades/memory.obj")) + .withUpgradeModelLocation(IIContent.UPGRADE_CIRCUIT_RACKS, resFolder.with("upgrades/circuit_racks.obj")); } @Override diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/IIContent.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/IIContent.java index 9193851a8..19a1c902f 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/IIContent.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/IIContent.java @@ -160,8 +160,7 @@ public class IIContent .withType(UpgradePurpose.DATA); //arithemtic logic machine upgrade public static final Upgrade UPGRADE_MEMORY = new Upgrade("memory") - .withType(UpgradePurpose.DATA) - .withWIPStatus(); + .withType(UpgradePurpose.DATA); public static final Upgrade UPGRADE_CIRCUIT_RACKS = new Upgrade("circuit_racks") .withType(UpgradePurpose.CAPACITY); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/IIGUI.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/IIGUI.java index bc097ed1c..3753cbb75 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/IIGUI.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/IIGUI.java @@ -18,6 +18,8 @@ import pl.pabilo8.immersiveintelligence.client.gui.block.ammunition_production.GuiAmmunitionAssembler; import pl.pabilo8.immersiveintelligence.client.gui.block.arithmetic_logic_machine.GuiArithmeticLogicMachine; import pl.pabilo8.immersiveintelligence.client.gui.block.arithmetic_logic_machine.GuiArithmeticLogicMachineEdit; +import pl.pabilo8.immersiveintelligence.client.gui.block.arithmetic_logic_machine.GuiArithmeticLogicMachineMemory; +import pl.pabilo8.immersiveintelligence.client.gui.block.arithmetic_logic_machine.GuiArithmeticLogicMachineMemoryEdit; import pl.pabilo8.immersiveintelligence.client.gui.block.data_input_machine.GuiDataInputMachine; import pl.pabilo8.immersiveintelligence.client.gui.block.data_input_machine.GuiDataInputMachineEdit; import pl.pabilo8.immersiveintelligence.client.gui.block.data_merger.GuiDataMerger; @@ -108,6 +110,12 @@ public enum IIGUI implements ISerializableEnum ARITHMETIC_LOGIC_MACHINE_EDIT(TileEntityArithmeticLogicMachine.class, (player, te) -> new ContainerArithmeticLogicMachine(player, te, 2) ), + ARITHMETIC_LOGIC_MACHINE_MEMORY_IN(TileEntityArithmeticLogicMachine.class, + (player, te) -> new ContainerArithmeticLogicMachine(player, te, 1)), + ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT(TileEntityArithmeticLogicMachine.class, + (player, te) -> new ContainerArithmeticLogicMachine(player, te, 1)), + ARITHMETIC_LOGIC_MACHINE_MEMORY_EDIT(TileEntityArithmeticLogicMachine.class, + (player, te) -> new ContainerArithmeticLogicMachine(player, te, 1)), PRINTED_PAGE_BLANK(), PRINTED_PAGE_TEXT(), @@ -279,6 +287,9 @@ public static void initClientGUIs() IIGUI.ARITHMETIC_LOGIC_MACHINE_STORAGE.setClientTileGui(GuiArithmeticLogicMachine::getStorageGui); IIGUI.ARITHMETIC_LOGIC_MACHINE_VARIABLES.setClientTileGui(GuiArithmeticLogicMachine::getVariablesGui); IIGUI.ARITHMETIC_LOGIC_MACHINE_EDIT.setClientTileGui(GuiArithmeticLogicMachineEdit::new); + IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_IN.setClientTileGui(GuiArithmeticLogicMachineMemory::getMemoryInputGui); + IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_OUT.setClientTileGui(GuiArithmeticLogicMachineMemory::getMemoryOutputGui); + IIGUI.ARITHMETIC_LOGIC_MACHINE_MEMORY_EDIT.setClientTileGui(GuiArithmeticLogicMachineMemoryEdit::new); //Printed Page IIGUI.PRINTED_PAGE_BLANK.setClientStackGui(GuiPrintedPage::new); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java index df6e0c831..61a5f14bc 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/metal_multiblock0/tileentity/TileEntityArithmeticLogicMachine.java @@ -7,6 +7,8 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.NonNullList; import net.minecraft.util.SoundCategory; +import net.minecraftforge.common.util.Constants; +import net.minecraftforge.common.util.INBTSerializable; import pl.pabilo8.immersiveintelligence.api.data.DataPacket; import pl.pabilo8.immersiveintelligence.api.data.types.DataTypeExpression; import pl.pabilo8.immersiveintelligence.api.data.types.generic.DataType; @@ -23,6 +25,7 @@ import pl.pabilo8.immersiveintelligence.common.item.data.ItemIIFunctionalCircuit; import pl.pabilo8.immersiveintelligence.common.network.IIPacketHandler; import pl.pabilo8.immersiveintelligence.common.network.messages.MessageBooleanAnimatedPartsSync; +import pl.pabilo8.immersiveintelligence.common.util.easynbt.EasyCollection; import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT; import pl.pabilo8.immersiveintelligence.common.util.easynbt.SyncNBT.SyncEvents; import pl.pabilo8.immersiveintelligence.common.util.multiblock.IIMultiblockInterfaces.IIIGuiMultiblockTile; @@ -32,6 +35,8 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.List; /** * @author Pabilo8 (pabilo@iiteam.net) @@ -49,8 +54,12 @@ public class TileEntityArithmeticLogicMachine extends TileEntityMultiblockIIGene */ @SyncNBT(events = SyncEvents.TILE_GUI_OPENED) public MultiblockInteractablePart door, keyboard, drawer; - @SyncNBT + @SyncNBT(events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_CLIENT_MESSAGE}) public DataPacket memory; + @SyncNBT(name = "memory_load_rules", events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_CLIENT_MESSAGE}) + public EasyCollection memoryLoadRules; + @SyncNBT(name = "memory_save_rules", events = {SyncEvents.TILE_GUI_OPENED, SyncEvents.TILE_CLIENT_MESSAGE}) + public EasyCollection memorySaveRules; @SyncNBT(name = "upgrades", events = SyncEvents.TILE_UPGRADES_MODIFIED) public UpgradeManager upgradeManager; @@ -62,6 +71,8 @@ public TileEntityArithmeticLogicMachine() this.inventory = NonNullList.withSize(MultiblockArithmeticLogicMachine.CIRCUITS_UPGRADED+MultiblockArithmeticLogicMachine.STORAGE_SLOTS, ItemStack.EMPTY); this.upgradeManager = new UpgradeManager<>(this); this.memory = new DataPacket(); + this.memoryLoadRules = new EasyCollection<>(MemoryTransferRule::new); + this.memorySaveRules = new EasyCollection<>(MemoryTransferRule::new); //interactable parts this.door = new MultiblockInteractablePart(0, 30, 1); @@ -75,6 +86,8 @@ protected void dummyCleanup() super.dummyCleanup(); door = null; memory = null; + memoryLoadRules = null; + memorySaveRules = null; keyboard = null; upgradeManager = null; } @@ -105,6 +118,19 @@ public void receiveMessageFromClient(@Nonnull NBTTagCompound message) markDirty(); forceTileUpdate(); } + + if(message.hasKey("memory_load_rules", Constants.NBT.TAG_LIST)) + { + memoryLoadRules.deserializeNBT(message.getTagList("memory_load_rules", Constants.NBT.TAG_COMPOUND)); + markDirty(); + forceTileUpdate(); + } + if(message.hasKey("memory_save_rules", Constants.NBT.TAG_LIST)) + { + memorySaveRules.deserializeNBT(message.getTagList("memory_save_rules", Constants.NBT.TAG_COMPOUND)); + markDirty(); + forceTileUpdate(); + } } @Override @@ -143,6 +169,13 @@ public void receiveData(DataPacket packet, int pos) //Prepare reply packet DataPacket newPacket = packet.clone(); + //Optional memory input stage: copy configured variables from internal memory into the working packet. + if(isUpgradeInstalled(IIContent.UPGRADE_MEMORY)&&applyMemoryTransfers(memoryLoadRules, memory, newPacket)) + { + markDirty(); + updateTileForEvent(SyncEvents.TILE_GUI_OPENED); + } + //Process received packet with circuits int circuitsAmount = isUpgradeInstalled(IIContent.UPGRADE_CIRCUIT_RACKS)?MultiblockArithmeticLogicMachine.CIRCUITS_UPGRADED: MultiblockArithmeticLogicMachine.CIRCUITS_BASE; @@ -183,10 +216,41 @@ public void receiveData(DataPacket packet, int pos) } } + //Optional memory output stage: copy configured variables from the processed packet into internal memory. + if(isUpgradeInstalled(IIContent.UPGRADE_MEMORY)&&applyMemoryTransfers(memorySaveRules, newPacket, memory)) + { + markDirty(); + updateTileForEvent(SyncEvents.TILE_GUI_OPENED); + } + //Send reply to opposite side sendData(newPacket, getDirection("data_out"), getPOI("data_out")[0]); } + private boolean applyMemoryTransfers(EasyCollection rules, DataPacket source, DataPacket target) + { + if(rules==null||rules.isEmpty()||source==null||target==null) + return false; + + boolean changed = false; + List expiredRules = new ArrayList<>(); + for(MemoryTransferRule rule : rules) + if(rule.applyTo(source, target)) + { + changed = true; + rule.consumeUse(); + if(rule.isExpired()) + expiredRules.add(rule); + } + + if(!expiredRules.isEmpty()) + { + rules.removeAll(expiredRules); + changed = true; + } + return changed; + } + @Override public boolean canOpenGui() { @@ -263,10 +327,84 @@ public boolean removeUpgrade(Upgrade upgrade) } } else if(upgrade==IIContent.UPGRADE_MEMORY) + { memory = new DataPacket(); + memoryLoadRules.clear(); + memorySaveRules.clear(); + } updateTileForEvent(SyncEvents.TILE_UPGRADES_MODIFIED); return true; } return false; } + + public static class MemoryTransferRule implements INBTSerializable + { + public char sourceVariable = 'a'; + public char targetVariable = 'a'; + public boolean overwriteExisting = true; + public int usageLimit = -1; + + public boolean isJob() + { + return usageLimit < 0; + } + + public void consumeUse() + { + if(usageLimit > 0) + usageLimit--; + } + + public boolean isExpired() + { + return usageLimit==0; + } + + public boolean applyTo(DataPacket source, DataPacket target) + { + if(source==null||target==null||!source.has(sourceVariable)) + return false; + if(target.has(targetVariable)&&!overwriteExisting) + return false; + + DataType value = source.get(sourceVariable); + if(value==null) + return false; + + target.set(targetVariable, value.clone()); + return true; + } + + public MemoryTransferRule copy() + { + MemoryTransferRule copy = new MemoryTransferRule(); + copy.deserializeNBT(serializeNBT()); + return copy; + } + + @Nonnull + @Override + public NBTTagCompound serializeNBT() + { + NBTTagCompound nbt = new NBTTagCompound(); + nbt.setString("source", String.valueOf(sourceVariable)); + nbt.setString("target", String.valueOf(targetVariable)); + nbt.setBoolean("overwrite_existing", overwriteExisting); + nbt.setInteger("usage_limit", usageLimit); + return nbt; + } + + @Override + public void deserializeNBT(NBTTagCompound nbt) + { + String sourceString = nbt.getString("source"); + String targetString = nbt.getString("target"); + sourceVariable = sourceString.isEmpty()?'a': sourceString.charAt(0); + targetVariable = targetString.isEmpty()?sourceVariable: targetString.charAt(0); + overwriteExisting = !nbt.hasKey("overwrite_existing")||nbt.getBoolean("overwrite_existing"); + usageLimit = nbt.hasKey("usage_limit")?nbt.getInteger("usage_limit"): -1; + } + } + } diff --git a/src/main/resources/assets/immersiveintelligence/lang/en_us.lang b/src/main/resources/assets/immersiveintelligence/lang/en_us.lang index 47a95abee..707b1e932 100644 --- a/src/main/resources/assets/immersiveintelligence/lang/en_us.lang +++ b/src/main/resources/assets/immersiveintelligence/lang/en_us.lang @@ -3309,6 +3309,18 @@ ii.gui.data_input_machine.memory.page=Memory Page #%s ii.gui.data_input_machine.memory.page.tooltip=Allows to select the memory page that the machine will operate on ii.gui.arithmetic_logic_machine.storage=Circuit Storage +ii.gui.arithmetic_logic_machine.memory.transfer=Memory Transfer Rule Editor +ii.gui.arithmetic_logic_machine.memory.into=into +ii.gui.arithmetic_logic_machine.memory.mode.overwrite=(Overwrite)) +ii.gui.arithmetic_logic_machine.memory.mode.supplement=(Supplement) +ii.gui.arithmetic_logic_machine.memory.load_rule_properties=Load from Memory +ii.gui.arithmetic_logic_machine.memory.save_rule_properties=Save into Memory +ii.gui.arithmetic_logic_machine.memory.memory_variable=Memory variable +ii.gui.arithmetic_logic_machine.memory.packet_variable=Packet variable +ii.gui.arithmetic_logic_machine.memory.overwrite_existing=Overwrite existing +ii.gui.arithmetic_logic_machine.memory.overwrite_existing.tooltip=When unchecked, the value from memory will be loaded only when the packet is missing the variable. +ii.gui.arithmetic_logic_machine.memory.usage_limit=Usage Limit +ii.gui.arithmetic_logic_machine.memory.usage_limit.tooltip=When set, the memory variable will be deleted after the specified amount of packets have been processed. ii.gui.packer.tasks=Tasks ii.gui.packer.labeling=Label Rules From 351d3143de38fea10417efc13f2841613e71221c Mon Sep 17 00:00:00 2001 From: Pabilo8 Date: Thu, 2 Jul 2026 12:42:13 +0200 Subject: [PATCH 12/12] Fixed Sawmill output ports, added new particle effects for sawdust (thanks Trej) Closes #620 --- .../crafting/recipe/IIMultiblockRecipe.java | 7 +- .../multiblock/wooden/SawmillRenderer.java | 8 +- .../BlockIIWoodenMultiblock.java | 7 +- .../tileentity/TileEntitySawmill.java | 106 +++++++----------- .../common/util/amt/IIAnimation.java | 12 +- .../common/util/item/IIItemUtils.java | 10 ++ .../multiblock/MultiblockStuctureBase.java | 18 +-- .../TileEntityMultiblockProductionBase.java | 30 ++++- .../aabb/multiblock/sawmill.json | 7 +- .../animations/sawmill/production_loop.json | 34 ++++++ .../animations/sawmill/production_start.json | 12 ++ .../animations/sawmill/sawdust.json | 10 -- .../block/multiblock/sawmill/sawmill.obj.amt | 8 +- .../models/particle/sawdust.mtl | 21 ++++ .../models/particle/sawdust.obj | 28 +++++ .../particles/block/block_chunk.fx.amt | 2 +- .../particles/machine/sawdust.fx.amt | 12 ++ .../textures/particle/dust/sawdust0.png | Bin 0 -> 362 bytes .../textures/particle/dust/sawdust1.png | Bin 0 -> 376 bytes .../textures/particle/dust/sawdust2.png | Bin 0 -> 384 bytes .../textures/particle/dust/sawdust3.png | Bin 0 -> 387 bytes .../textures/particle/dust/sawdust4.png | Bin 0 -> 384 bytes .../textures/particle/dust/sawdust5.png | Bin 0 -> 384 bytes .../textures/particle/dust/sawdust6.png | Bin 0 -> 380 bytes .../textures/particle/dust/sawdust7.png | Bin 0 -> 377 bytes .../textures/particle/dust/sawdust8.png | Bin 0 -> 357 bytes .../textures/particle/dust/sawdust9.png | Bin 0 -> 346 bytes 27 files changed, 226 insertions(+), 106 deletions(-) create mode 100644 src/main/resources/assets/immersiveintelligence/models/particle/sawdust.mtl create mode 100644 src/main/resources/assets/immersiveintelligence/models/particle/sawdust.obj create mode 100644 src/main/resources/assets/immersiveintelligence/particles/machine/sawdust.fx.amt create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust0.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust1.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust2.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust3.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust4.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust5.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust6.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust7.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust8.png create mode 100644 src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust9.png diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/api/crafting/recipe/IIMultiblockRecipe.java b/src/main/java/pl/pabilo8/immersiveintelligence/api/crafting/recipe/IIMultiblockRecipe.java index 18cc7e5b9..515d411af 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/api/crafting/recipe/IIMultiblockRecipe.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/api/crafting/recipe/IIMultiblockRecipe.java @@ -9,6 +9,7 @@ import net.minecraftforge.fml.relauncher.SideOnly; import pl.pabilo8.immersiveintelligence.common.IILogger; import pl.pabilo8.immersiveintelligence.common.util.IIStringUtil; +import pl.pabilo8.immersiveintelligence.common.util.item.IIItemUtils; import pl.pabilo8.immersiveintelligence.common.util.multiblock.production.TileEntityMultiblockProductionBase.IIIMultiblockRecipe; import javax.annotation.Nonnull; @@ -53,7 +54,7 @@ public static String generateRecipeName(Object nameSource, Object... nameSources //IngredientStacks don't have a custom toString method, but NBT does .map(o -> { if(o instanceof ItemStack) - return o+"_"+((ItemStack)o).getCount(); + return IIItemUtils.getUniqueStackString(((ItemStack)o)); if(o instanceof IngredientStack) return createIngredientStackName(((IngredientStack)o)); if(o instanceof FluidStack) @@ -83,12 +84,12 @@ else if(stack.stackList!=null) { if(!first) sb.append("_"); - sb.append(contained); + sb.append(IIItemUtils.getUniqueStackString(contained)); first = false; } } else - sb.append(stack.stack); + sb.append(IIItemUtils.getUniqueStackString(stack.stack)); sb.append("_").append(stack.inputSize); return sb.toString(); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/wooden/SawmillRenderer.java b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/wooden/SawmillRenderer.java index 31ef37478..7b2786b2f 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/wooden/SawmillRenderer.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/client/render/multiblock/wooden/SawmillRenderer.java @@ -21,10 +21,7 @@ import pl.pabilo8.immersiveintelligence.client.util.amt.models.AMTCrossVariantReference; import pl.pabilo8.immersiveintelligence.client.util.amt.models.AMTUpgradeCachedModel; import pl.pabilo8.immersiveintelligence.client.util.amt.models.AMTUpgradeCachedModel.MachineCachedUpgradeModelBuilder; -import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMT; -import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMTItem; -import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMTLocator; -import pl.pabilo8.immersiveintelligence.client.util.amt.parts.AMTQuads; +import pl.pabilo8.immersiveintelligence.client.util.amt.parts.*; import pl.pabilo8.immersiveintelligence.client.util.amt.renderer.IIMultiblockRenderer; import pl.pabilo8.immersiveintelligence.client.util.amt.renderer.IITileRenderer.RegisteredTileRenderer; import pl.pabilo8.immersiveintelligence.common.IIContent; @@ -159,7 +156,8 @@ public void compileModels(IBlockState state, OBJModel model) new AMTItem("item_output", header), new AMTItem("item_inserter", header), new AMTLocator("cardan1", header), - new AMTLocator("cardan3", header) + new AMTLocator("cardan3", header), + new AMTParticle("particle_sawdust", header) }) .withTextureProvider((res, te) -> { //Default diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/BlockIIWoodenMultiblock.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/BlockIIWoodenMultiblock.java index c2adff2bc..564460abd 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/BlockIIWoodenMultiblock.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/BlockIIWoodenMultiblock.java @@ -33,10 +33,11 @@ public BlockIIWoodenMultiblock() IEProperties.BOOLEANS[0], IEProperties.BOOLEANS[1], IEProperties.CONNECTIONS, IEProperties.MULTIBLOCKSLAVE, Properties.AnimationProperty, IEProperties.DYNAMICRENDER, IOBJModelCallback.PROPERTY ); - setHardness(3.0F); - setResistance(15.0F); + this.setHardness(3.0F); + this.setResistance(15.0F); - addToTESRMap(WoodenMultiblocks.SKYCART_STATION, WoodenMultiblocks.SKYCRATE_STATION, WoodenMultiblocks.SKYCRATE_POST); + this.addToTESRMap(WoodenMultiblocks.SKYCART_STATION, WoodenMultiblocks.SKYCRATE_STATION, WoodenMultiblocks.SKYCRATE_POST); + this.setBlockLayer(BlockRenderLayer.CUTOUT); } public enum WoodenMultiblocks implements IITileMultiblockEnum diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/tileentity/TileEntitySawmill.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/tileentity/TileEntitySawmill.java index 575ea6309..e64ebda7c 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/tileentity/TileEntitySawmill.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/block/multiblock/wooden_multiblock/tileentity/TileEntitySawmill.java @@ -1,12 +1,8 @@ package pl.pabilo8.immersiveintelligence.common.block.multiblock.wooden_multiblock.tileentity; import blusunrize.immersiveengineering.api.energy.immersiveflux.FluxStorageAdvanced; -import blusunrize.immersiveengineering.common.util.Utils; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.Ingredient; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.NonNullList; @@ -43,6 +39,7 @@ import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.List; +import java.util.stream.Collectors; import static pl.pabilo8.immersiveintelligence.common.block.multiblock.wooden_multiblock.multiblock.MultiblockSawmill.*; @@ -68,7 +65,6 @@ public RotationSide getSide(@Nullable EnumFacing facing) //Inventory Handlers private IItemHandler insertionHandler = getSingleInventoryHandler(SLOT_INPUT, true, false); - private IItemHandler dustExtractionHandler = getSingleInventoryHandler(SLOT_SAWDUST, false, true); //Recipe Output Handlers private IItemHandler outputHandler = getSingleInventoryHandler(SLOT_OUTPUT), sawdustOutputHandler = getSingleInventoryHandler(SLOT_SAWDUST); private SoundHandler sounds; @@ -96,7 +92,7 @@ protected void dummyCleanup() { super.dummyCleanup(); this.outputHandler = this.sawdustOutputHandler = null; - this.insertionHandler = this.dustExtractionHandler = null; + this.insertionHandler = null; this.upgradeManager = null; this.rotation = null; this.vise = null; @@ -126,10 +122,12 @@ public T getCapability(Capability capability, @Nullable EnumFacing facing if(capability==CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { TileEntitySawmill master = master(); - if(isPOI("item_input")) + if(isPOI("item_input")) //all directions are allowed return (T)master.insertionHandler; - else if(isPOI("sawdust")) - return (T)master.dustExtractionHandler; + else if(isPOI("item_output")&&getDirection("output")==facing) + return (T)master.outputHandler; + else if(isPOI("sawdust")&&facing==EnumFacing.DOWN) + return (T)master.sawdustOutputHandler; } return super.getCapability(capability, facing); } @@ -148,13 +146,15 @@ protected void onUpdate() boolean receivesPower = false; //Wheel or mechanical device connected to multiblock - TileEntity te = world.getTileEntity(getPOIPos(MultiblockPOI.ROTARY_INPUT).offset(facing)); - if(te!=null&&te.hasCapability(CapabilityRotaryEnergy.ROTARY_ENERGY, facing.getOpposite())) + EnumFacing rotaryFacing = getDirection("rotary_input"); + assert rotaryFacing!=null; + TileEntity te = world.getTileEntity(getPOIPos(MultiblockPOI.ROTARY_INPUT).offset(rotaryFacing.getOpposite())); + if(te!=null&&te.hasCapability(CapabilityRotaryEnergy.ROTARY_ENERGY, rotaryFacing)) { //Increase internal rotation if powered - IRotaryEnergy cap = te.getCapability(CapabilityRotaryEnergy.ROTARY_ENERGY, facing.getOpposite()); + IRotaryEnergy cap = te.getCapability(CapabilityRotaryEnergy.ROTARY_ENERGY, rotaryFacing); assert cap!=null; - if(rotation.handleRotation(cap, facing.getOpposite())) + if(rotation.handleRotation(cap, rotaryFacing)) { IIPacketHandler.sendToClient(new MessageRotaryPowerSync(world, getPos(), 0, rotation)); receivesPower = true; @@ -189,13 +189,24 @@ protected void onUpdate() } super.onUpdate(); - if(world.isRemote&¤tProcess!=null) - currentProcess.recipe.getSoundAnimation().handleSounds(sounds, (int)currentProcess.ticks, 1f); + if(world.isRemote) + { + if(currentProcess!=null) + currentProcess.recipe.getSoundAnimation().handleSounds(sounds, (int)currentProcess.ticks, 1f); + } + else //Output items + { + attemptStackOutput(outputHandler, 1, getDirection("output"), getPOI("item_output")); + attemptStackOutput(sawdustOutputHandler, 1, EnumFacing.UP, getPOI("sawdust")); + } } @Override public boolean isStackValid(int slot, ItemStack stack) { + if(slot==SLOT_INPUT) + return SawmillRecipe.streamRecipes(SawmillRecipe.class) + .anyMatch(recipe -> recipe.itemInput.matchesItemStackIgnoringSize(stack)); return true; } @@ -219,27 +230,28 @@ protected IIMultiblockProcess findNewProductionProcess() ISawblade saw = (ISawblade)stackSawblade.getItem(); final int sawHardness = saw.getHardness(stackSawblade); - SawmillRecipe found = SawmillRecipe.streamRecipes(SawmillRecipe.class) + List recipes = SawmillRecipe.streamRecipes(SawmillRecipe.class) .filter(recipe -> recipe.itemInput.matchesItemStackIgnoringSize(inventory.get(SLOT_INPUT))) .filter(recipe -> recipe.getHardness() <= sawHardness) - .findFirst() - .orElse(null); - if(found==null) + .collect(Collectors.toList()); + if(recipes.isEmpty()) return null; + //Compare the input item to the recipe input, and sort recipes with matching input first, so that the correct output is used for the specific log type + recipes.sort((recipe1, recipe2) -> { + int left = recipe1.itemInput.stack.isItemEqual(inventory.get(SLOT_INPUT))?0: 1; + int right = recipe2.itemInput.stack.isItemEqual(inventory.get(SLOT_INPUT))?0: 1; + return Integer.compare(left, right); + }); + SawmillRecipe found = recipes.get(0); + //Store actual input item for display before consuming ItemStack displayInput = inventory.get(SLOT_INPUT).copy(); displayInput.setCount(found.itemInput.inputSize); - //Look up the correct plank output for this specific log type - ItemStack correctOutput = lookupPlankOutput(displayInput, found.itemOutput); - //Consume input inventory.get(SLOT_INPUT).shrink(found.itemInput.inputSize); - return new IIMultiblockProcess<>(found).withNBT(nbt -> { - nbt.withItemStack("displayInput", displayInput); - nbt.withItemStack("correctOutput", correctOutput); - }); + return new IIMultiblockProcess<>(found).withNBT(nbt -> nbt.withItemStack("displayInput", displayInput)); } @Override @@ -268,7 +280,7 @@ public float getProductionStep(IIMultiblockProcess process, boole protected boolean attemptProductionOutput(IIMultiblockProcess process) { //Use correct output based on actual input wood type - ItemStack output = process.processData.getItemStack("correctOutput"); + ItemStack output = process.recipe.itemOutput.copy(); if(output.isEmpty()) output = process.recipe.itemOutput.copy(); ItemStack sawdust = process.recipe.itemSecondaryOutput.copy(); @@ -293,46 +305,6 @@ protected void onProductionFinish(IIMultiblockProcess process) ((ISawblade)sawblade.getItem()).damageTool(sawblade, process.recipe.getHardness()); } - /** - * Looks up the correct plank output for a given log input by checking crafting recipes. - * Prefers the most specific recipe (fewest matching ingredients) to ensure the output - * plank type matches the input log type. - * - * @param logInput the actual log item being processed - * @param fallback the recipe's default output to use if no crafting recipe match is found - * @return the correct plank output - */ - private static ItemStack lookupPlankOutput(ItemStack logInput, ItemStack fallback) - { - ItemStack testStack = logInput.copy(); - testStack.setCount(1); - ItemStack bestResult = ItemStack.EMPTY; - int bestSpecificity = Integer.MAX_VALUE; - - for(IRecipe recipe : CraftingManager.REGISTRY) - { - if(Utils.compareToOreName(recipe.getRecipeOutput(), "plankWood")) - { - for(Ingredient ingredient : recipe.getIngredients()) - { - if(ingredient.apply(testStack)) - { - //Prefer recipes with fewer matching stacks (more specific to this log type) - int specificity = ingredient.getMatchingStacks().length; - if(specificity < bestSpecificity) - { - bestSpecificity = specificity; - bestResult = recipe.getRecipeOutput().copy(); - bestResult.setCount(Math.round(bestResult.getCount()*1.5f)); - } - break; - } - } - } - } - return bestResult.isEmpty()?fallback.copy(): bestResult; - } - //--- IRotationalEnergyBlock ---// @Override diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/amt/IIAnimation.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/amt/IIAnimation.java index e7810fc78..0d03a3855 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/amt/IIAnimation.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/amt/IIAnimation.java @@ -98,11 +98,11 @@ public static class IIAnimationGroup * For manual usage only */ public IIAnimationGroup(String groupName, - @Nullable IIVectorLine position, @Nullable IIVectorLine scale, - @Nullable IIVectorLine rotation, - @Nullable IIBooleanLine visibility, - @Nullable IIShaderLine shader, - @Nullable IIFloatLine property) + @Nullable IIVectorLine position, @Nullable IIVectorLine scale, + @Nullable IIVectorLine rotation, + @Nullable IIBooleanLine visibility, + @Nullable IIShaderLine shader, + @Nullable IIFloatLine property) { this.groupName = groupName; this.position = position; @@ -364,7 +364,7 @@ public IIFloatLine(float[] timeframes, Float[] values) @Override public Float interpolate(Float t1, Float t2, float value) { - return (t1+t2)*0.5f; + return t1*(1f-value)+(t2*value); } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/item/IIItemUtils.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/item/IIItemUtils.java index 944097ddc..2c18b57d0 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/item/IIItemUtils.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/item/IIItemUtils.java @@ -89,4 +89,14 @@ public static boolean canConstructFreeOfCharge(EntityPlayer player) { return player.isCreative()&&Tools.instantCreativeConstruction; } + + public static String getUniqueStackString(ItemStack stack) + { + //noinspection DataFlowIssue + return String.format("%d*%s@%d%s", + stack.getCount(), + stack.getItem().getRegistryName(), + stack.getMetadata(), + stack.hasTagCompound()?stack.getTagCompound().toString(): ""); + } } diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/MultiblockStuctureBase.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/MultiblockStuctureBase.java index efaffc0e6..aba44f4c4 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/MultiblockStuctureBase.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/MultiblockStuctureBase.java @@ -274,20 +274,24 @@ private void updatePOI(@Nonnull JsonObject file) JsonObject poiJSON = file.get("poi").getAsJsonObject(); //Multiple Values for(Entry poi : poiJSON.entrySet()) + { if(poi.getValue() instanceof JsonArray) { JsonArray arr = poi.getValue().getAsJsonArray(); - int[] posArray = new int[arr.size()]; - for(int i = 0; i < arr.size(); i++) - posArray[i] = arr.get(i).getAsInt(); - - POIs.put(poi.getKey(), posArray); + ArrayList positions = new ArrayList<>(); + for(JsonElement jsonElement : arr) + positions.addAll(Arrays.asList(IIStringUtil.parseNumberListString(jsonElement.getAsString()))); + POIs.put(poi.getKey(), positions.stream().mapToInt(Integer::intValue).toArray()); } - //Single Value + //Single Value or Range else if(poi.getValue() instanceof JsonPrimitive) - POIs.put(poi.getKey(), new int[]{poi.getValue().getAsInt()}); + { + Integer[] IDs = IIStringUtil.parseNumberListString(poi.getValue().getAsString()); + POIs.put(poi.getKey(), Arrays.stream(IDs).mapToInt(Integer::intValue).toArray()); + } else IILogger.warn("Invalid POI value for \""+poi.getKey()+"\" in multiblock "+loc.toString()+", expected array or primitive, got "+poi.getValue().getClass().getSimpleName()); + } //Sorting needed for binary search to work POIs.values().forEach(Arrays::sort); diff --git a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/production/TileEntityMultiblockProductionBase.java b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/production/TileEntityMultiblockProductionBase.java index 938285bc8..3c26c2cb4 100644 --- a/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/production/TileEntityMultiblockProductionBase.java +++ b/src/main/java/pl/pabilo8/immersiveintelligence/common/util/multiblock/production/TileEntityMultiblockProductionBase.java @@ -66,26 +66,52 @@ public void outputOrDrop(ItemStack output, @Nullable IItemHandler itemHandler, E } - public void attemptStackOutput(IItemHandler itemHandler, EnumFacing facing, int... outputPos) + /** + * Attempts to output items from an item handler to inventories at given positions.
+ * If the inventory is full, it will continue to the next one. + * + * @param itemHandler The item handler to extract items from. + * @param limiter The maximum number of items to output. + * @param facing The facing direction for output. + * @param outputPos The positions of the inventories to output to. + */ + public void attemptStackOutput(IItemHandler itemHandler, int limiter, EnumFacing facing, int... outputPos) { if(facing==null) facing = this.facing; for(int p : outputPos) { + if(limiter <= 0) + return; BlockPos pos = getBlockPosForPos(p).offset(facing.getOpposite()); TileEntity inventoryTile = this.world.getTileEntity(pos); if(inventoryTile!=null) { for(int i = 0; i < itemHandler.getSlots(); i++) { - ItemStack stack = itemHandler.extractItem(i, Integer.MAX_VALUE, false); + if(limiter <= 0) + return; + ItemStack stack = itemHandler.extractItem(i, limiter, false); stack = Utils.insertStackIntoInventory(inventoryTile, stack, facing, world.isRemote); itemHandler.insertItem(i, stack, false); + limiter -= stack.getCount(); } } } } + /** + * Overload of {@link #attemptStackOutput(IItemHandler, int, EnumFacing, int...)} with no limiter + * + * @param itemHandler The item handler to extract items from. + * @param facing The facing direction for output. + * @param outputPos The positions of the inventories to output to. + */ + public void attemptStackOutput(IItemHandler itemHandler, EnumFacing facing, int... outputPos) + { + attemptStackOutput(itemHandler, Integer.MAX_VALUE, facing, outputPos); + } + /** * @return minimal offset between production processes */ diff --git a/src/main/resources/assets/immersiveintelligence/aabb/multiblock/sawmill.json b/src/main/resources/assets/immersiveintelligence/aabb/multiblock/sawmill.json index 2316789de..fff173fce 100644 --- a/src/main/resources/assets/immersiveintelligence/aabb/multiblock/sawmill.json +++ b/src/main/resources/assets/immersiveintelligence/aabb/multiblock/sawmill.json @@ -122,7 +122,12 @@ "rotary": 6, "item_output": 4, "item_input": 15, - "sawdust": [2, 6], + "sawdust": ["1:3", "5:7"], "all_item_output": [4, 2, 6] + }, + "rotations": { + "rotary_input": "clockwise_180", + "input": "counterclockwise_90", + "output": "none" } } \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_loop.json b/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_loop.json index 085992e5b..dd009ce4f 100644 --- a/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_loop.json +++ b/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_loop.json @@ -140,6 +140,40 @@ "visibility": true } ] + }, + "particle_sawdust": { + "property": [ + { + "time": 0.0, + "property": 0.0 + }, + { + "time": 0.25, + "property": 0.0 + }, + { + "time": 0.75, + "property": 1.0 + } + ], + "visibility": [ + { + "time": 0, + "visibility": false + }, + { + "time": 0.25, + "visibility": true + }, + { + "time": 0.75, + "visibility": false + }, + { + "time": 1.0, + "visibility": false + } + ] } } } \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_start.json b/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_start.json index c8a41abf9..f21bccc9c 100644 --- a/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_start.json +++ b/src/main/resources/assets/immersiveintelligence/animations/sawmill/production_start.json @@ -236,6 +236,18 @@ "transform": [1, 0, 0] } ] + }, + "item_output": { + "visibility": [ + { + "time": 0, + "visibility": false + }, + { + "time": 1, + "visibility": false + } + ] } } } \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/animations/sawmill/sawdust.json b/src/main/resources/assets/immersiveintelligence/animations/sawmill/sawdust.json index 2bfb6e675..221c4f3a8 100644 --- a/src/main/resources/assets/immersiveintelligence/animations/sawmill/sawdust.json +++ b/src/main/resources/assets/immersiveintelligence/animations/sawmill/sawdust.json @@ -11,16 +11,6 @@ "time": 1, "transform": [1, 1, 1] } - ], - "position": [ - { - "time": 0, - "transform": [-7, 0, 20] - }, - { - "time": 1, - "transform": [0, 0, 0] - } ] }, "item_input": { diff --git a/src/main/resources/assets/immersiveintelligence/models/block/multiblock/sawmill/sawmill.obj.amt b/src/main/resources/assets/immersiveintelligence/models/block/multiblock/sawmill/sawmill.obj.amt index 858b5dbef..939adfb06 100644 --- a/src/main/resources/assets/immersiveintelligence/models/block/multiblock/sawmill/sawmill.obj.amt +++ b/src/main/resources/assets/immersiveintelligence/models/block/multiblock/sawmill/sawmill.obj.amt @@ -18,7 +18,8 @@ "item_output": [3, 20, 21], "sawblade": [0, 0, 0], "item_inserter": [26, 20, 18], - "item_input": [26, 20, 21] + "item_input": [26, 20, 21], + "particle_sawdust": [8, 14, 15] }, "hierarchy": { "vise_rotato": "vise", @@ -34,5 +35,10 @@ "grabber_clamp_right": "grabber", "sawblade": "sawblade_axis", "item_inserter": "inserter" + }, + "properties": { + "particle_sawdust": { + "particle": "machine/sawdust" + } } } \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/models/particle/sawdust.mtl b/src/main/resources/assets/immersiveintelligence/models/particle/sawdust.mtl new file mode 100644 index 000000000..3a962e199 --- /dev/null +++ b/src/main/resources/assets/immersiveintelligence/models/particle/sawdust.mtl @@ -0,0 +1,21 @@ +# Made by Pabilo8 with Blockbench +newmtl sawdust0 +map_Kd immersiveintelligence:blocks/empty +newmtl sawdust1 +map_Kd immersiveintelligence:particle/dust/sawdust0 +newmtl sawdust2 +map_Kd immersiveintelligence:particle/dust/sawdust1 +newmtl sawdust3 +map_Kd immersiveintelligence:particle/dust/sawdust2 +newmtl sawdust4 +map_Kd immersiveintelligence:particle/dust/sawdust3 +newmtl sawdust5 +map_Kd immersiveintelligence:particle/dust/sawdust4 +newmtl sawdust6 +map_Kd immersiveintelligence:particle/dust/sawdust5 +newmtl sawdust7 +map_Kd immersiveintelligence:particle/dust/sawdust6 +newmtl sawdust8 +map_Kd immersiveintelligence:particle/dust/sawdust7 +newmtl sawdust9 +map_Kd immersiveintelligence:particle/dust/sawdust8 \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/models/particle/sawdust.obj b/src/main/resources/assets/immersiveintelligence/models/particle/sawdust.obj new file mode 100644 index 000000000..883306f4a --- /dev/null +++ b/src/main/resources/assets/immersiveintelligence/models/particle/sawdust.obj @@ -0,0 +1,28 @@ +# Made by Pabilo8 with Blockbench +# Exported with IIToolkit Plugin on 02/07/2026 +mtllib sawdust.mtl + +o cube +v 0.1875 0.875 0 +v -0.8125 0.875 0 +v 0.1875 -0.125 0 +v -0.8125 -0.125 0 +v -0.125 -1.125 0 +v 0.875 -1.125 0 +v -0.125 -0.125 0 +v 0.875 -0.125 0 +vt 1 0 +vt 1 1 +vt 0 1 +vt 0 0 +vt 1 0 +vt 1 1 +vt 0 1 +vt 0 0 +vn 0 0 1 +vn 0 0 1 +usemtl sawdust0 +f 3/1/1 1/2/1 2/3/1 +f 3/1/1 2/3/1 4/4/1 +f 7/5/2 5/6/2 6/7/2 +f 7/5/2 6/7/2 8/8/2 \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/particles/block/block_chunk.fx.amt b/src/main/resources/assets/immersiveintelligence/particles/block/block_chunk.fx.amt index e1137aeeb..aec29cc3c 100644 --- a/src/main/resources/assets/immersiveintelligence/particles/block/block_chunk.fx.amt +++ b/src/main/resources/assets/immersiveintelligence/particles/block/block_chunk.fx.amt @@ -5,7 +5,7 @@ "draw_stage": "custom", "aabb": 0.0625, "programs": [ - "smoke_transition", + "dust_transition", "gravity(0.998,0.125)" ] } \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/particles/machine/sawdust.fx.amt b/src/main/resources/assets/immersiveintelligence/particles/machine/sawdust.fx.amt new file mode 100644 index 000000000..ea7d3931e --- /dev/null +++ b/src/main/resources/assets/immersiveintelligence/particles/machine/sawdust.fx.amt @@ -0,0 +1,12 @@ +{ + "type": "ParticleModel", + "models": ["sawdust.obj"], + "max_lifetime": 200, + "draw_stage": "custom_solid", + "color": "ffffff", + "aabb": 0.25, + "size": 1, + "programs": [ + "lifetime_retexture" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust0.png b/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust0.png new file mode 100644 index 0000000000000000000000000000000000000000..9a46ab6ad36c04ad0321d93a5f16b4a20697f65c GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFvNcITwWnidMV_;}#VPNu(UEYvobK#HZZUj%gZbx#+^5RU7~2@3KY2PAv~W=(9A3~gm%ZWatV#h}5> gWFW;Up`mbtL4$=+X0Ph8yFe`rp00i_>zopr01)u(UEYvobK#HZZUj%gZQ%@Ji5RU7~2?|0S2O@n|2=zGRBrv2I9cJx4aEPmi vEkTNLhNR>SQIUf_%xugns#tfNWaD87Jk0p>T1u!Y&;SNcS3j3^P6!C8<`)MX5lF z!N|bKOxM6%*T5*mz|zXp%*wz_+rYrez(D(dVK0h?-29Zxv`X9>q86Pr1ZvQL+fb63 zn_66wm|K9Z$K1-m0%FM~uOA>wY&~5ZLpZJ{Cmi6GP!thnZf1<>iDcASz%$h}A))OA zlcuwXuEPR`WsP2vEeeYqt};0VXfmgDR5BIZ=8<5ij$n$B-l}yKXb^*^tDnm{r-UW| DDHm&M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust3.png b/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust3.png new file mode 100644 index 0000000000000000000000000000000000000000..92933eb69db8dc3d42a4fd2c0dc2335d6b127362 GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFvNcITwWnidMV_;}#VPNu(UEYvobK#HZZUj%gZ2TvEr5RU7~2@TAQY7*S%5)2GjP9OMrM!|3ci}HlU z41vsQq7SSZSIy)}=vsK`ki!}lW8oZ|%?*u$#u(UEYvobK#HZZUj%gZTTd6q5RU7~2?y9D7H(nKG=nL^VPa#WWb94`kA+MD z;)@x(bd;HenVT6~&hi-YXecDG7)xjMGWytVW?*KBPh{LRa~j(spg|0tu6{1-oD!M< D+(>Gw literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust5.png b/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust5.png new file mode 100644 index 0000000000000000000000000000000000000000..dc64f7e1b00b68e5727c740d1fb4918411a4d227 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFvNcITwWnidMV_;}#VPN!C8<`)MX5lF z!N|bKOxM6%*T5*mz|zXp%*wz_+rYrez(D(dVK0h?-29Zxv`X9>q86Pr1ZvQL+fb63 zn_66wm|K9Z$K1-m0%FM~uOA>wY&~5ZLpZJ{Cmi6GP!thnZf1<>iDcASz%$h}A))OA zlcuwXuEPR`WsP2vEeeYqt};0VXfmgDR5BIZ=8<5ij$n$B-l}yKXb^*^tDnm{r-UW| DDHm&M literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust6.png b/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust6.png new file mode 100644 index 0000000000000000000000000000000000000000..ed2f5b82483f863989f9fbfff8c3640e26d334f1 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFvNcITwWnidMV_;}#VPNu(UEYvobK#HZZUj%gZOHUWa5RU7~2?y9%5_r_qm_sC47f3`jF={O22xL~1 zd}uYZaf*PCVaTjV#&t}q<~h#n^klee<;cd6)XLa&Ui$qSpdk#Nu6{1-oD!M<2E1w7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust7.png b/src/main/resources/assets/immersiveintelligence/textures/particle/dust/sawdust7.png new file mode 100644 index 0000000000000000000000000000000000000000..71aa14505e98474e059af9b3504a2727841f950a GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFvNcITwWnidMV_;}#VPNu(UEYvobK#HZZUj%gZGfx-C5RU7~2?}BcS`C`6Y;0*Inv4o8D-#k-9IhTZ vaO41kXj0n>MlKEsM^nb92N~9NMm8`qc-S(Q-I*i>3LgefS3j3^P6u(UEYvobK#HZZUj%gZB~KT}5RU7~2@0|XkERF)G#K*+q|T6NxhN{lz`D>u bQjdc{L5SguP!H!TplSwBS3j3^P6!C8<`)MX5lF z!N|bKOxM6%*T5*mz|zXp%*wz_+rYrez(D(dVK0h?-29Zxv`X9>q86Pr1ZvQL+fb63 zn_66wm|K9Z$K1-m0%FM~uOA>w#64XcLpZJ{CoC{bXu0IWb7sdB14)G&49rUyEbHfm RivpD}c)I$ztaD0e0suREVKo2% literal 0 HcmV?d00001