Make tests pass for N format.
authorBen Pfaff <blp@cs.stanford.edu>
Fri, 21 Mar 2025 00:30:00 +0000 (17:30 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Fri, 21 Mar 2025 00:30:00 +0000 (17:30 -0700)
This also revises the expected output because the new results are more
accurate.

rust/pspp/src/format/mod.rs
rust/pspp/src/format/testdata/n.txt

index b9a30bdd2e9359fdfed50560bed030a59898477e..f53f9d4bca13d7db9a6a222276c46dee1e83099e 100644 (file)
@@ -2,8 +2,9 @@ use core::f64;
 use std::{
     cmp::min,
     fmt::{Display, Error as FmtError, Formatter, Result as FmtResult, Write},
+    io::Write as _,
     ops::{Not, RangeInclusive},
-    str::FromStr,
+    str::{from_utf8_unchecked, FromStr},
     sync::LazyLock,
 };
 
@@ -1317,21 +1318,96 @@ impl<'a> DisplayValue<'a> {
     }
 
     fn n(&self, f: &mut Formatter<'_>, number: f64) -> FmtResult {
-        if !number.is_sign_positive() {
+        if number < 0.0 {
             return self.missing(f);
         }
 
-        let number = number * power10(self.format.d());
-        let number = number.round().abs();
-        if number >= power10(self.format.w()) {
-            return self.overflow(f);
+        let mut s = SmallVec::<[u8; 40]>::new();
+        write!(&mut s, "{:E}", number.abs()).unwrap();
+        debug_assert!(s.is_ascii());
+
+        // Parse exponent.
+        //
+        // Add 1 because of the transformation we will do just below, and `d` so
+        // that we just need to round to the nearest integer.
+        let e_index = s.iter().position(|c| *c == b'E').unwrap();
+        let mut exponent = unsafe { from_utf8_unchecked(&s[e_index + 1..]) }
+            .parse::<i32>()
+            .unwrap()
+            + 1
+            + self.format.d() as i32;
+
+        // Transform `1.234` into `.1234`.
+        //
+        // This makes all of the digits contiguous, which simplifies other logic.
+        let mut digits = if e_index == 1 {
+            // No decimals, e.g. `1E4` or `0E0`.
+            &mut s[..1]
+        } else {
+            s.swap(0, 1);
+            &mut s[1..e_index]
+        };
+
+        fn zeros(n: usize) -> &'static str {
+            static ZEROS: &str = "0000000000000000000000000000000000000000";
+            &ZEROS[..n]
+        }
+        fn is_all_zeros(s: &[u8]) -> bool {
+            s.iter().all(|b| *b == b'0')
+        }
+
+        if exponent >= 0 && exponent < digits.len() as i32 {
+            // The first `exponent` digits are before the decimal point.  We
+            // need to round off there.
+            let exp = exponent as usize;
+            let should_round_up = match digits[exp] {
+                /*
+                b'5' if is_all_zeros(&digits[exp + 1..]) => {
+                    let prev_digit = if exp > 0 { digits[exp - 1] - b'0' } else { 0 };
+                    (prev_digit % 2) == 1
+                }*/
+                b'0'..=b'4' => false,
+                b'5'..=b'9' => true,
+                _ => unreachable!(),
+            };
+
+            fn round_up(digits: &mut [u8], position: usize) -> bool {
+                for index in (0..position).rev() {
+                    match digits[index] {
+                        b'0'..=b'8' => {
+                            digits[index] += 1;
+                            return true;
+                        }
+                        b'9' => {
+                            digits[index] = b'0';
+                        }
+                        _ => unreachable!(),
+                    }
+                }
+                false
+            }
+
+            if should_round_up && !round_up(digits, exp) {
+                s[0] = b'1';
+                digits = &mut s[..e_index];
+                exponent += 1;
+            }
         }
-        let mut s = SmallString::<[u8; 40]>::new();
-        write!(&mut s, "{number:0$.0}", self.format.w()).unwrap();
-        if s.len() != self.format.w() {
-            return self.overflow(f);
+
+        if exponent > self.format.w() as i32 {
+            self.overflow(f)
+        } else {
+            let w = self.format.w();
+            let exponent = exponent.max(0) as usize;
+            if exponent < w {
+                f.write_str(zeros(w - exponent))?;
+            }
+            f.write_str(unsafe { from_utf8_unchecked(&digits[..exponent.min(digits.len())]) })?;
+            if digits.len() < exponent {
+                f.write_str(zeros(exponent - digits.len()))?;
+            }
+            Ok(())
         }
-        f.write_str(&s)
     }
 
     fn z(&self, f: &mut Formatter<'_>, number: f64) -> FmtResult {
@@ -1344,7 +1420,7 @@ impl<'a> DisplayValue<'a> {
         }
 
         let mut s = SmallString::<[u8; 40]>::new();
-        write!(&mut s, "{number:0$.0}", self.format.w()).unwrap();
+        write!(&mut s, "{number:0width$.0}", width = self.format.w()).unwrap();
         if s.len() != self.format.w() {
             return self.overflow(f);
         }
index 42c16f830306e75debce17cd474fe71bc54aa1a2..696a61e134d18e01e599b0638a949ba75dae7bb4 100644 (file)
@@ -4286,29 +4286,29 @@ N40.13: "0000000000000000000000099999950000000000"
 N15.14: "***************"
 N16.14: "****************"
 N17.14: "*****************"
-N18.14: "999999500000000128"
-N19.14: "0999999500000000128"
-N20.14: "00999999500000000128"
-N21.14: "000999999500000000128"
-N22.14: "0000999999500000000128"
-N23.14: "00000999999500000000128"
-N24.14: "000000999999500000000128"
-N25.14: "0000000999999500000000128"
-N26.14: "00000000999999500000000128"
-N27.14: "000000000999999500000000128"
-N28.14: "0000000000999999500000000128"
-N29.14: "00000000000999999500000000128"
-N30.14: "000000000000999999500000000128"
-N31.14: "0000000000000999999500000000128"
-N32.14: "00000000000000999999500000000128"
-N33.14: "000000000000000999999500000000128"
-N34.14: "0000000000000000999999500000000128"
-N35.14: "00000000000000000999999500000000128"
-N36.14: "000000000000000000999999500000000128"
-N37.14: "0000000000000000000999999500000000128"
-N38.14: "00000000000000000000999999500000000128"
-N39.14: "000000000000000000000999999500000000128"
-N40.14: "0000000000000000000000999999500000000128"
+N18.14: "999999500000000000"
+N19.14: "0999999500000000000"
+N20.14: "00999999500000000000"
+N21.14: "000999999500000000000"
+N22.14: "0000999999500000000000"
+N23.14: "00000999999500000000000"
+N24.14: "000000999999500000000000"
+N25.14: "0000000999999500000000000"
+N26.14: "00000000999999500000000000"
+N27.14: "000000000999999500000000000"
+N28.14: "0000000000999999500000000000"
+N29.14: "00000000000999999500000000000"
+N30.14: "000000000000999999500000000000"
+N31.14: "0000000000000999999500000000000"
+N32.14: "00000000000000999999500000000000"
+N33.14: "000000000000000999999500000000000"
+N34.14: "0000000000000000999999500000000000"
+N35.14: "00000000000000000999999500000000000"
+N36.14: "000000000000000000999999500000000000"
+N37.14: "0000000000000000000999999500000000000"
+N38.14: "00000000000000000000999999500000000000"
+N39.14: "000000000000000000000999999500000000000"
+N40.14: "0000000000000000000000999999500000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
@@ -4337,27 +4337,27 @@ N40.15: "0000000000000000000009999995000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
-N20.16: "99999950000000008192"
-N21.16: "099999950000000008192"
-N22.16: "0099999950000000008192"
-N23.16: "00099999950000000008192"
-N24.16: "000099999950000000008192"
-N25.16: "0000099999950000000008192"
-N26.16: "00000099999950000000008192"
-N27.16: "000000099999950000000008192"
-N28.16: "0000000099999950000000008192"
-N29.16: "00000000099999950000000008192"
-N30.16: "000000000099999950000000008192"
-N31.16: "0000000000099999950000000008192"
-N32.16: "00000000000099999950000000008192"
-N33.16: "000000000000099999950000000008192"
-N34.16: "0000000000000099999950000000008192"
-N35.16: "00000000000000099999950000000008192"
-N36.16: "000000000000000099999950000000008192"
-N37.16: "0000000000000000099999950000000008192"
-N38.16: "00000000000000000099999950000000008192"
-N39.16: "000000000000000000099999950000000008192"
-N40.16: "0000000000000000000099999950000000008192"
+N20.16: "99999950000000000000"
+N21.16: "099999950000000000000"
+N22.16: "0099999950000000000000"
+N23.16: "00099999950000000000000"
+N24.16: "000099999950000000000000"
+N25.16: "0000099999950000000000000"
+N26.16: "00000099999950000000000000"
+N27.16: "000000099999950000000000000"
+N28.16: "0000000099999950000000000000"
+N29.16: "00000000099999950000000000000"
+N30.16: "000000000099999950000000000000"
+N31.16: "0000000000099999950000000000000"
+N32.16: "00000000000099999950000000000000"
+N33.16: "000000000000099999950000000000000"
+N34.16: "0000000000000099999950000000000000"
+N35.16: "00000000000000099999950000000000000"
+N36.16: "000000000000000099999950000000000000"
+N37.16: "0000000000000000099999950000000000000"
+N38.16: "00000000000000000099999950000000000000"
+N39.16: "000000000000000000099999950000000000000"
+N40.16: "0000000000000000000099999950000000000000"
 27182
 N1.0: "*"
 N2.0: "**"
@@ -5429,25 +5429,25 @@ N18.16: "******************"
 N19.16: "*******************"
 N20.16: "********************"
 N21.16: "*********************"
-N22.16: "2718279999999999737856"
-N23.16: "02718279999999999737856"
-N24.16: "002718279999999999737856"
-N25.16: "0002718279999999999737856"
-N26.16: "00002718279999999999737856"
-N27.16: "000002718279999999999737856"
-N28.16: "0000002718279999999999737856"
-N29.16: "00000002718279999999999737856"
-N30.16: "000000002718279999999999737856"
-N31.16: "0000000002718279999999999737856"
-N32.16: "00000000002718279999999999737856"
-N33.16: "000000000002718279999999999737856"
-N34.16: "0000000000002718279999999999737856"
-N35.16: "00000000000002718279999999999737856"
-N36.16: "000000000000002718279999999999737856"
-N37.16: "0000000000000002718279999999999737856"
-N38.16: "00000000000000002718279999999999737856"
-N39.16: "000000000000000002718279999999999737856"
-N40.16: "0000000000000000002718279999999999737856"
+N22.16: "2718280000000000000000"
+N23.16: "02718280000000000000000"
+N24.16: "002718280000000000000000"
+N25.16: "0002718280000000000000000"
+N26.16: "00002718280000000000000000"
+N27.16: "000002718280000000000000000"
+N28.16: "0000002718280000000000000000"
+N29.16: "00000002718280000000000000000"
+N30.16: "000000002718280000000000000000"
+N31.16: "0000000002718280000000000000000"
+N32.16: "00000000002718280000000000000000"
+N33.16: "000000000002718280000000000000000"
+N34.16: "0000000000002718280000000000000000"
+N35.16: "00000000000002718280000000000000000"
+N36.16: "000000000000002718280000000000000000"
+N37.16: "0000000000000002718280000000000000000"
+N38.16: "00000000000000002718280000000000000000"
+N39.16: "000000000000000002718280000000000000000"
+N40.16: "0000000000000000002718280000000000000000"
 2718281
 N1.0: "*"
 N2.0: "**"
@@ -5924,75 +5924,75 @@ N17.14: "*****************"
 N18.14: "******************"
 N19.14: "*******************"
 N20.14: "********************"
-N21.14: "271828099999999983616"
-N22.14: "0271828099999999983616"
-N23.14: "00271828099999999983616"
-N24.14: "000271828099999999983616"
-N25.14: "0000271828099999999983616"
-N26.14: "00000271828099999999983616"
-N27.14: "000000271828099999999983616"
-N28.14: "0000000271828099999999983616"
-N29.14: "00000000271828099999999983616"
-N30.14: "000000000271828099999999983616"
-N31.14: "0000000000271828099999999983616"
-N32.14: "00000000000271828099999999983616"
-N33.14: "000000000000271828099999999983616"
-N34.14: "0000000000000271828099999999983616"
-N35.14: "00000000000000271828099999999983616"
-N36.14: "000000000000000271828099999999983616"
-N37.14: "0000000000000000271828099999999983616"
-N38.14: "00000000000000000271828099999999983616"
-N39.14: "000000000000000000271828099999999983616"
-N40.14: "0000000000000000000271828099999999983616"
+N21.14: "271828100000000000000"
+N22.14: "0271828100000000000000"
+N23.14: "00271828100000000000000"
+N24.14: "000271828100000000000000"
+N25.14: "0000271828100000000000000"
+N26.14: "00000271828100000000000000"
+N27.14: "000000271828100000000000000"
+N28.14: "0000000271828100000000000000"
+N29.14: "00000000271828100000000000000"
+N30.14: "000000000271828100000000000000"
+N31.14: "0000000000271828100000000000000"
+N32.14: "00000000000271828100000000000000"
+N33.14: "000000000000271828100000000000000"
+N34.14: "0000000000000271828100000000000000"
+N35.14: "00000000000000271828100000000000000"
+N36.14: "000000000000000271828100000000000000"
+N37.14: "0000000000000000271828100000000000000"
+N38.14: "00000000000000000271828100000000000000"
+N39.14: "000000000000000000271828100000000000000"
+N40.14: "0000000000000000000271828100000000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
 N19.15: "*******************"
 N20.15: "********************"
 N21.15: "*********************"
-N22.15: "2718280999999999836160"
-N23.15: "02718280999999999836160"
-N24.15: "002718280999999999836160"
-N25.15: "0002718280999999999836160"
-N26.15: "00002718280999999999836160"
-N27.15: "000002718280999999999836160"
-N28.15: "0000002718280999999999836160"
-N29.15: "00000002718280999999999836160"
-N30.15: "000000002718280999999999836160"
-N31.15: "0000000002718280999999999836160"
-N32.15: "00000000002718280999999999836160"
-N33.15: "000000000002718280999999999836160"
-N34.15: "0000000000002718280999999999836160"
-N35.15: "00000000000002718280999999999836160"
-N36.15: "000000000000002718280999999999836160"
-N37.15: "0000000000000002718280999999999836160"
-N38.15: "00000000000000002718280999999999836160"
-N39.15: "000000000000000002718280999999999836160"
-N40.15: "0000000000000000002718280999999999836160"
+N22.15: "2718281000000000000000"
+N23.15: "02718281000000000000000"
+N24.15: "002718281000000000000000"
+N25.15: "0002718281000000000000000"
+N26.15: "00002718281000000000000000"
+N27.15: "000002718281000000000000000"
+N28.15: "0000002718281000000000000000"
+N29.15: "00000002718281000000000000000"
+N30.15: "000000002718281000000000000000"
+N31.15: "0000000002718281000000000000000"
+N32.15: "00000000002718281000000000000000"
+N33.15: "000000000002718281000000000000000"
+N34.15: "0000000000002718281000000000000000"
+N35.15: "00000000000002718281000000000000000"
+N36.15: "000000000000002718281000000000000000"
+N37.15: "0000000000000002718281000000000000000"
+N38.15: "00000000000000002718281000000000000000"
+N39.15: "000000000000000002718281000000000000000"
+N40.15: "0000000000000000002718281000000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
 N20.16: "********************"
 N21.16: "*********************"
 N22.16: "**********************"
-N23.16: "27182809999999999410176"
-N24.16: "027182809999999999410176"
-N25.16: "0027182809999999999410176"
-N26.16: "00027182809999999999410176"
-N27.16: "000027182809999999999410176"
-N28.16: "0000027182809999999999410176"
-N29.16: "00000027182809999999999410176"
-N30.16: "000000027182809999999999410176"
-N31.16: "0000000027182809999999999410176"
-N32.16: "00000000027182809999999999410176"
-N33.16: "000000000027182809999999999410176"
-N34.16: "0000000000027182809999999999410176"
-N35.16: "00000000000027182809999999999410176"
-N36.16: "000000000000027182809999999999410176"
-N37.16: "0000000000000027182809999999999410176"
-N38.16: "00000000000000027182809999999999410176"
-N39.16: "000000000000000027182809999999999410176"
-N40.16: "0000000000000000027182809999999999410176"
+N23.16: "27182810000000000000000"
+N24.16: "027182810000000000000000"
+N25.16: "0027182810000000000000000"
+N26.16: "00027182810000000000000000"
+N27.16: "000027182810000000000000000"
+N28.16: "0000027182810000000000000000"
+N29.16: "00000027182810000000000000000"
+N30.16: "000000027182810000000000000000"
+N31.16: "0000000027182810000000000000000"
+N32.16: "00000000027182810000000000000000"
+N33.16: "000000000027182810000000000000000"
+N34.16: "0000000000027182810000000000000000"
+N35.16: "00000000000027182810000000000000000"
+N36.16: "000000000000027182810000000000000000"
+N37.16: "0000000000000027182810000000000000000"
+N38.16: "00000000000000027182810000000000000000"
+N39.16: "000000000000000027182810000000000000000"
+N40.16: "0000000000000000027182810000000000000000"
 2**39
 N1.0: "*"
 N2.0: "**"
@@ -17963,26 +17963,26 @@ N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
 N20.16: "********************"
-N21.16: "314158750000000008192"
-N22.16: "0314158750000000008192"
-N23.16: "00314158750000000008192"
-N24.16: "000314158750000000008192"
-N25.16: "0000314158750000000008192"
-N26.16: "00000314158750000000008192"
-N27.16: "000000314158750000000008192"
-N28.16: "0000000314158750000000008192"
-N29.16: "00000000314158750000000008192"
-N30.16: "000000000314158750000000008192"
-N31.16: "0000000000314158750000000008192"
-N32.16: "00000000000314158750000000008192"
-N33.16: "000000000000314158750000000008192"
-N34.16: "0000000000000314158750000000008192"
-N35.16: "00000000000000314158750000000008192"
-N36.16: "000000000000000314158750000000008192"
-N37.16: "0000000000000000314158750000000008192"
-N38.16: "00000000000000000314158750000000008192"
-N39.16: "000000000000000000314158750000000008192"
-N40.16: "0000000000000000000314158750000000008192"
+N21.16: "314158750000000000000"
+N22.16: "0314158750000000000000"
+N23.16: "00314158750000000000000"
+N24.16: "000314158750000000000000"
+N25.16: "0000314158750000000000000"
+N26.16: "00000314158750000000000000"
+N27.16: "000000314158750000000000000"
+N28.16: "0000000314158750000000000000"
+N29.16: "00000000314158750000000000000"
+N30.16: "000000000314158750000000000000"
+N31.16: "0000000000314158750000000000000"
+N32.16: "00000000000314158750000000000000"
+N33.16: "000000000000314158750000000000000"
+N34.16: "0000000000000314158750000000000000"
+N35.16: "00000000000000314158750000000000000"
+N36.16: "000000000000000314158750000000000000"
+N37.16: "0000000000000000314158750000000000000"
+N38.16: "00000000000000000314158750000000000000"
+N39.16: "000000000000000000314158750000000000000"
+N40.16: "0000000000000000000314158750000000000000"
 314159.25
 N1.0: "*"
 N2.0: "**"
@@ -18484,50 +18484,50 @@ N17.15: "*****************"
 N18.15: "******************"
 N19.15: "*******************"
 N20.15: "********************"
-N21.15: "314159249999999991808"
-N22.15: "0314159249999999991808"
-N23.15: "00314159249999999991808"
-N24.15: "000314159249999999991808"
-N25.15: "0000314159249999999991808"
-N26.15: "00000314159249999999991808"
-N27.15: "000000314159249999999991808"
-N28.15: "0000000314159249999999991808"
-N29.15: "00000000314159249999999991808"
-N30.15: "000000000314159249999999991808"
-N31.15: "0000000000314159249999999991808"
-N32.15: "00000000000314159249999999991808"
-N33.15: "000000000000314159249999999991808"
-N34.15: "0000000000000314159249999999991808"
-N35.15: "00000000000000314159249999999991808"
-N36.15: "000000000000000314159249999999991808"
-N37.15: "0000000000000000314159249999999991808"
-N38.15: "00000000000000000314159249999999991808"
-N39.15: "000000000000000000314159249999999991808"
-N40.15: "0000000000000000000314159249999999991808"
+N21.15: "314159250000000000000"
+N22.15: "0314159250000000000000"
+N23.15: "00314159250000000000000"
+N24.15: "000314159250000000000000"
+N25.15: "0000314159250000000000000"
+N26.15: "00000314159250000000000000"
+N27.15: "000000314159250000000000000"
+N28.15: "0000000314159250000000000000"
+N29.15: "00000000314159250000000000000"
+N30.15: "000000000314159250000000000000"
+N31.15: "0000000000314159250000000000000"
+N32.15: "00000000000314159250000000000000"
+N33.15: "000000000000314159250000000000000"
+N34.15: "0000000000000314159250000000000000"
+N35.15: "00000000000000314159250000000000000"
+N36.15: "000000000000000314159250000000000000"
+N37.15: "0000000000000000314159250000000000000"
+N38.15: "00000000000000000314159250000000000000"
+N39.15: "000000000000000000314159250000000000000"
+N40.15: "0000000000000000000314159250000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
 N20.16: "********************"
 N21.16: "*********************"
-N22.16: "3141592500000000049152"
-N23.16: "03141592500000000049152"
-N24.16: "003141592500000000049152"
-N25.16: "0003141592500000000049152"
-N26.16: "00003141592500000000049152"
-N27.16: "000003141592500000000049152"
-N28.16: "0000003141592500000000049152"
-N29.16: "00000003141592500000000049152"
-N30.16: "000000003141592500000000049152"
-N31.16: "0000000003141592500000000049152"
-N32.16: "00000000003141592500000000049152"
-N33.16: "000000000003141592500000000049152"
-N34.16: "0000000000003141592500000000049152"
-N35.16: "00000000000003141592500000000049152"
-N36.16: "000000000000003141592500000000049152"
-N37.16: "0000000000000003141592500000000049152"
-N38.16: "00000000000000003141592500000000049152"
-N39.16: "000000000000000003141592500000000049152"
-N40.16: "0000000000000000003141592500000000049152"
+N22.16: "3141592500000000000000"
+N23.16: "03141592500000000000000"
+N24.16: "003141592500000000000000"
+N25.16: "0003141592500000000000000"
+N26.16: "00003141592500000000000000"
+N27.16: "000003141592500000000000000"
+N28.16: "0000003141592500000000000000"
+N29.16: "00000003141592500000000000000"
+N30.16: "000000003141592500000000000000"
+N31.16: "0000000003141592500000000000000"
+N32.16: "00000000003141592500000000000000"
+N33.16: "000000000003141592500000000000000"
+N34.16: "0000000000003141592500000000000000"
+N35.16: "00000000000003141592500000000000000"
+N36.16: "000000000000003141592500000000000000"
+N37.16: "0000000000000003141592500000000000000"
+N38.16: "00000000000000003141592500000000000000"
+N39.16: "000000000000000003141592500000000000000"
+N40.16: "0000000000000000003141592500000000000000"
 3141592.625
 N1.0: "*"
 N2.0: "**"
@@ -18977,102 +18977,102 @@ N16.13: "****************"
 N17.13: "*****************"
 N18.13: "******************"
 N19.13: "*******************"
-N20.13: "31415926249999998976"
-N21.13: "031415926249999998976"
-N22.13: "0031415926249999998976"
-N23.13: "00031415926249999998976"
-N24.13: "000031415926249999998976"
-N25.13: "0000031415926249999998976"
-N26.13: "00000031415926249999998976"
-N27.13: "000000031415926249999998976"
-N28.13: "0000000031415926249999998976"
-N29.13: "00000000031415926249999998976"
-N30.13: "000000000031415926249999998976"
-N31.13: "0000000000031415926249999998976"
-N32.13: "00000000000031415926249999998976"
-N33.13: "000000000000031415926249999998976"
-N34.13: "0000000000000031415926249999998976"
-N35.13: "00000000000000031415926249999998976"
-N36.13: "000000000000000031415926249999998976"
-N37.13: "0000000000000000031415926249999998976"
-N38.13: "00000000000000000031415926249999998976"
-N39.13: "000000000000000000031415926249999998976"
-N40.13: "0000000000000000000031415926249999998976"
+N20.13: "31415926250000000000"
+N21.13: "031415926250000000000"
+N22.13: "0031415926250000000000"
+N23.13: "00031415926250000000000"
+N24.13: "000031415926250000000000"
+N25.13: "0000031415926250000000000"
+N26.13: "00000031415926250000000000"
+N27.13: "000000031415926250000000000"
+N28.13: "0000000031415926250000000000"
+N29.13: "00000000031415926250000000000"
+N30.13: "000000000031415926250000000000"
+N31.13: "0000000000031415926250000000000"
+N32.13: "00000000000031415926250000000000"
+N33.13: "000000000000031415926250000000000"
+N34.13: "0000000000000031415926250000000000"
+N35.13: "00000000000000031415926250000000000"
+N36.13: "000000000000000031415926250000000000"
+N37.13: "0000000000000000031415926250000000000"
+N38.13: "00000000000000000031415926250000000000"
+N39.13: "000000000000000000031415926250000000000"
+N40.13: "0000000000000000000031415926250000000000"
 N15.14: "***************"
 N16.14: "****************"
 N17.14: "*****************"
 N18.14: "******************"
 N19.14: "*******************"
 N20.14: "********************"
-N21.14: "314159262499999973376"
-N22.14: "0314159262499999973376"
-N23.14: "00314159262499999973376"
-N24.14: "000314159262499999973376"
-N25.14: "0000314159262499999973376"
-N26.14: "00000314159262499999973376"
-N27.14: "000000314159262499999973376"
-N28.14: "0000000314159262499999973376"
-N29.14: "00000000314159262499999973376"
-N30.14: "000000000314159262499999973376"
-N31.14: "0000000000314159262499999973376"
-N32.14: "00000000000314159262499999973376"
-N33.14: "000000000000314159262499999973376"
-N34.14: "0000000000000314159262499999973376"
-N35.14: "00000000000000314159262499999973376"
-N36.14: "000000000000000314159262499999973376"
-N37.14: "0000000000000000314159262499999973376"
-N38.14: "00000000000000000314159262499999973376"
-N39.14: "000000000000000000314159262499999973376"
-N40.14: "0000000000000000000314159262499999973376"
+N21.14: "314159262500000000000"
+N22.14: "0314159262500000000000"
+N23.14: "00314159262500000000000"
+N24.14: "000314159262500000000000"
+N25.14: "0000314159262500000000000"
+N26.14: "00000314159262500000000000"
+N27.14: "000000314159262500000000000"
+N28.14: "0000000314159262500000000000"
+N29.14: "00000000314159262500000000000"
+N30.14: "000000000314159262500000000000"
+N31.14: "0000000000314159262500000000000"
+N32.14: "00000000000314159262500000000000"
+N33.14: "000000000000314159262500000000000"
+N34.14: "0000000000000314159262500000000000"
+N35.14: "00000000000000314159262500000000000"
+N36.14: "000000000000000314159262500000000000"
+N37.14: "0000000000000000314159262500000000000"
+N38.14: "00000000000000000314159262500000000000"
+N39.14: "000000000000000000314159262500000000000"
+N40.14: "0000000000000000000314159262500000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
 N19.15: "*******************"
 N20.15: "********************"
 N21.15: "*********************"
-N22.15: "3141592624999999995904"
-N23.15: "03141592624999999995904"
-N24.15: "003141592624999999995904"
-N25.15: "0003141592624999999995904"
-N26.15: "00003141592624999999995904"
-N27.15: "000003141592624999999995904"
-N28.15: "0000003141592624999999995904"
-N29.15: "00000003141592624999999995904"
-N30.15: "000000003141592624999999995904"
-N31.15: "0000000003141592624999999995904"
-N32.15: "00000000003141592624999999995904"
-N33.15: "000000000003141592624999999995904"
-N34.15: "0000000000003141592624999999995904"
-N35.15: "00000000000003141592624999999995904"
-N36.15: "000000000000003141592624999999995904"
-N37.15: "0000000000000003141592624999999995904"
-N38.15: "00000000000000003141592624999999995904"
-N39.15: "000000000000000003141592624999999995904"
-N40.15: "0000000000000000003141592624999999995904"
+N22.15: "3141592625000000000000"
+N23.15: "03141592625000000000000"
+N24.15: "003141592625000000000000"
+N25.15: "0003141592625000000000000"
+N26.15: "00003141592625000000000000"
+N27.15: "000003141592625000000000000"
+N28.15: "0000003141592625000000000000"
+N29.15: "00000003141592625000000000000"
+N30.15: "000000003141592625000000000000"
+N31.15: "0000000003141592625000000000000"
+N32.15: "00000000003141592625000000000000"
+N33.15: "000000000003141592625000000000000"
+N34.15: "0000000000003141592625000000000000"
+N35.15: "00000000000003141592625000000000000"
+N36.15: "000000000000003141592625000000000000"
+N37.15: "0000000000000003141592625000000000000"
+N38.15: "00000000000000003141592625000000000000"
+N39.15: "000000000000000003141592625000000000000"
+N40.15: "0000000000000000003141592625000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
 N20.16: "********************"
 N21.16: "*********************"
 N22.16: "**********************"
-N23.16: "31415926250000001007616"
-N24.16: "031415926250000001007616"
-N25.16: "0031415926250000001007616"
-N26.16: "00031415926250000001007616"
-N27.16: "000031415926250000001007616"
-N28.16: "0000031415926250000001007616"
-N29.16: "00000031415926250000001007616"
-N30.16: "000000031415926250000001007616"
-N31.16: "0000000031415926250000001007616"
-N32.16: "00000000031415926250000001007616"
-N33.16: "000000000031415926250000001007616"
-N34.16: "0000000000031415926250000001007616"
-N35.16: "00000000000031415926250000001007616"
-N36.16: "000000000000031415926250000001007616"
-N37.16: "0000000000000031415926250000001007616"
-N38.16: "00000000000000031415926250000001007616"
-N39.16: "000000000000000031415926250000001007616"
-N40.16: "0000000000000000031415926250000001007616"
+N23.16: "31415926250000000000000"
+N24.16: "031415926250000000000000"
+N25.16: "0031415926250000000000000"
+N26.16: "00031415926250000000000000"
+N27.16: "000031415926250000000000000"
+N28.16: "0000031415926250000000000000"
+N29.16: "00000031415926250000000000000"
+N30.16: "000000031415926250000000000000"
+N31.16: "0000000031415926250000000000000"
+N32.16: "00000000031415926250000000000000"
+N33.16: "000000000031415926250000000000000"
+N34.16: "0000000000031415926250000000000000"
+N35.16: "00000000000031415926250000000000000"
+N36.16: "000000000000031415926250000000000000"
+N37.16: "0000000000000031415926250000000000000"
+N38.16: "00000000000000031415926250000000000000"
+N39.16: "000000000000000031415926250000000000000"
+N40.16: "0000000000000000031415926250000000000000"
 31415926.5
 N1.0: "*"
 N2.0: "**"
@@ -19495,27 +19495,27 @@ N16.12: "****************"
 N17.12: "*****************"
 N18.12: "******************"
 N19.12: "*******************"
-N20.12: "31415926499999997952"
-N21.12: "031415926499999997952"
-N22.12: "0031415926499999997952"
-N23.12: "00031415926499999997952"
-N24.12: "000031415926499999997952"
-N25.12: "0000031415926499999997952"
-N26.12: "00000031415926499999997952"
-N27.12: "000000031415926499999997952"
-N28.12: "0000000031415926499999997952"
-N29.12: "00000000031415926499999997952"
-N30.12: "000000000031415926499999997952"
-N31.12: "0000000000031415926499999997952"
-N32.12: "00000000000031415926499999997952"
-N33.12: "000000000000031415926499999997952"
-N34.12: "0000000000000031415926499999997952"
-N35.12: "00000000000000031415926499999997952"
-N36.12: "000000000000000031415926499999997952"
-N37.12: "0000000000000000031415926499999997952"
-N38.12: "00000000000000000031415926499999997952"
-N39.12: "000000000000000000031415926499999997952"
-N40.12: "0000000000000000000031415926499999997952"
+N20.12: "31415926500000000000"
+N21.12: "031415926500000000000"
+N22.12: "0031415926500000000000"
+N23.12: "00031415926500000000000"
+N24.12: "000031415926500000000000"
+N25.12: "0000031415926500000000000"
+N26.12: "00000031415926500000000000"
+N27.12: "000000031415926500000000000"
+N28.12: "0000000031415926500000000000"
+N29.12: "00000000031415926500000000000"
+N30.12: "000000000031415926500000000000"
+N31.12: "0000000000031415926500000000000"
+N32.12: "00000000000031415926500000000000"
+N33.12: "000000000000031415926500000000000"
+N34.12: "0000000000000031415926500000000000"
+N35.12: "00000000000000031415926500000000000"
+N36.12: "000000000000000031415926500000000000"
+N37.12: "0000000000000000031415926500000000000"
+N38.12: "00000000000000000031415926500000000000"
+N39.12: "000000000000000000031415926500000000000"
+N40.12: "0000000000000000000031415926500000000000"
 N14.13: "**************"
 N15.13: "***************"
 N16.13: "****************"
@@ -19523,26 +19523,26 @@ N17.13: "*****************"
 N18.13: "******************"
 N19.13: "*******************"
 N20.13: "********************"
-N21.13: "314159264999999995904"
-N22.13: "0314159264999999995904"
-N23.13: "00314159264999999995904"
-N24.13: "000314159264999999995904"
-N25.13: "0000314159264999999995904"
-N26.13: "00000314159264999999995904"
-N27.13: "000000314159264999999995904"
-N28.13: "0000000314159264999999995904"
-N29.13: "00000000314159264999999995904"
-N30.13: "000000000314159264999999995904"
-N31.13: "0000000000314159264999999995904"
-N32.13: "00000000000314159264999999995904"
-N33.13: "000000000000314159264999999995904"
-N34.13: "0000000000000314159264999999995904"
-N35.13: "00000000000000314159264999999995904"
-N36.13: "000000000000000314159264999999995904"
-N37.13: "0000000000000000314159264999999995904"
-N38.13: "00000000000000000314159264999999995904"
-N39.13: "000000000000000000314159264999999995904"
-N40.13: "0000000000000000000314159264999999995904"
+N21.13: "314159265000000000000"
+N22.13: "0314159265000000000000"
+N23.13: "00314159265000000000000"
+N24.13: "000314159265000000000000"
+N25.13: "0000314159265000000000000"
+N26.13: "00000314159265000000000000"
+N27.13: "000000314159265000000000000"
+N28.13: "0000000314159265000000000000"
+N29.13: "00000000314159265000000000000"
+N30.13: "000000000314159265000000000000"
+N31.13: "0000000000314159265000000000000"
+N32.13: "00000000000314159265000000000000"
+N33.13: "000000000000314159265000000000000"
+N34.13: "0000000000000314159265000000000000"
+N35.13: "00000000000000314159265000000000000"
+N36.13: "000000000000000314159265000000000000"
+N37.13: "0000000000000000314159265000000000000"
+N38.13: "00000000000000000314159265000000000000"
+N39.13: "000000000000000000314159265000000000000"
+N40.13: "0000000000000000000314159265000000000000"
 N15.14: "***************"
 N16.14: "****************"
 N17.14: "*****************"
@@ -19550,25 +19550,25 @@ N18.14: "******************"
 N19.14: "*******************"
 N20.14: "********************"
 N21.14: "*********************"
-N22.14: "3141592650000000090112"
-N23.14: "03141592650000000090112"
-N24.14: "003141592650000000090112"
-N25.14: "0003141592650000000090112"
-N26.14: "00003141592650000000090112"
-N27.14: "000003141592650000000090112"
-N28.14: "0000003141592650000000090112"
-N29.14: "00000003141592650000000090112"
-N30.14: "000000003141592650000000090112"
-N31.14: "0000000003141592650000000090112"
-N32.14: "00000000003141592650000000090112"
-N33.14: "000000000003141592650000000090112"
-N34.14: "0000000000003141592650000000090112"
-N35.14: "00000000000003141592650000000090112"
-N36.14: "000000000000003141592650000000090112"
-N37.14: "0000000000000003141592650000000090112"
-N38.14: "00000000000000003141592650000000090112"
-N39.14: "000000000000000003141592650000000090112"
-N40.14: "0000000000000000003141592650000000090112"
+N22.14: "3141592650000000000000"
+N23.14: "03141592650000000000000"
+N24.14: "003141592650000000000000"
+N25.14: "0003141592650000000000000"
+N26.14: "00003141592650000000000000"
+N27.14: "000003141592650000000000000"
+N28.14: "0000003141592650000000000000"
+N29.14: "00000003141592650000000000000"
+N30.14: "000000003141592650000000000000"
+N31.14: "0000000003141592650000000000000"
+N32.14: "00000000003141592650000000000000"
+N33.14: "000000000003141592650000000000000"
+N34.14: "0000000000003141592650000000000000"
+N35.14: "00000000000003141592650000000000000"
+N36.14: "000000000000003141592650000000000000"
+N37.14: "0000000000000003141592650000000000000"
+N38.14: "00000000000000003141592650000000000000"
+N39.14: "000000000000000003141592650000000000000"
+N40.14: "0000000000000000003141592650000000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
@@ -19576,24 +19576,24 @@ N19.15: "*******************"
 N20.15: "********************"
 N21.15: "*********************"
 N22.15: "**********************"
-N23.15: "31415926500000001949696"
-N24.15: "031415926500000001949696"
-N25.15: "0031415926500000001949696"
-N26.15: "00031415926500000001949696"
-N27.15: "000031415926500000001949696"
-N28.15: "0000031415926500000001949696"
-N29.15: "00000031415926500000001949696"
-N30.15: "000000031415926500000001949696"
-N31.15: "0000000031415926500000001949696"
-N32.15: "00000000031415926500000001949696"
-N33.15: "000000000031415926500000001949696"
-N34.15: "0000000000031415926500000001949696"
-N35.15: "00000000000031415926500000001949696"
-N36.15: "000000000000031415926500000001949696"
-N37.15: "0000000000000031415926500000001949696"
-N38.15: "00000000000000031415926500000001949696"
-N39.15: "000000000000000031415926500000001949696"
-N40.15: "0000000000000000031415926500000001949696"
+N23.15: "31415926500000000000000"
+N24.15: "031415926500000000000000"
+N25.15: "0031415926500000000000000"
+N26.15: "00031415926500000000000000"
+N27.15: "000031415926500000000000000"
+N28.15: "0000031415926500000000000000"
+N29.15: "00000031415926500000000000000"
+N30.15: "000000031415926500000000000000"
+N31.15: "0000000031415926500000000000000"
+N32.15: "00000000031415926500000000000000"
+N33.15: "000000000031415926500000000000000"
+N34.15: "0000000000031415926500000000000000"
+N35.15: "00000000000031415926500000000000000"
+N36.15: "000000000000031415926500000000000000"
+N37.15: "0000000000000031415926500000000000000"
+N38.15: "00000000000000031415926500000000000000"
+N39.15: "000000000000000031415926500000000000000"
+N40.15: "0000000000000000031415926500000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
@@ -19601,23 +19601,23 @@ N20.16: "********************"
 N21.16: "*********************"
 N22.16: "**********************"
 N23.16: "***********************"
-N24.16: "314159264999999985942528"
-N25.16: "0314159264999999985942528"
-N26.16: "00314159264999999985942528"
-N27.16: "000314159264999999985942528"
-N28.16: "0000314159264999999985942528"
-N29.16: "00000314159264999999985942528"
-N30.16: "000000314159264999999985942528"
-N31.16: "0000000314159264999999985942528"
-N32.16: "00000000314159264999999985942528"
-N33.16: "000000000314159264999999985942528"
-N34.16: "0000000000314159264999999985942528"
-N35.16: "00000000000314159264999999985942528"
-N36.16: "000000000000314159264999999985942528"
-N37.16: "0000000000000314159264999999985942528"
-N38.16: "00000000000000314159264999999985942528"
-N39.16: "000000000000000314159264999999985942528"
-N40.16: "0000000000000000314159264999999985942528"
+N24.16: "314159265000000000000000"
+N25.16: "0314159265000000000000000"
+N26.16: "00314159265000000000000000"
+N27.16: "000314159265000000000000000"
+N28.16: "0000314159265000000000000000"
+N29.16: "00000314159265000000000000000"
+N30.16: "000000314159265000000000000000"
+N31.16: "0000000314159265000000000000000"
+N32.16: "00000000314159265000000000000000"
+N33.16: "000000000314159265000000000000000"
+N34.16: "0000000000314159265000000000000000"
+N35.16: "00000000000314159265000000000000000"
+N36.16: "000000000000314159265000000000000000"
+N37.16: "0000000000000314159265000000000000000"
+N38.16: "00000000000000314159265000000000000000"
+N39.16: "000000000000000314159265000000000000000"
+N40.16: "0000000000000000314159265000000000000000"
 271828182.25
 N1.0: "*"
 N2.0: "**"
@@ -19982,28 +19982,28 @@ N15.10: "***************"
 N16.10: "****************"
 N17.10: "*****************"
 N18.10: "******************"
-N19.10: "2718281822499999744"
-N20.10: "02718281822499999744"
-N21.10: "002718281822499999744"
-N22.10: "0002718281822499999744"
-N23.10: "00002718281822499999744"
-N24.10: "000002718281822499999744"
-N25.10: "0000002718281822499999744"
-N26.10: "00000002718281822499999744"
-N27.10: "000000002718281822499999744"
-N28.10: "0000000002718281822499999744"
-N29.10: "00000000002718281822499999744"
-N30.10: "000000000002718281822499999744"
-N31.10: "0000000000002718281822499999744"
-N32.10: "00000000000002718281822499999744"
-N33.10: "000000000000002718281822499999744"
-N34.10: "0000000000000002718281822499999744"
-N35.10: "00000000000000002718281822499999744"
-N36.10: "000000000000000002718281822499999744"
-N37.10: "0000000000000000002718281822499999744"
-N38.10: "00000000000000000002718281822499999744"
-N39.10: "000000000000000000002718281822499999744"
-N40.10: "0000000000000000000002718281822499999744"
+N19.10: "2718281822500000000"
+N20.10: "02718281822500000000"
+N21.10: "002718281822500000000"
+N22.10: "0002718281822500000000"
+N23.10: "00002718281822500000000"
+N24.10: "000002718281822500000000"
+N25.10: "0000002718281822500000000"
+N26.10: "00000002718281822500000000"
+N27.10: "000000002718281822500000000"
+N28.10: "0000000002718281822500000000"
+N29.10: "00000000002718281822500000000"
+N30.10: "000000000002718281822500000000"
+N31.10: "0000000000002718281822500000000"
+N32.10: "00000000000002718281822500000000"
+N33.10: "000000000000002718281822500000000"
+N34.10: "0000000000000002718281822500000000"
+N35.10: "00000000000000002718281822500000000"
+N36.10: "000000000000000002718281822500000000"
+N37.10: "0000000000000000002718281822500000000"
+N38.10: "00000000000000000002718281822500000000"
+N39.10: "000000000000000000002718281822500000000"
+N40.10: "0000000000000000000002718281822500000000"
 N12.11: "************"
 N13.11: "*************"
 N14.11: "**************"
@@ -20012,27 +20012,27 @@ N16.11: "****************"
 N17.11: "*****************"
 N18.11: "******************"
 N19.11: "*******************"
-N20.11: "27182818225000001536"
-N21.11: "027182818225000001536"
-N22.11: "0027182818225000001536"
-N23.11: "00027182818225000001536"
-N24.11: "000027182818225000001536"
-N25.11: "0000027182818225000001536"
-N26.11: "00000027182818225000001536"
-N27.11: "000000027182818225000001536"
-N28.11: "0000000027182818225000001536"
-N29.11: "00000000027182818225000001536"
-N30.11: "000000000027182818225000001536"
-N31.11: "0000000000027182818225000001536"
-N32.11: "00000000000027182818225000001536"
-N33.11: "000000000000027182818225000001536"
-N34.11: "0000000000000027182818225000001536"
-N35.11: "00000000000000027182818225000001536"
-N36.11: "000000000000000027182818225000001536"
-N37.11: "0000000000000000027182818225000001536"
-N38.11: "00000000000000000027182818225000001536"
-N39.11: "000000000000000000027182818225000001536"
-N40.11: "0000000000000000000027182818225000001536"
+N20.11: "27182818225000000000"
+N21.11: "027182818225000000000"
+N22.11: "0027182818225000000000"
+N23.11: "00027182818225000000000"
+N24.11: "000027182818225000000000"
+N25.11: "0000027182818225000000000"
+N26.11: "00000027182818225000000000"
+N27.11: "000000027182818225000000000"
+N28.11: "0000000027182818225000000000"
+N29.11: "00000000027182818225000000000"
+N30.11: "000000000027182818225000000000"
+N31.11: "0000000000027182818225000000000"
+N32.11: "00000000000027182818225000000000"
+N33.11: "000000000000027182818225000000000"
+N34.11: "0000000000000027182818225000000000"
+N35.11: "00000000000000027182818225000000000"
+N36.11: "000000000000000027182818225000000000"
+N37.11: "0000000000000000027182818225000000000"
+N38.11: "00000000000000000027182818225000000000"
+N39.11: "000000000000000000027182818225000000000"
+N40.11: "0000000000000000000027182818225000000000"
 N13.12: "*************"
 N14.12: "**************"
 N15.12: "***************"
@@ -20041,26 +20041,26 @@ N17.12: "*****************"
 N18.12: "******************"
 N19.12: "*******************"
 N20.12: "********************"
-N21.12: "271828182249999990784"
-N22.12: "0271828182249999990784"
-N23.12: "00271828182249999990784"
-N24.12: "000271828182249999990784"
-N25.12: "0000271828182249999990784"
-N26.12: "00000271828182249999990784"
-N27.12: "000000271828182249999990784"
-N28.12: "0000000271828182249999990784"
-N29.12: "00000000271828182249999990784"
-N30.12: "000000000271828182249999990784"
-N31.12: "0000000000271828182249999990784"
-N32.12: "00000000000271828182249999990784"
-N33.12: "000000000000271828182249999990784"
-N34.12: "0000000000000271828182249999990784"
-N35.12: "00000000000000271828182249999990784"
-N36.12: "000000000000000271828182249999990784"
-N37.12: "0000000000000000271828182249999990784"
-N38.12: "00000000000000000271828182249999990784"
-N39.12: "000000000000000000271828182249999990784"
-N40.12: "0000000000000000000271828182249999990784"
+N21.12: "271828182250000000000"
+N22.12: "0271828182250000000000"
+N23.12: "00271828182250000000000"
+N24.12: "000271828182250000000000"
+N25.12: "0000271828182250000000000"
+N26.12: "00000271828182250000000000"
+N27.12: "000000271828182250000000000"
+N28.12: "0000000271828182250000000000"
+N29.12: "00000000271828182250000000000"
+N30.12: "000000000271828182250000000000"
+N31.12: "0000000000271828182250000000000"
+N32.12: "00000000000271828182250000000000"
+N33.12: "000000000000271828182250000000000"
+N34.12: "0000000000000271828182250000000000"
+N35.12: "00000000000000271828182250000000000"
+N36.12: "000000000000000271828182250000000000"
+N37.12: "0000000000000000271828182250000000000"
+N38.12: "00000000000000000271828182250000000000"
+N39.12: "000000000000000000271828182250000000000"
+N40.12: "0000000000000000000271828182250000000000"
 N14.13: "**************"
 N15.13: "***************"
 N16.13: "****************"
@@ -20069,25 +20069,25 @@ N18.13: "******************"
 N19.13: "*******************"
 N20.13: "********************"
 N21.13: "*********************"
-N22.13: "2718281822500000104448"
-N23.13: "02718281822500000104448"
-N24.13: "002718281822500000104448"
-N25.13: "0002718281822500000104448"
-N26.13: "00002718281822500000104448"
-N27.13: "000002718281822500000104448"
-N28.13: "0000002718281822500000104448"
-N29.13: "00000002718281822500000104448"
-N30.13: "000000002718281822500000104448"
-N31.13: "0000000002718281822500000104448"
-N32.13: "00000000002718281822500000104448"
-N33.13: "000000000002718281822500000104448"
-N34.13: "0000000000002718281822500000104448"
-N35.13: "00000000000002718281822500000104448"
-N36.13: "000000000000002718281822500000104448"
-N37.13: "0000000000000002718281822500000104448"
-N38.13: "00000000000000002718281822500000104448"
-N39.13: "000000000000000002718281822500000104448"
-N40.13: "0000000000000000002718281822500000104448"
+N22.13: "2718281822500000000000"
+N23.13: "02718281822500000000000"
+N24.13: "002718281822500000000000"
+N25.13: "0002718281822500000000000"
+N26.13: "00002718281822500000000000"
+N27.13: "000002718281822500000000000"
+N28.13: "0000002718281822500000000000"
+N29.13: "00000002718281822500000000000"
+N30.13: "000000002718281822500000000000"
+N31.13: "0000000002718281822500000000000"
+N32.13: "00000000002718281822500000000000"
+N33.13: "000000000002718281822500000000000"
+N34.13: "0000000000002718281822500000000000"
+N35.13: "00000000000002718281822500000000000"
+N36.13: "000000000000002718281822500000000000"
+N37.13: "0000000000000002718281822500000000000"
+N38.13: "00000000000000002718281822500000000000"
+N39.13: "000000000000000002718281822500000000000"
+N40.13: "0000000000000000002718281822500000000000"
 N15.14: "***************"
 N16.14: "****************"
 N17.14: "*****************"
@@ -20096,24 +20096,24 @@ N19.14: "*******************"
 N20.14: "********************"
 N21.14: "*********************"
 N22.14: "**********************"
-N23.14: "27182818224999998947328"
-N24.14: "027182818224999998947328"
-N25.14: "0027182818224999998947328"
-N26.14: "00027182818224999998947328"
-N27.14: "000027182818224999998947328"
-N28.14: "0000027182818224999998947328"
-N29.14: "00000027182818224999998947328"
-N30.14: "000000027182818224999998947328"
-N31.14: "0000000027182818224999998947328"
-N32.14: "00000000027182818224999998947328"
-N33.14: "000000000027182818224999998947328"
-N34.14: "0000000000027182818224999998947328"
-N35.14: "00000000000027182818224999998947328"
-N36.14: "000000000000027182818224999998947328"
-N37.14: "0000000000000027182818224999998947328"
-N38.14: "00000000000000027182818224999998947328"
-N39.14: "000000000000000027182818224999998947328"
-N40.14: "0000000000000000027182818224999998947328"
+N23.14: "27182818225000000000000"
+N24.14: "027182818225000000000000"
+N25.14: "0027182818225000000000000"
+N26.14: "00027182818225000000000000"
+N27.14: "000027182818225000000000000"
+N28.14: "0000027182818225000000000000"
+N29.14: "00000027182818225000000000000"
+N30.14: "000000027182818225000000000000"
+N31.14: "0000000027182818225000000000000"
+N32.14: "00000000027182818225000000000000"
+N33.14: "000000000027182818225000000000000"
+N34.14: "0000000000027182818225000000000000"
+N35.14: "00000000000027182818225000000000000"
+N36.14: "000000000000027182818225000000000000"
+N37.14: "0000000000000027182818225000000000000"
+N38.14: "00000000000000027182818225000000000000"
+N39.14: "000000000000000027182818225000000000000"
+N40.14: "0000000000000000027182818225000000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
@@ -20122,23 +20122,23 @@ N20.15: "********************"
 N21.15: "*********************"
 N22.15: "**********************"
 N23.15: "***********************"
-N24.15: "271828182250000014639104"
-N25.15: "0271828182250000014639104"
-N26.15: "00271828182250000014639104"
-N27.15: "000271828182250000014639104"
-N28.15: "0000271828182250000014639104"
-N29.15: "00000271828182250000014639104"
-N30.15: "000000271828182250000014639104"
-N31.15: "0000000271828182250000014639104"
-N32.15: "00000000271828182250000014639104"
-N33.15: "000000000271828182250000014639104"
-N34.15: "0000000000271828182250000014639104"
-N35.15: "00000000000271828182250000014639104"
-N36.15: "000000000000271828182250000014639104"
-N37.15: "0000000000000271828182250000014639104"
-N38.15: "00000000000000271828182250000014639104"
-N39.15: "000000000000000271828182250000014639104"
-N40.15: "0000000000000000271828182250000014639104"
+N24.15: "271828182250000000000000"
+N25.15: "0271828182250000000000000"
+N26.15: "00271828182250000000000000"
+N27.15: "000271828182250000000000000"
+N28.15: "0000271828182250000000000000"
+N29.15: "00000271828182250000000000000"
+N30.15: "000000271828182250000000000000"
+N31.15: "0000000271828182250000000000000"
+N32.15: "00000000271828182250000000000000"
+N33.15: "000000000271828182250000000000000"
+N34.15: "0000000000271828182250000000000000"
+N35.15: "00000000000271828182250000000000000"
+N36.15: "000000000000271828182250000000000000"
+N37.15: "0000000000000271828182250000000000000"
+N38.15: "00000000000000271828182250000000000000"
+N39.15: "000000000000000271828182250000000000000"
+N40.15: "0000000000000000271828182250000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
@@ -20147,22 +20147,22 @@ N21.16: "*********************"
 N22.16: "**********************"
 N23.16: "***********************"
 N24.16: "************************"
-N25.16: "2718281822499999810846720"
-N26.16: "02718281822499999810846720"
-N27.16: "002718281822499999810846720"
-N28.16: "0002718281822499999810846720"
-N29.16: "00002718281822499999810846720"
-N30.16: "000002718281822499999810846720"
-N31.16: "0000002718281822499999810846720"
-N32.16: "00000002718281822499999810846720"
-N33.16: "000000002718281822499999810846720"
-N34.16: "0000000002718281822499999810846720"
-N35.16: "00000000002718281822499999810846720"
-N36.16: "000000000002718281822499999810846720"
-N37.16: "0000000000002718281822499999810846720"
-N38.16: "00000000000002718281822499999810846720"
-N39.16: "000000000000002718281822499999810846720"
-N40.16: "0000000000000002718281822499999810846720"
+N25.16: "2718281822500000000000000"
+N26.16: "02718281822500000000000000"
+N27.16: "002718281822500000000000000"
+N28.16: "0002718281822500000000000000"
+N29.16: "00002718281822500000000000000"
+N30.16: "000002718281822500000000000000"
+N31.16: "0000002718281822500000000000000"
+N32.16: "00000002718281822500000000000000"
+N33.16: "000000002718281822500000000000000"
+N34.16: "0000000002718281822500000000000000"
+N35.16: "00000000002718281822500000000000000"
+N36.16: "000000000002718281822500000000000000"
+N37.16: "0000000000002718281822500000000000000"
+N38.16: "00000000000002718281822500000000000000"
+N39.16: "000000000000002718281822500000000000000"
+N40.16: "0000000000000002718281822500000000000000"
 3214567890.5
 N1.0: "*"
 N2.0: "**"
@@ -20497,28 +20497,28 @@ N15.9: "***************"
 N16.9: "****************"
 N17.9: "*****************"
 N18.9: "******************"
-N19.9: "3214567890499999744"
-N20.9: "03214567890499999744"
-N21.9: "003214567890499999744"
-N22.9: "0003214567890499999744"
-N23.9: "00003214567890499999744"
-N24.9: "000003214567890499999744"
-N25.9: "0000003214567890499999744"
-N26.9: "00000003214567890499999744"
-N27.9: "000000003214567890499999744"
-N28.9: "0000000003214567890499999744"
-N29.9: "00000000003214567890499999744"
-N30.9: "000000000003214567890499999744"
-N31.9: "0000000000003214567890499999744"
-N32.9: "00000000000003214567890499999744"
-N33.9: "000000000000003214567890499999744"
-N34.9: "0000000000000003214567890499999744"
-N35.9: "00000000000000003214567890499999744"
-N36.9: "000000000000000003214567890499999744"
-N37.9: "0000000000000000003214567890499999744"
-N38.9: "00000000000000000003214567890499999744"
-N39.9: "000000000000000000003214567890499999744"
-N40.9: "0000000000000000000003214567890499999744"
+N19.9: "3214567890500000000"
+N20.9: "03214567890500000000"
+N21.9: "003214567890500000000"
+N22.9: "0003214567890500000000"
+N23.9: "00003214567890500000000"
+N24.9: "000003214567890500000000"
+N25.9: "0000003214567890500000000"
+N26.9: "00000003214567890500000000"
+N27.9: "000000003214567890500000000"
+N28.9: "0000000003214567890500000000"
+N29.9: "00000000003214567890500000000"
+N30.9: "000000000003214567890500000000"
+N31.9: "0000000000003214567890500000000"
+N32.9: "00000000000003214567890500000000"
+N33.9: "000000000000003214567890500000000"
+N34.9: "0000000000000003214567890500000000"
+N35.9: "00000000000000003214567890500000000"
+N36.9: "000000000000000003214567890500000000"
+N37.9: "0000000000000000003214567890500000000"
+N38.9: "00000000000000000003214567890500000000"
+N39.9: "000000000000000000003214567890500000000"
+N40.9: "0000000000000000000003214567890500000000"
 N11.10: "***********"
 N12.10: "************"
 N13.10: "*************"
@@ -20528,27 +20528,27 @@ N16.10: "****************"
 N17.10: "*****************"
 N18.10: "******************"
 N19.10: "*******************"
-N20.10: "32145678905000001536"
-N21.10: "032145678905000001536"
-N22.10: "0032145678905000001536"
-N23.10: "00032145678905000001536"
-N24.10: "000032145678905000001536"
-N25.10: "0000032145678905000001536"
-N26.10: "00000032145678905000001536"
-N27.10: "000000032145678905000001536"
-N28.10: "0000000032145678905000001536"
-N29.10: "00000000032145678905000001536"
-N30.10: "000000000032145678905000001536"
-N31.10: "0000000000032145678905000001536"
-N32.10: "00000000000032145678905000001536"
-N33.10: "000000000000032145678905000001536"
-N34.10: "0000000000000032145678905000001536"
-N35.10: "00000000000000032145678905000001536"
-N36.10: "000000000000000032145678905000001536"
-N37.10: "0000000000000000032145678905000001536"
-N38.10: "00000000000000000032145678905000001536"
-N39.10: "000000000000000000032145678905000001536"
-N40.10: "0000000000000000000032145678905000001536"
+N20.10: "32145678905000000000"
+N21.10: "032145678905000000000"
+N22.10: "0032145678905000000000"
+N23.10: "00032145678905000000000"
+N24.10: "000032145678905000000000"
+N25.10: "0000032145678905000000000"
+N26.10: "00000032145678905000000000"
+N27.10: "000000032145678905000000000"
+N28.10: "0000000032145678905000000000"
+N29.10: "00000000032145678905000000000"
+N30.10: "000000000032145678905000000000"
+N31.10: "0000000000032145678905000000000"
+N32.10: "00000000000032145678905000000000"
+N33.10: "000000000000032145678905000000000"
+N34.10: "0000000000000032145678905000000000"
+N35.10: "00000000000000032145678905000000000"
+N36.10: "000000000000000032145678905000000000"
+N37.10: "0000000000000000032145678905000000000"
+N38.10: "00000000000000000032145678905000000000"
+N39.10: "000000000000000000032145678905000000000"
+N40.10: "0000000000000000000032145678905000000000"
 N12.11: "************"
 N13.11: "*************"
 N14.11: "**************"
@@ -20558,26 +20558,26 @@ N17.11: "*****************"
 N18.11: "******************"
 N19.11: "*******************"
 N20.11: "********************"
-N21.11: "321456789050000015360"
-N22.11: "0321456789050000015360"
-N23.11: "00321456789050000015360"
-N24.11: "000321456789050000015360"
-N25.11: "0000321456789050000015360"
-N26.11: "00000321456789050000015360"
-N27.11: "000000321456789050000015360"
-N28.11: "0000000321456789050000015360"
-N29.11: "00000000321456789050000015360"
-N30.11: "000000000321456789050000015360"
-N31.11: "0000000000321456789050000015360"
-N32.11: "00000000000321456789050000015360"
-N33.11: "000000000000321456789050000015360"
-N34.11: "0000000000000321456789050000015360"
-N35.11: "00000000000000321456789050000015360"
-N36.11: "000000000000000321456789050000015360"
-N37.11: "0000000000000000321456789050000015360"
-N38.11: "00000000000000000321456789050000015360"
-N39.11: "000000000000000000321456789050000015360"
-N40.11: "0000000000000000000321456789050000015360"
+N21.11: "321456789050000000000"
+N22.11: "0321456789050000000000"
+N23.11: "00321456789050000000000"
+N24.11: "000321456789050000000000"
+N25.11: "0000321456789050000000000"
+N26.11: "00000321456789050000000000"
+N27.11: "000000321456789050000000000"
+N28.11: "0000000321456789050000000000"
+N29.11: "00000000321456789050000000000"
+N30.11: "000000000321456789050000000000"
+N31.11: "0000000000321456789050000000000"
+N32.11: "00000000000321456789050000000000"
+N33.11: "000000000000321456789050000000000"
+N34.11: "0000000000000321456789050000000000"
+N35.11: "00000000000000321456789050000000000"
+N36.11: "000000000000000321456789050000000000"
+N37.11: "0000000000000000321456789050000000000"
+N38.11: "00000000000000000321456789050000000000"
+N39.11: "000000000000000000321456789050000000000"
+N40.11: "0000000000000000000321456789050000000000"
 N13.12: "*************"
 N14.12: "**************"
 N15.12: "***************"
@@ -20587,25 +20587,25 @@ N18.12: "******************"
 N19.12: "*******************"
 N20.12: "********************"
 N21.12: "*********************"
-N22.12: "3214567890499999891456"
-N23.12: "03214567890499999891456"
-N24.12: "003214567890499999891456"
-N25.12: "0003214567890499999891456"
-N26.12: "00003214567890499999891456"
-N27.12: "000003214567890499999891456"
-N28.12: "0000003214567890499999891456"
-N29.12: "00000003214567890499999891456"
-N30.12: "000000003214567890499999891456"
-N31.12: "0000000003214567890499999891456"
-N32.12: "00000000003214567890499999891456"
-N33.12: "000000000003214567890499999891456"
-N34.12: "0000000000003214567890499999891456"
-N35.12: "00000000000003214567890499999891456"
-N36.12: "000000000000003214567890499999891456"
-N37.12: "0000000000000003214567890499999891456"
-N38.12: "00000000000000003214567890499999891456"
-N39.12: "000000000000000003214567890499999891456"
-N40.12: "0000000000000000003214567890499999891456"
+N22.12: "3214567890500000000000"
+N23.12: "03214567890500000000000"
+N24.12: "003214567890500000000000"
+N25.12: "0003214567890500000000000"
+N26.12: "00003214567890500000000000"
+N27.12: "000003214567890500000000000"
+N28.12: "0000003214567890500000000000"
+N29.12: "00000003214567890500000000000"
+N30.12: "000000003214567890500000000000"
+N31.12: "0000000003214567890500000000000"
+N32.12: "00000000003214567890500000000000"
+N33.12: "000000000003214567890500000000000"
+N34.12: "0000000000003214567890500000000000"
+N35.12: "00000000000003214567890500000000000"
+N36.12: "000000000000003214567890500000000000"
+N37.12: "0000000000000003214567890500000000000"
+N38.12: "00000000000000003214567890500000000000"
+N39.12: "000000000000000003214567890500000000000"
+N40.12: "0000000000000000003214567890500000000000"
 N14.13: "**************"
 N15.13: "***************"
 N16.13: "****************"
@@ -20615,24 +20615,24 @@ N19.13: "*******************"
 N20.13: "********************"
 N21.13: "*********************"
 N22.13: "**********************"
-N23.13: "32145678905000002060288"
-N24.13: "032145678905000002060288"
-N25.13: "0032145678905000002060288"
-N26.13: "00032145678905000002060288"
-N27.13: "000032145678905000002060288"
-N28.13: "0000032145678905000002060288"
-N29.13: "00000032145678905000002060288"
-N30.13: "000000032145678905000002060288"
-N31.13: "0000000032145678905000002060288"
-N32.13: "00000000032145678905000002060288"
-N33.13: "000000000032145678905000002060288"
-N34.13: "0000000000032145678905000002060288"
-N35.13: "00000000000032145678905000002060288"
-N36.13: "000000000000032145678905000002060288"
-N37.13: "0000000000000032145678905000002060288"
-N38.13: "00000000000000032145678905000002060288"
-N39.13: "000000000000000032145678905000002060288"
-N40.13: "0000000000000000032145678905000002060288"
+N23.13: "32145678905000000000000"
+N24.13: "032145678905000000000000"
+N25.13: "0032145678905000000000000"
+N26.13: "00032145678905000000000000"
+N27.13: "000032145678905000000000000"
+N28.13: "0000032145678905000000000000"
+N29.13: "00000032145678905000000000000"
+N30.13: "000000032145678905000000000000"
+N31.13: "0000000032145678905000000000000"
+N32.13: "00000000032145678905000000000000"
+N33.13: "000000000032145678905000000000000"
+N34.13: "0000000000032145678905000000000000"
+N35.13: "00000000000032145678905000000000000"
+N36.13: "000000000000032145678905000000000000"
+N37.13: "0000000000000032145678905000000000000"
+N38.13: "00000000000000032145678905000000000000"
+N39.13: "000000000000000032145678905000000000000"
+N40.13: "0000000000000000032145678905000000000000"
 N15.14: "***************"
 N16.14: "****************"
 N17.14: "*****************"
@@ -20642,23 +20642,23 @@ N20.14: "********************"
 N21.14: "*********************"
 N22.14: "**********************"
 N23.14: "***********************"
-N24.14: "321456789049999987048448"
-N25.14: "0321456789049999987048448"
-N26.14: "00321456789049999987048448"
-N27.14: "000321456789049999987048448"
-N28.14: "0000321456789049999987048448"
-N29.14: "00000321456789049999987048448"
-N30.14: "000000321456789049999987048448"
-N31.14: "0000000321456789049999987048448"
-N32.14: "00000000321456789049999987048448"
-N33.14: "000000000321456789049999987048448"
-N34.14: "0000000000321456789049999987048448"
-N35.14: "00000000000321456789049999987048448"
-N36.14: "000000000000321456789049999987048448"
-N37.14: "0000000000000321456789049999987048448"
-N38.14: "00000000000000321456789049999987048448"
-N39.14: "000000000000000321456789049999987048448"
-N40.14: "0000000000000000321456789049999987048448"
+N24.14: "321456789050000000000000"
+N25.14: "0321456789050000000000000"
+N26.14: "00321456789050000000000000"
+N27.14: "000321456789050000000000000"
+N28.14: "0000321456789050000000000000"
+N29.14: "00000321456789050000000000000"
+N30.14: "000000321456789050000000000000"
+N31.14: "0000000321456789050000000000000"
+N32.14: "00000000321456789050000000000000"
+N33.14: "000000000321456789050000000000000"
+N34.14: "0000000000321456789050000000000000"
+N35.14: "00000000000321456789050000000000000"
+N36.14: "000000000000321456789050000000000000"
+N37.14: "0000000000000321456789050000000000000"
+N38.14: "00000000000000321456789050000000000000"
+N39.14: "000000000000000321456789050000000000000"
+N40.14: "0000000000000000321456789050000000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
@@ -20668,22 +20668,22 @@ N21.15: "*********************"
 N22.15: "**********************"
 N23.15: "***********************"
 N24.15: "************************"
-N25.15: "3214567890499999870484480"
-N26.15: "03214567890499999870484480"
-N27.15: "003214567890499999870484480"
-N28.15: "0003214567890499999870484480"
-N29.15: "00003214567890499999870484480"
-N30.15: "000003214567890499999870484480"
-N31.15: "0000003214567890499999870484480"
-N32.15: "00000003214567890499999870484480"
-N33.15: "000000003214567890499999870484480"
-N34.15: "0000000003214567890499999870484480"
-N35.15: "00000000003214567890499999870484480"
-N36.15: "000000000003214567890499999870484480"
-N37.15: "0000000000003214567890499999870484480"
-N38.15: "00000000000003214567890499999870484480"
-N39.15: "000000000000003214567890499999870484480"
-N40.15: "0000000000000003214567890499999870484480"
+N25.15: "3214567890500000000000000"
+N26.15: "03214567890500000000000000"
+N27.15: "003214567890500000000000000"
+N28.15: "0003214567890500000000000000"
+N29.15: "00003214567890500000000000000"
+N30.15: "000003214567890500000000000000"
+N31.15: "0000003214567890500000000000000"
+N32.15: "00000003214567890500000000000000"
+N33.15: "000000003214567890500000000000000"
+N34.15: "0000000003214567890500000000000000"
+N35.15: "00000000003214567890500000000000000"
+N36.15: "000000000003214567890500000000000000"
+N37.15: "0000000000003214567890500000000000000"
+N38.15: "00000000000003214567890500000000000000"
+N39.15: "000000000000003214567890500000000000000"
+N40.15: "0000000000000003214567890500000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
@@ -20693,21 +20693,21 @@ N22.16: "**********************"
 N23.16: "***********************"
 N24.16: "************************"
 N25.16: "*************************"
-N26.16: "32145678904999999778586624"
-N27.16: "032145678904999999778586624"
-N28.16: "0032145678904999999778586624"
-N29.16: "00032145678904999999778586624"
-N30.16: "000032145678904999999778586624"
-N31.16: "0000032145678904999999778586624"
-N32.16: "00000032145678904999999778586624"
-N33.16: "000000032145678904999999778586624"
-N34.16: "0000000032145678904999999778586624"
-N35.16: "00000000032145678904999999778586624"
-N36.16: "000000000032145678904999999778586624"
-N37.16: "0000000000032145678904999999778586624"
-N38.16: "00000000000032145678904999999778586624"
-N39.16: "000000000000032145678904999999778586624"
-N40.16: "0000000000000032145678904999999778586624"
+N26.16: "32145678905000000000000000"
+N27.16: "032145678905000000000000000"
+N28.16: "0032145678905000000000000000"
+N29.16: "00032145678905000000000000000"
+N30.16: "000032145678905000000000000000"
+N31.16: "0000032145678905000000000000000"
+N32.16: "00000032145678905000000000000000"
+N33.16: "000000032145678905000000000000000"
+N34.16: "0000000032145678905000000000000000"
+N35.16: "00000000032145678905000000000000000"
+N36.16: "000000000032145678905000000000000000"
+N37.16: "0000000000032145678905000000000000000"
+N38.16: "00000000000032145678905000000000000000"
+N39.16: "000000000000032145678905000000000000000"
+N40.16: "0000000000000032145678905000000000000000"
 31415926535.875
 N1.0: "*"
 N2.0: "**"
@@ -20978,29 +20978,29 @@ N14.7: "**************"
 N15.7: "***************"
 N16.7: "****************"
 N17.7: "*****************"
-N18.7: "314159265358750016"
-N19.7: "0314159265358750016"
-N20.7: "00314159265358750016"
-N21.7: "000314159265358750016"
-N22.7: "0000314159265358750016"
-N23.7: "00000314159265358750016"
-N24.7: "000000314159265358750016"
-N25.7: "0000000314159265358750016"
-N26.7: "00000000314159265358750016"
-N27.7: "000000000314159265358750016"
-N28.7: "0000000000314159265358750016"
-N29.7: "00000000000314159265358750016"
-N30.7: "000000000000314159265358750016"
-N31.7: "0000000000000314159265358750016"
-N32.7: "00000000000000314159265358750016"
-N33.7: "000000000000000314159265358750016"
-N34.7: "0000000000000000314159265358750016"
-N35.7: "00000000000000000314159265358750016"
-N36.7: "000000000000000000314159265358750016"
-N37.7: "0000000000000000000314159265358750016"
-N38.7: "00000000000000000000314159265358750016"
-N39.7: "000000000000000000000314159265358750016"
-N40.7: "0000000000000000000000314159265358750016"
+N18.7: "314159265358750000"
+N19.7: "0314159265358750000"
+N20.7: "00314159265358750000"
+N21.7: "000314159265358750000"
+N22.7: "0000314159265358750000"
+N23.7: "00000314159265358750000"
+N24.7: "000000314159265358750000"
+N25.7: "0000000314159265358750000"
+N26.7: "00000000314159265358750000"
+N27.7: "000000000314159265358750000"
+N28.7: "0000000000314159265358750000"
+N29.7: "00000000000314159265358750000"
+N30.7: "000000000000314159265358750000"
+N31.7: "0000000000000314159265358750000"
+N32.7: "00000000000000314159265358750000"
+N33.7: "000000000000000314159265358750000"
+N34.7: "0000000000000000314159265358750000"
+N35.7: "00000000000000000314159265358750000"
+N36.7: "000000000000000000314159265358750000"
+N37.7: "0000000000000000000314159265358750000"
+N38.7: "00000000000000000000314159265358750000"
+N39.7: "000000000000000000000314159265358750000"
+N40.7: "0000000000000000000000314159265358750000"
 N9.8: "*********"
 N10.8: "**********"
 N11.8: "***********"
@@ -21011,28 +21011,28 @@ N15.8: "***************"
 N16.8: "****************"
 N17.8: "*****************"
 N18.8: "******************"
-N19.8: "3141592653587500032"
-N20.8: "03141592653587500032"
-N21.8: "003141592653587500032"
-N22.8: "0003141592653587500032"
-N23.8: "00003141592653587500032"
-N24.8: "000003141592653587500032"
-N25.8: "0000003141592653587500032"
-N26.8: "00000003141592653587500032"
-N27.8: "000000003141592653587500032"
-N28.8: "0000000003141592653587500032"
-N29.8: "00000000003141592653587500032"
-N30.8: "000000000003141592653587500032"
-N31.8: "0000000000003141592653587500032"
-N32.8: "00000000000003141592653587500032"
-N33.8: "000000000000003141592653587500032"
-N34.8: "0000000000000003141592653587500032"
-N35.8: "00000000000000003141592653587500032"
-N36.8: "000000000000000003141592653587500032"
-N37.8: "0000000000000000003141592653587500032"
-N38.8: "00000000000000000003141592653587500032"
-N39.8: "000000000000000000003141592653587500032"
-N40.8: "0000000000000000000003141592653587500032"
+N19.8: "3141592653587500000"
+N20.8: "03141592653587500000"
+N21.8: "003141592653587500000"
+N22.8: "0003141592653587500000"
+N23.8: "00003141592653587500000"
+N24.8: "000003141592653587500000"
+N25.8: "0000003141592653587500000"
+N26.8: "00000003141592653587500000"
+N27.8: "000000003141592653587500000"
+N28.8: "0000000003141592653587500000"
+N29.8: "00000000003141592653587500000"
+N30.8: "000000000003141592653587500000"
+N31.8: "0000000000003141592653587500000"
+N32.8: "00000000000003141592653587500000"
+N33.8: "000000000000003141592653587500000"
+N34.8: "0000000000000003141592653587500000"
+N35.8: "00000000000000003141592653587500000"
+N36.8: "000000000000000003141592653587500000"
+N37.8: "0000000000000000003141592653587500000"
+N38.8: "00000000000000000003141592653587500000"
+N39.8: "000000000000000000003141592653587500000"
+N40.8: "0000000000000000000003141592653587500000"
 N10.9: "**********"
 N11.9: "***********"
 N12.9: "************"
@@ -21043,27 +21043,27 @@ N16.9: "****************"
 N17.9: "*****************"
 N18.9: "******************"
 N19.9: "*******************"
-N20.9: "31415926535874998272"
-N21.9: "031415926535874998272"
-N22.9: "0031415926535874998272"
-N23.9: "00031415926535874998272"
-N24.9: "000031415926535874998272"
-N25.9: "0000031415926535874998272"
-N26.9: "00000031415926535874998272"
-N27.9: "000000031415926535874998272"
-N28.9: "0000000031415926535874998272"
-N29.9: "00000000031415926535874998272"
-N30.9: "000000000031415926535874998272"
-N31.9: "0000000000031415926535874998272"
-N32.9: "00000000000031415926535874998272"
-N33.9: "000000000000031415926535874998272"
-N34.9: "0000000000000031415926535874998272"
-N35.9: "00000000000000031415926535874998272"
-N36.9: "000000000000000031415926535874998272"
-N37.9: "0000000000000000031415926535874998272"
-N38.9: "00000000000000000031415926535874998272"
-N39.9: "000000000000000000031415926535874998272"
-N40.9: "0000000000000000000031415926535874998272"
+N20.9: "31415926535875000000"
+N21.9: "031415926535875000000"
+N22.9: "0031415926535875000000"
+N23.9: "00031415926535875000000"
+N24.9: "000031415926535875000000"
+N25.9: "0000031415926535875000000"
+N26.9: "00000031415926535875000000"
+N27.9: "000000031415926535875000000"
+N28.9: "0000000031415926535875000000"
+N29.9: "00000000031415926535875000000"
+N30.9: "000000000031415926535875000000"
+N31.9: "0000000000031415926535875000000"
+N32.9: "00000000000031415926535875000000"
+N33.9: "000000000000031415926535875000000"
+N34.9: "0000000000000031415926535875000000"
+N35.9: "00000000000000031415926535875000000"
+N36.9: "000000000000000031415926535875000000"
+N37.9: "0000000000000000031415926535875000000"
+N38.9: "00000000000000000031415926535875000000"
+N39.9: "000000000000000000031415926535875000000"
+N40.9: "0000000000000000000031415926535875000000"
 N11.10: "***********"
 N12.10: "************"
 N13.10: "*************"
@@ -21074,26 +21074,26 @@ N17.10: "*****************"
 N18.10: "******************"
 N19.10: "*******************"
 N20.10: "********************"
-N21.10: "314159265358750023680"
-N22.10: "0314159265358750023680"
-N23.10: "00314159265358750023680"
-N24.10: "000314159265358750023680"
-N25.10: "0000314159265358750023680"
-N26.10: "00000314159265358750023680"
-N27.10: "000000314159265358750023680"
-N28.10: "0000000314159265358750023680"
-N29.10: "00000000314159265358750023680"
-N30.10: "000000000314159265358750023680"
-N31.10: "0000000000314159265358750023680"
-N32.10: "00000000000314159265358750023680"
-N33.10: "000000000000314159265358750023680"
-N34.10: "0000000000000314159265358750023680"
-N35.10: "00000000000000314159265358750023680"
-N36.10: "000000000000000314159265358750023680"
-N37.10: "0000000000000000314159265358750023680"
-N38.10: "00000000000000000314159265358750023680"
-N39.10: "000000000000000000314159265358750023680"
-N40.10: "0000000000000000000314159265358750023680"
+N21.10: "314159265358750000000"
+N22.10: "0314159265358750000000"
+N23.10: "00314159265358750000000"
+N24.10: "000314159265358750000000"
+N25.10: "0000314159265358750000000"
+N26.10: "00000314159265358750000000"
+N27.10: "000000314159265358750000000"
+N28.10: "0000000314159265358750000000"
+N29.10: "00000000314159265358750000000"
+N30.10: "000000000314159265358750000000"
+N31.10: "0000000000314159265358750000000"
+N32.10: "00000000000314159265358750000000"
+N33.10: "000000000000314159265358750000000"
+N34.10: "0000000000000314159265358750000000"
+N35.10: "00000000000000314159265358750000000"
+N36.10: "000000000000000314159265358750000000"
+N37.10: "0000000000000000314159265358750000000"
+N38.10: "00000000000000000314159265358750000000"
+N39.10: "000000000000000000314159265358750000000"
+N40.10: "0000000000000000000314159265358750000000"
 N12.11: "************"
 N13.11: "*************"
 N14.11: "**************"
@@ -21104,25 +21104,25 @@ N18.11: "******************"
 N19.11: "*******************"
 N20.11: "********************"
 N21.11: "*********************"
-N22.11: "3141592653587499974656"
-N23.11: "03141592653587499974656"
-N24.11: "003141592653587499974656"
-N25.11: "0003141592653587499974656"
-N26.11: "00003141592653587499974656"
-N27.11: "000003141592653587499974656"
-N28.11: "0000003141592653587499974656"
-N29.11: "00000003141592653587499974656"
-N30.11: "000000003141592653587499974656"
-N31.11: "0000000003141592653587499974656"
-N32.11: "00000000003141592653587499974656"
-N33.11: "000000000003141592653587499974656"
-N34.11: "0000000000003141592653587499974656"
-N35.11: "00000000000003141592653587499974656"
-N36.11: "000000000000003141592653587499974656"
-N37.11: "0000000000000003141592653587499974656"
-N38.11: "00000000000000003141592653587499974656"
-N39.11: "000000000000000003141592653587499974656"
-N40.11: "0000000000000000003141592653587499974656"
+N22.11: "3141592653587500000000"
+N23.11: "03141592653587500000000"
+N24.11: "003141592653587500000000"
+N25.11: "0003141592653587500000000"
+N26.11: "00003141592653587500000000"
+N27.11: "000003141592653587500000000"
+N28.11: "0000003141592653587500000000"
+N29.11: "00000003141592653587500000000"
+N30.11: "000000003141592653587500000000"
+N31.11: "0000000003141592653587500000000"
+N32.11: "00000000003141592653587500000000"
+N33.11: "000000000003141592653587500000000"
+N34.11: "0000000000003141592653587500000000"
+N35.11: "00000000000003141592653587500000000"
+N36.11: "000000000000003141592653587500000000"
+N37.11: "0000000000000003141592653587500000000"
+N38.11: "00000000000000003141592653587500000000"
+N39.11: "000000000000000003141592653587500000000"
+N40.11: "0000000000000000003141592653587500000000"
 N13.12: "*************"
 N14.12: "**************"
 N15.12: "***************"
@@ -21133,24 +21133,24 @@ N19.12: "*******************"
 N20.12: "********************"
 N21.12: "*********************"
 N22.12: "**********************"
-N23.12: "31415926535874999746560"
-N24.12: "031415926535874999746560"
-N25.12: "0031415926535874999746560"
-N26.12: "00031415926535874999746560"
-N27.12: "000031415926535874999746560"
-N28.12: "0000031415926535874999746560"
-N29.12: "00000031415926535874999746560"
-N30.12: "000000031415926535874999746560"
-N31.12: "0000000031415926535874999746560"
-N32.12: "00000000031415926535874999746560"
-N33.12: "000000000031415926535874999746560"
-N34.12: "0000000000031415926535874999746560"
-N35.12: "00000000000031415926535874999746560"
-N36.12: "000000000000031415926535874999746560"
-N37.12: "0000000000000031415926535874999746560"
-N38.12: "00000000000000031415926535874999746560"
-N39.12: "000000000000000031415926535874999746560"
-N40.12: "0000000000000000031415926535874999746560"
+N23.12: "31415926535875000000000"
+N24.12: "031415926535875000000000"
+N25.12: "0031415926535875000000000"
+N26.12: "00031415926535875000000000"
+N27.12: "000031415926535875000000000"
+N28.12: "0000031415926535875000000000"
+N29.12: "00000031415926535875000000000"
+N30.12: "000000031415926535875000000000"
+N31.12: "0000000031415926535875000000000"
+N32.12: "00000000031415926535875000000000"
+N33.12: "000000000031415926535875000000000"
+N34.12: "0000000000031415926535875000000000"
+N35.12: "00000000000031415926535875000000000"
+N36.12: "000000000000031415926535875000000000"
+N37.12: "0000000000000031415926535875000000000"
+N38.12: "00000000000000031415926535875000000000"
+N39.12: "000000000000000031415926535875000000000"
+N40.12: "0000000000000000031415926535875000000000"
 N14.13: "**************"
 N15.13: "***************"
 N16.13: "****************"
@@ -21161,23 +21161,23 @@ N20.13: "********************"
 N21.13: "*********************"
 N22.13: "**********************"
 N23.13: "***********************"
-N24.13: "314159265358750014242816"
-N25.13: "0314159265358750014242816"
-N26.13: "00314159265358750014242816"
-N27.13: "000314159265358750014242816"
-N28.13: "0000314159265358750014242816"
-N29.13: "00000314159265358750014242816"
-N30.13: "000000314159265358750014242816"
-N31.13: "0000000314159265358750014242816"
-N32.13: "00000000314159265358750014242816"
-N33.13: "000000000314159265358750014242816"
-N34.13: "0000000000314159265358750014242816"
-N35.13: "00000000000314159265358750014242816"
-N36.13: "000000000000314159265358750014242816"
-N37.13: "0000000000000314159265358750014242816"
-N38.13: "00000000000000314159265358750014242816"
-N39.13: "000000000000000314159265358750014242816"
-N40.13: "0000000000000000314159265358750014242816"
+N24.13: "314159265358750000000000"
+N25.13: "0314159265358750000000000"
+N26.13: "00314159265358750000000000"
+N27.13: "000314159265358750000000000"
+N28.13: "0000314159265358750000000000"
+N29.13: "00000314159265358750000000000"
+N30.13: "000000314159265358750000000000"
+N31.13: "0000000314159265358750000000000"
+N32.13: "00000000314159265358750000000000"
+N33.13: "000000000314159265358750000000000"
+N34.13: "0000000000314159265358750000000000"
+N35.13: "00000000000314159265358750000000000"
+N36.13: "000000000000314159265358750000000000"
+N37.13: "0000000000000314159265358750000000000"
+N38.13: "00000000000000314159265358750000000000"
+N39.13: "000000000000000314159265358750000000000"
+N40.13: "0000000000000000314159265358750000000000"
 N15.14: "***************"
 N16.14: "****************"
 N17.14: "*****************"
@@ -21188,22 +21188,22 @@ N21.14: "*********************"
 N22.14: "**********************"
 N23.14: "***********************"
 N24.14: "************************"
-N25.14: "3141592653587499873992704"
-N26.14: "03141592653587499873992704"
-N27.14: "003141592653587499873992704"
-N28.14: "0003141592653587499873992704"
-N29.14: "00003141592653587499873992704"
-N30.14: "000003141592653587499873992704"
-N31.14: "0000003141592653587499873992704"
-N32.14: "00000003141592653587499873992704"
-N33.14: "000000003141592653587499873992704"
-N34.14: "0000000003141592653587499873992704"
-N35.14: "00000000003141592653587499873992704"
-N36.14: "000000000003141592653587499873992704"
-N37.14: "0000000000003141592653587499873992704"
-N38.14: "00000000000003141592653587499873992704"
-N39.14: "000000000000003141592653587499873992704"
-N40.14: "0000000000000003141592653587499873992704"
+N25.14: "3141592653587500000000000"
+N26.14: "03141592653587500000000000"
+N27.14: "003141592653587500000000000"
+N28.14: "0003141592653587500000000000"
+N29.14: "00003141592653587500000000000"
+N30.14: "000003141592653587500000000000"
+N31.14: "0000003141592653587500000000000"
+N32.14: "00000003141592653587500000000000"
+N33.14: "000000003141592653587500000000000"
+N34.14: "0000000003141592653587500000000000"
+N35.14: "00000000003141592653587500000000000"
+N36.14: "000000000003141592653587500000000000"
+N37.14: "0000000000003141592653587500000000000"
+N38.14: "00000000000003141592653587500000000000"
+N39.14: "000000000000003141592653587500000000000"
+N40.14: "0000000000000003141592653587500000000000"
 N16.15: "****************"
 N17.15: "*****************"
 N18.15: "******************"
@@ -21214,21 +21214,21 @@ N22.15: "**********************"
 N23.15: "***********************"
 N24.15: "************************"
 N25.15: "*************************"
-N26.15: "31415926535874999813668864"
-N27.15: "031415926535874999813668864"
-N28.15: "0031415926535874999813668864"
-N29.15: "00031415926535874999813668864"
-N30.15: "000031415926535874999813668864"
-N31.15: "0000031415926535874999813668864"
-N32.15: "00000031415926535874999813668864"
-N33.15: "000000031415926535874999813668864"
-N34.15: "0000000031415926535874999813668864"
-N35.15: "00000000031415926535874999813668864"
-N36.15: "000000000031415926535874999813668864"
-N37.15: "0000000000031415926535874999813668864"
-N38.15: "00000000000031415926535874999813668864"
-N39.15: "000000000000031415926535874999813668864"
-N40.15: "0000000000000031415926535874999813668864"
+N26.15: "31415926535875000000000000"
+N27.15: "031415926535875000000000000"
+N28.15: "0031415926535875000000000000"
+N29.15: "00031415926535875000000000000"
+N30.15: "000031415926535875000000000000"
+N31.15: "0000031415926535875000000000000"
+N32.15: "00000031415926535875000000000000"
+N33.15: "000000031415926535875000000000000"
+N34.15: "0000000031415926535875000000000000"
+N35.15: "00000000031415926535875000000000000"
+N36.15: "000000000031415926535875000000000000"
+N37.15: "0000000000031415926535875000000000000"
+N38.15: "00000000000031415926535875000000000000"
+N39.15: "000000000000031415926535875000000000000"
+N40.15: "0000000000000031415926535875000000000000"
 N17.16: "*****************"
 N18.16: "******************"
 N19.16: "*******************"
@@ -21239,20 +21239,20 @@ N23.16: "***********************"
 N24.16: "************************"
 N25.16: "*************************"
 N26.16: "**************************"
-N27.16: "314159265358750006726623232"
-N28.16: "0314159265358750006726623232"
-N29.16: "00314159265358750006726623232"
-N30.16: "000314159265358750006726623232"
-N31.16: "0000314159265358750006726623232"
-N32.16: "00000314159265358750006726623232"
-N33.16: "000000314159265358750006726623232"
-N34.16: "0000000314159265358750006726623232"
-N35.16: "00000000314159265358750006726623232"
-N36.16: "000000000314159265358750006726623232"
-N37.16: "0000000000314159265358750006726623232"
-N38.16: "00000000000314159265358750006726623232"
-N39.16: "000000000000314159265358750006726623232"
-N40.16: "0000000000000314159265358750006726623232"
+N27.16: "314159265358750000000000000"
+N28.16: "0314159265358750000000000000"
+N29.16: "00314159265358750000000000000"
+N30.16: "000314159265358750000000000000"
+N31.16: "0000314159265358750000000000000"
+N32.16: "00000314159265358750000000000000"
+N33.16: "000000314159265358750000000000000"
+N34.16: "0000000314159265358750000000000000"
+N35.16: "00000000314159265358750000000000000"
+N36.16: "000000000314159265358750000000000000"
+N37.16: "0000000000314159265358750000000000000"
+N38.16: "00000000000314159265358750000000000000"
+N39.16: "000000000000314159265358750000000000000"
+N40.16: "0000000000000314159265358750000000000000"
 -3.125
 N1.0: "."
 N2.0: " ."