packages feed

sbv 8.3 → 8.4

raw patch · 332 files changed

+16795/−15974 lines, 332 filesdep ~basesetup-changed

Dependency ranges changed: base

Files

CHANGES.md view
@@ -1,7 +1,77 @@ * Hackage: <http://hackage.haskell.org/package/sbv> * GitHub:  <http://leventerkok.github.com/sbv/> -* Latest Hackage released version: 8.3, 2019-06-08+* Latest Hackage released version: 8.4, 2019-08-31++### Version 8.4, 2019-08-31++  * SBV now supports arbitrary-size bit-vectors, i.e.,+    SWord 17, SInt 9, SWord 128 etc. These work like any+    other bit-vector, using the `DataKinds` feature of+    GHC. Thanks to Ben Blaxill for the idea and the initial+    implementation. Note that SBV still supports the traditional+    fixed-size bit-vectors, SInt8, SWord16 etc. Support for+    these will not be removed; so existing programs will+    continue to work.++  * To convert between arbitrary sized bit-vectors and+    the old style equivalents, use `fromSized` and `toSized`+    functions. The behavior is controlled with a closed+    type-family so you will get a (hopefully not too+    horrendous) type error message if you try to convert,+    say, a SInt16 to SInt 22; or vice versa.++  * Added arbitrary-sized bit vector operations: extraction,+    extension, and joining; these use proxy arguments to+    determine precise size info, and are much better suited+    for type safety. Consequently, removed the Splittable+    class which provided similar operations but only on+    predefined types. There is a new class called ByteConverter+    to convert to-and-from bytes for suitable bit-vector+    sizes upto 512.++  * Tuple construction functions are given new types to strengthen+    type checking. Previously the tuple argument was ignored,+    causing things to be marked as tuples when they actually+    cannot be. (NB. The system was always type-safe, it just+    didn't produce helpful type-error messages before.)++  * Model validator: In the presence of universally quantified+    variables, SBV used to refuse to validate given models. This+    is the right thing to do since we would have to validate+    the model for all possible values of all the universally+    quantified variables. Obviously this is not useful. Instead,+    SBV now simply assumes any universally quantified variable+    is zero during model validation. This severely limits the+    validation result, but it is better than nothing. (In the+    verbose mode, a message to this effect will be printed.)++  * Model validator: SBV can now validate models returned from+    the backend solver for regular-expression match problems.+    We also constant fold matches against constant strings without+    calling the solver at all, less useful perhaps but more inline+    with the general SBV methodology.++  * Add implementation of SHA-2 family of functions as an example+    algorithm.  These are good for code-generation purposes as+    opposed to actual verification tasks as it is hard to state+    any properties of these algorithms. But the SBV generated+    code can be quite useful in other development and verification+    environments. See 'Documentation.SBV.Examples.Crypto.SHA' for+    details.++  * Add 'cgShowU8UsingHex function, which controls if we print unsigned-8 bit+    values in code generation driver code in hex or not. Previously we were+    using decimal, but in crypto code hex is always better. Default is 'False'+    to keep backwards compatibility.++  * Add `sObserve` from: `SymWord a => String -> SBV a -> Symbolic ()` which+    comes in handy in symbolic contexts, especially with quick-check uses.++  * Ramped up travis-appveyor build infrastructure. However, we no+    longer test on the CI, since build-times are prohibitively long+    and myriad issues cause instability. If you can help out regarding+    testing on CI, please reach out!  ### Version 8.3, 2019-06-08 
Data/SBV.hs view
@@ -40,6 +40,10 @@ -- --   * 'SInt8',  'SInt16',  'SInt32',  'SInt64': Symbolic Ints (signed). --+--   * 'SWord n': Generalized symbolic words of arbitrary bit-size.+--+--   * 'SInt n': Generalized symbolic ints of arbitrary bit-size.+-- --   * 'SInteger': Unbounded signed integers. -- --   * 'SReal': Algebraic-real numbers@@ -124,6 +128,8 @@ -- get in touch if there is a solver you'd like to see included. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV (   -- $progIntro @@ -137,9 +143,11 @@   , sAnd, sOr, sAny, sAll   -- ** Bit-vectors   -- *** Unsigned bit-vectors-  , SWord8, SWord16, SWord32, SWord64+  , SWord8, SWord16, SWord32, SWord64, SWord, WordN   -- *** Signed bit-vectors-  , SInt8, SInt16, SInt32, SInt64+  , SInt8, SInt16, SInt32, SInt64, SInt, IntN+  -- *** Converting between fixed-size and arbitrary bitvectors+  , FromSized, ToSized, fromSized, toSized   -- ** Unbounded integers   -- $unboundedLimitations   , SInteger@@ -157,7 +165,7 @@   , SList   -- ** Tuples   -- $tuples-  , STuple, STuple2, STuple3, STuple4, STuple5, STuple6, STuple7, STuple8+  , SymTuple, STuple, STuple2, STuple3, STuple4, STuple5, STuple6, STuple7, STuple8   -- ** Sum types   , SMaybe, SEither   -- ** Sets@@ -169,8 +177,8 @@   -- ** Single value   -- $createSym   , sBool, sBool_-  , sWord8, sWord8_, sWord16, sWord16_, sWord32, sWord32_, sWord64, sWord64_-  , sInt8,  sInt8_,  sInt16,  sInt16_,  sInt32,  sInt32_,  sInt64,  sInt64_+  , sWord8, sWord8_, sWord16, sWord16_, sWord32, sWord32_, sWord64, sWord64_, sWord, sWord_+  , sInt8,  sInt8_,  sInt16,  sInt16_,  sInt32,  sInt32_,  sInt64,  sInt64_, sInt, sInt_   , sInteger, sInteger_   , sReal, sReal_   , sFloat, sFloat_@@ -186,8 +194,8 @@   -- ** List of values   -- $createSyms   , sBools-  , sWord8s, sWord16s, sWord32s, sWord64s-  , sInt8s,  sInt16s,  sInt32s,  sInt64s+  , sWord8s, sWord16s, sWord32s, sWord64s, sWords+  , sInt8s,  sInt16s,  sInt32s,  sInt64s, sInts   , sIntegers   , sReals   , sFloats@@ -217,8 +225,8 @@   , sShiftLeft, sShiftRight, sRotateLeft, sBarrelRotateLeft, sRotateRight, sBarrelRotateRight, sSignedShiftArithRight   -- ** Finite bit-vector operations   , SFiniteBits(..)-  -- ** Splitting, joining, and extending-  , Splittable(..)+  -- ** Splitting, joining, and extending bit-vectors+  , bvExtract, (#), zeroExtend, signExtend, bvDrop, bvTake, ByteConverter(..)   -- ** Exponentiation   , (.^)   -- * IEEE-floating point numbers@@ -301,7 +309,7 @@    -- ** Observing expressions   -- $observeInternal-  , observe, observeIf+  , observe, observeIf, sObserve    -- ** Programmable model extraction   -- $programmableExtraction@@ -354,8 +362,9 @@                                         sWord8, sWord8_, sWord8s, sWord16, sWord16_, sWord16s,                                         sWord32, sWord32_, sWord32s, sWord64, sWord64_, sWord64s,                                         sMaybe, sMaybe_, sMaybes, sEither, sEither_, sEithers, sSet, sSet_, sSets)+import Data.SBV.Core.Sized      hiding (sWord, sWord_, sWords, sInt, sInt_, sInts)+ import Data.SBV.Core.Floating-import Data.SBV.Core.Splittable import Data.SBV.Core.Symbolic   (MonadSymbolic(..), SymbolicT)  import Data.SBV.Provers.Prover hiding (forAll_, forAll, forSome_, forSome,@@ -647,7 +656,7 @@     * Bitwise logical ops: '.&.', '.|.', 'xor', 'complement' -   * Extraction and concatenation: 'split', '#', and 'extend' (see the 'Splittable' class)+   * Extraction and concatenation: 'bvExtract', '#', 'zeroExtend', 'signExtend', 'bvDrop', and 'bvTake'  Usual arithmetic ('+', '-', '*', 'sQuotRem', 'sQuot', 'sRem', 'sDivMod', 'sDiv', 'sMod') and logical operations ('.<', '.<=', '.>', '.>=', '.==', './=') operations are supported for 'SInteger' fully, both in programming and verification modes.@@ -950,7 +959,8 @@ {- $observeInternal  The 'observe' command can be used to trace values of arbitrary expressions during a 'sat', 'prove', or perhaps more-importantly, in a @quickCheck@ call. This is useful for, for instance, recording expected/obtained expressions as a symbolic program is executing.+importantly, in a @quickCheck@ call with the 'sObserve' variant.. This is useful for, for instance, recording expected vs. obtained expressions+as a symbolic program is executing.  >>> :{ prove $ do a1 <- free "i1"@@ -969,7 +979,8 @@   i2       = 22 :: Word8  The 'observeIf' variant allows the user to specify a boolean condition when the value is interesting to observe. Useful when-you have lots of "debugging" points, but not all are of interest.+you have lots of "debugging" points, but not all are of interest. Use the 'sObserve' variant when you are at the 'Symbolic'+monad, which also supports quick-check applications. -}  {-# ANN module ("HLint: ignore Use import/export shortcut" :: String) #-}
Data/SBV/Char.hs view
@@ -24,6 +24,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Char (         -- * Occurrence in a string         elem, notElem
Data/SBV/Client.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Client   ( sbvCheckSolverInstallation   , defaultSolverConfig
Data/SBV/Client/BaseIO.hs view
@@ -11,8 +11,16 @@ -- @Data.SBV@, where we restrict the underlying monad to be IO. ----------------------------------------------------------------------------- -{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE DataKinds            #-}+{-# LANGUAGE DefaultSignatures    #-}+{-# LANGUAGE FlexibleContexts     #-}+{-# LANGUAGE FlexibleInstances    #-}+{-# LANGUAGE TypeFamilies         #-}+{-# LANGUAGE TypeOperators        #-}+{-# LANGUAGE UndecidableInstances #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Client.BaseIO where  import Data.SBV.Core.Data      (HasKind, Kind, Outputtable, Penalty, SymArray,@@ -20,7 +28,8 @@                                 SInt8, SInt16, SInt32, SInt64, SInteger, SList,                                 SReal, SString, SV, SWord8, SWord16, SWord32,                                 SWord64, SEither, SMaybe, SSet)-import Data.SBV.Core.Model     (Metric(..))+import Data.SBV.Core.Sized     (SInt, SWord, IntN, WordN, IsNonZero)+import Data.SBV.Core.Model     (Metric(..), SymTuple) import Data.SBV.Core.Symbolic  (Objective, OptimizeStyle, Quantifier, Result,                                 Symbolic, SBVRunMode, SMTConfig, SVal) import Data.SBV.Control.Types  (SMTOption)@@ -28,7 +37,14 @@ import Data.SBV.SMT.SMT        (AllSatResult, SafeResult, SatResult,                                 OptimizeResult) +import GHC.TypeLits+import Data.Kind++import Data.Int+import Data.Word+ import qualified Data.SBV.Core.Data      as Trans+import qualified Data.SBV.Core.Sized     as Trans import qualified Data.SBV.Core.Model     as Trans import qualified Data.SBV.Core.Symbolic  as Trans import qualified Data.SBV.Provers.Prover as Trans@@ -405,6 +421,24 @@ sWord64s :: [String] -> Symbolic [SWord64] sWord64s = Trans.sWord64s +-- | Declare a named 'SWord'+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sWord'+sWord :: (KnownNat n, IsNonZero n) => String -> Symbolic (SWord n)+sWord = Trans.sWord++-- | Declare an unnamed 'SWord'+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sWord_'+sWord_ :: (KnownNat n, IsNonZero n) => Symbolic (SWord n)+sWord_ = Trans.sWord_++-- | Declare a list of 'SWord8's+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sWords'+sWords :: (KnownNat n, IsNonZero n) => [String] -> Symbolic [SWord n]+sWords = Trans.sWords+ -- | Declare a named 'SInt8' -- -- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sInt8'@@ -477,6 +511,24 @@ sInt64s :: [String] -> Symbolic [SInt64] sInt64s = Trans.sInt64s +-- | Declare a named 'SInt'+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sInt'+sInt :: (KnownNat n, IsNonZero n) => String -> Symbolic (SInt n)+sInt = Trans.sInt++-- | Declare an unnamed 'SInt'+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sInt_'+sInt_ :: (KnownNat n, IsNonZero n) => Symbolic (SInt n)+sInt_ = Trans.sInt_++-- | Declare a list of 'SInt's+--+-- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sInts'+sInts :: (KnownNat n, IsNonZero n) => [String] -> Symbolic [SInt n]+sInts = Trans.sInts+ -- | Declare a named 'SInteger' -- -- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sInteger'@@ -606,19 +658,19 @@ -- | Declare a named tuple. -- -- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sTuple'-sTuple :: SymVal tup => String -> Symbolic (SBV tup)+sTuple :: (SymTuple tup, SymVal tup) => String -> Symbolic (SBV tup) sTuple = Trans.sTuple  -- | Declare an unnamed tuple. -- -- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sTuple_'-sTuple_ :: SymVal tup => Symbolic (SBV tup)+sTuple_ :: (SymTuple tup, SymVal tup) => Symbolic (SBV tup) sTuple_ = Trans.sTuple_  -- | Declare a list of tuples. -- -- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sTuples'-sTuples :: SymVal tup => [String] -> Symbolic [SBV tup]+sTuples :: (SymTuple tup, SymVal tup) => [String] -> Symbolic [SBV tup] sTuples = Trans.sTuples  -- | Declare a named 'Data.SBV.SEither'.@@ -713,30 +765,6 @@ svToSymSV :: SVal -> Symbolic SV svToSymSV = Trans.svToSymSV --- | Create an N-bit symbolic unsigned named variable------ NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sWordN'-sWordN :: Int -> String -> Symbolic SVal-sWordN = Trans.sWordN---- | Create an N-bit symbolic unsigned unnamed variable------ NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sWordN_'-sWordN_ :: Int -> Symbolic SVal-sWordN_ = Trans.sWordN_---- | Create an N-bit symbolic signed named variable------ NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sIntN'-sIntN :: Int -> String -> Symbolic SVal-sIntN = Trans.sIntN---- | Create an N-bit symbolic signed unnamed variable------ NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.sIntN_'-sIntN_ :: Int -> Symbolic SVal-sIntN_ = Trans.sIntN_- -- | Add a user specified axiom to the generated SMT-Lib file. The first argument is a mere -- string, use for commenting purposes. The second argument is intended to hold the multiple-lines -- of the axiom text as expressed in SMT-Lib notation. Note that we perform no checks on the axiom@@ -777,3 +805,144 @@ -- NB. For a version which generalizes over the underlying monad, see 'Data.SBV.Trans.outputSVal' outputSVal :: SVal -> Symbolic () outputSVal = Trans.outputSVal++-- | Capturing non-matching instances for better error messages, conversions from sized+type FromSizedErr (arg :: Type) =     'Text "fromSized: Cannot convert from type: " ':<>: 'ShowType arg+                                ':$$: 'Text "           Source type must be one of SInt N, SWord N, IntN N, WordN N"+                                ':$$: 'Text "           where N is 8, 16, 32, or 64."++-- | Capturing non-matching instances for better error messages, conversions to sized+type ToSizedErr (arg :: Type) =      'Text "toSized: Cannot convert from type: " ':<>: 'ShowType arg+                              ':$$: 'Text "          Source type must be one of Int8/16/32/64"+                              ':$$: 'Text "                                  OR Word8/16/32/64"+                              ':$$: 'Text "                                  OR their symbolic variants."++-- | Capture the correspondence between sized and fixed-sized BVs+type family FromSized (t :: Type) :: Type where+   FromSized (WordN  8) = Word8+   FromSized (WordN 16) = Word16+   FromSized (WordN 32) = Word32+   FromSized (WordN 64) = Word64+   FromSized (IntN   8) = Int8+   FromSized (IntN  16) = Int16+   FromSized (IntN  32) = Int32+   FromSized (IntN  64) = Int64+   FromSized (SWord  8) = SWord8+   FromSized (SWord 16) = SWord16+   FromSized (SWord 32) = SWord32+   FromSized (SWord 64) = SWord64+   FromSized (SInt   8) = SInt8+   FromSized (SInt  16) = SInt16+   FromSized (SInt  32) = SInt32+   FromSized (SInt  64) = SInt64++type family FromSizedCstr (t :: Type) :: Constraint where+   FromSizedCstr (WordN  8) = ()+   FromSizedCstr (WordN 16) = ()+   FromSizedCstr (WordN 32) = ()+   FromSizedCstr (WordN 64) = ()+   FromSizedCstr (IntN   8) = ()+   FromSizedCstr (IntN  16) = ()+   FromSizedCstr (IntN  32) = ()+   FromSizedCstr (IntN  64) = ()+   FromSizedCstr (SWord  8) = ()+   FromSizedCstr (SWord 16) = ()+   FromSizedCstr (SWord 32) = ()+   FromSizedCstr (SWord 64) = ()+   FromSizedCstr (SInt   8) = ()+   FromSizedCstr (SInt  16) = ()+   FromSizedCstr (SInt  32) = ()+   FromSizedCstr (SInt  64) = ()+   FromSizedCstr arg        = TypeError (FromSizedErr arg)++-- | Conversion from a sized BV to a fixed-sized bit-vector.+class FromSizedBV a where+   -- | Convert a sized bit-vector to the corresponding fixed-sized bit-vector,+   -- for instance 'SWord 16' to 'SWord16'. See also 'toSized'.+   fromSized :: a -> FromSized a++   default fromSized :: (Num (FromSized a), Integral a) => a -> FromSized a+   fromSized = fromIntegral++instance {-# OVERLAPPING  #-} FromSizedBV (WordN   8)+instance {-# OVERLAPPING  #-} FromSizedBV (WordN  16)+instance {-# OVERLAPPING  #-} FromSizedBV (WordN  32)+instance {-# OVERLAPPING  #-} FromSizedBV (WordN  64)+instance {-# OVERLAPPING  #-} FromSizedBV (IntN    8)+instance {-# OVERLAPPING  #-} FromSizedBV (IntN   16)+instance {-# OVERLAPPING  #-} FromSizedBV (IntN   32)+instance {-# OVERLAPPING  #-} FromSizedBV (IntN   64)+instance {-# OVERLAPPING  #-} FromSizedBV (SWord   8) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SWord  16) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SWord  32) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SWord  64) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SInt    8) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SInt   16) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SInt   32) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} FromSizedBV (SInt   64) where fromSized = Trans.sFromIntegral+instance {-# OVERLAPPABLE #-} FromSizedCstr arg => FromSizedBV arg where fromSized = error "unreachable"++-- | Capture the correspondence between fixed-sized and sized BVs+type family ToSized (t :: Type) :: Type where+   ToSized Word8   = WordN  8+   ToSized Word16  = WordN 16+   ToSized Word32  = WordN 32+   ToSized Word64  = WordN 64+   ToSized Int8    = IntN   8+   ToSized Int16   = IntN  16+   ToSized Int32   = IntN  32+   ToSized Int64   = IntN  64+   ToSized SWord8  = SWord  8+   ToSized SWord16 = SWord 16+   ToSized SWord32 = SWord 32+   ToSized SWord64 = SWord 64+   ToSized SInt8   = SInt   8+   ToSized SInt16  = SInt  16+   ToSized SInt32  = SInt  32+   ToSized SInt64  = SInt  64++type family ToSizedCstr (t :: Type) :: Constraint where+   ToSizedCstr Word8   = ()+   ToSizedCstr Word16  = ()+   ToSizedCstr Word32  = ()+   ToSizedCstr Word64  = ()+   ToSizedCstr Int8    = ()+   ToSizedCstr Int16   = ()+   ToSizedCstr Int32   = ()+   ToSizedCstr Int64   = ()+   ToSizedCstr SWord8  = ()+   ToSizedCstr SWord16 = ()+   ToSizedCstr SWord32 = ()+   ToSizedCstr SWord64 = ()+   ToSizedCstr SInt8   = ()+   ToSizedCstr SInt16  = ()+   ToSizedCstr SInt32  = ()+   ToSizedCstr SInt64  = ()+   ToSizedCstr arg     = TypeError (ToSizedErr arg)++-- | Conversion from a fixed-sized BV to a sized bit-vector.+class ToSizedBV a where+   -- | Convert a fixed-sized bit-vector to the corresponding sized bit-vector,+   -- for instance 'SWord16' to 'SWord 16'. See also 'fromSized'.+   toSized :: a -> ToSized a++   default toSized :: (Num (ToSized a), Integral a) => (a -> ToSized a)+   toSized = fromIntegral++instance {-# OVERLAPPING  #-} ToSizedBV Word8+instance {-# OVERLAPPING  #-} ToSizedBV Word16+instance {-# OVERLAPPING  #-} ToSizedBV Word32+instance {-# OVERLAPPING  #-} ToSizedBV Word64+instance {-# OVERLAPPING  #-} ToSizedBV Int8+instance {-# OVERLAPPING  #-} ToSizedBV Int16+instance {-# OVERLAPPING  #-} ToSizedBV Int32+instance {-# OVERLAPPING  #-} ToSizedBV Int64+instance {-# OVERLAPPING  #-} ToSizedBV SWord8  where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SWord16 where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SWord32 where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SWord64 where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SInt8   where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SInt16  where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SInt32  where toSized = Trans.sFromIntegral+instance {-# OVERLAPPING  #-} ToSizedBV SInt64  where toSized = Trans.sFromIntegral+instance {-# OVERLAPPABLE #-} ToSizedCstr arg => ToSizedBV arg where toSized = error "unreachable"
Data/SBV/Compilers/C.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE CPP           #-} {-# LANGUAGE PatternGuards #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Compilers.C(compileToC, compileToCLib, compileToC', compileToCLib') where  import Control.DeepSeq                (rnf)@@ -196,9 +198,13 @@                      KTuple k           -> die $ "tuple sort: " ++ show k                      KMaybe  k          -> die $ "maybe sort: "  ++ show k                      KEither k1 k2      -> die $ "either sort: " ++ show (k1, k2)-  where spec :: (Bool, Int) -> Doc+  where u8InHex = cgShowU8InHex cfg++        spec :: (Bool, Int) -> Doc         spec (False,  1) = text "%d"-        spec (False,  8) = text "%\"PRIu8\""+        spec (False,  8)+          | u8InHex      = text "0x%02\"PRIx8\""+          | True         = text "%\"PRIu8\""         spec (True,   8) = text "%\"PRId8\""         spec (False, 16) = text "0x%04\"PRIx16\"U"         spec (True,  16) = text "%\"PRId16\""@@ -221,27 +227,29 @@   where sRealSuffix CgFloat      = text "F"         sRealSuffix CgDouble     = empty         sRealSuffix CgLongDouble = text "L"-mkConst cfg (CV KUnbounded       (CInteger i)) = showSizedConst i (True, fromJust (cgInteger cfg))-mkConst _   (CV (KBounded sg sz) (CInteger i)) = showSizedConst i (sg,   sz)-mkConst _   (CV KBool            (CInteger i)) = showSizedConst i (False, 1)+mkConst cfg (CV KUnbounded       (CInteger i)) = showSizedConst (cgShowU8InHex cfg) i (True, fromJust (cgInteger cfg))+mkConst cfg (CV (KBounded sg sz) (CInteger i)) = showSizedConst (cgShowU8InHex cfg) i (sg,   sz)+mkConst cfg (CV KBool            (CInteger i)) = showSizedConst (cgShowU8InHex cfg) i (False, 1) mkConst _   (CV KFloat           (CFloat f))   = text $ showCFloat f mkConst _   (CV KDouble          (CDouble d))  = text $ showCDouble d mkConst _   (CV KString          (CString s))  = text $ show s mkConst _   (CV KChar            (CChar c))    = text $ show c mkConst _   cv                                 = die $ "mkConst: " ++ show cv -showSizedConst :: Integer -> (Bool, Int) -> Doc-showSizedConst i   (False,  1) = text (if i == 0 then "false" else "true")-showSizedConst i   (False,  8) = integer i-showSizedConst i   (True,   8) = integer i-showSizedConst i t@(False, 16) = text $ chex False True t i-showSizedConst i t@(True,  16) = text $ chex False True t i-showSizedConst i t@(False, 32) = text $ chex False True t i-showSizedConst i t@(True,  32) = text $ chex False True t i-showSizedConst i t@(False, 64) = text $ chex False True t i-showSizedConst i t@(True,  64) = text $ chex False True t i-showSizedConst i   (True,  1)  = die $ "Signed 1-bit value " ++ show i-showSizedConst i   (s, sz)     = die $ "Constant " ++ show i ++ " at type " ++ (if s then "SInt" else "SWord") ++ show sz+showSizedConst :: Bool -> Integer -> (Bool, Int) -> Doc+showSizedConst _   i   (False,  1) = text (if i == 0 then "false" else "true")+showSizedConst u8h i t@(False,  8)+  | u8h                            = text (chex False True t i)+  | True                           = integer i+showSizedConst _   i   (True,   8) = integer i+showSizedConst _   i t@(False, 16) = text $ chex False True t i+showSizedConst _   i t@(True,  16) = text $ chex False True t i+showSizedConst _   i t@(False, 32) = text $ chex False True t i+showSizedConst _   i t@(True,  32) = text $ chex False True t i+showSizedConst _   i t@(False, 64) = text $ chex False True t i+showSizedConst _   i t@(True,  64) = text $ chex False True t i+showSizedConst _   i   (True,  1)  = die $ "Signed 1-bit value " ++ show i+showSizedConst _   i   (s, sz)     = die $ "Constant " ++ show i ++ " at type " ++ (if s then "SInt" else "SWord") ++ show sz  -- | Generate a makefile. The first argument is True if we have a driver. genMake :: Bool -> String -> String -> [String] -> Doc@@ -413,13 +421,15 @@                                                                                 P.<> text "\\n") P.<> comma <+> text n) P.<> semi        display (n, CgArray [])         =  die $ "Unsupported empty array value for " ++ show n        display (n, CgArray sws@(sv:_)) =   text "int" <+> nctr P.<> semi-                                        $$ text "for(" P.<> nctr <+> text "= 0;" <+> nctr <+> text "<" <+> int (length sws) <+> text "; ++" P.<> nctr P.<> text ")"+                                        $$ text "for(" P.<> nctr <+> text "= 0;" <+> nctr <+> text "<" <+> int len <+> text "; ++" P.<> nctr P.<> text ")"                                         $$ nest 2 (text "printf" P.<> parens (printQuotes (text " " <+> entrySpec <+> text "=" <+> spec P.<> text "\\n")                                                                  P.<> comma <+> nctr <+> comma P.<> entry) P.<> semi)                   where nctr      = text n P.<> text "_ctr"                         entry     = text n P.<> text "[" P.<> nctr P.<> text "]"-                        entrySpec = text n P.<> text "[%d]"+                        entrySpec = text n P.<> text "[%" P.<> int tab P.<> text "d]"                         spec      = specifier cfg sv+                        len       = length sws+                        tab       = length $ show (len - 1)  -- | Generate the C program genCProg :: CgConfig -> String -> Doc -> Result -> [(String, CgVal)] -> [(String, CgVal)] -> Maybe SV -> Doc -> ([Doc], [String])@@ -847,22 +857,30 @@           = if hi == 0             then text "(SBool)" <+> parens (a <+> text "& 1")             else text "(SBool)" <+> parens (parens (a <+> text ">>" <+> int hi) <+> text "& 1")-        extract hi lo i a = case (hi, lo, kindOf i) of-                              (63, 32, KBounded False 64) -> text "(SWord32)" <+> parens (a <+> text ">> 32")-                              (31,  0, KBounded False 64) -> text "(SWord32)" <+> a-                              (31, 16, KBounded False 32) -> text "(SWord16)" <+> parens (a <+> text ">> 16")-                              (15,  0, KBounded False 32) -> text "(SWord16)" <+> a-                              (15,  8, KBounded False 16) -> text "(SWord8)"  <+> parens (a <+> text ">> 8")-                              ( 7,  0, KBounded False 16) -> text "(SWord8)"  <+> a-                              (63,  0, KBounded False 64) -> text "(SInt64)"  <+> a-                              (63,  0, KBounded True  64) -> text "(SWord64)" <+> a-                              (31,  0, KBounded False 32) -> text "(SInt32)"  <+> a-                              (31,  0, KBounded True  32) -> text "(SWord32)" <+> a-                              (15,  0, KBounded False 16) -> text "(SInt16)"  <+> a-                              (15,  0, KBounded True  16) -> text "(SWord16)" <+> a-                              ( 7,  0, KBounded False  8) -> text "(SInt8)"   <+> a-                              ( 7,  0, KBounded True   8) -> text "(SWord8)"  <+> a-                              ( _,  _, k                ) -> tbd $ "extract with " ++ show (hi, lo, k, i)+        extract hi lo i a+          | srcSize `notElem` [64, 32, 16]+          = bad "Unsupported source size"+          | (hi + 1) `mod` 8 /= 0 || lo `mod` 8 /= 0+          = bad "Unsupported non-byte-aligned extraction"+          | tgtSize < 8 || tgtSize `mod` 8 /= 0+          = bad "Unsupported target size"+          | True+          = text cast <+> shifted+          where bad why    = tbd $ "extract with " ++ show (hi, lo, k, i) ++ " (Reason: " ++ why ++ ".)"++                k          = kindOf i+                srcSize    = intSizeOf k+                tgtSize    = hi - lo + 1+                signChange = srcSize == tgtSize++                cast+                  | signChange && hasSign k = "(SWord" ++ show srcSize ++ ")"+                  | signChange              = "(SInt"  ++ show srcSize ++ ")"+                  | True                    = "(SWord" ++ show tgtSize ++ ")"++                shifted+                  | lo == 0 = a+                  | True    = parens (a <+> text ">>" <+> int lo)          -- TBD: ditto here for join, just like extract above         join (i, j, a, b) = case (kindOf i, kindOf j) of
Data/SBV/Compilers/CodeGen.hs view
@@ -13,6 +13,8 @@ {-# LANGUAGE FlexibleInstances          #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Compilers.CodeGen (         -- * The codegen monad           SBVCodeGen(..), cgSym@@ -29,7 +31,7 @@          -- * Settings         , cgPerformRTCs, cgSetDriverValues-        , cgAddPrototype, cgAddDecl, cgAddLDFlags, cgIgnoreSAssert, cgOverwriteFiles+        , cgAddPrototype, cgAddDecl, cgAddLDFlags, cgIgnoreSAssert, cgOverwriteFiles, cgShowU8UsingHex         , cgIntegerSize, cgSRealType, CgSRealType(..)          -- * Infrastructure@@ -74,6 +76,7 @@         , cgGenMakefile        :: Bool               -- ^ If 'True', will generate a makefile         , cgIgnoreAsserts      :: Bool               -- ^ If 'True', will ignore 'Data.SBV.sAssert' calls         , cgOverwriteGenerated :: Bool               -- ^ If 'True', will overwrite the generated files without prompting.+        , cgShowU8InHex        :: Bool               -- ^ If 'True', then 8-bit unsigned values will be shown in hex as well, otherwise decimal. (Other types always shown in hex.)         }  -- | Default options for code generation. The run-time checks are turned-off, and the driver values are completely random.@@ -86,6 +89,7 @@                            , cgGenMakefile        = True                            , cgIgnoreAsserts      = False                            , cgOverwriteGenerated = False+                           , cgShowU8InHex        = False                            }  -- | Abstraction of target language values@@ -195,6 +199,12 @@ -- the C code. Otherwise, we'll prompt. cgOverwriteFiles :: Bool -> SBVCodeGen () cgOverwriteFiles b = modify' (\s -> s { cgFinalConfig = (cgFinalConfig s) { cgOverwriteGenerated = b } })++-- | If passed 'True', then we will show 'SWord 8' type in hex. Otherwise we'll show it in decimal. All signed+-- types are shown decimal, and all unsigned larger types are shown hexadecimal otherwise.+cgShowU8UsingHex :: Bool -> SBVCodeGen ()+cgShowU8UsingHex b = modify' (\s -> s { cgFinalConfig = (cgFinalConfig s) { cgShowU8InHex = b } })+  -- | Adds the given lines to the program file generated, useful for generating programs with uninterpreted functions. cgAddDecl :: [String] -> SBVCodeGen ()
Data/SBV/Control.hs view
@@ -10,7 +10,8 @@ -----------------------------------------------------------------------------  {-# LANGUAGE ConstraintKinds #-}-{-# LANGUAGE NamedFieldPuns  #-}++{-# OPTIONS_GHC -Wall -Werror #-}  module Data.SBV.Control (      -- $queryIntro
Data/SBV/Control/BaseIO.hs view
@@ -11,6 +11,8 @@ -- @Data.SBV.Control@, where we restrict the underlying monad to be IO. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Control.BaseIO where  import Data.SBV.Control.Query (Assignment)
Data/SBV/Control/Query.hs view
@@ -14,7 +14,7 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Control.Query (        send, ask, retrieveResponse
Data/SBV/Control/Types.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric  #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Control.Types (        CheckSatResult(..)      , Logic(..)
Data/SBV/Control/Utils.hs view
@@ -20,7 +20,7 @@ {-# LANGUAGE TupleSections          #-} {-# LANGUAGE TypeApplications       #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Control.Utils (        io
Data/SBV/Core/AlgReals.hs view
@@ -11,7 +11,7 @@  {-# LANGUAGE FlexibleInstances #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Core.AlgReals (              AlgReal(..)@@ -22,7 +22,8 @@            , mergeAlgReals            , isExactRational            , algRealStructuralEqual-           , algRealStructuralCompare)+           , algRealStructuralCompare+           )    where  import Data.List       (sortBy, isPrefixOf, partition)
Data/SBV/Core/Concrete.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Core.Concrete   ( module Data.SBV.Core.Concrete   ) where@@ -21,7 +23,7 @@ import Data.Bits import System.Random (randomIO, randomRIO) -import Data.Char (chr)+import Data.Char (chr, isSpace) import Data.List (isPrefixOf, intercalate)  import Data.SBV.Core.Kind@@ -402,15 +404,23 @@             shMaybe :: Maybe CVal -> String             shMaybe c = case (c, kw) of                           (Nothing, KMaybe{}) -> "Nothing"-                          (Just x,  KMaybe k) -> "Just " ++ showCV False (CV k x)+                          (Just x,  KMaybe k) -> "Just " ++ paren (showCV False (CV k x))                           _                   -> error $ "Data.SBV.showCV: Impossible happened, expected maybe, got: " ++ show kw              shEither :: Either CVal CVal -> String             shEither val               | KEither k1 k2 <- kw = case val of-                                        Left  x -> "Left "  ++ showCV False (CV k1 x)-                                        Right y -> "Right " ++ showCV False (CV k2 y)+                                        Left  x -> "Left "  ++ paren (showCV False (CV k1 x))+                                        Right y -> "Right " ++ paren (showCV False (CV k2 y))               | True                = error $ "Data.SBV.showCV: Impossible happened, expected sum, got: " ++ show kw++            -- kind of crude, but works ok+            paren v+              | needsParen = '(' : v ++ ")"+              | True       = v+              where needsParen = case dropWhile isSpace v of+                                   []         -> False+                                   rest@(x:_) -> any isSpace rest && x `notElem` "{[("  -- | Create a constant word from an integral. mkConstCV :: Integral a => Kind -> a -> CV
Data/SBV/Core/Data.hs view
@@ -17,12 +17,13 @@ {-# LANGUAGE FlexibleInstances     #-} {-# LANGUAGE InstanceSigs          #-} {-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE NamedFieldPuns        #-} {-# LANGUAGE PatternGuards         #-} {-# LANGUAGE ScopedTypeVariables   #-} {-# LANGUAGE TypeApplications      #-} {-# LANGUAGE TypeFamilies          #-} {-# LANGUAGE TypeOperators         #-}++{-# OPTIONS_GHC -Wall -Werror #-}  module Data.SBV.Core.Data  ( SBool, SWord8, SWord16, SWord32, SWord64
Data/SBV/Core/Floating.hs view
@@ -16,7 +16,7 @@ {-# LANGUAGE TypeApplications     #-} {-# LANGUAGE TypeFamilies         #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Core.Floating (          IEEEFloating(..), IEEEFloatConvertible(..)@@ -223,14 +223,14 @@   -- >>> prove $ roundTrip @Int32   -- Falsifiable. Counter-example:   --   s0 = RoundNearestTiesToEven :: RoundingMode-  --   s1 =            -2130176960 :: Int32+  --   s1 =              105509885 :: Int32   --   -- Note how we get a failure on `Int32`. The counter-example value is not representable exactly as a single precision float:   ---  -- >>> toRational (-2130176960 :: Float)-  -- (-2130177024) % 1+  -- >>> toRational (105509885 :: Float)+  -- 105509888 % 1   ---  -- Note how the numerator is different, it is off by 64. This is hardly surprising, since floats become sparser as+  -- Note how the numerator is different, it is off by 3. This is hardly surprising, since floats become sparser as   -- the magnitude increases to be able to cover all the integer values representable.   toSFloat :: SRoundingMode -> SBV a -> SFloat @@ -263,16 +263,16 @@   -- Q.E.D.   -- >>> prove $ roundTrip @Int64   -- Falsifiable. Counter-example:-  --   s0 = RoundNearestTiesToEven :: RoundingMode-  --   s1 =    4611686018427387902 :: Int64+  --   s0 =     RoundTowardZero :: RoundingMode+  --   s1 = 8546522810236048110 :: Int64   --   -- Just like in the `SFloat` case, once we reach 64-bits, we no longer can exactly represent the   -- integer value for all possible values:   ---  -- >>> toRational (4611686018427387902 ::Double)-  -- 4611686018427387904 % 1+  -- >>> toRational (8546522810236048110 :: Double)+  -- 8546522810236048384 % 1   ---  -- In this case the numerator is off by 2!+  -- In this case the numerator is off by 274!   toSDouble :: SRoundingMode -> SBV a -> SDouble    -- default definition if we have an integral like
Data/SBV/Core/Kind.hs view
@@ -16,7 +16,7 @@ {-# LANGUAGE TypeApplications    #-} {-# LANGUAGE ViewPatterns        #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Core.Kind (Kind(..), HasKind(..), constructUKind, smtType, hasUninterpretedSorts, showBaseKind, needsFlattening) where 
Data/SBV/Core/Model.hs view
@@ -19,7 +19,7 @@ {-# LANGUAGE TypeFamilies        #-} {-# LANGUAGE TypeOperators       #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Core.Model (     Mergeable(..), Equality(..), EqSymbolic(..), OrdSymbolic(..), SDivisible(..), Uninterpreted(..), Metric(..), minimize, maximize, assertWithPenalty, SIntegral, SFiniteBits(..)@@ -30,12 +30,12 @@   , sWord64, sWord64_, sWord64s, sInt8, sInt8_, sInt8s, sInt16, sInt16_, sInt16s, sInt32, sInt32_, sInt32s, sInt64, sInt64_   , sInt64s, sInteger, sInteger_, sIntegers, sReal, sReal_, sReals, sFloat, sFloat_, sFloats, sDouble, sDouble_, sDoubles   , sChar, sChar_, sChars, sString, sString_, sStrings, sList, sList_, sLists-  , sTuple, sTuple_, sTuples+  , SymTuple, sTuple, sTuple_, sTuples   , sEither, sEither_, sEithers, sMaybe, sMaybe_, sMaybes   , sSet, sSet_, sSets   , solve   , slet-  , sRealToSInteger, label, observe, observeIf+  , sRealToSInteger, label, observe, observeIf, sObserve   , sAssert   , liftQRem, liftDMod, symbolicMergeWithKind   , genLiteral, genFromCV, genMkSymVar@@ -45,6 +45,7 @@  import Control.Applicative    (ZipList(ZipList)) import Control.Monad          (when, unless, mplus)+import Control.Monad.Trans    (liftIO) import Control.Monad.IO.Class (MonadIO)  import GHC.Generics (U1(..), M1(..), (:*:)(..), K1(..))@@ -537,16 +538,27 @@ sLists :: (SymVal a, MonadSymbolic m) => [String] -> m [SList a] sLists = symbolics +-- | Identify tuple like things. Note that there are no methods, just instances to control type inference+class SymTuple a+instance SymTuple ()+instance SymTuple (a, b)+instance SymTuple (a, b, c)+instance SymTuple (a, b, c, d)+instance SymTuple (a, b, c, d, e)+instance SymTuple (a, b, c, d, e, f)+instance SymTuple (a, b, c, d, e, f, g)+instance SymTuple (a, b, c, d, e, f, g, h)+ -- | Generalization of 'Data.SBV.sTuple'-sTuple :: (SymVal tup, MonadSymbolic m) => String -> m (SBV tup)+sTuple :: (SymTuple tup, SymVal tup, MonadSymbolic m) => String -> m (SBV tup) sTuple = symbolic  -- | Generalization of 'Data.SBV.sTuple_'-sTuple_ :: (SymVal tup, MonadSymbolic m) => m (SBV tup)+sTuple_ :: (SymTuple tup, SymVal tup, MonadSymbolic m) => m (SBV tup) sTuple_ = free_  -- | Generalization of 'Data.SBV.sTuples'-sTuples :: (SymVal tup, MonadSymbolic m) => [String] -> m [SBV tup]+sTuples :: (SymTuple tup, SymVal tup, MonadSymbolic m) => [String] -> m [SBV tup] sTuples = symbolics  -- | Generalization of 'Data.SBV.sEither'@@ -614,18 +626,27 @@         r st = do xsv <- sbvToSV st x                   newExpr st k (SBVApp (Label m) [xsv]) ++-- | Check if an observable name is good.+checkObservableName :: String -> Maybe String+checkObservableName lbl+  | null lbl+  = Just "SBV.observe: Bad empty name!"+  | map toLower lbl `elem` smtLibReservedNames+  = Just $ "SBV.observe: The name chosen is reserved, please change it!: " ++ show lbl+  | "s" `isPrefixOf` lbl && all isDigit (drop 1 lbl)+  = Just $ "SBV.observe: Names of the form sXXX are internal to SBV, please use a different name: " ++ show lbl+  | True+  = Nothing+ -- | Observe the value of an expression, if the given condition holds.  Such values are useful in model construction, as they are printed part of a satisfying model, or a -- counter-example. The same works for quick-check as well. Useful when we want to see intermediate values, or expected/obtained -- pairs in a particular run. Note that an observed expression is always symbolic, i.e., it won't be constant folded. Compare this to 'label' -- which is used for putting a label in the generated SMTLib-C code. observeIf :: SymVal a => (a -> Bool) -> String -> SBV a -> SBV a observeIf cond m x-  | null m-  = error "SBV.observe: Bad empty name!"-  | map toLower m `elem` smtLibReservedNames-  = error $ "SBV.observe: The name chosen is reserved, please change it!: " ++ show m-  | "s" `isPrefixOf` m && all isDigit (drop 1 m)-  = error $ "SBV.observe: Names of the form sXXX are internal to SBV, please use a different name: " ++ show m+  | Just bad <- checkObservableName m+  = error bad   | True   = SBV $ SVal k $ Right $ cache r   where k = kindOf x@@ -637,6 +658,16 @@ observe :: SymVal a => String -> SBV a -> SBV a observe = observeIf (const True) +-- | A variant of observe that you can use at the top-level. This is useful with quick-check, for instance.+sObserve :: SymVal a => String -> SBV a -> Symbolic ()+sObserve m x+  | Just bad <- checkObservableName m+  = error bad+  | True+  = do st <- symbolicEnv+       liftIO $ do xsv <- sbvToSV st x+                   recordObservable st m (const True) xsv+ -- | Symbolic Equality. Note that we can't use Haskell's 'Eq' class since Haskell insists on returning Bool -- Comparing symbolic values will necessarily return a symbolic value. infix 4 .==, ./=, .===, ./==@@ -768,12 +799,45 @@           isBool (SBV (SVal KBool _)) = True           isBool _                    = False +-- | If comparison is over something SMTLib can handle, just translate it. Otherwise desugar. instance (Ord a, SymVal a) => OrdSymbolic (SBV a) where-  SBV x .<  SBV y = SBV (svLessThan x y)-  SBV x .<= SBV y = SBV (svLessEq x y)-  SBV x .>  SBV y = SBV (svGreaterThan x y)-  SBV x .>= SBV y = SBV (svGreaterEq x y)+  a@(SBV x) .<  b@(SBV y) | smtComparable "<"   a b = SBV (svLessThan x y)+                          | True                    = SBV (svStructuralLessThan x y) +  a@(SBV x) .<= b@(SBV y) | smtComparable ".<=" a b = SBV (svLessEq x y)+                          | True                    = a .< b .|| a .== b++  a@(SBV x) .>  b@(SBV y) | smtComparable ">"   a b = SBV (svGreaterThan x y)+                          | True                    = b .< a++  a@(SBV x) .>= b@(SBV y) | smtComparable ">="  a b = SBV (svGreaterEq x y)+                          | True                    = b .<= a++-- Is this a type that's comparable by underlying translation to SMTLib?+-- Note that we allow concrete versions to go through unless the type is a set, as there's really no reason not to.+smtComparable :: (SymVal a, HasKind a) => String -> SBV a -> SBV a -> Bool+smtComparable op x y+  | isConcrete x && isConcrete y && not (isSet k)+  = True+  | True+  = case k of+      KBool             -> True+      KBounded       {} -> True+      KUnbounded     {} -> True+      KReal          {} -> True+      KUninterpreted {} -> True+      KFloat            -> True+      KDouble           -> True+      KChar             -> True+      KString           -> True+      KList          {} -> nope     -- Unfortunately, no way for us to desugar this+      KSet           {} -> nope     -- Ditto here..+      KTuple         {} -> False+      KMaybe         {} -> False+      KEither        {} -> False+ where k    = kindOf x+       nope = error $ "Data.SBV.OrdSymbolic: SMTLib does not support " ++ op ++ " for " ++ show k+ -- Bool instance EqSymbolic Bool where   x .== y = fromBool $ x == y@@ -796,7 +860,7 @@   Just a  .== Just b  = a .== b   _       .== _       = sFalse -instance (OrdSymbolic a) => OrdSymbolic (Maybe a) where+instance OrdSymbolic a => OrdSymbolic (Maybe a) where   Nothing .<  Nothing = sFalse   Nothing .<  _       = sTrue   Just _  .<  Nothing = sFalse@@ -995,7 +1059,7 @@                   | True   = ite (sTestBit x i) i8 (go (i+1))                 where i8 = literal (fromIntegral i :: Word8) --- 'SIntegral' Instances, skips Real/Float/Bool/Integer+-- 'SFiniteBits' Instances, skips Real/Float/Bool/Integer instance SFiniteBits Word8  where sFiniteBitSize _ =  8 instance SFiniteBits Word16 where sFiniteBitSize _ = 16 instance SFiniteBits Word32 where sFiniteBitSize _ = 32@@ -1262,6 +1326,8 @@ -- | Conversion between integral-symbolic values, akin to Haskell's `fromIntegral` sFromIntegral :: forall a b. (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b sFromIntegral x+  | kFrom == kTo+  = SBV (unSBV x)   | isReal x   = error "SBV.sFromIntegral: Called on a real value" -- can't really happen due to types, but being overcautious   | Just v <- unliteral x@@ -1411,6 +1477,14 @@ -- Note that our instances implement this law even when @x@ is @0@ itself. -- -- NB. 'quot' truncates toward zero, while 'div' truncates toward negative infinity.+--+-- === C code generation of division operations+--+-- In the case of division or modulo of a minimal signed value (e.g. @-128@ for+-- 'SInt8') by @-1@, SMTLIB and Haskell agree on what the result should be.+-- Unfortunately the result in C code depends on CPU architecture and compiler+-- settings, as this is undefined behaviour in C.  **SBV does not guarantee**+-- what will happen in generated C code in this corner case. class SDivisible a where   sQuotRem :: a -> a -> (a, a)   sDivMod  :: a -> a -> (a, a)@@ -2209,7 +2283,7 @@ -- <http://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-scss2014.pdf>. -- -- Minimal completion: None. However, if @MetricSpace@ is not identical to the type, you want--- to define 'toMetricSpace' and possbly 'minimize'/'maximize' to add extra constraints as necessary.+-- to define 'toMetricSpace' and possibly 'minimize'/'maximize' to add extra constraints as necessary. class Metric a where   -- | The metric space we optimize the goal over. Usually the same as the type itself, but not always!   -- For instance, signed bit-vectors are optimized over their unsigned counterparts, floats are@@ -2301,13 +2375,13 @@                       case map fst unints of                        [] -> case unliteral r of-                               Nothing -> noQC [show r]+                               Nothing -> error $ intercalate "\n" [ "Quick-check: Calls to 'observe' not supported in quick-check mode. Please use 'sObserve' for full support."+                                                                   , "             (If you haven't used 'observe', please report this as a bug!)"+                                                                   ]                                Just b  -> return (cond, b, tvals ++ mapMaybe getObservable ovals)-                       us -> noQC us+                       us -> error $ "Cannot quick-check in the presence of uninterpreted constants: " ++ intercalate ", " us             complain qcInfo = showModel defaultSMTCfg (SMTModel [] Nothing qcInfo [])--           noQC us         = error $ "Cannot quick-check in the presence of uninterpreted constants: " ++ intercalate ", " us  -- | Quick check an SBV property. Note that a regular @quickCheck@ call will work just as -- well. Use this variant if you want to receive the boolean result.
Data/SBV/Core/Operations.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE BangPatterns #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Core.Operations   (   -- ** Basic constructors@@ -22,7 +24,7 @@   , svPlus, svTimes, svMinus, svUNeg, svAbs   , svDivide, svQuot, svRem, svQuotRem   , svEqual, svNotEqual, svStrongEqual, svSetEqual-  , svLessThan, svGreaterThan, svLessEq, svGreaterEq+  , svLessThan, svGreaterThan, svLessEq, svGreaterEq, svStructuralLessThan   , svAnd, svOr, svXOr, svNot   , svShl, svShr, svRol, svRor   , svExtract, svJoin@@ -1374,6 +1376,11 @@ uiLift _ cmp (Just i, _) (Just j, _) = i `cmp` j uiLift w _   a           b           = error $ "Data.SBV.Core.Operations: Impossible happened while trying to lift " ++ w ++ " over " ++ show (a, b) +-- | Predicate to check if a value is concrete+isConcrete :: SVal -> Bool+isConcrete (SVal _ Left{}) = True+isConcrete _               = False+ -- | Predicate for optimizing word operations like (+) and (*). -- NB. We specifically do *not* match for Double/Float; because -- FP-arithmetic doesn't obey traditional rules. For instance,@@ -1449,6 +1456,92 @@  noDoubleUnary :: String -> Double -> Double noDoubleUnary o a = error $ "SBV.Double." ++ o ++ ": Unexpected argument: " ++ show a++-- | Given a composite structure, figure out how to compare for less than+svStructuralLessThan :: SVal -> SVal -> SVal+svStructuralLessThan x y+   | isConcrete x && isConcrete y+   = x `svLessThan` y+   | KTuple{} <- kx+   = tupleLT x y+   | KMaybe{}  <- kx+   = maybeLT x y+   | KEither{} <- kx+   = eitherLT x y+   | True+   = x `svLessThan` y+   where kx = kindOf x++-- | Structural less-than for tuples+tupleLT :: SVal -> SVal -> SVal+tupleLT x y = SVal KBool $ Right $ cache res+  where ks = case kindOf x of+               KTuple xs -> xs+               k         -> error $ "Data.SBV: Impossible happened, tupleLT called with: " ++ show (k, x, y)++        n = length ks++        res st = do sx <- svToSV st x+                    sy <- svToSV st y++                    let chkElt i ek = let xi = SVal ek $ Right $ cache $ \_ -> newExpr st ek $ SBVApp (TupleAccess i n) [sx]+                                          yi = SVal ek $ Right $ cache $ \_ -> newExpr st ek $ SBVApp (TupleAccess i n) [sy]+                                          lt = xi `svStructuralLessThan` yi+                                          eq = xi `svEqual`              yi+                                       in (lt, eq)++                        walk []                  = svFalse+                        walk [(lti, _)]          = lti+                        walk ((lti, eqi) : rest) = lti `svOr` (eqi `svAnd` walk rest)++                    svToSV st $ walk $ zipWith chkElt [1..] ks++-- | Structural less-than for maybes+maybeLT :: SVal -> SVal -> SVal+maybeLT x y = sMaybeCase (       sMaybeCase svFalse (const svTrue)    y)+                         (\jx -> sMaybeCase svFalse (jx `svStructuralLessThan`) y)+                         x+  where ka = case kindOf x of+               KMaybe k' -> k'+               k         -> error $ "Data.SBV: Impossible happened, maybeLT called with: " ++ show (k, x, y)++        sMaybeCase brNothing brJust s = SVal KBool $ Right $ cache res+           where res st = do sv <- svToSV st s++                             let justVal = SVal ka $ Right $ cache $ \_ -> newExpr st ka $ SBVApp MaybeAccess [sv]+                                 justRes = brJust justVal++                             br1 <- svToSV st brNothing+                             br2 <- svToSV st justRes++                             -- Do we have a value?+                             noVal <- newExpr st KBool $ SBVApp (MaybeIs ka False) [sv]+                             newExpr st KBool $ SBVApp Ite [noVal, br1, br2]++-- | Structural less-than for either+eitherLT :: SVal -> SVal -> SVal+eitherLT x y = sEitherCase (\lx -> sEitherCase (lx `svStructuralLessThan`) (const svTrue)              y)+                           (\rx -> sEitherCase (const svFalse)             (rx `svStructuralLessThan`) y)+                           x+  where (ka, kb) = case kindOf x of+                     KEither k1 k2 -> (k1, k2)+                     k             -> error $ "Data.SBV: Impossible happened, eitherLT called with: " ++ show (k, x, y)++        sEitherCase brA brB sab = SVal KBool $ Right $ cache res+          where res st = do abv <- svToSV st sab++                            let leftVal  = SVal ka $ Right $ cache $ \_ -> newExpr st ka $ SBVApp (EitherAccess False) [abv]+                                rightVal = SVal kb $ Right $ cache $ \_ -> newExpr st kb $ SBVApp (EitherAccess True)  [abv]++                                leftRes  = brA leftVal+                                rightRes = brB rightVal++                            br1 <- svToSV st leftRes+                            br2 <- svToSV st rightRes++                            --  Which branch are we in? Return the appropriate value:+                            onLeft <- newExpr st KBool $ SBVApp (EitherIs ka kb False) [abv]+                            newExpr st KBool $ SBVApp Ite [onLeft, br1, br2]  {-# ANN svIte     ("HLint: ignore Eta reduce" :: String)         #-} {-# ANN svLazyIte ("HLint: ignore Eta reduce" :: String)         #-}
+ Data/SBV/Core/Sized.hs view
@@ -0,0 +1,587 @@+-----------------------------------------------------------------------------+-- |+-- Module    : Data.SBV.Core.Sized+-- Copyright : (c) Levent Erkok+-- License   : BSD3+-- Maintainer: erkokl@gmail.com+-- Stability : experimental+--+-- Type-level sized bit-vectors. Thanks to Ben Blaxill for providing an+-- initial implementation of this idea.+-----------------------------------------------------------------------------++{-# LANGUAGE DataKinds            #-}+{-# LANGUAGE FlexibleInstances    #-}+{-# LANGUAGE ScopedTypeVariables  #-}+{-# LANGUAGE TypeApplications     #-}+{-# LANGUAGE TypeFamilies         #-}+{-# LANGUAGE TypeOperators        #-}+{-# LANGUAGE UndecidableInstances #-}++{-# OPTIONS_GHC -Wall -Werror #-}++module Data.SBV.Core.Sized (+        -- * Type-sized unsigned bit-vectors+          SWord, WordN, sWord, sWord_, sWords+        -- * Type-sized signed bit-vectors+        , SInt, IntN, sInt, sInt_, sInts+        -- Bit-vector operations+        , bvExtract, (#), zeroExtend, signExtend, bvDrop, bvTake+        -- Splitting and reconstructing from bytes+        , ByteConverter(..)+        -- Non-zero constraint+        , IsNonZero+       ) where++import Data.Bits+import Data.Maybe (fromJust)+import Data.Proxy (Proxy(..))++import GHC.TypeLits+import Data.Kind++import Data.SBV.Core.Data+import Data.SBV.Core.Model+import Data.SBV.Core.Operations+import Data.SBV.Core.Symbolic++import Data.SBV.Control.Utils+import Data.SBV.SMT.SMT++-- Doctest only+-- $setup+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> import Data.SBV.Provers.Prover (prove)++-- | An unsigned bit-vector carrying its size info+newtype WordN (n :: Nat) = WordN Integer deriving (Eq, Ord)++-- | A symbolic unsigned bit-vector carrying its size info+type SWord (n :: Nat) = SBV (WordN n)++-- | Show instance for 'WordN'+instance Show (WordN n) where+  show (WordN v) = show v++-- | Grab the bit-size from the proxy+intOfProxy :: KnownNat n => Proxy n -> Int+intOfProxy = fromEnum . natVal++-- | Catch 0-width cases+type ZeroWidth = 'Text "Zero-width BV's are not allowed."++-- | Type family to create the appropriate non-zero constraint+type family IsNonZero (arg :: Nat) :: Constraint where+   IsNonZero 0 = TypeError ZeroWidth+   IsNonZero n = ()++-- | 'WordN' has a kind+instance (KnownNat n, IsNonZero n) => HasKind (WordN n) where+  kindOf _ = KBounded False (intOfProxy (Proxy @n))++-- | 'SymVal' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => SymVal (WordN n) where+   literal  x = genLiteral  (kindOf x) x+   mkSymVal   = genMkSymVar (kindOf (undefined :: WordN n))+   fromCV     = genFromCV++-- | A signed bit-vector carrying its size info+newtype IntN (n :: Nat) = IntN Integer deriving (Eq, Ord)++-- | A symbolic signed bit-vector carrying its size info+type SInt (n :: Nat) = SBV (IntN n)++-- | Show instance for 'IntN'+instance Show (IntN n) where+  show (IntN v) = show v++-- | 'IntN' has a kind+instance (KnownNat n, IsNonZero n) => HasKind (IntN n) where+  kindOf _ = KBounded True (intOfProxy (Proxy @n))++-- | 'SymVal' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => SymVal (IntN n) where+   literal  x = genLiteral  (kindOf x) x+   mkSymVal   = genMkSymVar (kindOf (undefined :: IntN n))+   fromCV     = genFromCV++-- Lift a unary operation via SVal+lift1 :: (KnownNat n, IsNonZero n, HasKind (bv n), Integral (bv n), Show (bv n)) => String -> (SVal -> SVal) -> bv n -> bv n+lift1 nm op x = uc $ op (c x)+  where k = kindOf x+        c = SVal k . Left . CV k . CInteger . toInteger+        uc (SVal _ (Left (CV _ (CInteger v)))) = fromInteger v+        uc r                                   = error $ "Impossible happened while lifting " ++ show nm ++ " over " ++ show (k, x, r)++-- Lift a binary operation via SVal+lift2 :: (KnownNat n, IsNonZero n, HasKind (bv n), Integral (bv n), Show (bv n)) => String -> (SVal -> SVal -> SVal) -> bv n -> bv n -> bv n+lift2 nm op x y = uc $ c x `op` c y+  where k = kindOf x+        c = SVal k . Left . CV k . CInteger . toInteger+        uc (SVal _ (Left (CV _ (CInteger v)))) = fromInteger v+        uc r                                   = error $ "Impossible happened while lifting " ++ show nm ++ " over " ++ show (k, x, y, r)++-- Lift a binary operation via SVal where second argument is an Int+lift2I :: (KnownNat n, IsNonZero n, HasKind (bv n), Integral (bv n), Show (bv n)) => String -> (SVal -> Int -> SVal) -> bv n -> Int -> bv n+lift2I nm op x i = uc $ c x `op` i+  where k = kindOf x+        c = SVal k . Left . CV k . CInteger . toInteger+        uc (SVal _ (Left (CV _ (CInteger v)))) = fromInteger v+        uc r                                   = error $ "Impossible happened while lifting " ++ show nm ++ " over " ++ show (k, x, i, r)++-- Lift a binary operation via SVal where second argument is an Int and returning a Bool+lift2IB :: (KnownNat n, IsNonZero n, HasKind (bv n), Integral (bv n), Show (bv n)) => String -> (SVal -> Int -> SVal) -> bv n -> Int -> Bool+lift2IB nm op x i = uc $ c x `op` i+  where k = kindOf x+        c = SVal k . Left . CV k . CInteger . toInteger+        uc (SVal _ (Left v)) = cvToBool v+        uc r                 = error $ "Impossible happened while lifting " ++ show nm ++ " over " ++ show (k, x, i, r)++-- | 'Bounded' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => Bounded (WordN n) where+   minBound = WordN 0+   maxBound = let sz = intOfProxy (Proxy @n) in WordN $ 2 ^ sz - 1++-- | 'Bounded' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => Bounded (IntN n) where+   minBound = let sz1 = intOfProxy (Proxy @n) - 1 in IntN $ - (2 ^ sz1)+   maxBound = let sz1 = intOfProxy (Proxy @n) - 1 in IntN $ 2 ^ sz1 - 1++-- | 'Num' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => Num (WordN n) where+   (+)         = lift2 "(+)"    svPlus+   (-)         = lift2 "(*)"    svMinus+   (*)         = lift2 "(*)"    svTimes+   negate      = lift1 "signum" svUNeg+   abs         = lift1 "abs"    svAbs+   signum      = WordN . signum   . toInteger+   fromInteger = WordN . fromJust . svAsInteger . svInteger (kindOf (undefined :: WordN n))++-- | 'Num' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => Num (IntN n) where+   (+)         = lift2 "(+)"    svPlus+   (-)         = lift2 "(*)"    svMinus+   (*)         = lift2 "(*)"    svTimes+   negate      = lift1 "signum" svUNeg+   abs         = lift1 "abs"    svAbs+   signum      = IntN . signum   . toInteger+   fromInteger = IntN . fromJust . svAsInteger . svInteger (kindOf (undefined :: IntN n))++-- | 'Enum' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => Enum (WordN n) where+   toEnum   = fromInteger  . toInteger+   fromEnum = fromIntegral . toInteger++-- | 'Enum' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => Enum (IntN n) where+   toEnum   = fromInteger  . toInteger+   fromEnum = fromIntegral . toInteger++-- | 'Real' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => Real (WordN n) where+   toRational (WordN x) = toRational x++-- | 'Real' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => Real (IntN n) where+   toRational (IntN x) = toRational x++-- | 'Integral' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => Integral (WordN n) where+   toInteger (WordN x)           = x+   quotRem   (WordN x) (WordN y) = let (q, r) = quotRem x y in (WordN q, WordN r)++-- | 'Integral' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => Integral (IntN n) where+   toInteger (IntN x)          = x+   quotRem   (IntN x) (IntN y) = let (q, r) = quotRem x y in (IntN q, IntN r)++--  'Bits' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => Bits (WordN n) where+   (.&.)        = lift2   "(.&.)"      svAnd+   (.|.)        = lift2   "(.|.)"      svOr+   xor          = lift2   "xor"        svXOr+   complement   = lift1   "complement" svNot+   shiftL       = lift2I  "shiftL"     svShl+   shiftR       = lift2I  "shiftR"     svShr+   rotateL      = lift2I  "rotateL"    svRol+   rotateR      = lift2I  "rotateR"    svRor+   testBit      = lift2IB "svTestBit"  svTestBit+   bitSizeMaybe = Just . const (intOfProxy (Proxy @n))+   bitSize _    = intOfProxy (Proxy @n)+   isSigned     = hasSign . kindOf+   bit i        = 1 `shiftL` i+   popCount     = fromIntegral . popCount . toInteger++--  'Bits' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => Bits (IntN n) where+   (.&.)        = lift2   "(.&.)"      svAnd+   (.|.)        = lift2   "(.|.)"      svOr+   xor          = lift2   "xor"        svXOr+   complement   = lift1   "complement" svNot+   shiftL       = lift2I  "shiftL"     svShl+   shiftR       = lift2I  "shiftR"     svShr+   rotateL      = lift2I  "rotateL"    svRol+   rotateR      = lift2I  "rotateR"    svRor+   testBit      = lift2IB "svTestBit"  svTestBit+   bitSizeMaybe = Just . const (intOfProxy (Proxy @n))+   bitSize _    = intOfProxy (Proxy @n)+   isSigned     = hasSign . kindOf+   bit i        = 1 `shiftL` i+   popCount     = fromIntegral . popCount . toInteger++-- | 'SIntegral' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => SIntegral (WordN n)++-- | 'SIntegral' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => SIntegral (IntN n)++-- | 'SDivisible' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => SDivisible (WordN n) where+  sQuotRem x 0 = (0, x)+  sQuotRem x y = x `quotRem` y+  sDivMod  x 0 = (0, x)+  sDivMod  x y = x `divMod` y++-- | 'SDivisible' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => SDivisible (IntN n) where+  sQuotRem x 0 = (0, x)+  sQuotRem x y = x `quotRem` y+  sDivMod  x 0 = (0, x)+  sDivMod  x y = x `divMod` y++-- | 'SDivisible' instance for 'SWord'+instance (KnownNat n, IsNonZero n) => SDivisible (SWord n) where+  sQuotRem = liftQRem+  sDivMod  = liftDMod++-- | 'SDivisible' instance for 'SInt'+instance (KnownNat n, IsNonZero n) => SDivisible (SInt n) where+  sQuotRem = liftQRem+  sDivMod  = liftDMod++-- | 'SFiniteBits' instance for 'WordN'+instance (KnownNat n, IsNonZero n) => SFiniteBits (WordN n) where+   sFiniteBitSize _ = intOfProxy (Proxy @n)++-- | 'SFiniteBits' instance for 'IntN'+instance (KnownNat n, IsNonZero n) => SFiniteBits (IntN n) where+   sFiniteBitSize _ = intOfProxy (Proxy @n)++-- | Reading 'WordN' values in queries.+instance (KnownNat n, IsNonZero n) => SMTValue (WordN n) where+   sexprToVal e = WordN <$> sexprToVal e++-- | Reading 'IntN' values in queries.+instance (KnownNat n, IsNonZero n) => SMTValue (IntN n) where+   sexprToVal e = IntN <$> sexprToVal e++-- | Constructing models for 'WordN'+instance (KnownNat n, IsNonZero n) => SatModel (WordN n) where+  parseCVs = genParse (kindOf (undefined :: WordN n))++-- | Constructing models for 'IntN'+instance (KnownNat n, IsNonZero n) => SatModel (IntN n) where+  parseCVs = genParse (kindOf (undefined :: IntN n))++-- | Optimizing 'WordN'+instance (KnownNat n, IsNonZero n) => Metric (WordN n)++-- | Optimizing 'IntN'+instance (KnownNat n, IsNonZero n) => Metric (IntN n) where+  type MetricSpace (IntN n) = WordN n+  toMetricSpace    x        = sFromIntegral x + 2 ^ (intOfProxy (Proxy @n) - 1)+  fromMetricSpace  x        = sFromIntegral x - 2 ^ (intOfProxy (Proxy @n) - 1)++-- | Generalization of 'Data.SBV.sWord'+sWord :: (KnownNat n, IsNonZero n) => MonadSymbolic m => String -> m (SWord n)+sWord = symbolic++-- | Generalization of 'Data.SBV.sWord_'+sWord_ :: (KnownNat n, IsNonZero n) => MonadSymbolic m => m (SWord n)+sWord_ = free_++-- | Generalization of 'Data.SBV.sWord64s'+sWords :: (KnownNat n, IsNonZero n) => MonadSymbolic m => [String] -> m [SWord n]+sWords = symbolics++-- | Generalization of 'Data.SBV.sInt'+sInt :: (KnownNat n, IsNonZero n) => MonadSymbolic m => String -> m (SInt n)+sInt = symbolic++-- | Generalization of 'Data.SBV.sInt_'+sInt_ :: (KnownNat n, IsNonZero n) => MonadSymbolic m => m (SInt n)+sInt_ = free_++-- | Generalization of 'Data.SBV.sInts'+sInts :: (KnownNat n, IsNonZero n) => MonadSymbolic m => [String] -> m [SInt n]+sInts = symbolics++-- | Extract a portion of bits to form a smaller bit-vector.+--+-- >>> prove $ \x -> bvExtract (Proxy @7) (Proxy @3) (x :: SWord 12) .== bvDrop (Proxy @4) (bvTake (Proxy @9) x)+-- Q.E.D.+bvExtract :: forall i j n bv proxy. ( KnownNat n, IsNonZero n, SymVal (bv n)+                                    , KnownNat i+                                    , KnownNat j+                                    , i + 1 <= n+                                    , j <= i+                                    , IsNonZero (i - j + 1)+                                    ) => proxy i                -- ^ @i@: Start position, numbered from @n-1@ to @0@+                                      -> proxy j                -- ^ @j@: End position, numbered from @n-1@ to @0@, @j <= i@ must hold+                                      -> SBV (bv n)             -- ^ Input bit vector of size @n@+                                      -> SBV (bv (i - j + 1))   -- ^ Output is of size @i - j + 1@+bvExtract start end = SBV . svExtract i j . unSBV+   where i  = fromIntegral (natVal start)+         j  = fromIntegral (natVal end)++-- | Join two bitvectors.+--+-- >>> prove $ \x y -> x .== bvExtract (Proxy @79) (Proxy @71) ((x :: SWord 9) # (y :: SWord 71))+-- Q.E.D.+(#) :: ( KnownNat n, IsNonZero n, SymVal (bv n)+       , KnownNat m, IsNonZero m, SymVal (bv m)+       ) => SBV (bv n)                     -- ^ First input, of size @n@, becomes the left side+         -> SBV (bv m)                     -- ^ Second input, of size @m@, becomes the right side+         -> SBV (bv (n + m))               -- ^ Concatenation, of size @n+m@+n # m = SBV $ svJoin (unSBV n) (unSBV m)+infixr 5 #++-- | Zero extend a bit-vector.+--+-- >>> prove $ \x -> bvExtract (Proxy @20) (Proxy @12) (zeroExtend (x :: SInt 12) :: SInt 21) .== 0+-- Q.E.D.+zeroExtend :: forall n m bv. ( KnownNat n, IsNonZero n, SymVal (bv n)+                             , KnownNat m, IsNonZero m, SymVal (bv m)+                             , n + 1 <= m+                             , SIntegral (bv (m - n))+                             , IsNonZero (m - n)+                             ) => SBV (bv n)    -- ^ Input, of size @n@+                               -> SBV (bv m)    -- ^ Output, of size @m@. @n < m@ must hold+zeroExtend n = SBV $ svJoin (unSBV zero) (unSBV n)+  where zero :: SBV (bv (m - n))+        zero = literal 0++-- | Sign extend a bit-vector.+--+-- >>> prove $ \x -> sNot (msb x) .=> bvExtract (Proxy @20) (Proxy @12) (signExtend (x :: SInt 12) :: SInt 21) .== 0+-- Q.E.D.+-- >>> prove $ \x ->       msb x  .=> bvExtract (Proxy @20) (Proxy @12) (signExtend (x :: SInt 12) :: SInt 21) .== complement 0+-- Q.E.D.+signExtend :: forall n m bv. ( KnownNat n, IsNonZero n, SymVal (bv n)+                             , KnownNat m, IsNonZero m, SymVal (bv m)+                             , n + 1 <= m+                             , SFiniteBits (bv n)+                             , SIntegral   (bv (m - n))+                             , IsNonZero   (m - n)+                             ) => SBV (bv n)  -- ^ Input, of size @n@+                               -> SBV (bv m)  -- ^ Output, of size @m@. @n < m@ must hold+signExtend n = SBV $ svJoin (unSBV ext) (unSBV n)+  where zero, ones, ext :: SBV (bv (m - n))+        zero = literal 0+        ones = complement zero+        ext  = ite (msb n) ones zero++-- | Drop bits from the top of a bit-vector.+--+-- >>> prove $ \x -> bvDrop (Proxy @0) (x :: SWord 43) .== x+-- Q.E.D.+-- >>> prove $ \x -> bvDrop (Proxy @20) (x :: SWord 21) .== ite (lsb x) 1 0+-- Q.E.D.+bvDrop :: forall i n m bv proxy. ( KnownNat n, IsNonZero n+                                 , KnownNat i+                                 , i + 1 <= n+                                 , i + m - n <= 0+                                 , IsNonZero (n - i)+                                 ) => proxy i                    -- ^ @i@: Number of bits to drop. @i < n@ must hold.+                                   -> SBV (bv n)                 -- ^ Input, of size @n@+                                   -> SBV (bv m)                 -- ^ Output, of size @m@. @m = n - i@ holds.+bvDrop i = SBV . svExtract start 0 . unSBV+  where nv    = intOfProxy (Proxy @n)+        start = nv - fromIntegral (natVal i) - 1++-- | Take bits from the top of a bit-vector.+--+-- >>> prove $ \x -> bvTake (Proxy @13) (x :: SWord 13) .== x+-- Q.E.D.+-- >>> prove $ \x -> bvTake (Proxy @1) (x :: SWord 13) .== ite (msb x) 1 0+-- Q.E.D.+-- >>> prove $ \x -> bvTake (Proxy @4) x # bvDrop (Proxy @4) x .== (x :: SWord 23)+-- Q.E.D.+bvTake :: forall i n bv proxy. ( KnownNat n, IsNonZero n+                               , KnownNat i, IsNonZero i+                               , i <= n+                               ) => proxy i                  -- ^ @i@: Number of bits to take. @0 < i <= n@ must hold.+                                 -> SBV (bv n)               -- ^ Input, of size @n@+                                 -> SBV (bv i)               -- ^ Output, of size @i@+bvTake i = SBV . svExtract start end . unSBV+  where nv    = intOfProxy (Proxy @n)+        start = nv - 1+        end   = start - fromIntegral (natVal i) + 1++-- | A helper class to convert sized bit-vectors to/from bytes.+class ByteConverter a where+   -- | Convert to a sequence of bytes+   --+   -- >>> prove $ \a b c d -> toBytes ((fromBytes [a, b, c, d]) :: SWord 32) .== [a, b, c, d]+   -- Q.E.D.+   toBytes   :: a -> [SWord 8]++   -- | Convert from a sequence of bytes+   --+   -- >>> prove $ \r -> fromBytes (toBytes r) .== (r :: SWord 64)+   -- Q.E.D.+   fromBytes :: [SWord 8] -> a++-- NB. The following instances are automatically generated by buildUtils/genByteConverter.hs+-- It is possible to write these more compactly indeed, but this explicit form generates+-- better C code, and hence we allow the verbosity here.++-- | 'SWord' 8 instance for 'ByteConverter'+instance ByteConverter (SWord 8) where+   toBytes a = [a]++   fromBytes [x] = x+   fromBytes as  = error $ "fromBytes:SWord 8: Incorrect number of bytes: " ++ show (length as)++-- | 'SWord' 16 instance for 'ByteConverter'+instance ByteConverter (SWord 16) where+   toBytes a = [ bvExtract (Proxy @15) (Proxy  @8) a+               , bvExtract (Proxy  @7) (Proxy  @0) a+               ]++   fromBytes as+     | l == 2+     = (fromBytes :: [SWord 8] -> SWord 8) (take 1 as) # fromBytes (drop 1 as)+     | True+     = error $ "fromBytes:SWord 16: Incorrect number of bytes: " ++ show l+     where l = length as++-- | 'SWord' 32 instance for 'ByteConverter'+instance ByteConverter (SWord 32) where+   toBytes a = [ bvExtract (Proxy @31) (Proxy @24) a, bvExtract (Proxy @23) (Proxy @16) a, bvExtract (Proxy @15) (Proxy  @8) a, bvExtract (Proxy  @7) (Proxy  @0) a+               ]++   fromBytes as+     | l == 4+     = (fromBytes :: [SWord 8] -> SWord 16) (take 2 as) # fromBytes (drop 2 as)+     | True+     = error $ "fromBytes:SWord 32: Incorrect number of bytes: " ++ show l+     where l = length as++-- | 'SWord' 64 instance for 'ByteConverter'+instance ByteConverter (SWord 64) where+   toBytes a = [ bvExtract (Proxy @63) (Proxy @56) a, bvExtract (Proxy @55) (Proxy @48) a, bvExtract (Proxy @47) (Proxy @40) a, bvExtract (Proxy @39) (Proxy @32) a+               , bvExtract (Proxy @31) (Proxy @24) a, bvExtract (Proxy @23) (Proxy @16) a, bvExtract (Proxy @15) (Proxy  @8) a, bvExtract (Proxy  @7) (Proxy  @0) a+               ]++   fromBytes as+     | l == 8+     = (fromBytes :: [SWord 8] -> SWord 32) (take 4 as) # fromBytes (drop 4 as)+     | True+     = error $ "fromBytes:SWord 64: Incorrect number of bytes: " ++ show l+     where l = length as++-- | 'SWord' 128 instance for 'ByteConverter'+instance ByteConverter (SWord 128) where+   toBytes a = [ bvExtract (Proxy @127) (Proxy @120) a, bvExtract (Proxy @119) (Proxy @112) a, bvExtract (Proxy @111) (Proxy @104) a, bvExtract (Proxy @103) (Proxy  @96) a+               , bvExtract (Proxy  @95) (Proxy  @88) a, bvExtract (Proxy  @87) (Proxy  @80) a, bvExtract (Proxy  @79) (Proxy  @72) a, bvExtract (Proxy  @71) (Proxy  @64) a+               , bvExtract (Proxy  @63) (Proxy  @56) a, bvExtract (Proxy  @55) (Proxy  @48) a, bvExtract (Proxy  @47) (Proxy  @40) a, bvExtract (Proxy  @39) (Proxy  @32) a+               , bvExtract (Proxy  @31) (Proxy  @24) a, bvExtract (Proxy  @23) (Proxy  @16) a, bvExtract (Proxy  @15) (Proxy   @8) a, bvExtract (Proxy   @7) (Proxy   @0) a+               ]++   fromBytes as+     | l == 16+     = (fromBytes :: [SWord 8] -> SWord 64) (take 8 as) # fromBytes (drop 8 as)+     | True+     = error $ "fromBytes:SWord 128: Incorrect number of bytes: " ++ show l+     where l = length as++-- | 'SWord' 256 instance for 'ByteConverter'+instance ByteConverter (SWord 256) where+   toBytes a = [ bvExtract (Proxy @255) (Proxy @248) a, bvExtract (Proxy @247) (Proxy @240) a, bvExtract (Proxy @239) (Proxy @232) a, bvExtract (Proxy @231) (Proxy @224) a+               , bvExtract (Proxy @223) (Proxy @216) a, bvExtract (Proxy @215) (Proxy @208) a, bvExtract (Proxy @207) (Proxy @200) a, bvExtract (Proxy @199) (Proxy @192) a+               , bvExtract (Proxy @191) (Proxy @184) a, bvExtract (Proxy @183) (Proxy @176) a, bvExtract (Proxy @175) (Proxy @168) a, bvExtract (Proxy @167) (Proxy @160) a+               , bvExtract (Proxy @159) (Proxy @152) a, bvExtract (Proxy @151) (Proxy @144) a, bvExtract (Proxy @143) (Proxy @136) a, bvExtract (Proxy @135) (Proxy @128) a+               , bvExtract (Proxy @127) (Proxy @120) a, bvExtract (Proxy @119) (Proxy @112) a, bvExtract (Proxy @111) (Proxy @104) a, bvExtract (Proxy @103) (Proxy  @96) a+               , bvExtract (Proxy  @95) (Proxy  @88) a, bvExtract (Proxy  @87) (Proxy  @80) a, bvExtract (Proxy  @79) (Proxy  @72) a, bvExtract (Proxy  @71) (Proxy  @64) a+               , bvExtract (Proxy  @63) (Proxy  @56) a, bvExtract (Proxy  @55) (Proxy  @48) a, bvExtract (Proxy  @47) (Proxy  @40) a, bvExtract (Proxy  @39) (Proxy  @32) a+               , bvExtract (Proxy  @31) (Proxy  @24) a, bvExtract (Proxy  @23) (Proxy  @16) a, bvExtract (Proxy  @15) (Proxy   @8) a, bvExtract (Proxy   @7) (Proxy   @0) a+               ]++   fromBytes as+     | l == 32+     = (fromBytes :: [SWord 8] -> SWord 128) (take 16 as) # fromBytes (drop 16 as)+     | True+     = error $ "fromBytes:SWord 256: Incorrect number of bytes: " ++ show l+     where l = length as++-- | 'SWord' 512 instance for 'ByteConverter'+instance ByteConverter (SWord 512) where+   toBytes a = [ bvExtract (Proxy @511) (Proxy @504) a, bvExtract (Proxy @503) (Proxy @496) a, bvExtract (Proxy @495) (Proxy @488) a, bvExtract (Proxy @487) (Proxy @480) a+               , bvExtract (Proxy @479) (Proxy @472) a, bvExtract (Proxy @471) (Proxy @464) a, bvExtract (Proxy @463) (Proxy @456) a, bvExtract (Proxy @455) (Proxy @448) a+               , bvExtract (Proxy @447) (Proxy @440) a, bvExtract (Proxy @439) (Proxy @432) a, bvExtract (Proxy @431) (Proxy @424) a, bvExtract (Proxy @423) (Proxy @416) a+               , bvExtract (Proxy @415) (Proxy @408) a, bvExtract (Proxy @407) (Proxy @400) a, bvExtract (Proxy @399) (Proxy @392) a, bvExtract (Proxy @391) (Proxy @384) a+               , bvExtract (Proxy @383) (Proxy @376) a, bvExtract (Proxy @375) (Proxy @368) a, bvExtract (Proxy @367) (Proxy @360) a, bvExtract (Proxy @359) (Proxy @352) a+               , bvExtract (Proxy @351) (Proxy @344) a, bvExtract (Proxy @343) (Proxy @336) a, bvExtract (Proxy @335) (Proxy @328) a, bvExtract (Proxy @327) (Proxy @320) a+               , bvExtract (Proxy @319) (Proxy @312) a, bvExtract (Proxy @311) (Proxy @304) a, bvExtract (Proxy @303) (Proxy @296) a, bvExtract (Proxy @295) (Proxy @288) a+               , bvExtract (Proxy @287) (Proxy @280) a, bvExtract (Proxy @279) (Proxy @272) a, bvExtract (Proxy @271) (Proxy @264) a, bvExtract (Proxy @263) (Proxy @256) a+               , bvExtract (Proxy @255) (Proxy @248) a, bvExtract (Proxy @247) (Proxy @240) a, bvExtract (Proxy @239) (Proxy @232) a, bvExtract (Proxy @231) (Proxy @224) a+               , bvExtract (Proxy @223) (Proxy @216) a, bvExtract (Proxy @215) (Proxy @208) a, bvExtract (Proxy @207) (Proxy @200) a, bvExtract (Proxy @199) (Proxy @192) a+               , bvExtract (Proxy @191) (Proxy @184) a, bvExtract (Proxy @183) (Proxy @176) a, bvExtract (Proxy @175) (Proxy @168) a, bvExtract (Proxy @167) (Proxy @160) a+               , bvExtract (Proxy @159) (Proxy @152) a, bvExtract (Proxy @151) (Proxy @144) a, bvExtract (Proxy @143) (Proxy @136) a, bvExtract (Proxy @135) (Proxy @128) a+               , bvExtract (Proxy @127) (Proxy @120) a, bvExtract (Proxy @119) (Proxy @112) a, bvExtract (Proxy @111) (Proxy @104) a, bvExtract (Proxy @103) (Proxy  @96) a+               , bvExtract (Proxy  @95) (Proxy  @88) a, bvExtract (Proxy  @87) (Proxy  @80) a, bvExtract (Proxy  @79) (Proxy  @72) a, bvExtract (Proxy  @71) (Proxy  @64) a+               , bvExtract (Proxy  @63) (Proxy  @56) a, bvExtract (Proxy  @55) (Proxy  @48) a, bvExtract (Proxy  @47) (Proxy  @40) a, bvExtract (Proxy  @39) (Proxy  @32) a+               , bvExtract (Proxy  @31) (Proxy  @24) a, bvExtract (Proxy  @23) (Proxy  @16) a, bvExtract (Proxy  @15) (Proxy   @8) a, bvExtract (Proxy   @7) (Proxy   @0) a+               ]++   fromBytes as+     | l == 64+     = (fromBytes :: [SWord 8] -> SWord 256) (take 32 as) # fromBytes (drop 32 as)+     | True+     = error $ "fromBytes:SWord 512: Incorrect number of bytes: " ++ show l+     where l = length as++-- | 'SWord' 1024 instance for 'ByteConverter'+instance ByteConverter (SWord 1024) where+   toBytes a = [ bvExtract (Proxy @1023) (Proxy @1016) a, bvExtract (Proxy @1015) (Proxy @1008) a, bvExtract (Proxy @1007) (Proxy @1000) a, bvExtract (Proxy  @999) (Proxy  @992) a+               , bvExtract (Proxy  @991) (Proxy  @984) a, bvExtract (Proxy  @983) (Proxy  @976) a, bvExtract (Proxy  @975) (Proxy  @968) a, bvExtract (Proxy  @967) (Proxy  @960) a+               , bvExtract (Proxy  @959) (Proxy  @952) a, bvExtract (Proxy  @951) (Proxy  @944) a, bvExtract (Proxy  @943) (Proxy  @936) a, bvExtract (Proxy  @935) (Proxy  @928) a+               , bvExtract (Proxy  @927) (Proxy  @920) a, bvExtract (Proxy  @919) (Proxy  @912) a, bvExtract (Proxy  @911) (Proxy  @904) a, bvExtract (Proxy  @903) (Proxy  @896) a+               , bvExtract (Proxy  @895) (Proxy  @888) a, bvExtract (Proxy  @887) (Proxy  @880) a, bvExtract (Proxy  @879) (Proxy  @872) a, bvExtract (Proxy  @871) (Proxy  @864) a+               , bvExtract (Proxy  @863) (Proxy  @856) a, bvExtract (Proxy  @855) (Proxy  @848) a, bvExtract (Proxy  @847) (Proxy  @840) a, bvExtract (Proxy  @839) (Proxy  @832) a+               , bvExtract (Proxy  @831) (Proxy  @824) a, bvExtract (Proxy  @823) (Proxy  @816) a, bvExtract (Proxy  @815) (Proxy  @808) a, bvExtract (Proxy  @807) (Proxy  @800) a+               , bvExtract (Proxy  @799) (Proxy  @792) a, bvExtract (Proxy  @791) (Proxy  @784) a, bvExtract (Proxy  @783) (Proxy  @776) a, bvExtract (Proxy  @775) (Proxy  @768) a+               , bvExtract (Proxy  @767) (Proxy  @760) a, bvExtract (Proxy  @759) (Proxy  @752) a, bvExtract (Proxy  @751) (Proxy  @744) a, bvExtract (Proxy  @743) (Proxy  @736) a+               , bvExtract (Proxy  @735) (Proxy  @728) a, bvExtract (Proxy  @727) (Proxy  @720) a, bvExtract (Proxy  @719) (Proxy  @712) a, bvExtract (Proxy  @711) (Proxy  @704) a+               , bvExtract (Proxy  @703) (Proxy  @696) a, bvExtract (Proxy  @695) (Proxy  @688) a, bvExtract (Proxy  @687) (Proxy  @680) a, bvExtract (Proxy  @679) (Proxy  @672) a+               , bvExtract (Proxy  @671) (Proxy  @664) a, bvExtract (Proxy  @663) (Proxy  @656) a, bvExtract (Proxy  @655) (Proxy  @648) a, bvExtract (Proxy  @647) (Proxy  @640) a+               , bvExtract (Proxy  @639) (Proxy  @632) a, bvExtract (Proxy  @631) (Proxy  @624) a, bvExtract (Proxy  @623) (Proxy  @616) a, bvExtract (Proxy  @615) (Proxy  @608) a+               , bvExtract (Proxy  @607) (Proxy  @600) a, bvExtract (Proxy  @599) (Proxy  @592) a, bvExtract (Proxy  @591) (Proxy  @584) a, bvExtract (Proxy  @583) (Proxy  @576) a+               , bvExtract (Proxy  @575) (Proxy  @568) a, bvExtract (Proxy  @567) (Proxy  @560) a, bvExtract (Proxy  @559) (Proxy  @552) a, bvExtract (Proxy  @551) (Proxy  @544) a+               , bvExtract (Proxy  @543) (Proxy  @536) a, bvExtract (Proxy  @535) (Proxy  @528) a, bvExtract (Proxy  @527) (Proxy  @520) a, bvExtract (Proxy  @519) (Proxy  @512) a+               , bvExtract (Proxy  @511) (Proxy  @504) a, bvExtract (Proxy  @503) (Proxy  @496) a, bvExtract (Proxy  @495) (Proxy  @488) a, bvExtract (Proxy  @487) (Proxy  @480) a+               , bvExtract (Proxy  @479) (Proxy  @472) a, bvExtract (Proxy  @471) (Proxy  @464) a, bvExtract (Proxy  @463) (Proxy  @456) a, bvExtract (Proxy  @455) (Proxy  @448) a+               , bvExtract (Proxy  @447) (Proxy  @440) a, bvExtract (Proxy  @439) (Proxy  @432) a, bvExtract (Proxy  @431) (Proxy  @424) a, bvExtract (Proxy  @423) (Proxy  @416) a+               , bvExtract (Proxy  @415) (Proxy  @408) a, bvExtract (Proxy  @407) (Proxy  @400) a, bvExtract (Proxy  @399) (Proxy  @392) a, bvExtract (Proxy  @391) (Proxy  @384) a+               , bvExtract (Proxy  @383) (Proxy  @376) a, bvExtract (Proxy  @375) (Proxy  @368) a, bvExtract (Proxy  @367) (Proxy  @360) a, bvExtract (Proxy  @359) (Proxy  @352) a+               , bvExtract (Proxy  @351) (Proxy  @344) a, bvExtract (Proxy  @343) (Proxy  @336) a, bvExtract (Proxy  @335) (Proxy  @328) a, bvExtract (Proxy  @327) (Proxy  @320) a+               , bvExtract (Proxy  @319) (Proxy  @312) a, bvExtract (Proxy  @311) (Proxy  @304) a, bvExtract (Proxy  @303) (Proxy  @296) a, bvExtract (Proxy  @295) (Proxy  @288) a+               , bvExtract (Proxy  @287) (Proxy  @280) a, bvExtract (Proxy  @279) (Proxy  @272) a, bvExtract (Proxy  @271) (Proxy  @264) a, bvExtract (Proxy  @263) (Proxy  @256) a+               , bvExtract (Proxy  @255) (Proxy  @248) a, bvExtract (Proxy  @247) (Proxy  @240) a, bvExtract (Proxy  @239) (Proxy  @232) a, bvExtract (Proxy  @231) (Proxy  @224) a+               , bvExtract (Proxy  @223) (Proxy  @216) a, bvExtract (Proxy  @215) (Proxy  @208) a, bvExtract (Proxy  @207) (Proxy  @200) a, bvExtract (Proxy  @199) (Proxy  @192) a+               , bvExtract (Proxy  @191) (Proxy  @184) a, bvExtract (Proxy  @183) (Proxy  @176) a, bvExtract (Proxy  @175) (Proxy  @168) a, bvExtract (Proxy  @167) (Proxy  @160) a+               , bvExtract (Proxy  @159) (Proxy  @152) a, bvExtract (Proxy  @151) (Proxy  @144) a, bvExtract (Proxy  @143) (Proxy  @136) a, bvExtract (Proxy  @135) (Proxy  @128) a+               , bvExtract (Proxy  @127) (Proxy  @120) a, bvExtract (Proxy  @119) (Proxy  @112) a, bvExtract (Proxy  @111) (Proxy  @104) a, bvExtract (Proxy  @103) (Proxy   @96) a+               , bvExtract (Proxy   @95) (Proxy   @88) a, bvExtract (Proxy   @87) (Proxy   @80) a, bvExtract (Proxy   @79) (Proxy   @72) a, bvExtract (Proxy   @71) (Proxy   @64) a+               , bvExtract (Proxy   @63) (Proxy   @56) a, bvExtract (Proxy   @55) (Proxy   @48) a, bvExtract (Proxy   @47) (Proxy   @40) a, bvExtract (Proxy   @39) (Proxy   @32) a+               , bvExtract (Proxy   @31) (Proxy   @24) a, bvExtract (Proxy   @23) (Proxy   @16) a, bvExtract (Proxy   @15) (Proxy    @8) a, bvExtract (Proxy    @7) (Proxy    @0) a+               ]++   fromBytes as+     | l == 128+     = (fromBytes :: [SWord 8] -> SWord 512) (take 64 as) # fromBytes (drop 64 as)+     | True+     = error $ "fromBytes:SWord 1024: Incorrect number of bytes: " ++ show l+     where l = length as
− Data/SBV/Core/Splittable.hs
@@ -1,76 +0,0 @@--------------------------------------------------------------------------------- |--- Module    : Data.SBV.Core.Splittable--- Copyright : (c) Levent Erkok--- License   : BSD3--- Maintainer: erkokl@gmail.com--- Stability : experimental------ Implementation of bit-vector concatanetation and splits--------------------------------------------------------------------------------{-# LANGUAGE FlexibleInstances      #-}-{-# LANGUAGE FunctionalDependencies #-}--module Data.SBV.Core.Splittable (Splittable(..)) where--import Data.Bits (Bits(..))-import Data.Word (Word8, Word16, Word32, Word64)--import Data.SBV.Core.Operations-import Data.SBV.Core.Data-import Data.SBV.Core.Model () -- instances only--infixr 5 #--- | Splitting an @a@ into two @b@'s and joining back.--- Intuitively, @a@ is a larger bit-size word than @b@, typically double.--- The 'extend' operation captures embedding of a @b@ value into an @a@--- without changing its semantic value.-class Splittable a b | b -> a where-  split  :: a -> (b, b)-  (#)    :: b -> b -> a-  extend :: b -> a--  {-# MINIMAL split, (#), extend #-}--genSplit :: (Integral a, Num b) => Int -> a -> (b, b)-genSplit ss x = (fromIntegral ((ix `shiftR` ss) .&. mask), fromIntegral (ix .&. mask))-  where ix = toInteger x-        mask = 2 ^ ss - 1--genJoin :: (Integral b, Num a) => Int -> b -> b -> a-genJoin ss x y = fromIntegral ((ix `shiftL` ss) .|. iy)-  where ix = toInteger x-        iy = toInteger y---- concrete instances-instance Splittable Word64 Word32 where-  split = genSplit 32-  (#)   = genJoin  32-  extend b = 0 # b--instance Splittable Word32 Word16 where-  split = genSplit 16-  (#)   = genJoin  16-  extend b = 0 # b--instance Splittable Word16 Word8 where-  split = genSplit 8-  (#)   = genJoin  8-  extend b = 0 # b---- symbolic instances-instance Splittable SWord64 SWord32 where-  split (SBV x) = (SBV (svExtract 63 32 x), SBV (svExtract 31 0 x))-  SBV a # SBV b = SBV (svJoin a b)-  extend b = 0 # b--instance Splittable SWord32 SWord16 where-  split (SBV x) = (SBV (svExtract 31 16 x), SBV (svExtract 15 0 x))-  SBV a # SBV b = SBV (svJoin a b)-  extend b = 0 # b--instance Splittable SWord16 SWord8 where-  split (SBV x) = (SBV (svExtract 15 8 x), SBV (svExtract 7 0 x))-  SBV a # SBV b = SBV (svJoin a b)-  extend b = 0 # b
Data/SBV/Core/Symbolic.hs view
@@ -25,7 +25,7 @@ {-# LANGUAGE TypeOperators              #-} {-# LANGUAGE UndecidableInstances       #-} -- for undetermined s in MonadState -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Core.Symbolic   ( NodeId(..)@@ -1351,7 +1351,10 @@                                                                        -- validation run. So, simply push a zero value that inhabits all metrics.                                                                        mkConstCV k (0::Integer)                                                                  else bad ("Cannot locate variable: " ++ show (nsv, k)) report-                                              [(ALL, _)]      -> bad ("Cannot validate models in the presence of universally quantified variable " ++ show (snd nsv)) cant+                                              [(ALL, _)]      -> -- We can stop here, as we can't really validate in the presence of a universal quantifier:+                                                                 -- we'd have to validate for each possible value. But that's more or less useless. Instead,+                                                                 -- just issue a warning and use 0 for this value.+                                                                 mkConstCV k (0::Integer)                                               [(EX, Nothing)] -> bad ("Cannot locate model value of variable: " ++ show (snd nsv)) report                                               [(EX, Just c)]  -> c                                               r               -> bad (   "Found multiple matching values for variable: " ++ show nsv
Data/SBV/Dynamic.hs view
@@ -12,6 +12,8 @@ -- at your own risk! ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Dynamic   (   -- * Programming with symbolic values@@ -43,7 +45,7 @@   -- *** Constructing concrete lists   , svEnumFromThenTo   -- *** Symbolic ordering-  , svLessThan, svGreaterThan, svLessEq, svGreaterEq+  , svLessThan, svGreaterThan, svLessEq, svGreaterEq, svStructuralLessThan   -- *** Arithmetic operations   , svPlus, svTimes, svMinus, svUNeg, svAbs   , svDivide, svQuot, svRem, svQuotRem, svExp
Data/SBV/Either.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE TypeApplications    #-} {-# LANGUAGE TypeOperators       #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Either (     -- * Constructing sums       sLeft, sRight, liftEither
Data/SBV/Internals.hs view
@@ -17,6 +17,8 @@ -- is a very good but also a very difficult question to answer!) ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Internals (   -- * Running symbolic programs /manually/     Result(..), SBVRunMode(..), IStage(..), QueryContext(..)
Data/SBV/List.hs view
@@ -19,6 +19,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.List (         -- * Length, emptiness           length, null@@ -128,7 +130,7 @@ -- Q.E.D. -- >>> sat $ \(l :: SList Word16) -> length l .>= 2 .&& listToListAt l 0 ./= listToListAt l (length l - 1) -- Satisfiable. Model:---   s0 = [0,0,8192] :: [Word16]+--   s0 = [0,0,2] :: [Word16] listToListAt :: SymVal a => SList a -> SInteger -> SList a listToListAt s offset = subList s offset 1 
Data/SBV/Maybe.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE TypeApplications    #-} {-# LANGUAGE TypeOperators       #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Maybe (   -- * Constructing optional values     sJust, sNothing, liftMaybe
Data/SBV/Provers/ABC.hs view
@@ -9,6 +9,8 @@ -- The connection to the ABC verification and synthesis tool ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.ABC(abc) where  import Data.SBV.Core.Data
Data/SBV/Provers/Boolector.hs view
@@ -9,6 +9,8 @@ -- The connection to the Boolector SMT solver ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.Boolector(boolector) where  import Data.SBV.Core.Data
Data/SBV/Provers/CVC4.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.CVC4(cvc4) where  import Data.Char (isSpace)
Data/SBV/Provers/MathSAT.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.MathSAT(mathSAT) where  import Data.SBV.Core.Data
Data/SBV/Provers/Prover.hs view
@@ -18,6 +18,8 @@ {-# LANGUAGE ScopedTypeVariables   #-} {-# LANGUAGE TupleSections         #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.Prover (          SMTSolver(..), SMTConfig(..), Predicate        , MProvable(..), Provable, proveWithAll, proveWithAny , satWithAll, satWithAny@@ -367,7 +369,8 @@                                Unknown{}       -> return res                                ProofError{}    -> return res -    where check env = do let envShown = showModelDictionary True True cfg modelBinds+    where check env = do let univs    = [n | ((ALL, (_, n)), _) <- env]+                             envShown = showModelDictionary True True cfg modelBinds                                 where modelBinds = [(n, fake q s v) | ((q, (s, n)), v) <- env]                                       fake q s Nothing                                         | q == ALL@@ -383,6 +386,11 @@                          notify $ "Validating the model. " ++ if null env then "There are no assignments." else "Assignment:"                          mapM_ notify ["    " ++ l | l <- lines envShown] +                         unless (null univs) $ do+                                notify $ "NB. The following variable(s) are universally quantified: " ++ intercalate ", " univs+                                notify   "    We will assume that they are essentially zero for the purposes of validation."+                                notify   "    Note that this is a gross simplification of the model validation with universals!"+                          result <- snd <$> runSymbolic (Concrete (Just (isSAT, env))) ((if isSAT then forSome_ p else forAll_ p) >>= output)                           let explain  = [ ""@@ -421,7 +429,6 @@                                                                           IEEEFP FP_FMA     -> Just "Floating point FMA operation is not supported concretely."                                                                           IEEEFP _          -> Just "Not all floating point operations are supported concretely."                                                                           OverflowOp _      -> Just "Overflow-checking is not done concretely."-                                                                          StrOp (StrInRe _) -> Just "Regular expression matches are not supported in validation mode."                                                                           _                 -> listToMaybe $ mapMaybe why as                               cstrs = S.toList $ resConstraints result
Data/SBV/Provers/Yices.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.Yices(yices) where  import Data.SBV.Core.Data
Data/SBV/Provers/Z3.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Provers.Z3(z3) where  import Data.SBV.Core.Data@@ -41,6 +43,7 @@                               , supportsDataTypes          = True                               , supportsFlattenedModels    = Just [ "(set-option :pp.max_depth      4294967295)"                                                                   , "(set-option :pp.min_alias_size 4294967295)"+                                                                  , "(set-option :model.inline_def  true      )"                                                                   ]                               }          }
Data/SBV/RegExp.hs view
@@ -20,6 +20,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.RegExp (         -- * Regular expressions         RegExp(..)@@ -47,6 +49,9 @@  import Prelude hiding (length, take, elem, notElem, head) +import qualified Prelude   as P+import qualified Data.List as L+ import Data.SBV.Core.Data import Data.SBV.Core.Model () -- instances only @@ -82,7 +87,7 @@ -- >>> let phone = pre * "-" * post -- >>> sat $ \s -> (s :: SString) `match` phone -- Satisfiable. Model:---   s0 = "224-4222" :: String+--   s0 = "200-1000" :: String class RegExpMatchable a where    -- | @`match` s r@ checks whether @s@ is in the language generated by @r@.    match :: a -> RegExp -> SBool@@ -93,11 +98,28 @@  -- | Matching symbolic strings. instance RegExpMatchable SString where-   match s r = lift1 (StrInRe r) opt s-     where -- TODO: Replace this with a function that concretely evaluates the string against the-           -- reg-exp, possible future work. But probably there isn't enough ROI.-           opt :: Maybe (String -> Bool)-           opt = Nothing+   match input regExp = lift1 (StrInRe regExp) (Just (go regExp P.null)) input+     where -- This isn't super efficient, but it gets the job done.+           go :: RegExp -> (String -> Bool) -> String -> Bool+           go (Literal l)    k s      = l `L.isPrefixOf` s && k (P.drop (P.length l) s)+           go All            _ _      = True+           go None           _ _      = False+           go (Range _ _)    _ []     = False+           go (Range a b)    k (c:cs) = a <= c && c <= b && k cs+           go (Conc [])      k s      = k s+           go (Conc (r:rs))  k s      = go r (go (Conc rs) k) s+           go (KStar r)      k s      = k s || go r (smaller (P.length s) (go (KStar r) k)) s+           go (KPlus r)      k s      = go (Conc [r, KStar r]) k s+           go (Opt r)        k s      = k s || go r k s+           go (Loop i j r)   k s      = go (Conc (replicate i r ++ replicate (j - i) (Opt r))) k s+           go (Union [])     _ _      = False+           go (Union [x])    k s      = go x k s+           go (Union (x:xs)) k s      = go x k s || go (Union xs) k s+           go (Inter a b)    k s      = go a k s && go b k s++           -- In the KStar case, make sure the continuation is called with something+           -- smaller to avoid infinite recursion!+           smaller orig k inp = P.length inp < orig && k inp  -- | A literal regular-expression, matching the given string exactly. Note that -- with @OverloadedStrings@ extension, you can simply use a Haskell
Data/SBV/SMT/SMT.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE Rank2Types                 #-} {-# LANGUAGE ScopedTypeVariables        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.SMT.SMT (        -- * Model extraction          Modelable(..)@@ -624,24 +626,10 @@       (send, ask, getResponseFromSolver, terminateSolver, cleanUp, pid) <- do                 (inh, outh, errh, pid) <- runInteractiveProcess execPath opts Nothing Nothing -                let -- send a command down, but check that we're balanced in parens. If we aren't-                    -- this is most likely an SBV bug.-                    send :: Maybe Int -> String -> IO ()-                    send mbTimeOut command-                      | parenDeficit command /= 0-                      = error $ unlines $  [ ""-                                           , "*** Data.SBV: Unbalanced input detected."-                                           , "***"-                                           , "***   Sending: "-                                           ]-                                        ++ [ "***     " ++ l | l <- lines command ]-                                        ++ [ "***"-                                           , "*** This is most likely an SBV bug. Please report!"-                                           ]-                      | True-                      = do hPutStrLn inh (clean command)-                           hFlush inh-                           recordTranscript (transcript cfg) $ Left (command, mbTimeOut)+                let send :: Maybe Int -> String -> IO ()+                    send mbTimeOut command = do hPutStrLn inh (clean command)+                                                hFlush inh+                                                recordTranscript (transcript cfg) $ Left (command, mbTimeOut)                      -- Send a line, get a whole s-expr. We ignore the pathetic case that there might be a string with an unbalanced parentheses in it in a response.                     ask :: Maybe Int -> String -> IO String
Data/SBV/SMT/SMTLib.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE NamedFieldPuns #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.SMT.SMTLib (           SMTLibPgm         , toSMTLib
Data/SBV/SMT/SMTLib2.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE PatternGuards #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.SMT.SMTLib2(cvt, cvtInc) where  import Data.Bits  (bit)@@ -687,7 +689,7 @@         unintComp o [a, b]           | KUninterpreted s (Right _) <- kindOf (head arguments)           = let idx v = "(" ++ s ++ "_constrIndex " ++ v ++ ")" in "(" ++ o ++ " " ++ idx a ++ " " ++ idx b ++ ")"-        unintComp o sbvs = error $ "SBV.SMT.SMTLib2.sh.unintComp: Unexpected arguments: "   ++ show (o, sbvs)+        unintComp o sbvs = error $ "SBV.SMT.SMTLib2.sh.unintComp: Unexpected arguments: "   ++ show (o, sbvs, map kindOf arguments)          -- NB. String comparisons are currently not supported by Z3; but will be with the new logic.         stringCmp swap o [a, b]@@ -1077,6 +1079,21 @@          | m == n = a          | True   = extract (n - 1) +        b2i False _ = "(bv2nat " ++ a ++ ")"+        b2i True  1 = "(ite (= " ++ a ++ " #b0) 0 (- 1))"+        b2i True  m = "(ite (= " ++ msb ++ " #b0" ++ ") " ++ ifPos ++ " " ++ ifNeg ++ ")"+          where offset :: Integer+                offset = 2^(m-1)+                rest   = extract (m - 2)++                msb    = let top = show (m-1) in "((_ extract " ++ top ++ " " ++ top ++ ") " ++ a ++ ")"+                ifPos  = "(bv2nat " ++ rest ++")"+                ifNeg  = "(- " ++ ifPos ++ " " ++ show offset ++ ")"++        signExtend i = "((_ sign_extend " ++ show i ++  ") "  ++ a ++ ")"+        zeroExtend i = "((_ zero_extend " ++ show i ++  ") "  ++ a ++ ")"+        extract    i = "((_ extract "     ++ show i ++ " 0) " ++ a ++ ")"+         -- NB. The following works regardless n < 0 or not, because the first thing we         -- do is to compute "reduced" to bring it down to the correct range. It also works         -- regardless were mapping to signed or unsigned bit-vector; because the representation@@ -1092,19 +1109,6 @@                 mkBit i  = "(__a" ++ show i ++ " (ite (= (mod (div __a " ++ b i ++ ") 2) 0) #b0 #b1))"                 defs     = unwords (map mkBit [0 .. n - 1])                 body     = foldr1 (\c r -> "(concat " ++ c ++ " " ++ r ++ ")") ["__a" ++ show i | i <- [n-1, n-2 .. 0]]--        b2i s m-          | s    = "(- " ++ val ++ " " ++ valIf (2^m) sign ++ ")"-          | True = val-          where valIf v b = "(ite (= " ++ b ++ " #b1) " ++ show (v::Integer) ++ " 0)"-                getBit i  = "((_ extract " ++ show i ++ " " ++ show i ++ ") " ++ a ++ ")"-                bitVal i  = valIf (2^i) (getBit i)-                val       = "(+ " ++ unwords (map bitVal [0 .. m-1]) ++ ")"-                sign      = getBit (m-1)--        signExtend i = "((_ sign_extend " ++ show i ++  ") "  ++ a ++ ")"-        zeroExtend i = "((_ zero_extend " ++ show i ++  ") "  ++ a ++ ")"-        extract    i = "((_ extract "     ++ show i ++ " 0) " ++ a ++ ")"  -- Translation of pseudo-booleans, in case the solver supports them handlePB :: PBOp -> [String] -> String
Data/SBV/SMT/SMTLibNames.hs view
@@ -9,6 +9,8 @@ -- SMTLib Reserved names ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.SMT.SMTLibNames where  import Data.Char (toLower)
Data/SBV/SMT/Utils.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE NamedFieldPuns #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.SMT.Utils (           SMTLibConverter         , SMTLibIncConverter
Data/SBV/Set.hs view
@@ -29,6 +29,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Set (         -- * Constructing sets           empty, full, universal, singleton, fromList, complement@@ -377,8 +379,8 @@ -- -- >>> prove $ \x (s :: SSet Integer) -> (x `delete` s) `isProperSubsetOf` s -- Falsifiable. Counter-example:---   s0 =  0 :: Integer---   s1 = {} :: {Integer}+--   s0 =       0 :: Integer+--   s1 = U - {0} :: {Integer} -- -- >>> prove $ \x (s :: SSet Integer) -> x `member` s .=> (x `delete` s) `isProperSubsetOf` s -- Q.E.D.
Data/SBV/String.hs view
@@ -20,6 +20,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.String (         -- * Length, emptiness           length, null@@ -131,7 +133,7 @@ -- Q.E.D. -- >>> sat $ \s -> length s .>= 2 .&& strToStrAt s 0 ./= strToStrAt s (length s - 1) -- Satisfiable. Model:---   s0 = "\NUL\NUL\DLE" :: String+--   s0 = "\NUL\STX" :: String strToStrAt :: SString -> SInteger -> SString strToStrAt s offset = subStr s offset 1 
Data/SBV/Tools/BMC.hs view
@@ -11,7 +11,8 @@ -----------------------------------------------------------------------------  {-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE NamedFieldPuns   #-}++{-# OPTIONS_GHC -Wall -Werror #-}  module Data.SBV.Tools.BMC (          bmc, bmcWith
Data/SBV/Tools/BoundedFix.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE FlexibleContexts #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.BoundedFix (          bfix        ) where
Data/SBV/Tools/BoundedList.hs view
@@ -18,6 +18,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.BoundedList (      -- * General folds      bfoldr, bfoldrM, bfoldl, bfoldlM
Data/SBV/Tools/CodeGen.hs view
@@ -9,6 +9,8 @@ -- Code-generation from SBV programs. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.CodeGen (          -- * Code generation from symbolic programs@@ -16,7 +18,7 @@           SBVCodeGen, cgSym          -- ** Setting code-generation options-        , cgPerformRTCs, cgSetDriverValues, cgGenerateDriver, cgGenerateMakefile, cgOverwriteFiles+        , cgPerformRTCs, cgSetDriverValues, cgGenerateDriver, cgGenerateMakefile, cgOverwriteFiles, cgShowU8UsingHex           -- ** Designating inputs         , cgInput, cgInputArr
Data/SBV/Tools/GenTest.hs view
@@ -9,6 +9,8 @@ -- Test generation from symbolic programs ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.GenTest (         -- * Test case generation         genTest, TestVectors, getTestValues, renderTest, TestStyle(..)
Data/SBV/Tools/Induction.hs view
@@ -20,7 +20,8 @@ -----------------------------------------------------------------------------  {-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE NamedFieldPuns   #-}++{-# OPTIONS_GHC -Wall -Werror #-}  module Data.SBV.Tools.Induction (          InductionResult(..), InductionStep(..), induct, inductWith
Data/SBV/Tools/Overflow.hs view
@@ -17,6 +17,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.Overflow (           -- * Arithmetic overflows
Data/SBV/Tools/Polynomial.hs view
@@ -9,10 +9,16 @@ -- Implementation of polynomial arithmetic ----------------------------------------------------------------------------- -{-# LANGUAGE FlexibleContexts  #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE PatternGuards     #-}+{-# LANGUAGE DataKinds            #-}+{-# LANGUAGE FlexibleContexts     #-}+{-# LANGUAGE FlexibleInstances    #-}+{-# LANGUAGE PatternGuards        #-}+{-# LANGUAGE TypeFamilies         #-}+{-# LANGUAGE TypeOperators        #-}+{-# LANGUAGE UndecidableInstances #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.Polynomial (         -- * Polynomial arithmetic and CRCs         Polynomial(..), crc, crcBV, ites, mdp, addPoly@@ -24,8 +30,11 @@ import Data.Word  (Word8, Word16, Word32, Word64)  import Data.SBV.Core.Data+import Data.SBV.Core.Sized import Data.SBV.Core.Model +import GHC.TypeLits+ -- | Implements polynomial addition, multiplication, division, and modulus operations -- over GF(2^n).  NB. Similar to 'sQuotRem', division by @0@ is interpreted as follows: --@@ -74,7 +83,6 @@  pMod x y   = snd (pDivMod x y)  showPoly   = showPolynomial False - instance Polynomial Word8   where {showPolynomial   = sp;           pMult = lift polyMult; pDivMod = liftC polyDivMod} instance Polynomial Word16  where {showPolynomial   = sp;           pMult = lift polyMult; pDivMod = liftC polyDivMod} instance Polynomial Word32  where {showPolynomial   = sp;           pMult = lift polyMult; pDivMod = liftC polyDivMod}@@ -83,6 +91,8 @@ instance Polynomial SWord16 where {showPolynomial b = liftS (sp b); pMult = polyMult;      pDivMod = polyDivMod} instance Polynomial SWord32 where {showPolynomial b = liftS (sp b); pMult = polyMult;      pDivMod = polyDivMod} instance Polynomial SWord64 where {showPolynomial b = liftS (sp b); pMult = polyMult;      pDivMod = polyDivMod}++instance (KnownNat n, IsNonZero n) => Polynomial (SWord n) where {showPolynomial b = liftS (sp b); pMult = polyMult;      pDivMod = polyDivMod}  lift :: SymVal a => ((SBV a, SBV a, [Int]) -> SBV a) -> (a, a, [Int]) -> a lift f (x, y, z) = fromJust $ unliteral $ f (literal x, literal y, z)
Data/SBV/Tools/Range.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE FlexibleContexts    #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.Range (           -- * Boundaries and ranges@@ -174,4 +176,4 @@                                    Nothing  -> search cs          (c:sofar)                                    Just xss -> search (xss ++ cs) sofar -{-# ANN rangesWith ("HLint: ignore Use fromMaybe" :: String) #-}+{-# ANN rangesWith ("HLint: ignore Replace case with fromMaybe" :: String) #-}
Data/SBV/Tools/STree.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.STree (STree, readSTree, writeSTree, mkSTree) where  import Data.SBV.Core.Data
Data/SBV/Tools/WeakestPreconditions.hs view
@@ -18,6 +18,8 @@ {-# LANGUAGE NamedFieldPuns         #-} {-# LANGUAGE ScopedTypeVariables    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Tools.WeakestPreconditions (         -- * Programs and statements           Program(..), Stmt(..), assert, stable@@ -482,4 +484,4 @@                            where mCur = currentMeasure is                                  zero = map (const 0) mCur -{-# ANN traceExecution ("HLint: ignore Use fromMaybe" :: String) #-}+{-# ANN traceExecution ("HLint: ignore Replace case with fromMaybe" :: String) #-}
Data/SBV/Trans.hs view
@@ -10,6 +10,8 @@ -- More generalized alternative to @Data.SBV@ for advanced client use ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Trans (   -- * Symbolic types @@ -39,10 +41,10 @@    -- * Creating symbolic values   -- ** Single value-  , sBool, sWord8, sWord16, sWord32, sWord64, sInt8, sInt16, sInt32, sInt64, sInteger, sReal, sFloat, sDouble, sChar, sString, sList+  , sBool, sWord8, sWord16, sWord32, sWord64, sWord, sInt8, sInt16, sInt32, sInt64, sInt, sInteger, sReal, sFloat, sDouble, sChar, sString, sList    -- ** List of values-  , sBools, sWord8s, sWord16s, sWord32s, sWord64s, sInt8s, sInt16s, sInt32s, sInt64s, sIntegers, sReals, sFloats, sDoubles, sChars, sStrings, sLists+  , sBools, sWord8s, sWord16s, sWord32s, sWord64s, sWords, sInt8s, sInt16s, sInt32s, sInt64s, sInts, sIntegers, sReals, sFloats, sDoubles, sChars, sStrings, sLists    -- * Symbolic Equality and Comparisons   , EqSymbolic(..), OrdSymbolic(..), Equality(..)@@ -60,8 +62,8 @@   , sShiftLeft, sShiftRight, sRotateLeft, sBarrelRotateLeft, sRotateRight, sBarrelRotateRight, sSignedShiftArithRight   -- ** Finite bit-vector operations   , SFiniteBits(..)-  -- ** Splitting, joining, and extending-  , Splittable(..)+  -- ** Splitting, joining, and extending bit-vectors+  , bvExtract, (#), zeroExtend, signExtend, bvDrop, bvTake   -- ** Exponentiation   , (.^)   -- * IEEE-floating point numbers@@ -155,7 +157,7 @@ import Data.SBV.Core.Data import Data.SBV.Core.Model import Data.SBV.Core.Floating-import Data.SBV.Core.Splittable+import Data.SBV.Core.Sized import Data.SBV.Core.Symbolic  import Data.SBV.Provers.Prover
Data/SBV/Trans/Control.hs view
@@ -10,6 +10,8 @@ -- More generalized alternative to @Data.SBV.Control@ for advanced client use ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Trans.Control (       -- * User queries
Data/SBV/Tuple.hs view
@@ -19,7 +19,7 @@ {-# LANGUAGE ScopedTypeVariables    #-} {-# LANGUAGE TypeApplications       #-} -{-# OPTIONS_GHC -fno-warn-orphans #-}+{-# OPTIONS_GHC -Wall -Werror -fno-warn-orphans #-}  module Data.SBV.Tuple (   -- * Symbolic field access@@ -170,13 +170,13 @@ -- | Constructing a tuple from its parts and deconstructing back. class Tuple tup a | a -> tup, tup -> a where   -- | Deconstruct a tuple, getting its constituent parts apart. Forms an-  -- isomorphism pair with 'untuple':+  -- isomorphism pair with 'tuple':   --   -- >>> prove $ \p -> tuple @(Integer, Bool, (String, Char)) (untuple p) .== p   -- Q.E.D.   untuple :: SBV tup -> a -  -- | Constructing a tuple from its parts. Forms an isomorphism pair with 'tuple':+  -- | Constructing a tuple from its parts. Forms an isomorphism pair with 'untuple':   --   -- >>> prove $ \p -> untuple @(Integer, Bool, (String, Char)) (tuple p) .== p   -- Q.E.D.
Data/SBV/Utils/ExtractIO.hs view
@@ -10,6 +10,8 @@ -- negative position. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Utils.ExtractIO where  import Control.Monad.Except      (ExceptT(ExceptT), runExceptT)
Data/SBV/Utils/Lib.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE RankNTypes          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Utils.Lib ( mlift2, mlift3, mlift4, mlift5, mlift6, mlift7, mlift8                           , joinArgs, splitArgs                           , stringToQFS, qfsToString
Data/SBV/Utils/Numeric.hs view
@@ -9,6 +9,8 @@ -- Various number related utilities ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Utils.Numeric where  -- | The SMT-Lib (in particular Z3) implementation for min/max for floats does not agree with
Data/SBV/Utils/PrettyNum.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE FlexibleInstances   #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Utils.PrettyNum (         PrettyNum(..), readBin, shex, chex, shexI, sbin, sbinI       , showCFloat, showCDouble, showHFloat, showHDouble@@ -465,15 +467,18 @@         smtLibTup (KTuple ks) xs = "(mkSBVTuple" ++ show (length ks) ++ " " ++ unwords (zipWith (\ek e -> cvToSMTLib rm (CV ek e)) ks xs) ++ ")"         smtLibTup k           _  = error $ "SBV.cvToSMTLib: Impossible case (smtLibTup), received kind: " ++ show k +        dtConstructor fld []   res =  "(as " ++ fld ++ " " ++ smtType res ++ ")"+        dtConstructor fld args res = "((as " ++ fld ++ " " ++ smtType res ++ ") " ++ unwords args ++ ")"+         smtLibMaybe :: Kind -> Maybe CVal -> String-        smtLibMaybe (KMaybe k) Nothing   = "(as nothing_SBVMaybe " ++ smtType (KMaybe k) ++ ")"-        smtLibMaybe (KMaybe k) (Just  c) = "(just_SBVMaybe " ++ cvToSMTLib rm (CV k c) ++ ")"-        smtLibMaybe k          _         = error $ "SBV.cvToSMTLib: Impossible case (smtLibMaybe), received kind: " ++ show k+        smtLibMaybe km@ KMaybe{}  Nothing   = dtConstructor "nothing_SBVMaybe" []                       km+        smtLibMaybe km@(KMaybe k) (Just  c) = dtConstructor "just_SBVMaybe"    [cvToSMTLib rm (CV k c)] km+        smtLibMaybe k             _         = error $ "SBV.cvToSMTLib: Impossible case (smtLibMaybe), received kind: " ++ show k          smtLibEither :: Kind -> Either CVal CVal -> String-        smtLibEither (KEither  k _) (Left c)  = "(left_SBVEither "  ++ cvToSMTLib rm (CV k c) ++ ")"-        smtLibEither (KEither  _ k) (Right c) = "(right_SBVEither " ++ cvToSMTLib rm (CV k c) ++ ")"-        smtLibEither k              _         = error $ "SBV.cvToSMTLib: Impossible case (smtLibEither), received kind: " ++ show k+        smtLibEither ke@(KEither  k _) (Left c)  = dtConstructor "left_SBVEither"  [cvToSMTLib rm (CV k c)] ke+        smtLibEither ke@(KEither  _ k) (Right c) = dtConstructor "right_SBVEither" [cvToSMTLib rm (CV k c)] ke+        smtLibEither k                 _         = error $ "SBV.cvToSMTLib: Impossible case (smtLibEither), received kind: " ++ show k          -- anomaly at the 2's complement min value! Have to use binary notation here         -- as there is no positive value we can provide to make the bvneg work.. (see above)
Data/SBV/Utils/SExpr.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE BangPatterns #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Utils.SExpr (SExpr(..), parenDeficit, parseSExpr, parseSExprFunction) where  import Data.Bits   (setBit, testBit)
Data/SBV/Utils/TDiff.hs view
@@ -9,6 +9,8 @@ -- Runs an IO computation printing the time it took to run it ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Data.SBV.Utils.TDiff   ( Timing(..)   , showTDiff
Documentation/SBV/Examples/BitPrecise/BitTricks.hs view
@@ -12,6 +12,8 @@  {-# LANGUAGE FlexibleContexts #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.BitPrecise.BitTricks where  import Data.SBV
Documentation/SBV/Examples/BitPrecise/BrokenSearch.hs view
@@ -10,6 +10,8 @@ --     <http://ai.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html> ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.BitPrecise.BrokenSearch where  import Data.SBV@@ -19,7 +21,7 @@ -- Note how we use the overflow checking variants of the arithmetic operators. We have: -- -- >>> checkArithOverflow midPointBroken--- Documentation/SBV/Examples/BitPrecise/BrokenSearch.hs:33:28:+!: SInt32 addition overflows: Violated. Model:+-- Documentation/SBV/Examples/BitPrecise/BrokenSearch.hs:35:28:+!: SInt32 addition overflows: Violated. Model: --   low  = 2147483583 :: Int32 --   high = 2147483647 :: Int32 --
Documentation/SBV/Examples/BitPrecise/Legato.hs view
@@ -31,9 +31,12 @@ -- is indeed correct. ----------------------------------------------------------------------------- +{-# LANGUAGE DataKinds      #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric  #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.BitPrecise.Legato where  import Data.Array (Array, Ix(..), (!), (//), array)@@ -55,7 +58,7 @@ data Flag = FlagC | FlagZ deriving (Eq, Ord, Ix, Bounded)  -- | Mostek was an 8-bit machine.-type Value = SWord8+type Value = SWord 8  -- | Convenient synonym for symbolic machine bits. type Bit = SBool@@ -124,7 +127,7 @@ -- needs to see if the expression x + y + c overflowed, as checked -- by this function. Note that we verify the correctness of this check -- separately below in `checkOverflowCorrect`.-checkOverflow :: SWord8 -> SWord8 -> SBool -> SBool+checkOverflow :: SWord 8 -> SWord 8 -> SBool -> SBool checkOverflow x y c = s .< x .|| s .< y .|| s' .< s   where s  = x + y         s' = s + ite c 1 0@@ -139,8 +142,8 @@ checkOverflowCorrect = checkOverflow === overflow   where -- Reference spec for overflow. We do the addition         -- using 16 bits and check that it's larger than 255-        overflow :: SWord8 -> SWord8 -> SBool -> SBool-        overflow x y c = (0 # x) + (0 # y) + ite c 1 0 .> 255+        overflow :: SWord 8 -> SWord 8 -> SBool -> SBool+        overflow x y c = (0 # x) + (0 # y) + ite c 1 0 .> (255 :: SWord 16) ------------------------------------------------------------------ -- * Instruction set ------------------------------------------------------------------@@ -270,7 +273,7 @@     where (hi, lo) = runLegato (initMachine initVals)           -- NB. perform the comparison over 16 bit values to avoid overflow!           -- If Value changes to be something else, modify this accordingly.-          result, expected :: SWord16+          result, expected :: SWord 16           result   = 256 * (0 # hi) + (0 # lo)           expected = (0 # x) * (0 # y) @@ -281,13 +284,13 @@ -- | The correctness theorem. correctnessTheorem :: IO ThmResult correctnessTheorem = proveWith defaultSMTCfg{timing = PrintTiming} $ do-        lo <- sWord8 "lo"+        lo <- sWord "lo" -        x <- sWord8  "x"-        y <- sWord8  "y"+        x <- sWord  "x"+        y <- sWord  "y" -        regX  <- sWord8 "regX"-        regA  <- sWord8 "regA"+        regX  <- sWord "regX"+        regA  <- sWord "regA"          flagC <- sBool "flagC"         flagZ <- sBool "flagZ"
Documentation/SBV/Examples/BitPrecise/MergeSort.hs view
@@ -9,6 +9,8 @@ -- Symbolic implementation of merge-sort and its correctness. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.BitPrecise.MergeSort where  import Data.SBV
Documentation/SBV/Examples/BitPrecise/MultMask.hs view
@@ -27,6 +27,8 @@ -- property, using quantified formulas. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.BitPrecise.MultMask where  import Data.SBV
Documentation/SBV/Examples/BitPrecise/PrefixSum.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.BitPrecise.PrefixSum where  import Data.SBV
Documentation/SBV/Examples/CodeGeneration/AddSub.hs view
@@ -9,6 +9,8 @@ -- Simple code generation example. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.CodeGeneration.AddSub where  import Data.SBV
Documentation/SBV/Examples/CodeGeneration/CRC_USB5.hs view
@@ -14,6 +14,8 @@ -- CRC implementation generates much better code, compare 'cg1' vs 'cg2' below. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.CodeGeneration.CRC_USB5 where  import Data.SBV
Documentation/SBV/Examples/CodeGeneration/Fibonacci.hs view
@@ -13,6 +13,8 @@ -- and how to deal with such, eventually generating good C code. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.CodeGeneration.Fibonacci where  import Data.SBV
Documentation/SBV/Examples/CodeGeneration/GCD.hs view
@@ -13,6 +13,8 @@ -- enforce termination by using a recursion depth counter. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.CodeGeneration.GCD where  import Data.SBV
Documentation/SBV/Examples/CodeGeneration/PopulationCount.hs view
@@ -10,6 +10,8 @@ -- generating C code. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.CodeGeneration.PopulationCount where  import Data.SBV
Documentation/SBV/Examples/CodeGeneration/Uninterpreted.hs view
@@ -13,6 +13,8 @@ -- purposes, such as efficiency, or reliability. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.CodeGeneration.Uninterpreted where  import Data.Maybe (fromMaybe)
Documentation/SBV/Examples/Crypto/AES.hs view
@@ -24,8 +24,12 @@ -- are supported. ----------------------------------------------------------------------------- +{-# LANGUAGE DataKinds        #-} {-# LANGUAGE ParallelListComp #-}+{-# LANGUAGE TypeApplications #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Crypto.AES where  import Data.SBV@@ -43,7 +47,7 @@  -- | An element of the Galois Field 2^8, which are essentially polynomials with -- maximum degree 7. They are conveniently represented as values between 0 and 255.-type GF28 = SWord8+type GF28 = SWord 8  -- | Multiplication in GF(2^8). This is simple polynomial multipliation, followed -- by the irreducible polynomial @x^8+x^4+x^3+x^1+1@. We simply use the 'pMult'@@ -84,10 +88,10 @@ -- | AES state. The state consists of four 32-bit words, each of which is in turn treated -- as four GF28's, i.e., 4 bytes. The T-Box implementation keeps the four-bytes together -- for efficient representation.-type State = [SWord32]+type State = [SWord 32]  -- | The key, which can be 128, 192, or 256 bits. Represented as a sequence of 32-bit words.-type Key = [SWord32]+type Key = [SWord 32]  -- | The key schedule. AES executes in rounds, and it treats first and last round keys slightly -- differently than the middle ones. We reflect that choice by being explicit about it in our type.@@ -95,25 +99,6 @@ -- the number of rounds. type KS = (Key, [Key], Key) --- | Conversion from 32-bit words to 4 constituent bytes.-toBytes :: SWord32 -> [GF28]-toBytes x = [x1, x2, x3, x4]-        where (h,  l)  = split x-              (x1, x2) = split h-              (x3, x4) = split l---- | Conversion from 4 bytes, back to a 32-bit row, inverse of 'toBytes' above. We--- have the following simple theorems stating this relationship formally:------ >>> prove $ \a b c d -> toBytes (fromBytes [a, b, c, d]) .== [a, b, c, d]--- Q.E.D.------ >>> prove $ \r -> fromBytes (toBytes r) .== r--- Q.E.D.-fromBytes :: [GF28] -> SWord32-fromBytes [x1, x2, x3, x4] = (x1 # x2) # (x3 # x4)-fromBytes xs               = error $ "fromBytes: Unexpected input: " ++ show xs- -- | Rotating a state row by a fixed amount to the right. rotR :: [GF28] -> Int -> [GF28] rotR [a, b, c, d] 1 = [d, a, b, c]@@ -154,16 +139,16 @@ -- words, as described by the AES standard, Section 5.2, Figure 11. keyExpansion :: Int -> Key -> [Key] keyExpansion nk key = chop4 keys-   where keys :: [SWord32]+   where keys :: [SWord 32]          keys = key ++ [nextWord i prev old | i <- [nk ..] | prev <- drop (nk-1) keys | old <- keys]          chop4 :: [a] -> [[a]]          chop4 xs = let (f, r) = splitAt 4 xs in f : chop4 r-         nextWord :: Int -> SWord32 -> SWord32 -> SWord32+         nextWord :: Int -> SWord 32 -> SWord 32 -> SWord 32          nextWord i prev old            | i `mod` nk == 0           = old `xor` subWordRcon (prev `rotateL` 8) (roundConstants !! (i `div` nk))            | i `mod` nk == 4 && nk > 6 = old `xor` subWordRcon prev 0            | True                      = old `xor` prev-         subWordRcon :: SWord32 -> GF28 -> SWord32+         subWordRcon :: SWord 32 -> GF28 -> SWord 32          subWordRcon w rc = fromBytes [a `xor` rc, b, c, d]             where [a, b, c, d] = map sbox $ toBytes w @@ -227,19 +212,19 @@ t0Func a = [s `gf28Mult` 2, s, s, s `gf28Mult` 3] where s = sbox a  -- | First look-up table used in encryption-t0 :: GF28 -> SWord32+t0 :: GF28 -> SWord 32 t0 = select t0Table 0 where t0Table = [fromBytes (t0Func a)          | a <- [0..255]]  -- | Second look-up table used in encryption-t1 :: GF28 -> SWord32+t1 :: GF28 -> SWord 32 t1 = select t1Table 0 where t1Table = [fromBytes (t0Func a `rotR` 1) | a <- [0..255]]  -- | Third look-up table used in encryption-t2 :: GF28 -> SWord32+t2 :: GF28 -> SWord 32 t2 = select t2Table 0 where t2Table = [fromBytes (t0Func a `rotR` 2) | a <- [0..255]]  -- | Fourth look-up table used in encryption-t3 :: GF28 -> SWord32+t3 :: GF28 -> SWord 32 t3 = select t3Table 0 where t3Table = [fromBytes (t0Func a `rotR` 3) | a <- [0..255]]  -----------------------------------------------------------------------------@@ -251,19 +236,19 @@ u0Func a = [s `gf28Mult` 0xE, s `gf28Mult` 0x9, s `gf28Mult` 0xD, s `gf28Mult` 0xB] where s = unSBox a  -- | First look-up table used in decryption-u0 :: GF28 -> SWord32+u0 :: GF28 -> SWord 32 u0 = select t0Table 0 where t0Table = [fromBytes (u0Func a)          | a <- [0..255]]  -- | Second look-up table used in decryption-u1 :: GF28 -> SWord32+u1 :: GF28 -> SWord 32 u1 = select t1Table 0 where t1Table = [fromBytes (u0Func a `rotR` 1) | a <- [0..255]]  -- | Third look-up table used in decryption-u2 :: GF28 -> SWord32+u2 :: GF28 -> SWord 32 u2 = select t2Table 0 where t2Table = [fromBytes (u0Func a `rotR` 2) | a <- [0..255]]  -- | Fourth look-up table used in decryption-u3 :: GF28 -> SWord32+u3 :: GF28 -> SWord 32 u3 = select t3Table 0 where t3Table = [fromBytes (u0Func a `rotR` 3) | a <- [0..255]]  -----------------------------------------------------------------------------@@ -334,7 +319,7 @@ -- precisely 4 elements, for a total of 128-bits of input. The second -- argument is the key-schedule to be used, obtained by a call to 'aesKeySchedule'. -- The output will always have 4 32-bit words, which is the cipher-text.-aesEncrypt :: [SWord32] -> KS -> [SWord32]+aesEncrypt :: [SWord 32] -> KS -> [SWord 32] aesEncrypt pt encKS   | length pt == 4   = doRounds aesRound encKS pt@@ -344,7 +329,7 @@ -- | Block decryption. The arguments are the same as in 'aesEncrypt', except -- the first argument is the cipher-text and the output is the corresponding -- plain-text.-aesDecrypt :: [SWord32] -> KS -> [SWord32]+aesDecrypt :: [SWord 32] -> KS -> [SWord 32] aesDecrypt ct decKS   | length ct == 4   = doRounds aesInvRound decKS ct@@ -364,7 +349,7 @@ -- >>> map hex8 t128Enc -- ["69c4e0d8","6a7b0430","d8cdb780","70b4c55a"] ---t128Enc :: [SWord32]+t128Enc :: [SWord 32] t128Enc = aesEncrypt pt ks   where pt  = [0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff]         key = [0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f]@@ -375,7 +360,7 @@ -- >>> map hex8 t128Dec -- ["00112233","44556677","8899aabb","ccddeeff"] ---t128Dec :: [SWord32]+t128Dec :: [SWord 32] t128Dec = aesDecrypt ct ks   where ct  = [0x69c4e0d8, 0x6a7b0430, 0xd8cdb780, 0x70b4c55a]         key = [0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f]@@ -390,7 +375,7 @@ -- >>> map hex8 t192Enc -- ["dda97ca4","864cdfe0","6eaf70a0","ec0d7191"] ---t192Enc :: [SWord32]+t192Enc :: [SWord 32] t192Enc = aesEncrypt pt ks   where pt  = [0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff]         key = [0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f, 0x10111213, 0x14151617]@@ -401,7 +386,7 @@ -- >>> map hex8 t192Dec -- ["00112233","44556677","8899aabb","ccddeeff"] ---t192Dec :: [SWord32]+t192Dec :: [SWord 32] t192Dec = aesDecrypt ct ks   where ct  = [0xdda97ca4, 0x864cdfe0, 0x6eaf70a0, 0xec0d7191]         key = [0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f, 0x10111213, 0x14151617]@@ -416,7 +401,7 @@ -- >>> map hex8 t256Enc -- ["8ea2b7ca","516745bf","eafc4990","4b496089"] ---t256Enc :: [SWord32]+t256Enc :: [SWord 32] t256Enc = aesEncrypt pt ks   where pt  = [0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff]         key = [0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f, 0x10111213, 0x14151617, 0x18191a1b, 0x1c1d1e1f]@@ -427,7 +412,7 @@ -- >>> map hex8 t256Dec -- ["00112233","44556677","8899aabb","ccddeeff"] ---t256Dec :: [SWord32]+t256Dec :: [SWord 32] t256Dec = aesDecrypt ct ks   where ct  = [0x8ea2b7ca, 0x516745bf, 0xeafc4990, 0x4b496089]         key = [0x00010203, 0x04050607, 0x08090a0b, 0x0c0d0e0f, 0x10111213, 0x14151617, 0x18191a1b, 0x1c1d1e1f]@@ -462,8 +447,8 @@ --  -- and get some degree of confidence in our code. Similar predicates can be easily constructed for 192, and -- 256 bit cases as well.-aes128IsCorrect :: (SWord32, SWord32, SWord32, SWord32)  -- ^ plain-text words-                -> (SWord32, SWord32, SWord32, SWord32)  -- ^ key-words+aes128IsCorrect :: (SWord 32, SWord 32, SWord 32, SWord 32)  -- ^ plain-text words+                -> (SWord 32, SWord 32, SWord 32, SWord 32)  -- ^ key-words                 -> SBool                                 -- ^ True if round-trip gives us plain-text back aes128IsCorrect (i0, i1, i2, i3) (k0, k1, k2, k3) = pt .== pt'    where pt  = [i0, i1, i2, i3]@@ -540,40 +525,55 @@    The generated library is a typical @.a@ archive, that can be linked using the C-compiler as usual. -} --- | Components of the AES-128 implementation that the library is generated from-aes128LibComponents :: [(String, SBVCodeGen ())]-aes128LibComponents = [ ("aes128KeySchedule",  keySchedule)-                      , ("aes128BlockEncrypt", enc128)-                      , ("aes128BlockDecrypt", dec128)+-- | Components of the AES implementation that the library is generated from+aesLibComponents :: Int -> [(String, SBVCodeGen ())]+aesLibComponents sz = [ ("aes" ++ show sz ++ "KeySchedule",  keySchedule)+                      , ("aes" ++ show sz ++ "BlockEncrypt", enc)+                      , ("aes" ++ show sz ++ "BlockDecrypt", dec)                       ]   where -- key-schedule-        keySchedule = do key <- cgInputArr 4 "key"     -- key+        nk+         | sz == 128 = 4+         | sz == 192 = 6+         | sz == 256 = 8+         | True      = error $ "aesLibComponents: Size must be one of 128, 192, or 256; received: " ++ show sz+        -- We get 4*(nr+1) keys, where nr = nk + 6+        nr = nk + 6+        xk = 4 * (nr + 1)+        keySchedule = do key <- cgInputArr nk "key"     -- key                          let (encKS, decKS) = aesKeySchedule key                          cgOutputArr "encKS" (ksToXKey encKS)                          cgOutputArr "decKS" (ksToXKey decKS)         -- encryption-        enc128 = do pt   <- cgInputArr 4  "pt"    -- plain-text-                    xkey <- cgInputArr 44 "xkey"  -- expanded key, for 128-bit AES, the key-expansion has 44 Word32's-                    cgOutputArr "ct" $ aesEncrypt pt (xkeyToKS xkey)+        enc = do pt   <- cgInputArr 4  "pt"    -- plain-text+                 xkey <- cgInputArr xk "xkey"  -- expanded key+                 cgOutputArr "ct" $ aesEncrypt pt (xkeyToKS xkey)         -- decryption-        dec128 = do pt   <- cgInputArr 4  "ct"    -- cipher-text-                    xkey <- cgInputArr 44 "xkey"  -- expanded key, for 128-bit AES, the key-expansion has 44 Word32's-                    cgOutputArr "pt" $ aesDecrypt pt (xkeyToKS xkey)+        dec = do pt   <- cgInputArr 4  "ct"    -- cipher-text+                 xkey <- cgInputArr xk "xkey"  -- expanded key+                 cgOutputArr "pt" $ aesDecrypt pt (xkeyToKS xkey)         -- Transforming back and forth from our KS type to a flat array used by the generated C code         -- Turn a series of expanded keys to our internal KS type-        xkeyToKS :: [SWord32] -> KS+        xkeyToKS :: [SWord 32] -> KS         xkeyToKS xs = (f, m, l)-           where f = take 4 xs                       -- first round key-                 m = chop4 (take 36 (drop 4 xs))     -- middle rounds-                 l = drop 40 xs                      -- last round key+           where f  = take 4 xs                             -- first round key+                 m  = chop4 (take (xk - 8) (drop 4 xs))     -- middle rounds+                 l  = drop (xk - 4) xs                      -- last round key         -- Turn a KS to a series of expanded key words-        ksToXKey :: KS -> [SWord32]+        ksToXKey :: KS -> [SWord 32]         ksToXKey (f, m, l) = f ++ concat m ++ l         -- chunk in fours. (This function must be in some standard library, where?)         chop4 :: [a] -> [[a]]         chop4 [] = []         chop4 xs = let (f, r) = splitAt 4 xs in f : chop4 r +-- | Generate code for AES functionality; given the key size.+cgAESLibrary :: Int -> Maybe FilePath -> IO ()+cgAESLibrary sz mbd+  | sz `elem` [128, 192, 256] = compileToCLib mbd nm (aesLibComponents sz)+  | True                      = error $ "cgAESLibrary: Size must be one of 128, 192, or 256, received: " ++ show sz+  where nm = "aes" ++ show sz ++ "Lib"+ -- | Generate a C library, containing functions for performing 128-bit enc/dec/key-expansion. -- A note on performance: In a very rough speed test, the generated code was able to do -- 6.3 million block encryptions per second on a decent MacBook Pro. On the same machine, OpenSSL@@ -581,7 +581,7 @@ -- as compared to the highly optimized OpenSSL implementation. (Note that the speed test was done -- somewhat simplistically, so these numbers should be considered very rough estimates.) cgAES128Library :: IO ()-cgAES128Library = compileToCLib Nothing "aes128Lib" aes128LibComponents+cgAES128Library = cgAESLibrary 128 Nothing  -------------------------------------------------------------------------------------------- -- | For doctest purposes only
Documentation/SBV/Examples/Crypto/RC4.hs view
@@ -17,6 +17,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Crypto.RC4 where  import Data.Char  (ord, chr)
+ Documentation/SBV/Examples/Crypto/SHA.hs view
@@ -0,0 +1,398 @@+-----------------------------------------------------------------------------+-- |+-- Module    : Documentation.SBV.Examples.Crypto.SHA+-- Copyright : (c) Levent Erkok+-- License   : BSD3+-- Maintainer: erkokl@gmail.com+-- Stability : experimental+--+-- Implementation of SHA2 class of algorithms, closely following the spec+-- <http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf>.+--+-- We support all variants of SHA in the spec, except for SHA1. Note that+-- this implementation is really useful for code-generation purposes from+-- SBV, as it is hard to state (or prove!) any particular properties of+-- these algorithms that is suitable for SMT solving.+-----------------------------------------------------------------------------++{-# LANGUAGE DataKinds           #-}+{-# LANGUAGE NamedFieldPuns      #-}+{-# LANGUAGE Rank2Types          #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeApplications    #-}++module Documentation.SBV.Examples.Crypto.SHA where++import Data.SBV+import Data.SBV.Tools.CodeGen++import Data.Char (ord, toLower)+import Data.List (genericLength)+import Numeric   (showHex)++import Data.Proxy (Proxy(..))++-----------------------------------------------------------------------------+-- * Parameterizing SHA+-----------------------------------------------------------------------------++-- | Parameterized SHA representation, that captures all the differences+-- between variants of the algorithm. @w@ is the word-size type.+data SHA w = SHA { wordSize           :: Int              -- ^ Section 1           : Word size we operate with+                 , blockSize          :: Int              -- ^ Section 1           : Block size for messages+                 , sum0Coefficients   :: (Int, Int, Int)  -- ^ Section 4.1.2-3     : Coefficients of the Sum0 function+                 , sum1Coefficients   :: (Int, Int, Int)  -- ^ Section 4.1.2-3     : Coefficients of the Sum1 function+                 , sigma0Coefficients :: (Int, Int, Int)  -- ^ Section 4.1.2-3     : Coefficients of the sigma0 function+                 , sigma1Coefficients :: (Int, Int, Int)  -- ^ Section 4.1.2-3     : Coefficients of the sigma1 function+                 , shaConstants       :: [w]              -- ^ Section 4.2.2-3     : Magic SHA constants+                 , h0                 :: [w]              -- ^ Section 5.3.2-6     : Initial hash value+                 , shaLoopCount       :: Int              -- ^ Section 6.2.2, 6.4.2: How many iterations are there in the inner loop+                 }++-----------------------------------------------------------------------------+-- * Section 4.1.2, SHA functions+-----------------------------------------------------------------------------++-- | The choose function.+ch :: Bits a => a -> a -> a -> a+ch x y z = (x .&. y) `xor` (complement x .&. z)++-- | The majority function.+maj :: Bits a => a -> a -> a -> a+maj x y z = (x .&. y) `xor` (x .&. z) `xor` (y .&. z)++-- | The sum-0 function. We parameterize over the rotation amounts as different+-- variants of SHA use different rotation amnounts.+sum0 :: Bits a => SHA w -> a -> a+sum0 SHA{sum0Coefficients = (a, b, c)} x = (x `rotateR` a) `xor` (x `rotateR` b) `xor` (x `rotateR` c)++-- | The sum-1 function. Again, parameterized.+sum1 :: Bits a => SHA w -> a -> a+sum1 SHA{sum1Coefficients = (a, b, c)} x = (x `rotateR` a) `xor` (x `rotateR` b) `xor` (x `rotateR` c)++-- | The sigma0 function. Parameterized.+sigma0 :: Bits a => SHA w -> a -> a+sigma0 SHA{sigma0Coefficients = (a, b, c)} x = (x `rotateR` a) `xor` (x `rotateR` b) `xor` (x `shiftR` c)++-- | The sigma1 function. Parameterized.+sigma1 :: Bits a => SHA w -> a -> a+sigma1 SHA{sigma1Coefficients = (a, b, c)} x = (x `rotateR` a) `xor` (x `rotateR` b) `xor` (x `shiftR` c)++-----------------------------------------------------------------------------+-- * SHA variants+-----------------------------------------------------------------------------++-- | Parameterization for SHA224.+sha224P :: SHA (SWord 32)+sha224P = SHA { wordSize           = 32+              , blockSize          = 512+              , sum0Coefficients   = ( 2, 13, 22)+              , sum1Coefficients   = ( 6, 11, 25)+              , sigma0Coefficients = ( 7, 18,  3)+              , sigma1Coefficients = (17, 19, 10)+              , shaConstants       = [ 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5+                                     , 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174+                                     , 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da+                                     , 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967+                                     , 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85+                                     , 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070+                                     , 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3+                                     , 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2+                                     ]+              , h0                 = [ 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939+                                     , 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4+                                     ]+              , shaLoopCount       = 64+              }++-- | Parameterization for SHA256. Inherits mostly from SHA224.+sha256P :: SHA (SWord 32)+sha256P = sha224P { h0 = [ 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a+                         , 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19+                         ]+                  }++-- | Parameterization for SHA384.+sha384P :: SHA (SWord 64)+sha384P = SHA { wordSize           = 64+              , blockSize          = 1024+              , sum0Coefficients   = (28, 34, 39)+              , sum1Coefficients   = (14, 18, 41)+              , sigma0Coefficients = ( 1,  8,  7)+              , sigma1Coefficients = (19, 61,  6)+              , shaConstants       = [ 0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc+                                     , 0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118+                                     , 0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2+                                     , 0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694+                                     , 0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65+                                     , 0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5+                                     , 0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4+                                     , 0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70+                                     , 0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df+                                     , 0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b+                                     , 0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30+                                     , 0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e35855771202a, 0x106aa07032bbd1b8+                                     , 0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8+                                     , 0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3+                                     , 0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec+                                     , 0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b+                                     , 0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178+                                     , 0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b+                                     , 0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c+                                     , 0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817+                                     ]+              , h0                 = [ 0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17, 0x152fecd8f70e5939+                                     , 0x67332667ffc00b31, 0x8eb44a8768581511, 0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4+                                     ]+              , shaLoopCount       = 80+              }++-- | Parameterization for SHA512. Inherits mostly from SHA384.+sha512P :: SHA (SWord 64)+sha512P = sha384P { h0 = [ 0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b, 0xa54ff53a5f1d36f1+                         , 0x510e527fade682d1, 0x9b05688c2b3e6c1f, 0x1f83d9abfb41bd6b, 0x5be0cd19137e2179+                         ]+                  }++-- | Parameterization for SHA512_224. Inherits mostly from SHA512+sha512_224P :: SHA (SWord 64)+sha512_224P = sha512P { h0 = [ 0x8C3D37C819544DA2, 0x73E1996689DCD4D6, 0x1DFAB7AE32FF9C82, 0x679DD514582F9FCF+                             , 0x0F6D2B697BD44DA8, 0x77E36F7304C48942, 0x3F9D85A86A1D36C8, 0x1112E6AD91D692A1+                             ]+                      }++-- | Parameterization for SHA512_256. Inherits mostly from SHA512+sha512_256P :: SHA (SWord 64)+sha512_256P = sha512P { h0 = [ 0x22312194FC2BF72C, 0x9F555FA3C84C64C2, 0x2393B86B6F53B151, 0x963877195940EABD+                             , 0x96283EE2A88EFFE3, 0xBE5E1E2553863992, 0x2B0199FC2C85B8AA, 0x0EB72DDC81C52CA2+                             ]+                      }++-----------------------------------------------------------------------------+-- * Section 5, Preprocessing+-----------------------------------------------------------------------------++-- | 'Block' is a  synonym for lists, but makes the intent clear.+newtype Block a = Block [a]++-- | Prepare the message by turning it into blocks. We also check for the message+-- size requirement here. Note that this won't actually happen in practice as the input+-- length would be > 2^64 (or 2^128), and you'd run out of memory first! Such a check++prepareMessage :: forall w. (Num w, ByteConverter w) => SHA w -> String -> [Block w]+prepareMessage SHA{wordSize, blockSize} s+  | msgLen >= maxLen+  = error $ "Message is too big! Size: " ++ show msgLen ++ " Max: " ++ show maxLen+  | True+  = parse $ chunkBy (wordSize `div` 8) fromBytes padded+  where -- Maximum message size supported by the algorithm+        maxLen :: Integer+        maxLen = 2^(2* fromIntegral wordSize :: Integer)++        -- Size of the input in bits+        msgLen :: Integer+        msgLen = 8 * genericLength s++        -- In all variants, we have 16-element blocks:+        --    SHA 224, 256                  :  512-bit block size with 32-bit word size: Total 16 words to a block+        --    SHA 384, 512, 512_224, 512_256: 1024-bit block size with 64-bit word size: Total 16 words to a block+        parse = chunkBy 16 Block++        msgSizeAsBytes :: [SWord 8]+        msgSizeAsBytes+          | wordSize == 32 = toBytes (fromIntegral msgLen :: SWord  64)+          | wordSize == 64 = toBytes (fromIntegral msgLen :: SWord 128)+          | True           = error $ "prepareMessage: Unexpected word size: " ++ show wordSize++        -- kLen is how many bits extra we need in the padding+        kLen :: Int+        kLen = blockSize - fromIntegral ((msgLen + fromIntegral (2 * wordSize)) `mod` fromIntegral blockSize)++        -- Since message is always a multiple of 8, we need to pad it with the byte 0x80 for the first byte+        -- after it (1000 0000), and then enough bytes to fill to make it a multiple of the block size.+        padded :: [SWord 8]+        padded = map (fromIntegral . ord) s ++ [0x80] ++ replicate ((kLen `div` 8) - 1) 0 ++ msgSizeAsBytes++-----------------------------------------------------------------------------+-- * Section 6.2.2 and 6.4.2, Hash computation+-----------------------------------------------------------------------------++-- | Hash one block of message, starting from a previous hash. This function+-- corresponds to body of the for-loop in the spec. This function always+-- produces a list of length 8, corresponding to the final 8 values of the @H@.+hashBlock :: (Num w, Bits w) => SHA w -> [w] -> Block w -> [w]+hashBlock p@SHA{shaLoopCount, shaConstants} hPrev (Block m) = step4+   where lim = shaLoopCount - 1++         -- Step 1: Prepare the message schedule:+         w t+          | 0  <= t && t <= 15  = m !! t+          | 16 <= t && t <= lim = sigma1 p (w (t-2)) + w (t-7) + sigma0 p (w (t-15)) + w (t-16)+          | True                = error $ "hashBlock, unexpected t: " ++ show t++         -- Step 2: Initialize working variables+         -- No code needed!++         -- Step 3 Body:+         step3Body [a, b, c, d, e, f, g, h] t = [t1 + t2, a, b, c, d + t1, e, f, g]+           where t1   = h + sum1 p e + ch e f g + shaConstants !! t + w t+                 t2   = sum0 p a + maj a b c+         step3Body xs t = error $ "Impossible! step3Body received a list of length " ++ show (length xs) ++ ", iteration: " ++ show t++         -- Step 3 simply folds the body for the required loop-count+         step3 = foldl step3Body hPrev [0 .. lim]++         -- Step 4+         step4 = zipWith (+) step3 hPrev++-- | Compute the hash of a given string using the specified parameterized hash algorithm.+shaP :: (Num w, Bits w, ByteConverter w) => SHA w -> String -> [w]+shaP p@SHA{h0} = foldl (hashBlock p) h0 . prepareMessage p++-----------------------------------------------------------------------------+-- * Computing the digest+-----------------------------------------------------------------------------++-- | SHA224 digest.+sha224 :: String -> SWord 224+sha224 s = h0 # h1 # h2 # h3 # h4 # h5 # h6+  where [h0, h1, h2, h3, h4, h5, h6, _] = shaP sha224P s++-- | SHA256 digest.+sha256 :: String -> SWord 256+sha256 s = h0 # h1 # h2 # h3 # h4 # h5 # h6 # h7+  where [h0, h1, h2, h3, h4, h5, h6, h7] = shaP sha256P s++-- | SHA384 digest.+sha384 :: String -> SWord 384+sha384 s = h0 # h1 # h2 # h3 # h4 # h5+  where [h0, h1, h2, h3, h4, h5, _, _] = shaP sha384P s++-- | SHA512 digest.+sha512 :: String -> SWord 512+sha512 s = h0 # h1 # h2 # h3 # h4 # h5 # h6 # h7+  where [h0, h1, h2, h3, h4, h5, h6, h7] = shaP sha512P s++-- | SHA512_224 digest.+sha512_224 :: String -> SWord 224+sha512_224 s = h0 # h1 # h2 # h3Top+  where [h0, h1, h2, h3, _, _, _, _] = shaP sha512_224P s+        h3Top                        = bvExtract (Proxy @63) (Proxy @32) h3++-- | SHA512_256 digest.+sha512_256 :: String -> SWord 256+sha512_256 s = h0 # h1 # h2 # h3+  where [h0, h1, h2, h3, _, _, _, _] = shaP sha512_256P s++-----------------------------------------------------------------------------+-- * Testing+-----------------------------------------------------------------------------++-- | Collection of known answer tests for SHA. Since these tests take too long during regular+-- regression runs, we pass as an argument how many to run. Increase the below number to 24 to run all tests.+-- We have:+--+-- >>> knownAnswerTests 1+-- True+knownAnswerTests :: Int -> Bool+knownAnswerTests nTest = and $  take nTest $  [showHash (sha224     t) == map toLower r | (t, r) <- sha224Kats    ]+                                           ++ [showHash (sha256     t) == map toLower r | (t, r) <- sha256Kats    ]+                                           ++ [showHash (sha384     t) == map toLower r | (t, r) <- sha384Kats    ]+                                           ++ [showHash (sha512     t) == map toLower r | (t, r) <- sha512Kats    ]+                                           ++ [showHash (sha512_224 t) == map toLower r | (t, r) <- sha512_224Kats]+                                           ++ [showHash (sha512_256 t) == map toLower r | (t, r) <- sha512_256Kats]++  where -- | From <http://github.com/bcgit/bc-java/blob/master/core/src/test/java/org/bouncycastle/crypto/test/SHA224DigestTest.java>+        sha224Kats :: [(String, String)]+        sha224Kats = [ (""                                                        , "d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f")+                     , ("a"                                                       , "abd37534c7d9a2efb9465de931cd7055ffdb8879563ae98078d6d6d5")+                     , ("abc"                                                     , "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7")+                     , ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525")+                     ]++        -- | From: <http://github.com/bcgit/bc-java/blob/master/core/src/test/java/org/bouncycastle/crypto/test/SHA256DigestTest.java>+        sha256Kats :: [(String, String)]+        sha256Kats = [ (""                                                        , "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")+                     , ("a"                                                       , "ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb")+                     , ("abc"                                                     , "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad")+                     , ("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1")+                     ]++        -- | From: <http://github.com/bcgit/bc-java/blob/master/core/src/test/java/org/bouncycastle/crypto/test/SHA384DigestTest.java>+        sha384Kats :: [(String, String)]+        sha384Kats = [ (""                                                                                                                , "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b")+                     , ("a"                                                                                                               , "54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31")+                     , ("abc"                                                                                                             , "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7")+                     , ("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039")+                     ]++        -- | From: <http://github.com/bcgit/bc-java/blob/master/core/src/test/java/org/bouncycastle/crypto/test/SHA512DigestTest.java>+        sha512Kats :: [(String, String)]+        sha512Kats = [ (""                                                                                                                , "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e")+                     , ("a"                                                                                                               , "1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75")+                     , ("abc"                                                                                                             , "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f")+                     , ("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909")+                     ]++        -- | From: <http://github.com/bcgit/bc-java/blob/master/core/src/test/java/org/bouncycastle/crypto/test/SHA512t224DigestTest.java>+        sha512_224Kats :: [(String, String)]+        sha512_224Kats = [ (""                                                                                                                , "6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4")+                         , ("a"                                                                                                               , "d5cdb9ccc769a5121d4175f2bfdd13d6310e0d3d361ea75d82108327")+                         , ("abc"                                                                                                             , "4634270F707B6A54DAAE7530460842E20E37ED265CEEE9A43E8924AA")+                         , ("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "23FEC5BB94D60B23308192640B0C453335D664734FE40E7268674AF9")+                         ]++        -- | From: <http://github.com/bcgit/bc-java/blob/master/core/src/test/java/org/bouncycastle/crypto/test/SHA512t256DigestTest.java>+        sha512_256Kats :: [(String, String)]+        sha512_256Kats = [ (""                                                                                                                , "c672b8d1ef56ed28ab87c3622c5114069bdd3ad7b8f9737498d0c01ecef0967a")+                         , ("a"                                                                                                               , "455e518824bc0601f9fb858ff5c37d417d67c2f8e0df2babe4808858aea830f8")+                         , ("abc"                                                                                                             , "53048E2681941EF99B2E29B76B4C7DABE4C2D0C634FC6D46E0E2F13107E7AF23")+                         , ("abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu", "3928E184FB8690F840DA3988121D31BE65CB9D3EF83EE6146FEAC861E19B563A")+                         ]++-----------------------------------------------------------------------------+-- * Code generation+-- ${codeGenIntro}+-----------------------------------------------------------------------------+{- $codeGenIntro+   It is not practical to generate SBV code for hashing an entire string, as it would+   require handling of a fixed size string. Instead we show how to generate code+   for hashing one block, which can then be incorporated into a larger program+   by providing the appropriate loop.+-}++-- | Generate code for one block of SHA256 in action, starting from an arbitrary hash value.+cgSHA256 :: IO ()+cgSHA256 = compileToC Nothing "sha256" $ do++        let algorithm = sha256P++        hInBytes   <- cgInputArr 32 "hIn"+        blockBytes <- cgInputArr 64 "block"++        let hIn   = chunkBy 4 fromBytes hInBytes+            block = chunkBy 4 fromBytes blockBytes++            result = hashBlock algorithm hIn (Block block)++        cgOutputArr "hash" $ concatMap toBytes result++-----------------------------------------------------------------------------+-- * Helpers+-----------------------------------------------------------------------------++-- | Helper for chunking a list by given lengths and combining each chunk with a function+chunkBy :: Int -> ([a] -> b) -> [a] -> [b]+chunkBy i f = go+  where go [] = []+        go xs+         | length first /= i = error $ "chunkBy: Not a multiple of " ++ show i ++ ", got: " ++ show (length first)+         | True              = f first : go rest+         where (first, rest) = splitAt i xs++-- | Nicely lay out a hash value as a string+showHash :: (Show a, Integral a, SymVal a) => SBV a -> String+showHash x = case (kindOf x, unliteral x) of+               (KBounded False n, Just v)  -> pad (n `div` 4) $ showHex v ""+               _                           -> error $ "Impossible happened: Unexpected hash value: " ++ show x+  where pad l s = reverse $ take l $ reverse s ++ repeat '0'
Documentation/SBV/Examples/Existentials/CRCPolynomial.hs view
@@ -13,30 +13,24 @@ -- apart, then they must differ in at least 4 bits. ----------------------------------------------------------------------------- +{-# LANGUAGE DataKinds #-}++{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Existentials.CRCPolynomial where  import Data.SBV import Data.SBV.Tools.Polynomial --------------------------------------------------------------------------------- * Modeling 48 bit words--------------------------------------------------------------------------------- | SBV doesn't support 48 bit words natively. So, we represent them--- as a tuple, 32 high-bits and 16 low-bits.-type SWord48 = (SWord32, SWord16)- -- | Compute the 16 bit CRC of a 48 bit message, using the given polynomial-crc_48_16 :: SWord48 -> SWord16 -> [SBool]-crc_48_16 msg poly = crcBV 16 msgBits polyBits-  where (hi, lo) = msg-        msgBits  = blastBE hi ++ blastBE lo-        polyBits = blastBE poly+crc_48_16 :: SWord 48 -> SWord16 -> [SBool]+crc_48_16 msg poly = crcBV 16 (blastBE msg) (blastBE poly)  -- | Count the differing bits in the message and the corresponding CRC-diffCount :: (SWord48, [SBool]) -> (SWord48, [SBool]) -> SWord8-diffCount ((h1, l1), crc1) ((h2, l2), crc2) = count xorBits-  where bits1   = blastBE h1 ++ blastBE l1 ++ crc1-        bits2   = blastBE h2 ++ blastBE l2 ++ crc2+diffCount :: (SWord 48, [SBool]) -> (SWord 48, [SBool]) -> SWord8+diffCount (d1, crc1) (d2, crc2) = count xorBits+  where bits1   = blastBE d1 ++ crc1+        bits2   = blastBE d2 ++ crc2         -- xor will give us a false if bits match, true if they differ         xorBits = zipWith (.<+>) bits1 bits2         count []     = 0@@ -48,33 +42,26 @@ -- @sent@ and @received@ messages are different, then it must be the -- case that that must differ from each other (including CRCs), in -- more than @hd@ bits.-crcGood :: SWord8 -> SWord16 -> SWord48 -> SWord48 -> SBool+crcGood :: SWord8 -> SWord16 -> SWord 48 -> SWord 48 -> SBool crcGood hd poly sent received =      sent ./= received .=> diffCount (sent, crcSent) (received, crcReceived) .>= hd    where crcSent     = crc_48_16 sent     poly          crcReceived = crc_48_16 received poly  -- | Generate good CRC polynomials for 48-bit words, given the hamming distance @hd@.-genPoly :: SWord8 -> IO ()-genPoly hd = do res <- allSat $ do-                        -- the polynomial is existentially specified-                        p <- exists "polynomial"-                        -- sent word, universal-                        s <- do sh <- forall "sh"-                                sl <- forall "sl"-                                return (sh, sl)-                        -- received word, universal-                        r <- do rh <- forall "rh"-                                rl <- forall "rl"-                                return (rh, rl)-                        -- assert that the polynomial @p@ is good. Note-                        -- that we also supply the extra information that-                        -- the least significant bit must be set in the-                        -- polynomial, as all CRC polynomials have the "+1"-                        -- term in them set. This simplifies the query.-                        return $ sTestBit p 0 .&& crcGood hd p s r-                cnt <- displayModels disp res-                putStrLn $ "Found: " ++ show cnt ++ " polynomail(s)."+genPoly :: SWord8 -> Int -> IO ()+genPoly hd maxCnt = do res <- allSatWith defaultSMTCfg{allSatMaxModelCount = Just maxCnt} $ do+                                p <- exists "polynomial" -- the polynomial is existentially specified+                                s <- forall "sent"       -- sent word, universal+                                r <- forall "received"   -- received word, universal+                                -- assert that the polynomial @p@ is good. Note+                                -- that we also supply the extra information that+                                -- the least significant bit must be set in the+                                -- polynomial, as all CRC polynomials have the "+1"+                                -- term in them set. This simplifies the query.+                                return $ sTestBit p 0 .&& crcGood hd p s r+                       cnt <- displayModels disp res+                       putStrLn $ "Found: " ++ show cnt ++ " polynomail(s)."         where disp :: Int -> (Bool, Word16) -> IO ()               disp n (_, s) = putStrLn $ "Polynomial #" ++ show n ++ ". x^16 + " ++ showPolynomial False s @@ -83,12 +70,12 @@ -- When run, this function prints: -- --  @---    Polynomial #1. x^16 + x^2 + x + 1---    Polynomial #2. x^16 + x^15 + x^2 + 1---    Polynomial #3. x^16 + x^15 + x^2 + x + 1---    Polynomial #4. x^16 + x^14 + x^10 + 1---    Polynomial #5. x^16 + x^14 + x^9 + 1---    ...+--    Polynomial #1. x^16 + x^3 + x^2 + 1+--    Polynomial #2. x^16 + x^3 + x^2 + x + 1+--    Polynomial #3. x^16 + x^3 + x + 1+--    Polynomial #4. x^16 + x^15 + x^2 + 1+--    Polynomial #5. x^16 + x^15 + x^2 + x + 1+--    Found: 5 polynomail(s). --  @ -- -- Note that different runs can produce different results, depending on the random@@ -96,6 +83,7 @@ -- time to generate these results. On my machine, the first five polynomials were -- generated in about 5 minutes.) findHD4Polynomials :: IO ()-findHD4Polynomials = genPoly 4+findHD4Polynomials = genPoly 4 cnt+  where cnt = 5 -- Generate at most this many polynomials  {-# ANN crc_48_16 ("HLint: ignore Use camelCase" :: String) #-}
Documentation/SBV/Examples/Existentials/Diophantine.hs view
@@ -9,6 +9,9 @@ -- Finding minimal natural number solutions to linear Diophantine equations, -- using explicit quantification. -----------------------------------------------------------------------------++{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Existentials.Diophantine where  import Data.SBV@@ -46,17 +49,12 @@ -- | Find the basis solution. By definition, the basis has all non-trivial (i.e., non-0) solutions -- that cannot be written as the sum of two other solutions. We use the mathematically equivalent -- statement that a solution is in the basis if it's least according to the natural partial--- order using the ordinary less-than relation. (NB. We explicitly tell z3 to use the logic--- AUFLIA for this problem, as the BV solver that is chosen automatically has a performance--- issue.)+-- order using the ordinary less-than relation. basis :: Maybe Int -> [[SInteger]] -> IO [[Integer]] basis mbLim m = extractModels `fmap` allSatWith z3{allSatMaxModelCount = mbLim} cond  where cond = do as <- mkExistVars  n                  bs <- mkForallVars n -                 -- Tell the solver to use this logic!-                 setLogic AUFLIA-                  return $ ok as .&& (ok bs .=> as .== bs .|| sNot (bs `less` as))         n = if null m then 0 else length (head m)@@ -80,11 +78,11 @@ -- -- which means that the solutions are of the form: -----    @(1, 0, 0) + k (0, 1, 1) + k' (1, 0, 2) = (1+k', k, k+2k')@+--    @(0, 2, 0) + k (0, 1, 1) + k' (1, 0, 2) = (k', 2+k, k+2k')@ -- -- OR -----    @(0, 2, 0) + k (0, 1, 1) + k' (1, 0, 2) = (k', 2+k, k+2k')@+--    @(1, 0, 0) + k (0, 1, 1) + k' (1, 0, 2) = (1+k', k, k+2k')@ -- -- for arbitrary @k@, @k'@. It's easy to see that these are really solutions -- to the equation given. It's harder to see that they cover all possibilities,@@ -110,10 +108,8 @@ --     4 x_5 = 5 x_6 + 1 -- @ ----- We need to solve for x_0, over the naturals. We have:------ >>> sailors--- [15621,3124,2499,1999,1599,1279,1023]+-- We need to solve for x_0, over the naturals. If you run this program, z3 takes its time (quite long!)+-- but, it eventually computes: [15621,3124,2499,1999,1599,1279,1023] as the answer. -- -- That is: --
Documentation/SBV/Examples/Lists/BoundedMutex.hs view
@@ -17,6 +17,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Lists.BoundedMutex where  import Data.SBV
Documentation/SBV/Examples/Lists/Fibonacci.hs view
@@ -9,6 +9,8 @@ -- Define the fibonacci sequence as an SBV symbolic list. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Lists.Fibonacci where  import Data.SBV
Documentation/SBV/Examples/Lists/Nested.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE OverloadedLists     #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Lists.Nested where  import Data.SBV
Documentation/SBV/Examples/Misc/Auxiliary.hs view
@@ -15,6 +15,8 @@ -- considering them explicitly in model construction. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.Auxiliary where  import Data.SBV
Documentation/SBV/Examples/Misc/Enumerate.hs view
@@ -18,6 +18,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.Enumerate where  import Data.SBV
Documentation/SBV/Examples/Misc/Floating.hs view
@@ -16,6 +16,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.Floating where  import Data.SBV@@ -56,21 +58,21 @@ -- -- >>> assocPlusRegular -- Falsifiable. Counter-example:---   x =  4.4272186e20 :: Float---   y =  1.6717353e20 :: Float---   z = -1.2626838e19 :: Float+--   x = -1.1967979e-6 :: Float+--   y =  1.5629658e-3 :: Float+--   z =      34.66332 :: Float -- -- Indeed, we have: ----- >>> let x =  4.4272186e20 :: Float--- >>> let y =  1.6717353e20 :: Float--- >>> let z = -1.2626838e19 :: Float+-- >>> let x = -1.1967979e-6 :: Float+-- >>> let y =  1.5629658e-3 :: Float+-- >>> let z =      34.66332 :: Float -- >>> x + (y + z)--- 5.972685e20+-- 34.664883 -- >>> (x + y) + z--- 5.972686e20+-- 34.66488 ----- Note the difference between two additions!+-- Note the significant difference between two additions! assocPlusRegular :: IO ThmResult assocPlusRegular = prove $ do [x, y, z] <- sFloats ["x", "y", "z"]                               let lhs = x+(y+z)@@ -90,17 +92,16 @@ -- -- >>> nonZeroAddition -- Falsifiable. Counter-example:---   a =  1.8446744e19 :: Float---   b = -3.786532e-28 :: Float+--   a = 2.2922064e-37 :: Float+--   b =       1.1e-44 :: Float -- -- Indeed, we have: ----- >>> (1.8446744e19 - 3.786532e-28) == (1.8446744e19 :: Float)+-- >>> let a = 2.2922064e-37 :: Float+-- >>> let b =       1.1e-44 :: Float+-- >>> a + b == a -- True------ But:------ >>> -3.786532e-28 == (0 :: Float)+-- >>> b == 0 -- False -- nonZeroAddition :: IO ThmResult@@ -121,13 +122,13 @@ -- -- >>> multInverse -- Falsifiable. Counter-example:---   a = 1.271703601976025e-308 :: Double+--   a = 1.2896893825010637e308 :: Double -- -- Indeed, we have: ----- >>> let a = 1.271703601976025e-308 :: Double+-- >>> let a = 1.2896893825010637e308 :: Double -- >>> a * (1/a)--- 0.9999999999999999+-- 0.9999999999999998 multInverse :: IO ThmResult multInverse = prove $ do a <- sDouble "a"                          constrain $ fpIsPoint a@@ -147,34 +148,34 @@ -- -- >>> roundingAdd -- Satisfiable. Model:---   rm = RoundTowardPositive :: RoundingMode---   x  =           255.96877 :: Float---   y  =             255.875 :: Float+--   rm = RoundTowardNegative :: RoundingMode+--   x  =          0.21655247 :: Float+--   y  =          -1.0332974 :: Float -- -- (Note that depending on your version of Z3, you might get a different result.) -- Unfortunately we can't directly validate this result at the Haskell level, as Haskell only supports -- 'RoundNearestTiesToEven'. We have: ----- >>> 255.96877 + 255.875 :: Float--- 511.84375+-- >>> 0.21655247 + (-1.0332974) :: Float+-- -0.8167449 ----- While we cannot directly see the result when the mode is 'RoundTowardPositive' in Haskell, we can use+-- While we cannot directly see the result when the mode is 'RoundTowardNegative' in Haskell, we can use -- SBV to provide us with that result thusly: ----- >>> sat $ \z -> z .== fpAdd sRoundTowardPositive 255.96877 (255.875 :: SFloat)+-- >>> sat $ \z -> z .== fpAdd sRoundTowardNegative 0.21655247 (-1.0332974 :: SFloat) -- Satisfiable. Model:---   s0 = 511.84378 :: Float+--   s0 = -0.816745 :: Float ----- We can see why these two resuls are indeed different: The 'RoundTowardPositive'--- (which rounds towards positive-infinity) produces a larger result. Indeed, if we treat these numbers+-- We can see why these two resuls are indeed different: The 'RoundTowardNegative'+-- (which rounds towards negative-infinity) produces a smaller result. Indeed, if we treat these numbers -- as 'Double' values, we get: ----- >>> 255.96877 + 255.875 :: Double--- 511.84377+-- >> 0.21655247 + (-1.0332974) :: Double+-- -0.8167449299999999 ----- we see that the "more precise" result is larger than what the 'Float' value is, justifying the--- larger value with 'RoundTowardPositive'. A more detailed study is beyond our current scope, so we'll---  merely -- note that floating point representation and semantics is indeed a thorny+-- we see that the "more precise" result is smaller than what the 'Float' value is, justifying the+-- smaller value with 'RoundTowardNegative'. A more detailed study is beyond our current scope, so we'll+-- merely note that floating point representation and semantics is indeed a thorny -- subject, and point to <http://ece.uwaterloo.ca/~dwharder/NumericalAnalysis/02Numerics/Double/paper.pdf> as -- an excellent guide. roundingAdd :: IO SatResult
Documentation/SBV/Examples/Misc/ModelExtract.hs view
@@ -13,6 +13,8 @@ -- these utilities here. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.ModelExtract where  import Data.SBV
Documentation/SBV/Examples/Misc/NoDiv0.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ImplicitParams #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.NoDiv0 where  import Data.SBV@@ -28,7 +30,7 @@ -- this to be safe: -- -- >>> test1--- [Documentation/SBV/Examples/Misc/NoDiv0.hs:36:14:checkedDiv: Divisor should not be 0: Violated. Model:+-- [Documentation/SBV/Examples/Misc/NoDiv0.hs:38:14:checkedDiv: Divisor should not be 0: Violated. Model: --   s0 = 0 :: Int32 --   s1 = 0 :: Int32] --@@ -38,7 +40,7 @@ -- | Repeat the test, except this time we explicitly protect against the bad case. We have: -- -- >>> test2--- [Documentation/SBV/Examples/Misc/NoDiv0.hs:44:41:checkedDiv: Divisor should not be 0: No violations detected]+-- [Documentation/SBV/Examples/Misc/NoDiv0.hs:46:41:checkedDiv: Divisor should not be 0: No violations detected] -- test2 :: IO [SafeResult] test2 = safe $ \x y -> ite (y .== 0) 3 (checkedDiv x y)
Documentation/SBV/Examples/Misc/Polynomials.hs view
@@ -27,6 +27,8 @@ import Data.SBV import Data.SBV.Tools.Polynomial +{-# OPTIONS_GHC -Wall -Werror #-}+ -- | Helper synonym for representing GF(2^8); which are merely 8-bit unsigned words. Largest -- term in such a polynomial has degree 7. type GF28 = SWord8
Documentation/SBV/Examples/Misc/SetAlgebra.hs view
@@ -10,6 +10,8 @@ -- prove all come from <http://en.wikipedia.org/wiki/Algebra_of_sets>. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.SetAlgebra where  import Data.SBV hiding (complement)@@ -370,7 +372,7 @@  >>> prove $ \(a :: SI) b c -> (b `intersection` c) `isSubsetOf` a .=> b `isSubsetOf` a .&& c `isSubsetOf` a Falsifiable. Counter-example:-  s0 =      {} :: {Integer}-  s1 = U - {0} :: {Integer}+  s0 = U - {0} :: {Integer}+  s1 =      {} :: {Integer}   s2 =     {0} :: {Integer} -}
Documentation/SBV/Examples/Misc/SoftConstrain.hs view
@@ -14,6 +14,8 @@  {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.SoftConstrain where  import Data.SBV
Documentation/SBV/Examples/Misc/Tuple.hs view
@@ -16,6 +16,8 @@ {-# LANGUAGE OverloadedStrings   #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Misc.Tuple where  import Data.SBV
− Documentation/SBV/Examples/Misc/Word4.hs
@@ -1,145 +0,0 @@--------------------------------------------------------------------------------- |--- Module    : Documentation.SBV.Examples.Misc.Word4--- Copyright : (c) Brian Huffman--- License   : BSD3--- Maintainer: erkokl@gmail.com--- Stability : experimental------ Demonstrates how new sizes of word/int types can be defined and--- used with SBV.--------------------------------------------------------------------------------{-# LANGUAGE DeriveDataTypeable    #-}-{-# LANGUAGE FlexibleInstances     #-}-{-# LANGUAGE MultiParamTypeClasses #-}--module Documentation.SBV.Examples.Misc.Word4 where--import GHC.Enum (boundedEnumFrom, boundedEnumFromThen, toEnumError, succError, predError)--import Data.Bits-import Data.Generics (Data, Typeable)-import System.Random (Random(..))--import Data.SBV-import Data.SBV.Internals---- | Word4 as a newtype. Invariant: @Word4 x@ should satisfy @x < 16@.-newtype Word4 = Word4 Word8-  deriving (Eq, Ord, Data, Typeable)---- | Smart constructor; simplifies conversion from Word8-word4 :: Word8 -> Word4-word4 x = Word4 (x .&. 0x0f)---- | Show instance-instance Show Word4 where-  show (Word4 x) = show x---- | Read instance. We read as an 8-bit word, and coerce-instance Read Word4 where-  readsPrec p s = [ (word4 x, s') | (x, s') <- readsPrec p s ]---- | Bounded instance; from 0 to 15-instance Bounded Word4 where-  minBound = Word4 0x00-  maxBound = Word4 0x0f---- | Enum instance, trivial definitions.-instance Enum Word4 where-  succ (Word4 x) = if x < 0x0f then Word4 (succ x) else succError "Word4"-  pred (Word4 x) = if x > 0x00 then Word4 (pred x) else predError "Word4"-  toEnum i | 0x00 <= i && i <= 0x0f = Word4 (toEnum i)-           | otherwise              = toEnumError "Word4" i (Word4 0x00, Word4 0x0f)-  fromEnum (Word4 x) = fromEnum x-  -- Comprehensions-  enumFrom                                     = boundedEnumFrom-  enumFromThen                                 = boundedEnumFromThen-  enumFromTo     (Word4 x) (Word4 y)           = map Word4 (enumFromTo x y)-  enumFromThenTo (Word4 x) (Word4 y) (Word4 z) = map Word4 (enumFromThenTo x y z)---- | Num instance, merely lifts underlying 8-bit operation and casts back-instance Num Word4 where-  Word4 x + Word4 y = word4 (x + y)-  Word4 x * Word4 y = word4 (x * y)-  Word4 x - Word4 y = word4 (x - y)-  negate (Word4 x)  = word4 (negate x)-  abs (Word4 x)     = Word4 x-  signum (Word4 x)  = Word4 (if x == 0 then 0 else 1)-  fromInteger n     = word4 (fromInteger n)---- | Real instance simply uses the Word8 instance-instance Real Word4 where-  toRational (Word4 x) = toRational x---- | Integral instance, again using Word8 instance and casting. NB. we do--- not need to use the smart constructor here as neither the quotient nor--- the remainder can overflow a Word4.-instance Integral Word4 where-  quotRem (Word4 x) (Word4 y) = (Word4 q, Word4 r)-    where (q, r) = quotRem x y-  toInteger (Word4 x) = toInteger x---- | Bits instance-instance Bits Word4 where-  Word4 x  .&.  Word4 y = Word4 (x  .&.  y)-  Word4 x  .|.  Word4 y = Word4 (x  .|.  y)-  Word4 x `xor` Word4 y = Word4 (x `xor` y)-  complement (Word4 x)  = Word4 (x `xor` 0x0f)-  Word4 x `shift`  i    = word4 (shift x i)-  Word4 x `shiftL` i    = word4 (shiftL x i)-  Word4 x `shiftR` i    = Word4 (shiftR x i)-  Word4 x `rotate` i    = word4 (x `shiftL` k .|. x `shiftR` (4-k))-                            where k = i .&. 3-  bitSize _             = 4-  bitSizeMaybe _        = Just 4-  isSigned _            = False-  testBit (Word4 x)     = testBit x-  bit i                 = word4 (bit i)-  popCount (Word4 x)    = popCount x---- | Random instance, used in quick-check-instance Random Word4 where-  randomR (Word4 lo, Word4 hi) gen = (Word4 x, gen')-    where (x, gen') = randomR (lo, hi) gen-  random gen = (Word4 x, gen')-    where (x, gen') = randomR (0x00, 0x0f) gen---- | SWord4 type synonym-type SWord4 = SBV Word4---- | SymVal instance, allowing this type to be used in proofs/sat etc.-instance SymVal Word4 where-  mkSymVal = genMkSymVar (KBounded False 4)-  literal  = genLiteral  (KBounded False 4)-  fromCV   = genFromCV---- | HasKind instance; simply returning the underlying kind for the type-instance HasKind Word4 where-  kindOf _ = KBounded False 4---- | SatModel instance, merely uses the generic parsing method.-instance SatModel Word4 where-  parseCVs = genParse (KBounded False 4)---- | SDvisible instance, using 0-extension-instance SDivisible Word4 where-  sQuotRem x 0 = (0, x)-  sQuotRem x y = x `quotRem` y-  sDivMod  x 0 = (0, x)-  sDivMod  x y = x `divMod` y---- | SDvisible instance, using default methods-instance SDivisible SWord4 where-  sQuotRem = liftQRem-  sDivMod  = liftDMod---- | SIntegral instance, using default methods-instance SIntegral Word4---- | Joining/splitting to/from Word8-instance Splittable Word8 Word4 where-  split x           = (Word4 (x `shiftR` 4), word4 x)-  Word4 x # Word4 y = (x `shiftL` 4) .|. y-  extend (Word4 x)  = x
Documentation/SBV/Examples/Optimization/Enumerate.hs view
@@ -17,6 +17,8 @@ {-# LANGUAGE TemplateHaskell     #-} {-# LANGUAGE TypeFamilies        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Optimization.Enumerate where  import Data.SBV
Documentation/SBV/Examples/Optimization/ExtField.hs view
@@ -9,6 +9,8 @@ -- Demonstrates the extension field (@oo@/@epsilon@) optimization results. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Optimization.ExtField where  import Data.SBV
Documentation/SBV/Examples/Optimization/LinearOpt.hs view
@@ -9,6 +9,8 @@ -- Simple linear optimization example, as found in operations research texts. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Optimization.LinearOpt where  import Data.SBV
Documentation/SBV/Examples/Optimization/Production.hs view
@@ -9,6 +9,8 @@ -- Solves a simple linear optimization problem ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Optimization.Production where  import Data.SBV
Documentation/SBV/Examples/Optimization/VM.hs view
@@ -9,6 +9,8 @@ -- Solves a VM allocation problem using optimization features ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Optimization.VM where  import Data.SBV
Documentation/SBV/Examples/ProofTools/BMC.hs view
@@ -24,6 +24,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.ProofTools.BMC where  import Data.SBV
Documentation/SBV/Examples/ProofTools/Fibonacci.hs view
@@ -30,6 +30,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.ProofTools.Fibonacci where  import Data.SBV
Documentation/SBV/Examples/ProofTools/Strengthen.hs view
@@ -35,6 +35,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.ProofTools.Strengthen where  import Data.SBV
Documentation/SBV/Examples/ProofTools/Sum.hs view
@@ -29,6 +29,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.ProofTools.Sum where  import Data.SBV
Documentation/SBV/Examples/Puzzles/Birthday.hs view
@@ -36,6 +36,8 @@ -- NB. Thanks to Amit Goel for suggesting the formalization strategy used in here. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.Birthday where  import Data.SBV
Documentation/SBV/Examples/Puzzles/Coins.hs view
@@ -30,6 +30,8 @@ -- ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.Coins where  import Data.SBV
Documentation/SBV/Examples/Puzzles/Counts.hs view
@@ -25,6 +25,8 @@ -- ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.Counts where  import Data.SBV@@ -56,9 +58,9 @@ -- -- >>> counts -- Solution #1--- In this sentence, the number of occurrences of 0 is 1, of 1 is 11, of 2 is 2, of 3 is 1, of 4 is 1, of 5 is 1, of 6 is 1, of 7 is 1, of 8 is 1, of 9 is 1.--- Solution #2 -- In this sentence, the number of occurrences of 0 is 1, of 1 is 7, of 2 is 3, of 3 is 2, of 4 is 1, of 5 is 1, of 6 is 1, of 7 is 2, of 8 is 1, of 9 is 1.+-- Solution #2+-- In this sentence, the number of occurrences of 0 is 1, of 1 is 11, of 2 is 2, of 3 is 1, of 4 is 1, of 5 is 1, of 6 is 1, of 7 is 1, of 8 is 1, of 9 is 1. -- Found: 2 solution(s). counts :: IO () counts = do res <- allSat $ puzzle `fmap` mkExistVars 10
Documentation/SBV/Examples/Puzzles/DogCatMouse.hs view
@@ -13,6 +13,8 @@ --   How many of each should you buy? ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.DogCatMouse where  import Data.SBV
Documentation/SBV/Examples/Puzzles/Euler185.hs view
@@ -9,6 +9,8 @@ -- A solution to Project Euler problem #185: <http://projecteuler.net/index.php?section=problems&id=185> ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.Euler185 where  import Data.Char (ord)
Documentation/SBV/Examples/Puzzles/Fish.hs view
@@ -6,7 +6,7 @@ -- Maintainer: erkokl@gmail.com -- Stability : experimental ----- Solves the following logic puzzle:+-- Solves the following logic puzzle, attributed to Albert Einstein: -- --   - The Briton lives in the red house. --   - The Swede keeps dogs as pets.@@ -26,6 +26,8 @@ -- -- Who owns the fish? ------------------------------------------------------------------------------++{-# OPTIONS_GHC -Wall -Werror #-}  {-# LANGUAGE DeriveAnyClass      #-} {-# LANGUAGE DeriveDataTypeable  #-}
Documentation/SBV/Examples/Puzzles/Garden.hs view
@@ -33,6 +33,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.Garden where  import Data.SBV
Documentation/SBV/Examples/Puzzles/HexPuzzle.hs view
@@ -45,6 +45,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.HexPuzzle where  import Data.SBV
Documentation/SBV/Examples/Puzzles/LadyAndTigers.hs view
@@ -21,6 +21,8 @@ --    At most only 1 statement is true. Where’s the Lady? ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.LadyAndTigers where  import Data.SBV
Documentation/SBV/Examples/Puzzles/MagicSquare.hs view
@@ -11,6 +11,8 @@ -- and diagonals is the same. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.MagicSquare where  import Data.List (genericLength, transpose)
Documentation/SBV/Examples/Puzzles/NQueens.hs view
@@ -9,6 +9,8 @@ -- Solves the NQueens puzzle: <http://en.wikipedia.org/wiki/Eight_queens_puzzle> ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.NQueens where  import Data.SBV
Documentation/SBV/Examples/Puzzles/SendMoreMoney.hs view
@@ -9,6 +9,8 @@ -- Solves the classic @send + more = money@ puzzle. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.SendMoreMoney where  import Data.SBV
Documentation/SBV/Examples/Puzzles/Sudoku.hs view
@@ -9,6 +9,8 @@ -- The Sudoku solver, quintessential SMT solver example! ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.Sudoku where  import Data.List  (transpose)
Documentation/SBV/Examples/Puzzles/U2Bridge.hs view
@@ -16,6 +16,8 @@ {-# LANGUAGE StandaloneDeriving   #-} {-# LANGUAGE TemplateHaskell      #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Puzzles.U2Bridge where  import Control.Monad       (unless)
Documentation/SBV/Examples/Queries/AllSat.hs view
@@ -13,6 +13,8 @@ -- extra conditions with easy as we walk through solutions. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.AllSat where  import Data.SBV
Documentation/SBV/Examples/Queries/CaseSplit.hs view
@@ -9,6 +9,8 @@ -- A couple of demonstrations for the 'caseSplit' function. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.CaseSplit where  import Data.SBV
Documentation/SBV/Examples/Queries/Enums.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.Enums where  import Data.SBV
Documentation/SBV/Examples/Queries/FourFours.hs view
@@ -26,6 +26,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.FourFours where  import Data.SBV
Documentation/SBV/Examples/Queries/GuessNumber.hs view
@@ -11,6 +11,8 @@ -- for the interactive-query programming. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.GuessNumber where  import Data.SBV@@ -71,7 +73,7 @@ -- Current bounds: (41,521) -- Current bounds: (42,521) -- Solved in: 9 guesses:---   1000 0 21 31 36 39 40 41 42+--   971 0 21 31 36 39 40 41 42 play :: IO () play = do gs <- runSMT (guess 42)           putStrLn $ "Solved in: " ++ show (length gs) ++ " guesses:"
Documentation/SBV/Examples/Queries/Interpolants.hs view
@@ -12,6 +12,8 @@ -- to use the MathSAT backend for this example to work. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.Interpolants where  import Data.SBV
Documentation/SBV/Examples/Queries/UnsatCore.hs view
@@ -9,6 +9,8 @@ -- Demonstrates extraction of unsat-cores via queries. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Queries.UnsatCore where  import Data.SBV
Documentation/SBV/Examples/Strings/RegexCrossword.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Strings.RegexCrossword where  import Data.List (genericLength, transpose)
Documentation/SBV/Examples/Strings/SQLInjection.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE OverloadedStrings   #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Strings.SQLInjection where  import Control.Monad.State
Documentation/SBV/Examples/Transformers/SymbolicEval.hs view
@@ -25,6 +25,8 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE KindSignatures             #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Transformers.SymbolicEval where  import Control.Monad.Except   (Except, ExceptT, MonadError, mapExceptT, runExceptT, throwError)
Documentation/SBV/Examples/Uninterpreted/AUF.hs view
@@ -29,6 +29,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.AUF where  import Data.SBV
Documentation/SBV/Examples/Uninterpreted/Deduce.hs view
@@ -14,6 +14,8 @@ {-# LANGUAGE DeriveAnyClass     #-} {-# LANGUAGE DeriveDataTypeable #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.Deduce where  import Data.Generics
Documentation/SBV/Examples/Uninterpreted/Function.hs view
@@ -9,6 +9,8 @@ -- Demonstrates function counter-examples ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.Function where  import Data.SBV
Documentation/SBV/Examples/Uninterpreted/Multiply.hs view
@@ -12,6 +12,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.Multiply where  import Data.SBV
Documentation/SBV/Examples/Uninterpreted/Shannon.hs view
@@ -10,6 +10,8 @@ -- facts.  See: <http://en.wikipedia.org/wiki/Shannon's_expansion> ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.Shannon where  import Data.SBV
Documentation/SBV/Examples/Uninterpreted/Sort.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE DeriveAnyClass     #-} {-# LANGUAGE DeriveDataTypeable #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.Sort where  import Data.Generics
Documentation/SBV/Examples/Uninterpreted/UISortAllSat.hs view
@@ -12,6 +12,8 @@  {-# LANGUAGE DeriveDataTypeable #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.Uninterpreted.UISortAllSat where  import Data.Generics
Documentation/SBV/Examples/WeakestPreconditions/Append.hs view
@@ -18,6 +18,8 @@ {-# LANGUAGE NamedFieldPuns        #-} {-# LANGUAGE OverloadedLists       #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.Append where  import Data.SBV
Documentation/SBV/Examples/WeakestPreconditions/Fib.hs view
@@ -20,6 +20,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.Fib where  import Data.SBV
Documentation/SBV/Examples/WeakestPreconditions/GCD.hs view
@@ -22,6 +22,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.GCD where  import Data.SBV
Documentation/SBV/Examples/WeakestPreconditions/IntDiv.hs view
@@ -19,6 +19,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.IntDiv where  import Data.SBV
Documentation/SBV/Examples/WeakestPreconditions/IntSqrt.hs view
@@ -21,6 +21,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.IntSqrt where  import Data.SBV
Documentation/SBV/Examples/WeakestPreconditions/Length.hs view
@@ -17,6 +17,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.Length where  import Data.SBV
Documentation/SBV/Examples/WeakestPreconditions/Sum.hs view
@@ -19,6 +19,8 @@ {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE NamedFieldPuns        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Documentation.SBV.Examples.WeakestPreconditions.Sum where  import Data.SBV@@ -234,10 +236,10 @@ Following proof obligation failed: ==================================   Measure for loop "i < n" does not decrease:-    Before : SumS {n = 2, i = 1, s = 1}-    Measure: 3-    After  : SumS {n = 2, i = 2, s = 3}-    Measure: 4+    Before : SumS {n = 1, i = 0, s = 0}+    Measure: 1+    After  : SumS {n = 1, i = 1, s = 1}+    Measure: 2  Clearly, as @i@ increases, so does our bogus measure @n+i@. -}
README.md view
@@ -7,12 +7,12 @@ ### Build Status   - Linux:-     - GHC 8.4.4 [![Build1][3]][1]-     - GHC 8.6.3 [![Build1][4]][1]+     - GHC 8.6.5 [![Build1][3]][1]+     - GHC 8.6.4 [![Build1][4]][1]  - Mac OSX:-     - GHC 8.6.3 [![Build1][5]][1]+     - GHC 8.6.5 [![Build1][5]][1]  - Windows:-     - GHC 8.6.2 [![Build5][6]][2]+     - GHC 8.6.5 [![Build5][6]][2]  [1]: https://travis-ci.org/LeventErkok/sbv [2]: https://ci.appveyor.com/project/LeventErkok/sbv
SBVTestSuite/GoldFiles/aes128Dec.gold view
@@ -80,2530 +80,2358 @@   printf("Contents of input array pt:\n");   int pt_ctr;   for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)-    printf("  pt[%d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);--  const SWord32 key[4] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array key:\n");-  int key_ctr;-  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)-    printf("  key[%d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);--  SWord32 ct[4];--  aes128Dec(pt, key, ct);--  printf("aes128Dec(pt, key, ct) ->\n");-  int ct_ctr;-  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)-    printf("  ct[%d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);--  return 0;-}-== END: "aes128Dec_driver.c" ==================-== BEGIN: "aes128Dec.c" ================-/* File: "aes128Dec.c". Automatically generated by SBV. Do not edit! */--#include "aes128Dec.h"--void aes128Dec(const SWord32 *pt, const SWord32 *key, SWord32 *ct)-{-  const SWord32 s0 = pt[0];-  const SWord32 s1 = pt[1];-  const SWord32 s2 = pt[2];-  const SWord32 s3 = pt[3];-  const SWord32 s4 = key[0];-  const SWord32 s5 = key[1];-  const SWord32 s6 = key[2];-  const SWord32 s7 = key[3];-  static const SWord8 table0[] = {-       82,   9, 106, 213,  48,  54, 165,  56, 191,  64, 163, 158, 129,-      243, 215, 251, 124, 227,  57, 130, 155,  47, 255, 135,  52, 142,-       67,  68, 196, 222, 233, 203,  84, 123, 148,  50, 166, 194,  35,-       61, 238,  76, 149,  11,  66, 250, 195,  78,   8,  46, 161, 102,-       40, 217,  36, 178, 118,  91, 162,  73, 109, 139, 209,  37, 114,-      248, 246, 100, 134, 104, 152,  22, 212, 164,  92, 204,  93, 101,-      182, 146, 108, 112,  72,  80, 253, 237, 185, 218,  94,  21,  70,-       87, 167, 141, 157, 132, 144, 216, 171,   0, 140, 188, 211,  10,-      247, 228,  88,   5, 184, 179,  69,   6, 208,  44,  30, 143, 202,-       63,  15,   2, 193, 175, 189,   3,   1,  19, 138, 107,  58, 145,-       17,  65,  79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230,-      115, 150, 172, 116,  34, 231, 173,  53, 133, 226, 249,  55, 232,-       28, 117, 223, 110,  71, 241,  26, 113,  29,  41, 197, 137, 111,-      183,  98,  14, 170,  24, 190,  27, 252,  86,  62,  75, 198, 210,-      121,  32, 154, 219, 192, 254, 120, 205,  90, 244,  31, 221, 168,-       51, 136,   7, 199,  49, 177,  18,  16,  89,  39, 128, 236,  95,-       96,  81, 127, 169,  25, 181,  74,  13,  45, 229, 122, 159, 147,-      201, 156, 239, 160, 224,  59,  77, 174,  42, 245, 176, 200, 235,-      187,  60, 131,  83, 153,  97,  23,  43,   4, 126, 186, 119, 214,-       38, 225, 105,  20,  99,  85,  33,  12, 125-  };-  static const SWord32 table1[] = {-      0x51f4a750UL, 0x7e416553UL, 0x1a17a4c3UL, 0x3a275e96UL,-      0x3bab6bcbUL, 0x1f9d45f1UL, 0xacfa58abUL, 0x4be30393UL,-      0x2030fa55UL, 0xad766df6UL, 0x88cc7691UL, 0xf5024c25UL,-      0x4fe5d7fcUL, 0xc52acbd7UL, 0x26354480UL, 0xb562a38fUL,-      0xdeb15a49UL, 0x25ba1b67UL, 0x45ea0e98UL, 0x5dfec0e1UL,-      0xc32f7502UL, 0x814cf012UL, 0x8d4697a3UL, 0x6bd3f9c6UL,-      0x038f5fe7UL, 0x15929c95UL, 0xbf6d7aebUL, 0x955259daUL,-      0xd4be832dUL, 0x587421d3UL, 0x49e06929UL, 0x8ec9c844UL,-      0x75c2896aUL, 0xf48e7978UL, 0x99583e6bUL, 0x27b971ddUL,-      0xbee14fb6UL, 0xf088ad17UL, 0xc920ac66UL, 0x7dce3ab4UL,-      0x63df4a18UL, 0xe51a3182UL, 0x97513360UL, 0x62537f45UL,-      0xb16477e0UL, 0xbb6bae84UL, 0xfe81a01cUL, 0xf9082b94UL,-      0x70486858UL, 0x8f45fd19UL, 0x94de6c87UL, 0x527bf8b7UL,-      0xab73d323UL, 0x724b02e2UL, 0xe31f8f57UL, 0x6655ab2aUL,-      0xb2eb2807UL, 0x2fb5c203UL, 0x86c57b9aUL, 0xd33708a5UL,-      0x302887f2UL, 0x23bfa5b2UL, 0x02036abaUL, 0xed16825cUL,-      0x8acf1c2bUL, 0xa779b492UL, 0xf307f2f0UL, 0x4e69e2a1UL,-      0x65daf4cdUL, 0x0605bed5UL, 0xd134621fUL, 0xc4a6fe8aUL,-      0x342e539dUL, 0xa2f355a0UL, 0x058ae132UL, 0xa4f6eb75UL,-      0x0b83ec39UL, 0x4060efaaUL, 0x5e719f06UL, 0xbd6e1051UL,-      0x3e218af9UL, 0x96dd063dUL, 0xdd3e05aeUL, 0x4de6bd46UL,-      0x91548db5UL, 0x71c45d05UL, 0x0406d46fUL, 0x605015ffUL,-      0x1998fb24UL, 0xd6bde997UL, 0x894043ccUL, 0x67d99e77UL,-      0xb0e842bdUL, 0x07898b88UL, 0xe7195b38UL, 0x79c8eedbUL,-      0xa17c0a47UL, 0x7c420fe9UL, 0xf8841ec9UL, 0x00000000UL,-      0x09808683UL, 0x322bed48UL, 0x1e1170acUL, 0x6c5a724eUL,-      0xfd0efffbUL, 0x0f853856UL, 0x3daed51eUL, 0x362d3927UL,-      0x0a0fd964UL, 0x685ca621UL, 0x9b5b54d1UL, 0x24362e3aUL,-      0x0c0a67b1UL, 0x9357e70fUL, 0xb4ee96d2UL, 0x1b9b919eUL,-      0x80c0c54fUL, 0x61dc20a2UL, 0x5a774b69UL, 0x1c121a16UL,-      0xe293ba0aUL, 0xc0a02ae5UL, 0x3c22e043UL, 0x121b171dUL,-      0x0e090d0bUL, 0xf28bc7adUL, 0x2db6a8b9UL, 0x141ea9c8UL,-      0x57f11985UL, 0xaf75074cUL, 0xee99ddbbUL, 0xa37f60fdUL,-      0xf701269fUL, 0x5c72f5bcUL, 0x44663bc5UL, 0x5bfb7e34UL,-      0x8b432976UL, 0xcb23c6dcUL, 0xb6edfc68UL, 0xb8e4f163UL,-      0xd731dccaUL, 0x42638510UL, 0x13972240UL, 0x84c61120UL,-      0x854a247dUL, 0xd2bb3df8UL, 0xaef93211UL, 0xc729a16dUL,-      0x1d9e2f4bUL, 0xdcb230f3UL, 0x0d8652ecUL, 0x77c1e3d0UL,-      0x2bb3166cUL, 0xa970b999UL, 0x119448faUL, 0x47e96422UL,-      0xa8fc8cc4UL, 0xa0f03f1aUL, 0x567d2cd8UL, 0x223390efUL,-      0x87494ec7UL, 0xd938d1c1UL, 0x8ccaa2feUL, 0x98d40b36UL,-      0xa6f581cfUL, 0xa57ade28UL, 0xdab78e26UL, 0x3fadbfa4UL,-      0x2c3a9de4UL, 0x5078920dUL, 0x6a5fcc9bUL, 0x547e4662UL,-      0xf68d13c2UL, 0x90d8b8e8UL, 0x2e39f75eUL, 0x82c3aff5UL,-      0x9f5d80beUL, 0x69d0937cUL, 0x6fd52da9UL, 0xcf2512b3UL,-      0xc8ac993bUL, 0x10187da7UL, 0xe89c636eUL, 0xdb3bbb7bUL,-      0xcd267809UL, 0x6e5918f4UL, 0xec9ab701UL, 0x834f9aa8UL,-      0xe6956e65UL, 0xaaffe67eUL, 0x21bccf08UL, 0xef15e8e6UL,-      0xbae79bd9UL, 0x4a6f36ceUL, 0xea9f09d4UL, 0x29b07cd6UL,-      0x31a4b2afUL, 0x2a3f2331UL, 0xc6a59430UL, 0x35a266c0UL,-      0x744ebc37UL, 0xfc82caa6UL, 0xe090d0b0UL, 0x33a7d815UL,-      0xf104984aUL, 0x41ecdaf7UL, 0x7fcd500eUL, 0x1791f62fUL,-      0x764dd68dUL, 0x43efb04dUL, 0xccaa4d54UL, 0xe49604dfUL,-      0x9ed1b5e3UL, 0x4c6a881bUL, 0xc12c1fb8UL, 0x4665517fUL,-      0x9d5eea04UL, 0x018c355dUL, 0xfa877473UL, 0xfb0b412eUL,-      0xb3671d5aUL, 0x92dbd252UL, 0xe9105633UL, 0x6dd64713UL,-      0x9ad7618cUL, 0x37a10c7aUL, 0x59f8148eUL, 0xeb133c89UL,-      0xcea927eeUL, 0xb761c935UL, 0xe11ce5edUL, 0x7a47b13cUL,-      0x9cd2df59UL, 0x55f2733fUL, 0x1814ce79UL, 0x73c737bfUL,-      0x53f7cdeaUL, 0x5ffdaa5bUL, 0xdf3d6f14UL, 0x7844db86UL,-      0xcaaff381UL, 0xb968c43eUL, 0x3824342cUL, 0xc2a3405fUL,-      0x161dc372UL, 0xbce2250cUL, 0x283c498bUL, 0xff0d9541UL,-      0x39a80171UL, 0x080cb3deUL, 0xd8b4e49cUL, 0x6456c190UL,-      0x7bcb8461UL, 0xd532b670UL, 0x486c5c74UL, 0xd0b85742UL-  };-  static const SWord8 table2[] = {-       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,-      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,-      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,-      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,-       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,-      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,-       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,-       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,-       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,-      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,-       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,-      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,-      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,-      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,-       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,-       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,-      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,-      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,-      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,-      104,  65, 153,  45,  15, 176,  84, 187,  22-  };-  static const SWord32 table3[] = {-      0x5051f4a7UL, 0x537e4165UL, 0xc31a17a4UL, 0x963a275eUL,-      0xcb3bab6bUL, 0xf11f9d45UL, 0xabacfa58UL, 0x934be303UL,-      0x552030faUL, 0xf6ad766dUL, 0x9188cc76UL, 0x25f5024cUL,-      0xfc4fe5d7UL, 0xd7c52acbUL, 0x80263544UL, 0x8fb562a3UL,-      0x49deb15aUL, 0x6725ba1bUL, 0x9845ea0eUL, 0xe15dfec0UL,-      0x02c32f75UL, 0x12814cf0UL, 0xa38d4697UL, 0xc66bd3f9UL,-      0xe7038f5fUL, 0x9515929cUL, 0xebbf6d7aUL, 0xda955259UL,-      0x2dd4be83UL, 0xd3587421UL, 0x2949e069UL, 0x448ec9c8UL,-      0x6a75c289UL, 0x78f48e79UL, 0x6b99583eUL, 0xdd27b971UL,-      0xb6bee14fUL, 0x17f088adUL, 0x66c920acUL, 0xb47dce3aUL,-      0x1863df4aUL, 0x82e51a31UL, 0x60975133UL, 0x4562537fUL,-      0xe0b16477UL, 0x84bb6baeUL, 0x1cfe81a0UL, 0x94f9082bUL,-      0x58704868UL, 0x198f45fdUL, 0x8794de6cUL, 0xb7527bf8UL,-      0x23ab73d3UL, 0xe2724b02UL, 0x57e31f8fUL, 0x2a6655abUL,-      0x07b2eb28UL, 0x032fb5c2UL, 0x9a86c57bUL, 0xa5d33708UL,-      0xf2302887UL, 0xb223bfa5UL, 0xba02036aUL, 0x5ced1682UL,-      0x2b8acf1cUL, 0x92a779b4UL, 0xf0f307f2UL, 0xa14e69e2UL,-      0xcd65daf4UL, 0xd50605beUL, 0x1fd13462UL, 0x8ac4a6feUL,-      0x9d342e53UL, 0xa0a2f355UL, 0x32058ae1UL, 0x75a4f6ebUL,-      0x390b83ecUL, 0xaa4060efUL, 0x065e719fUL, 0x51bd6e10UL,-      0xf93e218aUL, 0x3d96dd06UL, 0xaedd3e05UL, 0x464de6bdUL,-      0xb591548dUL, 0x0571c45dUL, 0x6f0406d4UL, 0xff605015UL,-      0x241998fbUL, 0x97d6bde9UL, 0xcc894043UL, 0x7767d99eUL,-      0xbdb0e842UL, 0x8807898bUL, 0x38e7195bUL, 0xdb79c8eeUL,-      0x47a17c0aUL, 0xe97c420fUL, 0xc9f8841eUL, 0x00000000UL,-      0x83098086UL, 0x48322bedUL, 0xac1e1170UL, 0x4e6c5a72UL,-      0xfbfd0effUL, 0x560f8538UL, 0x1e3daed5UL, 0x27362d39UL,-      0x640a0fd9UL, 0x21685ca6UL, 0xd19b5b54UL, 0x3a24362eUL,-      0xb10c0a67UL, 0x0f9357e7UL, 0xd2b4ee96UL, 0x9e1b9b91UL,-      0x4f80c0c5UL, 0xa261dc20UL, 0x695a774bUL, 0x161c121aUL,-      0x0ae293baUL, 0xe5c0a02aUL, 0x433c22e0UL, 0x1d121b17UL,-      0x0b0e090dUL, 0xadf28bc7UL, 0xb92db6a8UL, 0xc8141ea9UL,-      0x8557f119UL, 0x4caf7507UL, 0xbbee99ddUL, 0xfda37f60UL,-      0x9ff70126UL, 0xbc5c72f5UL, 0xc544663bUL, 0x345bfb7eUL,-      0x768b4329UL, 0xdccb23c6UL, 0x68b6edfcUL, 0x63b8e4f1UL,-      0xcad731dcUL, 0x10426385UL, 0x40139722UL, 0x2084c611UL,-      0x7d854a24UL, 0xf8d2bb3dUL, 0x11aef932UL, 0x6dc729a1UL,-      0x4b1d9e2fUL, 0xf3dcb230UL, 0xec0d8652UL, 0xd077c1e3UL,-      0x6c2bb316UL, 0x99a970b9UL, 0xfa119448UL, 0x2247e964UL,-      0xc4a8fc8cUL, 0x1aa0f03fUL, 0xd8567d2cUL, 0xef223390UL,-      0xc787494eUL, 0xc1d938d1UL, 0xfe8ccaa2UL, 0x3698d40bUL,-      0xcfa6f581UL, 0x28a57adeUL, 0x26dab78eUL, 0xa43fadbfUL,-      0xe42c3a9dUL, 0x0d507892UL, 0x9b6a5fccUL, 0x62547e46UL,-      0xc2f68d13UL, 0xe890d8b8UL, 0x5e2e39f7UL, 0xf582c3afUL,-      0xbe9f5d80UL, 0x7c69d093UL, 0xa96fd52dUL, 0xb3cf2512UL,-      0x3bc8ac99UL, 0xa710187dUL, 0x6ee89c63UL, 0x7bdb3bbbUL,-      0x09cd2678UL, 0xf46e5918UL, 0x01ec9ab7UL, 0xa8834f9aUL,-      0x65e6956eUL, 0x7eaaffe6UL, 0x0821bccfUL, 0xe6ef15e8UL,-      0xd9bae79bUL, 0xce4a6f36UL, 0xd4ea9f09UL, 0xd629b07cUL,-      0xaf31a4b2UL, 0x312a3f23UL, 0x30c6a594UL, 0xc035a266UL,-      0x37744ebcUL, 0xa6fc82caUL, 0xb0e090d0UL, 0x1533a7d8UL,-      0x4af10498UL, 0xf741ecdaUL, 0x0e7fcd50UL, 0x2f1791f6UL,-      0x8d764dd6UL, 0x4d43efb0UL, 0x54ccaa4dUL, 0xdfe49604UL,-      0xe39ed1b5UL, 0x1b4c6a88UL, 0xb8c12c1fUL, 0x7f466551UL,-      0x049d5eeaUL, 0x5d018c35UL, 0x73fa8774UL, 0x2efb0b41UL,-      0x5ab3671dUL, 0x5292dbd2UL, 0x33e91056UL, 0x136dd647UL,-      0x8c9ad761UL, 0x7a37a10cUL, 0x8e59f814UL, 0x89eb133cUL,-      0xeecea927UL, 0x35b761c9UL, 0xede11ce5UL, 0x3c7a47b1UL,-      0x599cd2dfUL, 0x3f55f273UL, 0x791814ceUL, 0xbf73c737UL,-      0xea53f7cdUL, 0x5b5ffdaaUL, 0x14df3d6fUL, 0x867844dbUL,-      0x81caaff3UL, 0x3eb968c4UL, 0x2c382434UL, 0x5fc2a340UL,-      0x72161dc3UL, 0x0cbce225UL, 0x8b283c49UL, 0x41ff0d95UL,-      0x7139a801UL, 0xde080cb3UL, 0x9cd8b4e4UL, 0x906456c1UL,-      0x617bcb84UL, 0x70d532b6UL, 0x74486c5cUL, 0x42d0b857UL-  };-  static const SWord32 table4[] = {-      0xa75051f4UL, 0x65537e41UL, 0xa4c31a17UL, 0x5e963a27UL,-      0x6bcb3babUL, 0x45f11f9dUL, 0x58abacfaUL, 0x03934be3UL,-      0xfa552030UL, 0x6df6ad76UL, 0x769188ccUL, 0x4c25f502UL,-      0xd7fc4fe5UL, 0xcbd7c52aUL, 0x44802635UL, 0xa38fb562UL,-      0x5a49deb1UL, 0x1b6725baUL, 0x0e9845eaUL, 0xc0e15dfeUL,-      0x7502c32fUL, 0xf012814cUL, 0x97a38d46UL, 0xf9c66bd3UL,-      0x5fe7038fUL, 0x9c951592UL, 0x7aebbf6dUL, 0x59da9552UL,-      0x832dd4beUL, 0x21d35874UL, 0x692949e0UL, 0xc8448ec9UL,-      0x896a75c2UL, 0x7978f48eUL, 0x3e6b9958UL, 0x71dd27b9UL,-      0x4fb6bee1UL, 0xad17f088UL, 0xac66c920UL, 0x3ab47dceUL,-      0x4a1863dfUL, 0x3182e51aUL, 0x33609751UL, 0x7f456253UL,-      0x77e0b164UL, 0xae84bb6bUL, 0xa01cfe81UL, 0x2b94f908UL,-      0x68587048UL, 0xfd198f45UL, 0x6c8794deUL, 0xf8b7527bUL,-      0xd323ab73UL, 0x02e2724bUL, 0x8f57e31fUL, 0xab2a6655UL,-      0x2807b2ebUL, 0xc2032fb5UL, 0x7b9a86c5UL, 0x08a5d337UL,-      0x87f23028UL, 0xa5b223bfUL, 0x6aba0203UL, 0x825ced16UL,-      0x1c2b8acfUL, 0xb492a779UL, 0xf2f0f307UL, 0xe2a14e69UL,-      0xf4cd65daUL, 0xbed50605UL, 0x621fd134UL, 0xfe8ac4a6UL,-      0x539d342eUL, 0x55a0a2f3UL, 0xe132058aUL, 0xeb75a4f6UL,-      0xec390b83UL, 0xefaa4060UL, 0x9f065e71UL, 0x1051bd6eUL,-      0x8af93e21UL, 0x063d96ddUL, 0x05aedd3eUL, 0xbd464de6UL,-      0x8db59154UL, 0x5d0571c4UL, 0xd46f0406UL, 0x15ff6050UL,-      0xfb241998UL, 0xe997d6bdUL, 0x43cc8940UL, 0x9e7767d9UL,-      0x42bdb0e8UL, 0x8b880789UL, 0x5b38e719UL, 0xeedb79c8UL,-      0x0a47a17cUL, 0x0fe97c42UL, 0x1ec9f884UL, 0x00000000UL,-      0x86830980UL, 0xed48322bUL, 0x70ac1e11UL, 0x724e6c5aUL,-      0xfffbfd0eUL, 0x38560f85UL, 0xd51e3daeUL, 0x3927362dUL,-      0xd9640a0fUL, 0xa621685cUL, 0x54d19b5bUL, 0x2e3a2436UL,-      0x67b10c0aUL, 0xe70f9357UL, 0x96d2b4eeUL, 0x919e1b9bUL,-      0xc54f80c0UL, 0x20a261dcUL, 0x4b695a77UL, 0x1a161c12UL,-      0xba0ae293UL, 0x2ae5c0a0UL, 0xe0433c22UL, 0x171d121bUL,-      0x0d0b0e09UL, 0xc7adf28bUL, 0xa8b92db6UL, 0xa9c8141eUL,-      0x198557f1UL, 0x074caf75UL, 0xddbbee99UL, 0x60fda37fUL,-      0x269ff701UL, 0xf5bc5c72UL, 0x3bc54466UL, 0x7e345bfbUL,-      0x29768b43UL, 0xc6dccb23UL, 0xfc68b6edUL, 0xf163b8e4UL,-      0xdccad731UL, 0x85104263UL, 0x22401397UL, 0x112084c6UL,-      0x247d854aUL, 0x3df8d2bbUL, 0x3211aef9UL, 0xa16dc729UL,-      0x2f4b1d9eUL, 0x30f3dcb2UL, 0x52ec0d86UL, 0xe3d077c1UL,-      0x166c2bb3UL, 0xb999a970UL, 0x48fa1194UL, 0x642247e9UL,-      0x8cc4a8fcUL, 0x3f1aa0f0UL, 0x2cd8567dUL, 0x90ef2233UL,-      0x4ec78749UL, 0xd1c1d938UL, 0xa2fe8ccaUL, 0x0b3698d4UL,-      0x81cfa6f5UL, 0xde28a57aUL, 0x8e26dab7UL, 0xbfa43fadUL,-      0x9de42c3aUL, 0x920d5078UL, 0xcc9b6a5fUL, 0x4662547eUL,-      0x13c2f68dUL, 0xb8e890d8UL, 0xf75e2e39UL, 0xaff582c3UL,-      0x80be9f5dUL, 0x937c69d0UL, 0x2da96fd5UL, 0x12b3cf25UL,-      0x993bc8acUL, 0x7da71018UL, 0x636ee89cUL, 0xbb7bdb3bUL,-      0x7809cd26UL, 0x18f46e59UL, 0xb701ec9aUL, 0x9aa8834fUL,-      0x6e65e695UL, 0xe67eaaffUL, 0xcf0821bcUL, 0xe8e6ef15UL,-      0x9bd9bae7UL, 0x36ce4a6fUL, 0x09d4ea9fUL, 0x7cd629b0UL,-      0xb2af31a4UL, 0x23312a3fUL, 0x9430c6a5UL, 0x66c035a2UL,-      0xbc37744eUL, 0xcaa6fc82UL, 0xd0b0e090UL, 0xd81533a7UL,-      0x984af104UL, 0xdaf741ecUL, 0x500e7fcdUL, 0xf62f1791UL,-      0xd68d764dUL, 0xb04d43efUL, 0x4d54ccaaUL, 0x04dfe496UL,-      0xb5e39ed1UL, 0x881b4c6aUL, 0x1fb8c12cUL, 0x517f4665UL,-      0xea049d5eUL, 0x355d018cUL, 0x7473fa87UL, 0x412efb0bUL,-      0x1d5ab367UL, 0xd25292dbUL, 0x5633e910UL, 0x47136dd6UL,-      0x618c9ad7UL, 0x0c7a37a1UL, 0x148e59f8UL, 0x3c89eb13UL,-      0x27eecea9UL, 0xc935b761UL, 0xe5ede11cUL, 0xb13c7a47UL,-      0xdf599cd2UL, 0x733f55f2UL, 0xce791814UL, 0x37bf73c7UL,-      0xcdea53f7UL, 0xaa5b5ffdUL, 0x6f14df3dUL, 0xdb867844UL,-      0xf381caafUL, 0xc43eb968UL, 0x342c3824UL, 0x405fc2a3UL,-      0xc372161dUL, 0x250cbce2UL, 0x498b283cUL, 0x9541ff0dUL,-      0x017139a8UL, 0xb3de080cUL, 0xe49cd8b4UL, 0xc1906456UL,-      0x84617bcbUL, 0xb670d532UL, 0x5c74486cUL, 0x5742d0b8UL-  };-  static const SWord32 table5[] = {-      0xf4a75051UL, 0x4165537eUL, 0x17a4c31aUL, 0x275e963aUL,-      0xab6bcb3bUL, 0x9d45f11fUL, 0xfa58abacUL, 0xe303934bUL,-      0x30fa5520UL, 0x766df6adUL, 0xcc769188UL, 0x024c25f5UL,-      0xe5d7fc4fUL, 0x2acbd7c5UL, 0x35448026UL, 0x62a38fb5UL,-      0xb15a49deUL, 0xba1b6725UL, 0xea0e9845UL, 0xfec0e15dUL,-      0x2f7502c3UL, 0x4cf01281UL, 0x4697a38dUL, 0xd3f9c66bUL,-      0x8f5fe703UL, 0x929c9515UL, 0x6d7aebbfUL, 0x5259da95UL,-      0xbe832dd4UL, 0x7421d358UL, 0xe0692949UL, 0xc9c8448eUL,-      0xc2896a75UL, 0x8e7978f4UL, 0x583e6b99UL, 0xb971dd27UL,-      0xe14fb6beUL, 0x88ad17f0UL, 0x20ac66c9UL, 0xce3ab47dUL,-      0xdf4a1863UL, 0x1a3182e5UL, 0x51336097UL, 0x537f4562UL,-      0x6477e0b1UL, 0x6bae84bbUL, 0x81a01cfeUL, 0x082b94f9UL,-      0x48685870UL, 0x45fd198fUL, 0xde6c8794UL, 0x7bf8b752UL,-      0x73d323abUL, 0x4b02e272UL, 0x1f8f57e3UL, 0x55ab2a66UL,-      0xeb2807b2UL, 0xb5c2032fUL, 0xc57b9a86UL, 0x3708a5d3UL,-      0x2887f230UL, 0xbfa5b223UL, 0x036aba02UL, 0x16825cedUL,-      0xcf1c2b8aUL, 0x79b492a7UL, 0x07f2f0f3UL, 0x69e2a14eUL,-      0xdaf4cd65UL, 0x05bed506UL, 0x34621fd1UL, 0xa6fe8ac4UL,-      0x2e539d34UL, 0xf355a0a2UL, 0x8ae13205UL, 0xf6eb75a4UL,-      0x83ec390bUL, 0x60efaa40UL, 0x719f065eUL, 0x6e1051bdUL,-      0x218af93eUL, 0xdd063d96UL, 0x3e05aeddUL, 0xe6bd464dUL,-      0x548db591UL, 0xc45d0571UL, 0x06d46f04UL, 0x5015ff60UL,-      0x98fb2419UL, 0xbde997d6UL, 0x4043cc89UL, 0xd99e7767UL,-      0xe842bdb0UL, 0x898b8807UL, 0x195b38e7UL, 0xc8eedb79UL,-      0x7c0a47a1UL, 0x420fe97cUL, 0x841ec9f8UL, 0x00000000UL,-      0x80868309UL, 0x2bed4832UL, 0x1170ac1eUL, 0x5a724e6cUL,-      0x0efffbfdUL, 0x8538560fUL, 0xaed51e3dUL, 0x2d392736UL,-      0x0fd9640aUL, 0x5ca62168UL, 0x5b54d19bUL, 0x362e3a24UL,-      0x0a67b10cUL, 0x57e70f93UL, 0xee96d2b4UL, 0x9b919e1bUL,-      0xc0c54f80UL, 0xdc20a261UL, 0x774b695aUL, 0x121a161cUL,-      0x93ba0ae2UL, 0xa02ae5c0UL, 0x22e0433cUL, 0x1b171d12UL,-      0x090d0b0eUL, 0x8bc7adf2UL, 0xb6a8b92dUL, 0x1ea9c814UL,-      0xf1198557UL, 0x75074cafUL, 0x99ddbbeeUL, 0x7f60fda3UL,-      0x01269ff7UL, 0x72f5bc5cUL, 0x663bc544UL, 0xfb7e345bUL,-      0x4329768bUL, 0x23c6dccbUL, 0xedfc68b6UL, 0xe4f163b8UL,-      0x31dccad7UL, 0x63851042UL, 0x97224013UL, 0xc6112084UL,-      0x4a247d85UL, 0xbb3df8d2UL, 0xf93211aeUL, 0x29a16dc7UL,-      0x9e2f4b1dUL, 0xb230f3dcUL, 0x8652ec0dUL, 0xc1e3d077UL,-      0xb3166c2bUL, 0x70b999a9UL, 0x9448fa11UL, 0xe9642247UL,-      0xfc8cc4a8UL, 0xf03f1aa0UL, 0x7d2cd856UL, 0x3390ef22UL,-      0x494ec787UL, 0x38d1c1d9UL, 0xcaa2fe8cUL, 0xd40b3698UL,-      0xf581cfa6UL, 0x7ade28a5UL, 0xb78e26daUL, 0xadbfa43fUL,-      0x3a9de42cUL, 0x78920d50UL, 0x5fcc9b6aUL, 0x7e466254UL,-      0x8d13c2f6UL, 0xd8b8e890UL, 0x39f75e2eUL, 0xc3aff582UL,-      0x5d80be9fUL, 0xd0937c69UL, 0xd52da96fUL, 0x2512b3cfUL,-      0xac993bc8UL, 0x187da710UL, 0x9c636ee8UL, 0x3bbb7bdbUL,-      0x267809cdUL, 0x5918f46eUL, 0x9ab701ecUL, 0x4f9aa883UL,-      0x956e65e6UL, 0xffe67eaaUL, 0xbccf0821UL, 0x15e8e6efUL,-      0xe79bd9baUL, 0x6f36ce4aUL, 0x9f09d4eaUL, 0xb07cd629UL,-      0xa4b2af31UL, 0x3f23312aUL, 0xa59430c6UL, 0xa266c035UL,-      0x4ebc3774UL, 0x82caa6fcUL, 0x90d0b0e0UL, 0xa7d81533UL,-      0x04984af1UL, 0xecdaf741UL, 0xcd500e7fUL, 0x91f62f17UL,-      0x4dd68d76UL, 0xefb04d43UL, 0xaa4d54ccUL, 0x9604dfe4UL,-      0xd1b5e39eUL, 0x6a881b4cUL, 0x2c1fb8c1UL, 0x65517f46UL,-      0x5eea049dUL, 0x8c355d01UL, 0x877473faUL, 0x0b412efbUL,-      0x671d5ab3UL, 0xdbd25292UL, 0x105633e9UL, 0xd647136dUL,-      0xd7618c9aUL, 0xa10c7a37UL, 0xf8148e59UL, 0x133c89ebUL,-      0xa927eeceUL, 0x61c935b7UL, 0x1ce5ede1UL, 0x47b13c7aUL,-      0xd2df599cUL, 0xf2733f55UL, 0x14ce7918UL, 0xc737bf73UL,-      0xf7cdea53UL, 0xfdaa5b5fUL, 0x3d6f14dfUL, 0x44db8678UL,-      0xaff381caUL, 0x68c43eb9UL, 0x24342c38UL, 0xa3405fc2UL,-      0x1dc37216UL, 0xe2250cbcUL, 0x3c498b28UL, 0x0d9541ffUL,-      0xa8017139UL, 0x0cb3de08UL, 0xb4e49cd8UL, 0x56c19064UL,-      0xcb84617bUL, 0x32b670d5UL, 0x6c5c7448UL, 0xb85742d0UL-  };-  static const SWord8 table6[] = {-        0,  14,  28,  18,  56,  54,  36,  42, 112, 126, 108,  98,  72,-       70,  84,  90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158,-      140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255,-      241, 171, 165, 183, 185, 147, 157, 143, 129,  59,  53,  39,  41,-        3,  13,  31,  17,  75,  69,  87,  89, 115, 125, 111,  97, 173,-      163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235,-      249, 247,  77,  67,  81,  95, 117, 123, 105, 103,  61,  51,  33,-       47,   5,  11,  25,  23, 118, 120, 106, 100,  78,  64,  82,  92,-        6,   8,  26,  20,  62,  48,  34,  44, 150, 152, 138, 132, 174,-      160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204,  65,  79,-       93,  83, 121, 119, 101, 107,  49,  63,  45,  35,   9,   7,  21,-       27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195,-      233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234,-      228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104,  66,  76,-       94,  80,  10,   4,  22,  24,  50,  60,  46,  32, 236, 226, 240,-      254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182,-       12,   2,  16,  30,  52,  58,  40,  38, 124, 114,  96, 110,  68,-       74,  88,  86,  55,  57,  43,  37,  15,   1,  19,  29,  71,  73,-       91,  85, 127, 113,  99, 109, 215, 217, 203, 197, 239, 225, 243,-      253, 167, 169, 187, 181, 159, 145, 131, 141-  };-  static const SWord8 table7[] = {-        0,  11,  22,  29,  44,  39,  58,  49,  88,  83,  78,  69, 116,-      127,  98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227,-      254, 245, 196, 207, 210, 217, 123, 112, 109, 102,  87,  92,  65,-       74,  35,  40,  53,  62,  15,   4,  25,  18, 203, 192, 221, 214,-      231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246,-      253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137,-      148, 159,  70,  77,  80,  91, 106,  97, 124, 119,  30,  21,   8,-        3,  50,  57,  36,  47, 141, 134, 155, 144, 161, 170, 183, 188,-      213, 222, 195, 200, 249, 242, 239, 228,  61,  54,  43,  32,  17,-       26,   7,  12, 101, 110, 115, 120,  73,  66,  95,  84, 247, 252,-      225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149,-      158,  71,  76,  81,  90, 107,  96, 125, 118,  31,  20,   9,   2,-       51,  56,  37,  46, 140, 135, 154, 145, 160, 171, 182, 189, 212,-      223, 194, 201, 248, 243, 238, 229,  60,  55,  42,  33,  16,  27,-        6,  13, 100, 111, 114, 121,  72,  67,  94,  85,   1,  10,  23,-       28,  45,  38,  59,  48,  89,  82,  79,  68, 117, 126,  99, 104,-      177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197,-      206, 211, 216, 122, 113, 108, 103,  86,  93,  64,  75,  34,  41,-       52,  63,  14,   5,  24,  19, 202, 193, 220, 215, 230, 237, 240,-      251, 146, 153, 132, 143, 190, 181, 168, 163-  };-  static const SWord8 table8[] = {-        0,  13,  26,  23,  52,  57,  46,  35, 104, 101, 114, 127,  92,-       81,  70,  75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181,-      162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149,-      152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124,-       95,  82,  69,  72,   3,  14,  25,  20,  55,  58,  45,  32, 109,-       96, 119, 122,  89,  84,  67,  78,   5,   8,  31,  18,  49,  60,-       43,  38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207,-      194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245,-      190, 179, 164, 169, 138, 135, 144, 157,   6,  11,  28,  17,  50,-       63,  40,  37, 110,  99, 116, 121,  90,  87,  64,  77, 218, 215,-      192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156,-      145,  10,   7,  16,  29,  62,  51,  36,  41,  98, 111, 120, 117,-       86,  91,  76,  65,  97, 108, 123, 118,  85,  88,  79,  66,   9,-        4,  19,  30,  61,  48,  39,  42, 177, 188, 171, 166, 133, 136,-      159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173,-      160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252,-      103, 106, 125, 112,  83,  94,  73,  68,  15,   2,  21,  24,  59,-       54,  33,  44,  12,   1,  22,  27,  56,  53,  34,  47, 100, 105,-      126, 115,  80,  93,  74,  71, 220, 209, 198, 203, 232, 229, 242,-      255, 180, 185, 174, 163, 128, 141, 154, 151-  };-  static const SWord8 table9[] = {-        0,   9,  18,  27,  36,  45,  54,  63,  72,  65,  90,  83, 108,-      101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209,-      202, 195, 252, 245, 238, 231,  59,  50,  41,  32,  31,  22,  13,-        4, 115, 122,  97, 104,  87,  94,  69,  76, 171, 162, 185, 176,-      143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118,-      127, 100, 109,  82,  91,  64,  73,  62,  55,  44,  37,  26,  19,-        8,   1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188,-      181, 138, 131, 152, 145,  77,  68,  95,  86, 105,  96, 123, 114,-        5,  12,  23,  30,  33,  40,  51,  58, 221, 212, 207, 198, 249,-      240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229,-      254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146,-      155, 124, 117, 110, 103,  88,  81,  74,  67,  52,  61,  38,  47,-       16,  25,   2,  11, 215, 222, 197, 204, 243, 250, 225, 232, 159,-      150, 141, 132, 187, 178, 169, 160,  71,  78,  85,  92,  99, 106,-      113, 120,  15,   6,  29,  20,  43,  34,  57,  48, 154, 147, 136,-      129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237,-       10,   3,  24,  17,  46,  39,  60,  53,  66,  75,  80,  89, 102,-      111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224,-      251, 242, 205, 196, 223, 214,  49,  56,  35,  42,  21,  28,   7,-       14, 121, 112, 107,  98,  93,  84,  79,  70-  };-  const SWord32 s520 = (s7 << 8) | (s7 >> 24);-  const SWord16 s521 = (SWord16) (s520 >> 16);-  const SWord8  s522 = (SWord8) (s521 >> 8);-  const SWord8  s523 = table2[s522];-  const SWord8  s524 = 1 ^ s523;-  const SWord8  s525 = (SWord8) s521;-  const SWord8  s526 = table2[s525];-  const SWord16 s527 = (((SWord16) s524) << 8) | ((SWord16) s526);-  const SWord16 s528 = (SWord16) s520;-  const SWord8  s529 = (SWord8) (s528 >> 8);-  const SWord8  s530 = table2[s529];-  const SWord8  s531 = (SWord8) s528;-  const SWord8  s532 = table2[s531];-  const SWord16 s533 = (((SWord16) s530) << 8) | ((SWord16) s532);-  const SWord32 s534 = (((SWord32) s527) << 16) | ((SWord32) s533);-  const SWord32 s535 = s4 ^ s534;-  const SWord32 s536 = s5 ^ s535;-  const SWord32 s537 = s6 ^ s536;-  const SWord32 s538 = s7 ^ s537;-  const SWord32 s539 = (s538 << 8) | (s538 >> 24);-  const SWord16 s540 = (SWord16) (s539 >> 16);-  const SWord8  s541 = (SWord8) (s540 >> 8);-  const SWord8  s542 = table2[s541];-  const SWord8  s543 = 2 ^ s542;-  const SWord8  s544 = (SWord8) s540;-  const SWord8  s545 = table2[s544];-  const SWord16 s546 = (((SWord16) s543) << 8) | ((SWord16) s545);-  const SWord16 s547 = (SWord16) s539;-  const SWord8  s548 = (SWord8) (s547 >> 8);-  const SWord8  s549 = table2[s548];-  const SWord8  s550 = (SWord8) s547;-  const SWord8  s551 = table2[s550];-  const SWord16 s552 = (((SWord16) s549) << 8) | ((SWord16) s551);-  const SWord32 s553 = (((SWord32) s546) << 16) | ((SWord32) s552);-  const SWord32 s554 = s535 ^ s553;-  const SWord32 s555 = s536 ^ s554;-  const SWord32 s556 = s537 ^ s555;-  const SWord32 s557 = s538 ^ s556;-  const SWord32 s558 = (s557 << 8) | (s557 >> 24);-  const SWord16 s559 = (SWord16) (s558 >> 16);-  const SWord8  s560 = (SWord8) (s559 >> 8);-  const SWord8  s561 = table2[s560];-  const SWord8  s562 = 4 ^ s561;-  const SWord8  s563 = (SWord8) s559;-  const SWord8  s564 = table2[s563];-  const SWord16 s565 = (((SWord16) s562) << 8) | ((SWord16) s564);-  const SWord16 s566 = (SWord16) s558;-  const SWord8  s567 = (SWord8) (s566 >> 8);-  const SWord8  s568 = table2[s567];-  const SWord8  s569 = (SWord8) s566;-  const SWord8  s570 = table2[s569];-  const SWord16 s571 = (((SWord16) s568) << 8) | ((SWord16) s570);-  const SWord32 s572 = (((SWord32) s565) << 16) | ((SWord32) s571);-  const SWord32 s573 = s554 ^ s572;-  const SWord32 s574 = s555 ^ s573;-  const SWord32 s575 = s556 ^ s574;-  const SWord32 s576 = s557 ^ s575;-  const SWord32 s577 = (s576 << 8) | (s576 >> 24);-  const SWord16 s578 = (SWord16) (s577 >> 16);-  const SWord8  s579 = (SWord8) (s578 >> 8);-  const SWord8  s580 = table2[s579];-  const SWord8  s581 = 8 ^ s580;-  const SWord8  s582 = (SWord8) s578;-  const SWord8  s583 = table2[s582];-  const SWord16 s584 = (((SWord16) s581) << 8) | ((SWord16) s583);-  const SWord16 s585 = (SWord16) s577;-  const SWord8  s586 = (SWord8) (s585 >> 8);-  const SWord8  s587 = table2[s586];-  const SWord8  s588 = (SWord8) s585;-  const SWord8  s589 = table2[s588];-  const SWord16 s590 = (((SWord16) s587) << 8) | ((SWord16) s589);-  const SWord32 s591 = (((SWord32) s584) << 16) | ((SWord32) s590);-  const SWord32 s592 = s573 ^ s591;-  const SWord32 s593 = s574 ^ s592;-  const SWord32 s594 = s575 ^ s593;-  const SWord32 s595 = s576 ^ s594;-  const SWord32 s596 = (s595 << 8) | (s595 >> 24);-  const SWord16 s597 = (SWord16) (s596 >> 16);-  const SWord8  s598 = (SWord8) (s597 >> 8);-  const SWord8  s599 = table2[s598];-  const SWord8  s600 = 16 ^ s599;-  const SWord8  s601 = (SWord8) s597;-  const SWord8  s602 = table2[s601];-  const SWord16 s603 = (((SWord16) s600) << 8) | ((SWord16) s602);-  const SWord16 s604 = (SWord16) s596;-  const SWord8  s605 = (SWord8) (s604 >> 8);-  const SWord8  s606 = table2[s605];-  const SWord8  s607 = (SWord8) s604;-  const SWord8  s608 = table2[s607];-  const SWord16 s609 = (((SWord16) s606) << 8) | ((SWord16) s608);-  const SWord32 s610 = (((SWord32) s603) << 16) | ((SWord32) s609);-  const SWord32 s611 = s592 ^ s610;-  const SWord32 s612 = s593 ^ s611;-  const SWord32 s613 = s594 ^ s612;-  const SWord32 s614 = s595 ^ s613;-  const SWord32 s615 = (s614 << 8) | (s614 >> 24);-  const SWord16 s616 = (SWord16) (s615 >> 16);-  const SWord8  s617 = (SWord8) (s616 >> 8);-  const SWord8  s618 = table2[s617];-  const SWord8  s619 = 32 ^ s618;-  const SWord8  s620 = (SWord8) s616;-  const SWord8  s621 = table2[s620];-  const SWord16 s622 = (((SWord16) s619) << 8) | ((SWord16) s621);-  const SWord16 s623 = (SWord16) s615;-  const SWord8  s624 = (SWord8) (s623 >> 8);-  const SWord8  s625 = table2[s624];-  const SWord8  s626 = (SWord8) s623;-  const SWord8  s627 = table2[s626];-  const SWord16 s628 = (((SWord16) s625) << 8) | ((SWord16) s627);-  const SWord32 s629 = (((SWord32) s622) << 16) | ((SWord32) s628);-  const SWord32 s630 = s611 ^ s629;-  const SWord32 s631 = s612 ^ s630;-  const SWord32 s632 = s613 ^ s631;-  const SWord32 s633 = s614 ^ s632;-  const SWord32 s634 = (s633 << 8) | (s633 >> 24);-  const SWord16 s635 = (SWord16) (s634 >> 16);-  const SWord8  s636 = (SWord8) (s635 >> 8);-  const SWord8  s637 = table2[s636];-  const SWord8  s638 = 64 ^ s637;-  const SWord8  s639 = (SWord8) s635;-  const SWord8  s640 = table2[s639];-  const SWord16 s641 = (((SWord16) s638) << 8) | ((SWord16) s640);-  const SWord16 s642 = (SWord16) s634;-  const SWord8  s643 = (SWord8) (s642 >> 8);-  const SWord8  s644 = table2[s643];-  const SWord8  s645 = (SWord8) s642;-  const SWord8  s646 = table2[s645];-  const SWord16 s647 = (((SWord16) s644) << 8) | ((SWord16) s646);-  const SWord32 s648 = (((SWord32) s641) << 16) | ((SWord32) s647);-  const SWord32 s649 = s630 ^ s648;-  const SWord32 s650 = s631 ^ s649;-  const SWord32 s651 = s632 ^ s650;-  const SWord32 s652 = s633 ^ s651;-  const SWord32 s653 = (s652 << 8) | (s652 >> 24);-  const SWord16 s654 = (SWord16) (s653 >> 16);-  const SWord8  s655 = (SWord8) (s654 >> 8);-  const SWord8  s656 = table2[s655];-  const SWord8  s657 = 128 ^ s656;-  const SWord8  s658 = (SWord8) s654;-  const SWord8  s659 = table2[s658];-  const SWord16 s660 = (((SWord16) s657) << 8) | ((SWord16) s659);-  const SWord16 s661 = (SWord16) s653;-  const SWord8  s662 = (SWord8) (s661 >> 8);-  const SWord8  s663 = table2[s662];-  const SWord8  s664 = (SWord8) s661;-  const SWord8  s665 = table2[s664];-  const SWord16 s666 = (((SWord16) s663) << 8) | ((SWord16) s665);-  const SWord32 s667 = (((SWord32) s660) << 16) | ((SWord32) s666);-  const SWord32 s668 = s649 ^ s667;-  const SWord32 s669 = s650 ^ s668;-  const SWord32 s670 = s651 ^ s669;-  const SWord32 s671 = s652 ^ s670;-  const SWord32 s672 = (s671 << 8) | (s671 >> 24);-  const SWord16 s673 = (SWord16) (s672 >> 16);-  const SWord8  s674 = (SWord8) (s673 >> 8);-  const SWord8  s675 = table2[s674];-  const SWord8  s676 = 27 ^ s675;-  const SWord8  s677 = (SWord8) s673;-  const SWord8  s678 = table2[s677];-  const SWord16 s679 = (((SWord16) s676) << 8) | ((SWord16) s678);-  const SWord16 s680 = (SWord16) s672;-  const SWord8  s681 = (SWord8) (s680 >> 8);-  const SWord8  s682 = table2[s681];-  const SWord8  s683 = (SWord8) s680;-  const SWord8  s684 = table2[s683];-  const SWord16 s685 = (((SWord16) s682) << 8) | ((SWord16) s684);-  const SWord32 s686 = (((SWord32) s679) << 16) | ((SWord32) s685);-  const SWord32 s687 = s668 ^ s686;-  const SWord32 s688 = s669 ^ s687;-  const SWord32 s689 = s670 ^ s688;-  const SWord32 s690 = s671 ^ s689;-  const SWord32 s691 = (s690 << 8) | (s690 >> 24);-  const SWord16 s692 = (SWord16) (s691 >> 16);-  const SWord8  s693 = (SWord8) (s692 >> 8);-  const SWord8  s694 = table2[s693];-  const SWord8  s695 = 54 ^ s694;-  const SWord8  s696 = (SWord8) s692;-  const SWord8  s697 = table2[s696];-  const SWord16 s698 = (((SWord16) s695) << 8) | ((SWord16) s697);-  const SWord16 s699 = (SWord16) s691;-  const SWord8  s700 = (SWord8) (s699 >> 8);-  const SWord8  s701 = table2[s700];-  const SWord8  s702 = (SWord8) s699;-  const SWord8  s703 = table2[s702];-  const SWord16 s704 = (((SWord16) s701) << 8) | ((SWord16) s703);-  const SWord32 s705 = (((SWord32) s698) << 16) | ((SWord32) s704);-  const SWord32 s706 = s687 ^ s705;-  const SWord32 s707 = s0 ^ s706;-  const SWord16 s708 = (SWord16) (s707 >> 16);-  const SWord8  s709 = (SWord8) (s708 >> 8);-  const SWord32 s710 = table1[s709];-  const SWord32 s966 = s688 ^ s706;-  const SWord32 s967 = s689 ^ s966;-  const SWord32 s968 = s690 ^ s967;-  const SWord32 s969 = s3 ^ s968;-  const SWord16 s970 = (SWord16) (s969 >> 16);-  const SWord8  s971 = (SWord8) s970;-  const SWord32 s972 = table3[s971];-  const SWord32 s973 = s710 ^ s972;-  const SWord32 s1229 = s2 ^ s967;-  const SWord16 s1230 = (SWord16) s1229;-  const SWord8  s1231 = (SWord8) (s1230 >> 8);-  const SWord32 s1232 = table4[s1231];-  const SWord32 s1233 = s973 ^ s1232;-  const SWord32 s1489 = s1 ^ s966;-  const SWord16 s1490 = (SWord16) s1489;-  const SWord8  s1491 = (SWord8) s1490;-  const SWord32 s1492 = table5[s1491];-  const SWord32 s1493 = s1233 ^ s1492;-  const SWord16 s1494 = (SWord16) (s687 >> 16);-  const SWord8  s1495 = (SWord8) (s1494 >> 8);-  const SWord8  s1496 = table6[s1495];-  const SWord8  s1497 = (SWord8) s1494;-  const SWord8  s1498 = table7[s1497];-  const SWord16 s1499 = (SWord16) s687;-  const SWord8  s1500 = (SWord8) (s1499 >> 8);-  const SWord8  s1501 = table8[s1500];-  const SWord8  s1502 = (SWord8) s1499;-  const SWord8  s1503 = table9[s1502];-  const SWord8  s1504 = s1501 ^ s1503;-  const SWord8  s1505 = s1498 ^ s1504;-  const SWord8  s1506 = s1496 ^ s1505;-  const SWord8  s1507 = table9[s1495];-  const SWord8  s1508 = table6[s1497];-  const SWord8  s1509 = table7[s1500];-  const SWord8  s1510 = table8[s1502];-  const SWord8  s1511 = s1509 ^ s1510;-  const SWord8  s1512 = s1508 ^ s1511;-  const SWord8  s1513 = s1507 ^ s1512;-  const SWord16 s1514 = (((SWord16) s1506) << 8) | ((SWord16) s1513);-  const SWord8  s1515 = table8[s1495];-  const SWord8  s1516 = table9[s1497];-  const SWord8  s1517 = table6[s1500];-  const SWord8  s1518 = table7[s1502];-  const SWord8  s1519 = s1517 ^ s1518;-  const SWord8  s1520 = s1516 ^ s1519;-  const SWord8  s1521 = s1515 ^ s1520;-  const SWord8  s1522 = table7[s1495];-  const SWord8  s1523 = table8[s1497];-  const SWord8  s1524 = table9[s1500];-  const SWord8  s1525 = table6[s1502];-  const SWord8  s1526 = s1524 ^ s1525;-  const SWord8  s1527 = s1523 ^ s1526;-  const SWord8  s1528 = s1522 ^ s1527;-  const SWord16 s1529 = (((SWord16) s1521) << 8) | ((SWord16) s1528);-  const SWord32 s1530 = (((SWord32) s1514) << 16) | ((SWord32) s1529);-  const SWord32 s1531 = s1493 ^ s1530;-  const SWord16 s1532 = (SWord16) (s1531 >> 16);-  const SWord8  s1533 = (SWord8) (s1532 >> 8);-  const SWord32 s1534 = table1[s1533];-  const SWord8  s1535 = (SWord8) (s970 >> 8);-  const SWord32 s1536 = table1[s1535];-  const SWord16 s1537 = (SWord16) (s1229 >> 16);-  const SWord8  s1538 = (SWord8) s1537;-  const SWord32 s1539 = table3[s1538];-  const SWord32 s1540 = s1536 ^ s1539;-  const SWord8  s1541 = (SWord8) (s1490 >> 8);-  const SWord32 s1542 = table4[s1541];-  const SWord32 s1543 = s1540 ^ s1542;-  const SWord16 s1544 = (SWord16) s707;-  const SWord8  s1545 = (SWord8) s1544;-  const SWord32 s1546 = table5[s1545];-  const SWord32 s1547 = s1543 ^ s1546;-  const SWord16 s1548 = (SWord16) (s690 >> 16);-  const SWord8  s1549 = (SWord8) (s1548 >> 8);-  const SWord8  s1550 = table6[s1549];-  const SWord8  s1551 = (SWord8) s1548;-  const SWord8  s1552 = table7[s1551];-  const SWord16 s1553 = (SWord16) s690;-  const SWord8  s1554 = (SWord8) (s1553 >> 8);-  const SWord8  s1555 = table8[s1554];-  const SWord8  s1556 = (SWord8) s1553;-  const SWord8  s1557 = table9[s1556];-  const SWord8  s1558 = s1555 ^ s1557;-  const SWord8  s1559 = s1552 ^ s1558;-  const SWord8  s1560 = s1550 ^ s1559;-  const SWord8  s1561 = table9[s1549];-  const SWord8  s1562 = table6[s1551];-  const SWord8  s1563 = table7[s1554];-  const SWord8  s1564 = table8[s1556];-  const SWord8  s1565 = s1563 ^ s1564;-  const SWord8  s1566 = s1562 ^ s1565;-  const SWord8  s1567 = s1561 ^ s1566;-  const SWord16 s1568 = (((SWord16) s1560) << 8) | ((SWord16) s1567);-  const SWord8  s1569 = table8[s1549];-  const SWord8  s1570 = table9[s1551];-  const SWord8  s1571 = table6[s1554];-  const SWord8  s1572 = table7[s1556];-  const SWord8  s1573 = s1571 ^ s1572;-  const SWord8  s1574 = s1570 ^ s1573;-  const SWord8  s1575 = s1569 ^ s1574;-  const SWord8  s1576 = table7[s1549];-  const SWord8  s1577 = table8[s1551];-  const SWord8  s1578 = table9[s1554];-  const SWord8  s1579 = table6[s1556];-  const SWord8  s1580 = s1578 ^ s1579;-  const SWord8  s1581 = s1577 ^ s1580;-  const SWord8  s1582 = s1576 ^ s1581;-  const SWord16 s1583 = (((SWord16) s1575) << 8) | ((SWord16) s1582);-  const SWord32 s1584 = (((SWord32) s1568) << 16) | ((SWord32) s1583);-  const SWord32 s1585 = s1547 ^ s1584;-  const SWord16 s1586 = (SWord16) (s1585 >> 16);-  const SWord8  s1587 = (SWord8) s1586;-  const SWord32 s1588 = table3[s1587];-  const SWord32 s1589 = s1534 ^ s1588;-  const SWord8  s1590 = (SWord8) (s1537 >> 8);-  const SWord32 s1591 = table1[s1590];-  const SWord16 s1592 = (SWord16) (s1489 >> 16);-  const SWord8  s1593 = (SWord8) s1592;-  const SWord32 s1594 = table3[s1593];-  const SWord32 s1595 = s1591 ^ s1594;-  const SWord8  s1596 = (SWord8) (s1544 >> 8);-  const SWord32 s1597 = table4[s1596];-  const SWord32 s1598 = s1595 ^ s1597;-  const SWord16 s1599 = (SWord16) s969;-  const SWord8  s1600 = (SWord8) s1599;-  const SWord32 s1601 = table5[s1600];-  const SWord32 s1602 = s1598 ^ s1601;-  const SWord16 s1603 = (SWord16) (s689 >> 16);-  const SWord8  s1604 = (SWord8) (s1603 >> 8);-  const SWord8  s1605 = table6[s1604];-  const SWord8  s1606 = (SWord8) s1603;-  const SWord8  s1607 = table7[s1606];-  const SWord16 s1608 = (SWord16) s689;-  const SWord8  s1609 = (SWord8) (s1608 >> 8);-  const SWord8  s1610 = table8[s1609];-  const SWord8  s1611 = (SWord8) s1608;-  const SWord8  s1612 = table9[s1611];-  const SWord8  s1613 = s1610 ^ s1612;-  const SWord8  s1614 = s1607 ^ s1613;-  const SWord8  s1615 = s1605 ^ s1614;-  const SWord8  s1616 = table9[s1604];-  const SWord8  s1617 = table6[s1606];-  const SWord8  s1618 = table7[s1609];-  const SWord8  s1619 = table8[s1611];-  const SWord8  s1620 = s1618 ^ s1619;-  const SWord8  s1621 = s1617 ^ s1620;-  const SWord8  s1622 = s1616 ^ s1621;-  const SWord16 s1623 = (((SWord16) s1615) << 8) | ((SWord16) s1622);-  const SWord8  s1624 = table8[s1604];-  const SWord8  s1625 = table9[s1606];-  const SWord8  s1626 = table6[s1609];-  const SWord8  s1627 = table7[s1611];-  const SWord8  s1628 = s1626 ^ s1627;-  const SWord8  s1629 = s1625 ^ s1628;-  const SWord8  s1630 = s1624 ^ s1629;-  const SWord8  s1631 = table7[s1604];-  const SWord8  s1632 = table8[s1606];-  const SWord8  s1633 = table9[s1609];-  const SWord8  s1634 = table6[s1611];-  const SWord8  s1635 = s1633 ^ s1634;-  const SWord8  s1636 = s1632 ^ s1635;-  const SWord8  s1637 = s1631 ^ s1636;-  const SWord16 s1638 = (((SWord16) s1630) << 8) | ((SWord16) s1637);-  const SWord32 s1639 = (((SWord32) s1623) << 16) | ((SWord32) s1638);-  const SWord32 s1640 = s1602 ^ s1639;-  const SWord16 s1641 = (SWord16) s1640;-  const SWord8  s1642 = (SWord8) (s1641 >> 8);-  const SWord32 s1643 = table4[s1642];-  const SWord32 s1644 = s1589 ^ s1643;-  const SWord8  s1645 = (SWord8) (s1592 >> 8);-  const SWord32 s1646 = table1[s1645];-  const SWord8  s1647 = (SWord8) s708;-  const SWord32 s1648 = table3[s1647];-  const SWord32 s1649 = s1646 ^ s1648;-  const SWord8  s1650 = (SWord8) (s1599 >> 8);-  const SWord32 s1651 = table4[s1650];-  const SWord32 s1652 = s1649 ^ s1651;-  const SWord8  s1653 = (SWord8) s1230;-  const SWord32 s1654 = table5[s1653];-  const SWord32 s1655 = s1652 ^ s1654;-  const SWord16 s1656 = (SWord16) (s688 >> 16);-  const SWord8  s1657 = (SWord8) (s1656 >> 8);-  const SWord8  s1658 = table6[s1657];-  const SWord8  s1659 = (SWord8) s1656;-  const SWord8  s1660 = table7[s1659];-  const SWord16 s1661 = (SWord16) s688;-  const SWord8  s1662 = (SWord8) (s1661 >> 8);-  const SWord8  s1663 = table8[s1662];-  const SWord8  s1664 = (SWord8) s1661;-  const SWord8  s1665 = table9[s1664];-  const SWord8  s1666 = s1663 ^ s1665;-  const SWord8  s1667 = s1660 ^ s1666;-  const SWord8  s1668 = s1658 ^ s1667;-  const SWord8  s1669 = table9[s1657];-  const SWord8  s1670 = table6[s1659];-  const SWord8  s1671 = table7[s1662];-  const SWord8  s1672 = table8[s1664];-  const SWord8  s1673 = s1671 ^ s1672;-  const SWord8  s1674 = s1670 ^ s1673;-  const SWord8  s1675 = s1669 ^ s1674;-  const SWord16 s1676 = (((SWord16) s1668) << 8) | ((SWord16) s1675);-  const SWord8  s1677 = table8[s1657];-  const SWord8  s1678 = table9[s1659];-  const SWord8  s1679 = table6[s1662];-  const SWord8  s1680 = table7[s1664];-  const SWord8  s1681 = s1679 ^ s1680;-  const SWord8  s1682 = s1678 ^ s1681;-  const SWord8  s1683 = s1677 ^ s1682;-  const SWord8  s1684 = table7[s1657];-  const SWord8  s1685 = table8[s1659];-  const SWord8  s1686 = table9[s1662];-  const SWord8  s1687 = table6[s1664];-  const SWord8  s1688 = s1686 ^ s1687;-  const SWord8  s1689 = s1685 ^ s1688;-  const SWord8  s1690 = s1684 ^ s1689;-  const SWord16 s1691 = (((SWord16) s1683) << 8) | ((SWord16) s1690);-  const SWord32 s1692 = (((SWord32) s1676) << 16) | ((SWord32) s1691);-  const SWord32 s1693 = s1655 ^ s1692;-  const SWord16 s1694 = (SWord16) s1693;-  const SWord8  s1695 = (SWord8) s1694;-  const SWord32 s1696 = table5[s1695];-  const SWord32 s1697 = s1644 ^ s1696;-  const SWord16 s1698 = (SWord16) (s668 >> 16);-  const SWord8  s1699 = (SWord8) (s1698 >> 8);-  const SWord8  s1700 = table6[s1699];-  const SWord8  s1701 = (SWord8) s1698;-  const SWord8  s1702 = table7[s1701];-  const SWord16 s1703 = (SWord16) s668;-  const SWord8  s1704 = (SWord8) (s1703 >> 8);-  const SWord8  s1705 = table8[s1704];-  const SWord8  s1706 = (SWord8) s1703;-  const SWord8  s1707 = table9[s1706];-  const SWord8  s1708 = s1705 ^ s1707;-  const SWord8  s1709 = s1702 ^ s1708;-  const SWord8  s1710 = s1700 ^ s1709;-  const SWord8  s1711 = table9[s1699];-  const SWord8  s1712 = table6[s1701];-  const SWord8  s1713 = table7[s1704];-  const SWord8  s1714 = table8[s1706];-  const SWord8  s1715 = s1713 ^ s1714;-  const SWord8  s1716 = s1712 ^ s1715;-  const SWord8  s1717 = s1711 ^ s1716;-  const SWord16 s1718 = (((SWord16) s1710) << 8) | ((SWord16) s1717);-  const SWord8  s1719 = table8[s1699];-  const SWord8  s1720 = table9[s1701];-  const SWord8  s1721 = table6[s1704];-  const SWord8  s1722 = table7[s1706];-  const SWord8  s1723 = s1721 ^ s1722;-  const SWord8  s1724 = s1720 ^ s1723;-  const SWord8  s1725 = s1719 ^ s1724;-  const SWord8  s1726 = table7[s1699];-  const SWord8  s1727 = table8[s1701];-  const SWord8  s1728 = table9[s1704];-  const SWord8  s1729 = table6[s1706];-  const SWord8  s1730 = s1728 ^ s1729;-  const SWord8  s1731 = s1727 ^ s1730;-  const SWord8  s1732 = s1726 ^ s1731;-  const SWord16 s1733 = (((SWord16) s1725) << 8) | ((SWord16) s1732);-  const SWord32 s1734 = (((SWord32) s1718) << 16) | ((SWord32) s1733);-  const SWord32 s1735 = s1697 ^ s1734;-  const SWord16 s1736 = (SWord16) (s1735 >> 16);-  const SWord8  s1737 = (SWord8) (s1736 >> 8);-  const SWord32 s1738 = table1[s1737];-  const SWord8  s1739 = (SWord8) (s1586 >> 8);-  const SWord32 s1740 = table1[s1739];-  const SWord16 s1741 = (SWord16) (s1640 >> 16);-  const SWord8  s1742 = (SWord8) s1741;-  const SWord32 s1743 = table3[s1742];-  const SWord32 s1744 = s1740 ^ s1743;-  const SWord8  s1745 = (SWord8) (s1694 >> 8);-  const SWord32 s1746 = table4[s1745];-  const SWord32 s1747 = s1744 ^ s1746;-  const SWord16 s1748 = (SWord16) s1531;-  const SWord8  s1749 = (SWord8) s1748;-  const SWord32 s1750 = table5[s1749];-  const SWord32 s1751 = s1747 ^ s1750;-  const SWord16 s1752 = (SWord16) (s671 >> 16);-  const SWord8  s1753 = (SWord8) (s1752 >> 8);-  const SWord8  s1754 = table6[s1753];-  const SWord8  s1755 = (SWord8) s1752;-  const SWord8  s1756 = table7[s1755];-  const SWord16 s1757 = (SWord16) s671;-  const SWord8  s1758 = (SWord8) (s1757 >> 8);-  const SWord8  s1759 = table8[s1758];-  const SWord8  s1760 = (SWord8) s1757;-  const SWord8  s1761 = table9[s1760];-  const SWord8  s1762 = s1759 ^ s1761;-  const SWord8  s1763 = s1756 ^ s1762;-  const SWord8  s1764 = s1754 ^ s1763;-  const SWord8  s1765 = table9[s1753];-  const SWord8  s1766 = table6[s1755];-  const SWord8  s1767 = table7[s1758];-  const SWord8  s1768 = table8[s1760];-  const SWord8  s1769 = s1767 ^ s1768;-  const SWord8  s1770 = s1766 ^ s1769;-  const SWord8  s1771 = s1765 ^ s1770;-  const SWord16 s1772 = (((SWord16) s1764) << 8) | ((SWord16) s1771);-  const SWord8  s1773 = table8[s1753];-  const SWord8  s1774 = table9[s1755];-  const SWord8  s1775 = table6[s1758];-  const SWord8  s1776 = table7[s1760];-  const SWord8  s1777 = s1775 ^ s1776;-  const SWord8  s1778 = s1774 ^ s1777;-  const SWord8  s1779 = s1773 ^ s1778;-  const SWord8  s1780 = table7[s1753];-  const SWord8  s1781 = table8[s1755];-  const SWord8  s1782 = table9[s1758];-  const SWord8  s1783 = table6[s1760];-  const SWord8  s1784 = s1782 ^ s1783;-  const SWord8  s1785 = s1781 ^ s1784;-  const SWord8  s1786 = s1780 ^ s1785;-  const SWord16 s1787 = (((SWord16) s1779) << 8) | ((SWord16) s1786);-  const SWord32 s1788 = (((SWord32) s1772) << 16) | ((SWord32) s1787);-  const SWord32 s1789 = s1751 ^ s1788;-  const SWord16 s1790 = (SWord16) (s1789 >> 16);-  const SWord8  s1791 = (SWord8) s1790;-  const SWord32 s1792 = table3[s1791];-  const SWord32 s1793 = s1738 ^ s1792;-  const SWord8  s1794 = (SWord8) (s1741 >> 8);-  const SWord32 s1795 = table1[s1794];-  const SWord16 s1796 = (SWord16) (s1693 >> 16);-  const SWord8  s1797 = (SWord8) s1796;-  const SWord32 s1798 = table3[s1797];-  const SWord32 s1799 = s1795 ^ s1798;-  const SWord8  s1800 = (SWord8) (s1748 >> 8);-  const SWord32 s1801 = table4[s1800];-  const SWord32 s1802 = s1799 ^ s1801;-  const SWord16 s1803 = (SWord16) s1585;-  const SWord8  s1804 = (SWord8) s1803;-  const SWord32 s1805 = table5[s1804];-  const SWord32 s1806 = s1802 ^ s1805;-  const SWord16 s1807 = (SWord16) (s670 >> 16);-  const SWord8  s1808 = (SWord8) (s1807 >> 8);-  const SWord8  s1809 = table6[s1808];-  const SWord8  s1810 = (SWord8) s1807;-  const SWord8  s1811 = table7[s1810];-  const SWord16 s1812 = (SWord16) s670;-  const SWord8  s1813 = (SWord8) (s1812 >> 8);-  const SWord8  s1814 = table8[s1813];-  const SWord8  s1815 = (SWord8) s1812;-  const SWord8  s1816 = table9[s1815];-  const SWord8  s1817 = s1814 ^ s1816;-  const SWord8  s1818 = s1811 ^ s1817;-  const SWord8  s1819 = s1809 ^ s1818;-  const SWord8  s1820 = table9[s1808];-  const SWord8  s1821 = table6[s1810];-  const SWord8  s1822 = table7[s1813];-  const SWord8  s1823 = table8[s1815];-  const SWord8  s1824 = s1822 ^ s1823;-  const SWord8  s1825 = s1821 ^ s1824;-  const SWord8  s1826 = s1820 ^ s1825;-  const SWord16 s1827 = (((SWord16) s1819) << 8) | ((SWord16) s1826);-  const SWord8  s1828 = table8[s1808];-  const SWord8  s1829 = table9[s1810];-  const SWord8  s1830 = table6[s1813];-  const SWord8  s1831 = table7[s1815];-  const SWord8  s1832 = s1830 ^ s1831;-  const SWord8  s1833 = s1829 ^ s1832;-  const SWord8  s1834 = s1828 ^ s1833;-  const SWord8  s1835 = table7[s1808];-  const SWord8  s1836 = table8[s1810];-  const SWord8  s1837 = table9[s1813];-  const SWord8  s1838 = table6[s1815];-  const SWord8  s1839 = s1837 ^ s1838;-  const SWord8  s1840 = s1836 ^ s1839;-  const SWord8  s1841 = s1835 ^ s1840;-  const SWord16 s1842 = (((SWord16) s1834) << 8) | ((SWord16) s1841);-  const SWord32 s1843 = (((SWord32) s1827) << 16) | ((SWord32) s1842);-  const SWord32 s1844 = s1806 ^ s1843;-  const SWord16 s1845 = (SWord16) s1844;-  const SWord8  s1846 = (SWord8) (s1845 >> 8);-  const SWord32 s1847 = table4[s1846];-  const SWord32 s1848 = s1793 ^ s1847;-  const SWord8  s1849 = (SWord8) (s1796 >> 8);-  const SWord32 s1850 = table1[s1849];-  const SWord8  s1851 = (SWord8) s1532;-  const SWord32 s1852 = table3[s1851];-  const SWord32 s1853 = s1850 ^ s1852;-  const SWord8  s1854 = (SWord8) (s1803 >> 8);-  const SWord32 s1855 = table4[s1854];-  const SWord32 s1856 = s1853 ^ s1855;-  const SWord8  s1857 = (SWord8) s1641;-  const SWord32 s1858 = table5[s1857];-  const SWord32 s1859 = s1856 ^ s1858;-  const SWord16 s1860 = (SWord16) (s669 >> 16);-  const SWord8  s1861 = (SWord8) (s1860 >> 8);-  const SWord8  s1862 = table6[s1861];-  const SWord8  s1863 = (SWord8) s1860;-  const SWord8  s1864 = table7[s1863];-  const SWord16 s1865 = (SWord16) s669;-  const SWord8  s1866 = (SWord8) (s1865 >> 8);-  const SWord8  s1867 = table8[s1866];-  const SWord8  s1868 = (SWord8) s1865;-  const SWord8  s1869 = table9[s1868];-  const SWord8  s1870 = s1867 ^ s1869;-  const SWord8  s1871 = s1864 ^ s1870;-  const SWord8  s1872 = s1862 ^ s1871;-  const SWord8  s1873 = table9[s1861];-  const SWord8  s1874 = table6[s1863];-  const SWord8  s1875 = table7[s1866];-  const SWord8  s1876 = table8[s1868];-  const SWord8  s1877 = s1875 ^ s1876;-  const SWord8  s1878 = s1874 ^ s1877;-  const SWord8  s1879 = s1873 ^ s1878;-  const SWord16 s1880 = (((SWord16) s1872) << 8) | ((SWord16) s1879);-  const SWord8  s1881 = table8[s1861];-  const SWord8  s1882 = table9[s1863];-  const SWord8  s1883 = table6[s1866];-  const SWord8  s1884 = table7[s1868];-  const SWord8  s1885 = s1883 ^ s1884;-  const SWord8  s1886 = s1882 ^ s1885;-  const SWord8  s1887 = s1881 ^ s1886;-  const SWord8  s1888 = table7[s1861];-  const SWord8  s1889 = table8[s1863];-  const SWord8  s1890 = table9[s1866];-  const SWord8  s1891 = table6[s1868];-  const SWord8  s1892 = s1890 ^ s1891;-  const SWord8  s1893 = s1889 ^ s1892;-  const SWord8  s1894 = s1888 ^ s1893;-  const SWord16 s1895 = (((SWord16) s1887) << 8) | ((SWord16) s1894);-  const SWord32 s1896 = (((SWord32) s1880) << 16) | ((SWord32) s1895);-  const SWord32 s1897 = s1859 ^ s1896;-  const SWord16 s1898 = (SWord16) s1897;-  const SWord8  s1899 = (SWord8) s1898;-  const SWord32 s1900 = table5[s1899];-  const SWord32 s1901 = s1848 ^ s1900;-  const SWord16 s1902 = (SWord16) (s649 >> 16);-  const SWord8  s1903 = (SWord8) (s1902 >> 8);-  const SWord8  s1904 = table6[s1903];-  const SWord8  s1905 = (SWord8) s1902;-  const SWord8  s1906 = table7[s1905];-  const SWord16 s1907 = (SWord16) s649;-  const SWord8  s1908 = (SWord8) (s1907 >> 8);-  const SWord8  s1909 = table8[s1908];-  const SWord8  s1910 = (SWord8) s1907;-  const SWord8  s1911 = table9[s1910];-  const SWord8  s1912 = s1909 ^ s1911;-  const SWord8  s1913 = s1906 ^ s1912;-  const SWord8  s1914 = s1904 ^ s1913;-  const SWord8  s1915 = table9[s1903];-  const SWord8  s1916 = table6[s1905];-  const SWord8  s1917 = table7[s1908];-  const SWord8  s1918 = table8[s1910];-  const SWord8  s1919 = s1917 ^ s1918;-  const SWord8  s1920 = s1916 ^ s1919;-  const SWord8  s1921 = s1915 ^ s1920;-  const SWord16 s1922 = (((SWord16) s1914) << 8) | ((SWord16) s1921);-  const SWord8  s1923 = table8[s1903];-  const SWord8  s1924 = table9[s1905];-  const SWord8  s1925 = table6[s1908];-  const SWord8  s1926 = table7[s1910];-  const SWord8  s1927 = s1925 ^ s1926;-  const SWord8  s1928 = s1924 ^ s1927;-  const SWord8  s1929 = s1923 ^ s1928;-  const SWord8  s1930 = table7[s1903];-  const SWord8  s1931 = table8[s1905];-  const SWord8  s1932 = table9[s1908];-  const SWord8  s1933 = table6[s1910];-  const SWord8  s1934 = s1932 ^ s1933;-  const SWord8  s1935 = s1931 ^ s1934;-  const SWord8  s1936 = s1930 ^ s1935;-  const SWord16 s1937 = (((SWord16) s1929) << 8) | ((SWord16) s1936);-  const SWord32 s1938 = (((SWord32) s1922) << 16) | ((SWord32) s1937);-  const SWord32 s1939 = s1901 ^ s1938;-  const SWord16 s1940 = (SWord16) (s1939 >> 16);-  const SWord8  s1941 = (SWord8) (s1940 >> 8);-  const SWord32 s1942 = table1[s1941];-  const SWord8  s1943 = (SWord8) (s1790 >> 8);-  const SWord32 s1944 = table1[s1943];-  const SWord16 s1945 = (SWord16) (s1844 >> 16);-  const SWord8  s1946 = (SWord8) s1945;-  const SWord32 s1947 = table3[s1946];-  const SWord32 s1948 = s1944 ^ s1947;-  const SWord8  s1949 = (SWord8) (s1898 >> 8);-  const SWord32 s1950 = table4[s1949];-  const SWord32 s1951 = s1948 ^ s1950;-  const SWord16 s1952 = (SWord16) s1735;-  const SWord8  s1953 = (SWord8) s1952;-  const SWord32 s1954 = table5[s1953];-  const SWord32 s1955 = s1951 ^ s1954;-  const SWord16 s1956 = (SWord16) (s652 >> 16);-  const SWord8  s1957 = (SWord8) (s1956 >> 8);-  const SWord8  s1958 = table6[s1957];-  const SWord8  s1959 = (SWord8) s1956;-  const SWord8  s1960 = table7[s1959];-  const SWord16 s1961 = (SWord16) s652;-  const SWord8  s1962 = (SWord8) (s1961 >> 8);-  const SWord8  s1963 = table8[s1962];-  const SWord8  s1964 = (SWord8) s1961;-  const SWord8  s1965 = table9[s1964];-  const SWord8  s1966 = s1963 ^ s1965;-  const SWord8  s1967 = s1960 ^ s1966;-  const SWord8  s1968 = s1958 ^ s1967;-  const SWord8  s1969 = table9[s1957];-  const SWord8  s1970 = table6[s1959];-  const SWord8  s1971 = table7[s1962];-  const SWord8  s1972 = table8[s1964];-  const SWord8  s1973 = s1971 ^ s1972;-  const SWord8  s1974 = s1970 ^ s1973;-  const SWord8  s1975 = s1969 ^ s1974;-  const SWord16 s1976 = (((SWord16) s1968) << 8) | ((SWord16) s1975);-  const SWord8  s1977 = table8[s1957];-  const SWord8  s1978 = table9[s1959];-  const SWord8  s1979 = table6[s1962];-  const SWord8  s1980 = table7[s1964];-  const SWord8  s1981 = s1979 ^ s1980;-  const SWord8  s1982 = s1978 ^ s1981;-  const SWord8  s1983 = s1977 ^ s1982;-  const SWord8  s1984 = table7[s1957];-  const SWord8  s1985 = table8[s1959];-  const SWord8  s1986 = table9[s1962];-  const SWord8  s1987 = table6[s1964];-  const SWord8  s1988 = s1986 ^ s1987;-  const SWord8  s1989 = s1985 ^ s1988;-  const SWord8  s1990 = s1984 ^ s1989;-  const SWord16 s1991 = (((SWord16) s1983) << 8) | ((SWord16) s1990);-  const SWord32 s1992 = (((SWord32) s1976) << 16) | ((SWord32) s1991);-  const SWord32 s1993 = s1955 ^ s1992;-  const SWord16 s1994 = (SWord16) (s1993 >> 16);-  const SWord8  s1995 = (SWord8) s1994;-  const SWord32 s1996 = table3[s1995];-  const SWord32 s1997 = s1942 ^ s1996;-  const SWord8  s1998 = (SWord8) (s1945 >> 8);-  const SWord32 s1999 = table1[s1998];-  const SWord16 s2000 = (SWord16) (s1897 >> 16);-  const SWord8  s2001 = (SWord8) s2000;-  const SWord32 s2002 = table3[s2001];-  const SWord32 s2003 = s1999 ^ s2002;-  const SWord8  s2004 = (SWord8) (s1952 >> 8);-  const SWord32 s2005 = table4[s2004];-  const SWord32 s2006 = s2003 ^ s2005;-  const SWord16 s2007 = (SWord16) s1789;-  const SWord8  s2008 = (SWord8) s2007;-  const SWord32 s2009 = table5[s2008];-  const SWord32 s2010 = s2006 ^ s2009;-  const SWord16 s2011 = (SWord16) (s651 >> 16);-  const SWord8  s2012 = (SWord8) (s2011 >> 8);-  const SWord8  s2013 = table6[s2012];-  const SWord8  s2014 = (SWord8) s2011;-  const SWord8  s2015 = table7[s2014];-  const SWord16 s2016 = (SWord16) s651;-  const SWord8  s2017 = (SWord8) (s2016 >> 8);-  const SWord8  s2018 = table8[s2017];-  const SWord8  s2019 = (SWord8) s2016;-  const SWord8  s2020 = table9[s2019];-  const SWord8  s2021 = s2018 ^ s2020;-  const SWord8  s2022 = s2015 ^ s2021;-  const SWord8  s2023 = s2013 ^ s2022;-  const SWord8  s2024 = table9[s2012];-  const SWord8  s2025 = table6[s2014];-  const SWord8  s2026 = table7[s2017];-  const SWord8  s2027 = table8[s2019];-  const SWord8  s2028 = s2026 ^ s2027;-  const SWord8  s2029 = s2025 ^ s2028;-  const SWord8  s2030 = s2024 ^ s2029;-  const SWord16 s2031 = (((SWord16) s2023) << 8) | ((SWord16) s2030);-  const SWord8  s2032 = table8[s2012];-  const SWord8  s2033 = table9[s2014];-  const SWord8  s2034 = table6[s2017];-  const SWord8  s2035 = table7[s2019];-  const SWord8  s2036 = s2034 ^ s2035;-  const SWord8  s2037 = s2033 ^ s2036;-  const SWord8  s2038 = s2032 ^ s2037;-  const SWord8  s2039 = table7[s2012];-  const SWord8  s2040 = table8[s2014];-  const SWord8  s2041 = table9[s2017];-  const SWord8  s2042 = table6[s2019];-  const SWord8  s2043 = s2041 ^ s2042;-  const SWord8  s2044 = s2040 ^ s2043;-  const SWord8  s2045 = s2039 ^ s2044;-  const SWord16 s2046 = (((SWord16) s2038) << 8) | ((SWord16) s2045);-  const SWord32 s2047 = (((SWord32) s2031) << 16) | ((SWord32) s2046);-  const SWord32 s2048 = s2010 ^ s2047;-  const SWord16 s2049 = (SWord16) s2048;-  const SWord8  s2050 = (SWord8) (s2049 >> 8);-  const SWord32 s2051 = table4[s2050];-  const SWord32 s2052 = s1997 ^ s2051;-  const SWord8  s2053 = (SWord8) (s2000 >> 8);-  const SWord32 s2054 = table1[s2053];-  const SWord8  s2055 = (SWord8) s1736;-  const SWord32 s2056 = table3[s2055];-  const SWord32 s2057 = s2054 ^ s2056;-  const SWord8  s2058 = (SWord8) (s2007 >> 8);-  const SWord32 s2059 = table4[s2058];-  const SWord32 s2060 = s2057 ^ s2059;-  const SWord8  s2061 = (SWord8) s1845;-  const SWord32 s2062 = table5[s2061];-  const SWord32 s2063 = s2060 ^ s2062;-  const SWord16 s2064 = (SWord16) (s650 >> 16);-  const SWord8  s2065 = (SWord8) (s2064 >> 8);-  const SWord8  s2066 = table6[s2065];-  const SWord8  s2067 = (SWord8) s2064;-  const SWord8  s2068 = table7[s2067];-  const SWord16 s2069 = (SWord16) s650;-  const SWord8  s2070 = (SWord8) (s2069 >> 8);-  const SWord8  s2071 = table8[s2070];-  const SWord8  s2072 = (SWord8) s2069;-  const SWord8  s2073 = table9[s2072];-  const SWord8  s2074 = s2071 ^ s2073;-  const SWord8  s2075 = s2068 ^ s2074;-  const SWord8  s2076 = s2066 ^ s2075;-  const SWord8  s2077 = table9[s2065];-  const SWord8  s2078 = table6[s2067];-  const SWord8  s2079 = table7[s2070];-  const SWord8  s2080 = table8[s2072];-  const SWord8  s2081 = s2079 ^ s2080;-  const SWord8  s2082 = s2078 ^ s2081;-  const SWord8  s2083 = s2077 ^ s2082;-  const SWord16 s2084 = (((SWord16) s2076) << 8) | ((SWord16) s2083);-  const SWord8  s2085 = table8[s2065];-  const SWord8  s2086 = table9[s2067];-  const SWord8  s2087 = table6[s2070];-  const SWord8  s2088 = table7[s2072];-  const SWord8  s2089 = s2087 ^ s2088;-  const SWord8  s2090 = s2086 ^ s2089;-  const SWord8  s2091 = s2085 ^ s2090;-  const SWord8  s2092 = table7[s2065];-  const SWord8  s2093 = table8[s2067];-  const SWord8  s2094 = table9[s2070];-  const SWord8  s2095 = table6[s2072];-  const SWord8  s2096 = s2094 ^ s2095;-  const SWord8  s2097 = s2093 ^ s2096;-  const SWord8  s2098 = s2092 ^ s2097;-  const SWord16 s2099 = (((SWord16) s2091) << 8) | ((SWord16) s2098);-  const SWord32 s2100 = (((SWord32) s2084) << 16) | ((SWord32) s2099);-  const SWord32 s2101 = s2063 ^ s2100;-  const SWord16 s2102 = (SWord16) s2101;-  const SWord8  s2103 = (SWord8) s2102;-  const SWord32 s2104 = table5[s2103];-  const SWord32 s2105 = s2052 ^ s2104;-  const SWord16 s2106 = (SWord16) (s630 >> 16);-  const SWord8  s2107 = (SWord8) (s2106 >> 8);-  const SWord8  s2108 = table6[s2107];-  const SWord8  s2109 = (SWord8) s2106;-  const SWord8  s2110 = table7[s2109];-  const SWord16 s2111 = (SWord16) s630;-  const SWord8  s2112 = (SWord8) (s2111 >> 8);-  const SWord8  s2113 = table8[s2112];-  const SWord8  s2114 = (SWord8) s2111;-  const SWord8  s2115 = table9[s2114];-  const SWord8  s2116 = s2113 ^ s2115;-  const SWord8  s2117 = s2110 ^ s2116;-  const SWord8  s2118 = s2108 ^ s2117;-  const SWord8  s2119 = table9[s2107];-  const SWord8  s2120 = table6[s2109];-  const SWord8  s2121 = table7[s2112];-  const SWord8  s2122 = table8[s2114];-  const SWord8  s2123 = s2121 ^ s2122;-  const SWord8  s2124 = s2120 ^ s2123;-  const SWord8  s2125 = s2119 ^ s2124;-  const SWord16 s2126 = (((SWord16) s2118) << 8) | ((SWord16) s2125);-  const SWord8  s2127 = table8[s2107];-  const SWord8  s2128 = table9[s2109];-  const SWord8  s2129 = table6[s2112];-  const SWord8  s2130 = table7[s2114];-  const SWord8  s2131 = s2129 ^ s2130;-  const SWord8  s2132 = s2128 ^ s2131;-  const SWord8  s2133 = s2127 ^ s2132;-  const SWord8  s2134 = table7[s2107];-  const SWord8  s2135 = table8[s2109];-  const SWord8  s2136 = table9[s2112];-  const SWord8  s2137 = table6[s2114];-  const SWord8  s2138 = s2136 ^ s2137;-  const SWord8  s2139 = s2135 ^ s2138;-  const SWord8  s2140 = s2134 ^ s2139;-  const SWord16 s2141 = (((SWord16) s2133) << 8) | ((SWord16) s2140);-  const SWord32 s2142 = (((SWord32) s2126) << 16) | ((SWord32) s2141);-  const SWord32 s2143 = s2105 ^ s2142;-  const SWord16 s2144 = (SWord16) (s2143 >> 16);-  const SWord8  s2145 = (SWord8) (s2144 >> 8);-  const SWord32 s2146 = table1[s2145];-  const SWord8  s2147 = (SWord8) (s1994 >> 8);-  const SWord32 s2148 = table1[s2147];-  const SWord16 s2149 = (SWord16) (s2048 >> 16);-  const SWord8  s2150 = (SWord8) s2149;-  const SWord32 s2151 = table3[s2150];-  const SWord32 s2152 = s2148 ^ s2151;-  const SWord8  s2153 = (SWord8) (s2102 >> 8);-  const SWord32 s2154 = table4[s2153];-  const SWord32 s2155 = s2152 ^ s2154;-  const SWord16 s2156 = (SWord16) s1939;-  const SWord8  s2157 = (SWord8) s2156;-  const SWord32 s2158 = table5[s2157];-  const SWord32 s2159 = s2155 ^ s2158;-  const SWord16 s2160 = (SWord16) (s633 >> 16);-  const SWord8  s2161 = (SWord8) (s2160 >> 8);-  const SWord8  s2162 = table6[s2161];-  const SWord8  s2163 = (SWord8) s2160;-  const SWord8  s2164 = table7[s2163];-  const SWord16 s2165 = (SWord16) s633;-  const SWord8  s2166 = (SWord8) (s2165 >> 8);-  const SWord8  s2167 = table8[s2166];-  const SWord8  s2168 = (SWord8) s2165;-  const SWord8  s2169 = table9[s2168];-  const SWord8  s2170 = s2167 ^ s2169;-  const SWord8  s2171 = s2164 ^ s2170;-  const SWord8  s2172 = s2162 ^ s2171;-  const SWord8  s2173 = table9[s2161];-  const SWord8  s2174 = table6[s2163];-  const SWord8  s2175 = table7[s2166];-  const SWord8  s2176 = table8[s2168];-  const SWord8  s2177 = s2175 ^ s2176;-  const SWord8  s2178 = s2174 ^ s2177;-  const SWord8  s2179 = s2173 ^ s2178;-  const SWord16 s2180 = (((SWord16) s2172) << 8) | ((SWord16) s2179);-  const SWord8  s2181 = table8[s2161];-  const SWord8  s2182 = table9[s2163];-  const SWord8  s2183 = table6[s2166];-  const SWord8  s2184 = table7[s2168];-  const SWord8  s2185 = s2183 ^ s2184;-  const SWord8  s2186 = s2182 ^ s2185;-  const SWord8  s2187 = s2181 ^ s2186;-  const SWord8  s2188 = table7[s2161];-  const SWord8  s2189 = table8[s2163];-  const SWord8  s2190 = table9[s2166];-  const SWord8  s2191 = table6[s2168];-  const SWord8  s2192 = s2190 ^ s2191;-  const SWord8  s2193 = s2189 ^ s2192;-  const SWord8  s2194 = s2188 ^ s2193;-  const SWord16 s2195 = (((SWord16) s2187) << 8) | ((SWord16) s2194);-  const SWord32 s2196 = (((SWord32) s2180) << 16) | ((SWord32) s2195);-  const SWord32 s2197 = s2159 ^ s2196;-  const SWord16 s2198 = (SWord16) (s2197 >> 16);-  const SWord8  s2199 = (SWord8) s2198;-  const SWord32 s2200 = table3[s2199];-  const SWord32 s2201 = s2146 ^ s2200;-  const SWord8  s2202 = (SWord8) (s2149 >> 8);-  const SWord32 s2203 = table1[s2202];-  const SWord16 s2204 = (SWord16) (s2101 >> 16);-  const SWord8  s2205 = (SWord8) s2204;-  const SWord32 s2206 = table3[s2205];-  const SWord32 s2207 = s2203 ^ s2206;-  const SWord8  s2208 = (SWord8) (s2156 >> 8);-  const SWord32 s2209 = table4[s2208];-  const SWord32 s2210 = s2207 ^ s2209;-  const SWord16 s2211 = (SWord16) s1993;-  const SWord8  s2212 = (SWord8) s2211;-  const SWord32 s2213 = table5[s2212];-  const SWord32 s2214 = s2210 ^ s2213;-  const SWord16 s2215 = (SWord16) (s632 >> 16);-  const SWord8  s2216 = (SWord8) (s2215 >> 8);-  const SWord8  s2217 = table6[s2216];-  const SWord8  s2218 = (SWord8) s2215;-  const SWord8  s2219 = table7[s2218];-  const SWord16 s2220 = (SWord16) s632;-  const SWord8  s2221 = (SWord8) (s2220 >> 8);-  const SWord8  s2222 = table8[s2221];-  const SWord8  s2223 = (SWord8) s2220;-  const SWord8  s2224 = table9[s2223];-  const SWord8  s2225 = s2222 ^ s2224;-  const SWord8  s2226 = s2219 ^ s2225;-  const SWord8  s2227 = s2217 ^ s2226;-  const SWord8  s2228 = table9[s2216];-  const SWord8  s2229 = table6[s2218];-  const SWord8  s2230 = table7[s2221];-  const SWord8  s2231 = table8[s2223];-  const SWord8  s2232 = s2230 ^ s2231;-  const SWord8  s2233 = s2229 ^ s2232;-  const SWord8  s2234 = s2228 ^ s2233;-  const SWord16 s2235 = (((SWord16) s2227) << 8) | ((SWord16) s2234);-  const SWord8  s2236 = table8[s2216];-  const SWord8  s2237 = table9[s2218];-  const SWord8  s2238 = table6[s2221];-  const SWord8  s2239 = table7[s2223];-  const SWord8  s2240 = s2238 ^ s2239;-  const SWord8  s2241 = s2237 ^ s2240;-  const SWord8  s2242 = s2236 ^ s2241;-  const SWord8  s2243 = table7[s2216];-  const SWord8  s2244 = table8[s2218];-  const SWord8  s2245 = table9[s2221];-  const SWord8  s2246 = table6[s2223];-  const SWord8  s2247 = s2245 ^ s2246;-  const SWord8  s2248 = s2244 ^ s2247;-  const SWord8  s2249 = s2243 ^ s2248;-  const SWord16 s2250 = (((SWord16) s2242) << 8) | ((SWord16) s2249);-  const SWord32 s2251 = (((SWord32) s2235) << 16) | ((SWord32) s2250);-  const SWord32 s2252 = s2214 ^ s2251;-  const SWord16 s2253 = (SWord16) s2252;-  const SWord8  s2254 = (SWord8) (s2253 >> 8);-  const SWord32 s2255 = table4[s2254];-  const SWord32 s2256 = s2201 ^ s2255;-  const SWord8  s2257 = (SWord8) (s2204 >> 8);-  const SWord32 s2258 = table1[s2257];-  const SWord8  s2259 = (SWord8) s1940;-  const SWord32 s2260 = table3[s2259];-  const SWord32 s2261 = s2258 ^ s2260;-  const SWord8  s2262 = (SWord8) (s2211 >> 8);-  const SWord32 s2263 = table4[s2262];-  const SWord32 s2264 = s2261 ^ s2263;-  const SWord8  s2265 = (SWord8) s2049;-  const SWord32 s2266 = table5[s2265];-  const SWord32 s2267 = s2264 ^ s2266;-  const SWord16 s2268 = (SWord16) (s631 >> 16);-  const SWord8  s2269 = (SWord8) (s2268 >> 8);-  const SWord8  s2270 = table6[s2269];-  const SWord8  s2271 = (SWord8) s2268;-  const SWord8  s2272 = table7[s2271];-  const SWord16 s2273 = (SWord16) s631;-  const SWord8  s2274 = (SWord8) (s2273 >> 8);-  const SWord8  s2275 = table8[s2274];-  const SWord8  s2276 = (SWord8) s2273;-  const SWord8  s2277 = table9[s2276];-  const SWord8  s2278 = s2275 ^ s2277;-  const SWord8  s2279 = s2272 ^ s2278;-  const SWord8  s2280 = s2270 ^ s2279;-  const SWord8  s2281 = table9[s2269];-  const SWord8  s2282 = table6[s2271];-  const SWord8  s2283 = table7[s2274];-  const SWord8  s2284 = table8[s2276];-  const SWord8  s2285 = s2283 ^ s2284;-  const SWord8  s2286 = s2282 ^ s2285;-  const SWord8  s2287 = s2281 ^ s2286;-  const SWord16 s2288 = (((SWord16) s2280) << 8) | ((SWord16) s2287);-  const SWord8  s2289 = table8[s2269];-  const SWord8  s2290 = table9[s2271];-  const SWord8  s2291 = table6[s2274];-  const SWord8  s2292 = table7[s2276];-  const SWord8  s2293 = s2291 ^ s2292;-  const SWord8  s2294 = s2290 ^ s2293;-  const SWord8  s2295 = s2289 ^ s2294;-  const SWord8  s2296 = table7[s2269];-  const SWord8  s2297 = table8[s2271];-  const SWord8  s2298 = table9[s2274];-  const SWord8  s2299 = table6[s2276];-  const SWord8  s2300 = s2298 ^ s2299;-  const SWord8  s2301 = s2297 ^ s2300;-  const SWord8  s2302 = s2296 ^ s2301;-  const SWord16 s2303 = (((SWord16) s2295) << 8) | ((SWord16) s2302);-  const SWord32 s2304 = (((SWord32) s2288) << 16) | ((SWord32) s2303);-  const SWord32 s2305 = s2267 ^ s2304;-  const SWord16 s2306 = (SWord16) s2305;-  const SWord8  s2307 = (SWord8) s2306;-  const SWord32 s2308 = table5[s2307];-  const SWord32 s2309 = s2256 ^ s2308;-  const SWord16 s2310 = (SWord16) (s611 >> 16);-  const SWord8  s2311 = (SWord8) (s2310 >> 8);-  const SWord8  s2312 = table6[s2311];-  const SWord8  s2313 = (SWord8) s2310;-  const SWord8  s2314 = table7[s2313];-  const SWord16 s2315 = (SWord16) s611;-  const SWord8  s2316 = (SWord8) (s2315 >> 8);-  const SWord8  s2317 = table8[s2316];-  const SWord8  s2318 = (SWord8) s2315;-  const SWord8  s2319 = table9[s2318];-  const SWord8  s2320 = s2317 ^ s2319;-  const SWord8  s2321 = s2314 ^ s2320;-  const SWord8  s2322 = s2312 ^ s2321;-  const SWord8  s2323 = table9[s2311];-  const SWord8  s2324 = table6[s2313];-  const SWord8  s2325 = table7[s2316];-  const SWord8  s2326 = table8[s2318];-  const SWord8  s2327 = s2325 ^ s2326;-  const SWord8  s2328 = s2324 ^ s2327;-  const SWord8  s2329 = s2323 ^ s2328;-  const SWord16 s2330 = (((SWord16) s2322) << 8) | ((SWord16) s2329);-  const SWord8  s2331 = table8[s2311];-  const SWord8  s2332 = table9[s2313];-  const SWord8  s2333 = table6[s2316];-  const SWord8  s2334 = table7[s2318];-  const SWord8  s2335 = s2333 ^ s2334;-  const SWord8  s2336 = s2332 ^ s2335;-  const SWord8  s2337 = s2331 ^ s2336;-  const SWord8  s2338 = table7[s2311];-  const SWord8  s2339 = table8[s2313];-  const SWord8  s2340 = table9[s2316];-  const SWord8  s2341 = table6[s2318];-  const SWord8  s2342 = s2340 ^ s2341;-  const SWord8  s2343 = s2339 ^ s2342;-  const SWord8  s2344 = s2338 ^ s2343;-  const SWord16 s2345 = (((SWord16) s2337) << 8) | ((SWord16) s2344);-  const SWord32 s2346 = (((SWord32) s2330) << 16) | ((SWord32) s2345);-  const SWord32 s2347 = s2309 ^ s2346;-  const SWord16 s2348 = (SWord16) (s2347 >> 16);-  const SWord8  s2349 = (SWord8) (s2348 >> 8);-  const SWord32 s2350 = table1[s2349];-  const SWord8  s2351 = (SWord8) (s2198 >> 8);-  const SWord32 s2352 = table1[s2351];-  const SWord16 s2353 = (SWord16) (s2252 >> 16);-  const SWord8  s2354 = (SWord8) s2353;-  const SWord32 s2355 = table3[s2354];-  const SWord32 s2356 = s2352 ^ s2355;-  const SWord8  s2357 = (SWord8) (s2306 >> 8);-  const SWord32 s2358 = table4[s2357];-  const SWord32 s2359 = s2356 ^ s2358;-  const SWord16 s2360 = (SWord16) s2143;-  const SWord8  s2361 = (SWord8) s2360;-  const SWord32 s2362 = table5[s2361];-  const SWord32 s2363 = s2359 ^ s2362;-  const SWord16 s2364 = (SWord16) (s614 >> 16);-  const SWord8  s2365 = (SWord8) (s2364 >> 8);-  const SWord8  s2366 = table6[s2365];-  const SWord8  s2367 = (SWord8) s2364;-  const SWord8  s2368 = table7[s2367];-  const SWord16 s2369 = (SWord16) s614;-  const SWord8  s2370 = (SWord8) (s2369 >> 8);-  const SWord8  s2371 = table8[s2370];-  const SWord8  s2372 = (SWord8) s2369;-  const SWord8  s2373 = table9[s2372];-  const SWord8  s2374 = s2371 ^ s2373;-  const SWord8  s2375 = s2368 ^ s2374;-  const SWord8  s2376 = s2366 ^ s2375;-  const SWord8  s2377 = table9[s2365];-  const SWord8  s2378 = table6[s2367];-  const SWord8  s2379 = table7[s2370];-  const SWord8  s2380 = table8[s2372];-  const SWord8  s2381 = s2379 ^ s2380;-  const SWord8  s2382 = s2378 ^ s2381;-  const SWord8  s2383 = s2377 ^ s2382;-  const SWord16 s2384 = (((SWord16) s2376) << 8) | ((SWord16) s2383);-  const SWord8  s2385 = table8[s2365];-  const SWord8  s2386 = table9[s2367];-  const SWord8  s2387 = table6[s2370];-  const SWord8  s2388 = table7[s2372];-  const SWord8  s2389 = s2387 ^ s2388;-  const SWord8  s2390 = s2386 ^ s2389;-  const SWord8  s2391 = s2385 ^ s2390;-  const SWord8  s2392 = table7[s2365];-  const SWord8  s2393 = table8[s2367];-  const SWord8  s2394 = table9[s2370];-  const SWord8  s2395 = table6[s2372];-  const SWord8  s2396 = s2394 ^ s2395;-  const SWord8  s2397 = s2393 ^ s2396;-  const SWord8  s2398 = s2392 ^ s2397;-  const SWord16 s2399 = (((SWord16) s2391) << 8) | ((SWord16) s2398);-  const SWord32 s2400 = (((SWord32) s2384) << 16) | ((SWord32) s2399);-  const SWord32 s2401 = s2363 ^ s2400;-  const SWord16 s2402 = (SWord16) (s2401 >> 16);-  const SWord8  s2403 = (SWord8) s2402;-  const SWord32 s2404 = table3[s2403];-  const SWord32 s2405 = s2350 ^ s2404;-  const SWord8  s2406 = (SWord8) (s2353 >> 8);-  const SWord32 s2407 = table1[s2406];-  const SWord16 s2408 = (SWord16) (s2305 >> 16);-  const SWord8  s2409 = (SWord8) s2408;-  const SWord32 s2410 = table3[s2409];-  const SWord32 s2411 = s2407 ^ s2410;-  const SWord8  s2412 = (SWord8) (s2360 >> 8);-  const SWord32 s2413 = table4[s2412];-  const SWord32 s2414 = s2411 ^ s2413;-  const SWord16 s2415 = (SWord16) s2197;-  const SWord8  s2416 = (SWord8) s2415;-  const SWord32 s2417 = table5[s2416];-  const SWord32 s2418 = s2414 ^ s2417;-  const SWord16 s2419 = (SWord16) (s613 >> 16);-  const SWord8  s2420 = (SWord8) (s2419 >> 8);-  const SWord8  s2421 = table6[s2420];-  const SWord8  s2422 = (SWord8) s2419;-  const SWord8  s2423 = table7[s2422];-  const SWord16 s2424 = (SWord16) s613;-  const SWord8  s2425 = (SWord8) (s2424 >> 8);-  const SWord8  s2426 = table8[s2425];-  const SWord8  s2427 = (SWord8) s2424;-  const SWord8  s2428 = table9[s2427];-  const SWord8  s2429 = s2426 ^ s2428;-  const SWord8  s2430 = s2423 ^ s2429;-  const SWord8  s2431 = s2421 ^ s2430;-  const SWord8  s2432 = table9[s2420];-  const SWord8  s2433 = table6[s2422];-  const SWord8  s2434 = table7[s2425];-  const SWord8  s2435 = table8[s2427];-  const SWord8  s2436 = s2434 ^ s2435;-  const SWord8  s2437 = s2433 ^ s2436;-  const SWord8  s2438 = s2432 ^ s2437;-  const SWord16 s2439 = (((SWord16) s2431) << 8) | ((SWord16) s2438);-  const SWord8  s2440 = table8[s2420];-  const SWord8  s2441 = table9[s2422];-  const SWord8  s2442 = table6[s2425];-  const SWord8  s2443 = table7[s2427];-  const SWord8  s2444 = s2442 ^ s2443;-  const SWord8  s2445 = s2441 ^ s2444;-  const SWord8  s2446 = s2440 ^ s2445;-  const SWord8  s2447 = table7[s2420];-  const SWord8  s2448 = table8[s2422];-  const SWord8  s2449 = table9[s2425];-  const SWord8  s2450 = table6[s2427];-  const SWord8  s2451 = s2449 ^ s2450;-  const SWord8  s2452 = s2448 ^ s2451;-  const SWord8  s2453 = s2447 ^ s2452;-  const SWord16 s2454 = (((SWord16) s2446) << 8) | ((SWord16) s2453);-  const SWord32 s2455 = (((SWord32) s2439) << 16) | ((SWord32) s2454);-  const SWord32 s2456 = s2418 ^ s2455;-  const SWord16 s2457 = (SWord16) s2456;-  const SWord8  s2458 = (SWord8) (s2457 >> 8);-  const SWord32 s2459 = table4[s2458];-  const SWord32 s2460 = s2405 ^ s2459;-  const SWord8  s2461 = (SWord8) (s2408 >> 8);-  const SWord32 s2462 = table1[s2461];-  const SWord8  s2463 = (SWord8) s2144;-  const SWord32 s2464 = table3[s2463];-  const SWord32 s2465 = s2462 ^ s2464;-  const SWord8  s2466 = (SWord8) (s2415 >> 8);-  const SWord32 s2467 = table4[s2466];-  const SWord32 s2468 = s2465 ^ s2467;-  const SWord8  s2469 = (SWord8) s2253;-  const SWord32 s2470 = table5[s2469];-  const SWord32 s2471 = s2468 ^ s2470;-  const SWord16 s2472 = (SWord16) (s612 >> 16);-  const SWord8  s2473 = (SWord8) (s2472 >> 8);-  const SWord8  s2474 = table6[s2473];-  const SWord8  s2475 = (SWord8) s2472;-  const SWord8  s2476 = table7[s2475];-  const SWord16 s2477 = (SWord16) s612;-  const SWord8  s2478 = (SWord8) (s2477 >> 8);-  const SWord8  s2479 = table8[s2478];-  const SWord8  s2480 = (SWord8) s2477;-  const SWord8  s2481 = table9[s2480];-  const SWord8  s2482 = s2479 ^ s2481;-  const SWord8  s2483 = s2476 ^ s2482;-  const SWord8  s2484 = s2474 ^ s2483;-  const SWord8  s2485 = table9[s2473];-  const SWord8  s2486 = table6[s2475];-  const SWord8  s2487 = table7[s2478];-  const SWord8  s2488 = table8[s2480];-  const SWord8  s2489 = s2487 ^ s2488;-  const SWord8  s2490 = s2486 ^ s2489;-  const SWord8  s2491 = s2485 ^ s2490;-  const SWord16 s2492 = (((SWord16) s2484) << 8) | ((SWord16) s2491);-  const SWord8  s2493 = table8[s2473];-  const SWord8  s2494 = table9[s2475];-  const SWord8  s2495 = table6[s2478];-  const SWord8  s2496 = table7[s2480];-  const SWord8  s2497 = s2495 ^ s2496;-  const SWord8  s2498 = s2494 ^ s2497;-  const SWord8  s2499 = s2493 ^ s2498;-  const SWord8  s2500 = table7[s2473];-  const SWord8  s2501 = table8[s2475];-  const SWord8  s2502 = table9[s2478];-  const SWord8  s2503 = table6[s2480];-  const SWord8  s2504 = s2502 ^ s2503;-  const SWord8  s2505 = s2501 ^ s2504;-  const SWord8  s2506 = s2500 ^ s2505;-  const SWord16 s2507 = (((SWord16) s2499) << 8) | ((SWord16) s2506);-  const SWord32 s2508 = (((SWord32) s2492) << 16) | ((SWord32) s2507);-  const SWord32 s2509 = s2471 ^ s2508;-  const SWord16 s2510 = (SWord16) s2509;-  const SWord8  s2511 = (SWord8) s2510;-  const SWord32 s2512 = table5[s2511];-  const SWord32 s2513 = s2460 ^ s2512;-  const SWord16 s2514 = (SWord16) (s592 >> 16);-  const SWord8  s2515 = (SWord8) (s2514 >> 8);-  const SWord8  s2516 = table6[s2515];-  const SWord8  s2517 = (SWord8) s2514;-  const SWord8  s2518 = table7[s2517];-  const SWord16 s2519 = (SWord16) s592;-  const SWord8  s2520 = (SWord8) (s2519 >> 8);-  const SWord8  s2521 = table8[s2520];-  const SWord8  s2522 = (SWord8) s2519;-  const SWord8  s2523 = table9[s2522];-  const SWord8  s2524 = s2521 ^ s2523;-  const SWord8  s2525 = s2518 ^ s2524;-  const SWord8  s2526 = s2516 ^ s2525;-  const SWord8  s2527 = table9[s2515];-  const SWord8  s2528 = table6[s2517];-  const SWord8  s2529 = table7[s2520];-  const SWord8  s2530 = table8[s2522];-  const SWord8  s2531 = s2529 ^ s2530;-  const SWord8  s2532 = s2528 ^ s2531;-  const SWord8  s2533 = s2527 ^ s2532;-  const SWord16 s2534 = (((SWord16) s2526) << 8) | ((SWord16) s2533);-  const SWord8  s2535 = table8[s2515];-  const SWord8  s2536 = table9[s2517];-  const SWord8  s2537 = table6[s2520];-  const SWord8  s2538 = table7[s2522];-  const SWord8  s2539 = s2537 ^ s2538;-  const SWord8  s2540 = s2536 ^ s2539;-  const SWord8  s2541 = s2535 ^ s2540;-  const SWord8  s2542 = table7[s2515];-  const SWord8  s2543 = table8[s2517];-  const SWord8  s2544 = table9[s2520];-  const SWord8  s2545 = table6[s2522];-  const SWord8  s2546 = s2544 ^ s2545;-  const SWord8  s2547 = s2543 ^ s2546;-  const SWord8  s2548 = s2542 ^ s2547;-  const SWord16 s2549 = (((SWord16) s2541) << 8) | ((SWord16) s2548);-  const SWord32 s2550 = (((SWord32) s2534) << 16) | ((SWord32) s2549);-  const SWord32 s2551 = s2513 ^ s2550;-  const SWord16 s2552 = (SWord16) (s2551 >> 16);-  const SWord8  s2553 = (SWord8) (s2552 >> 8);-  const SWord32 s2554 = table1[s2553];-  const SWord8  s2555 = (SWord8) (s2402 >> 8);-  const SWord32 s2556 = table1[s2555];-  const SWord16 s2557 = (SWord16) (s2456 >> 16);-  const SWord8  s2558 = (SWord8) s2557;-  const SWord32 s2559 = table3[s2558];-  const SWord32 s2560 = s2556 ^ s2559;-  const SWord8  s2561 = (SWord8) (s2510 >> 8);-  const SWord32 s2562 = table4[s2561];-  const SWord32 s2563 = s2560 ^ s2562;-  const SWord16 s2564 = (SWord16) s2347;-  const SWord8  s2565 = (SWord8) s2564;-  const SWord32 s2566 = table5[s2565];-  const SWord32 s2567 = s2563 ^ s2566;-  const SWord16 s2568 = (SWord16) (s595 >> 16);-  const SWord8  s2569 = (SWord8) (s2568 >> 8);-  const SWord8  s2570 = table6[s2569];-  const SWord8  s2571 = (SWord8) s2568;-  const SWord8  s2572 = table7[s2571];-  const SWord16 s2573 = (SWord16) s595;-  const SWord8  s2574 = (SWord8) (s2573 >> 8);-  const SWord8  s2575 = table8[s2574];-  const SWord8  s2576 = (SWord8) s2573;-  const SWord8  s2577 = table9[s2576];-  const SWord8  s2578 = s2575 ^ s2577;-  const SWord8  s2579 = s2572 ^ s2578;-  const SWord8  s2580 = s2570 ^ s2579;-  const SWord8  s2581 = table9[s2569];-  const SWord8  s2582 = table6[s2571];-  const SWord8  s2583 = table7[s2574];-  const SWord8  s2584 = table8[s2576];-  const SWord8  s2585 = s2583 ^ s2584;-  const SWord8  s2586 = s2582 ^ s2585;-  const SWord8  s2587 = s2581 ^ s2586;-  const SWord16 s2588 = (((SWord16) s2580) << 8) | ((SWord16) s2587);-  const SWord8  s2589 = table8[s2569];-  const SWord8  s2590 = table9[s2571];-  const SWord8  s2591 = table6[s2574];-  const SWord8  s2592 = table7[s2576];-  const SWord8  s2593 = s2591 ^ s2592;-  const SWord8  s2594 = s2590 ^ s2593;-  const SWord8  s2595 = s2589 ^ s2594;-  const SWord8  s2596 = table7[s2569];-  const SWord8  s2597 = table8[s2571];-  const SWord8  s2598 = table9[s2574];-  const SWord8  s2599 = table6[s2576];-  const SWord8  s2600 = s2598 ^ s2599;-  const SWord8  s2601 = s2597 ^ s2600;-  const SWord8  s2602 = s2596 ^ s2601;-  const SWord16 s2603 = (((SWord16) s2595) << 8) | ((SWord16) s2602);-  const SWord32 s2604 = (((SWord32) s2588) << 16) | ((SWord32) s2603);-  const SWord32 s2605 = s2567 ^ s2604;-  const SWord16 s2606 = (SWord16) (s2605 >> 16);-  const SWord8  s2607 = (SWord8) s2606;-  const SWord32 s2608 = table3[s2607];-  const SWord32 s2609 = s2554 ^ s2608;-  const SWord8  s2610 = (SWord8) (s2557 >> 8);-  const SWord32 s2611 = table1[s2610];-  const SWord16 s2612 = (SWord16) (s2509 >> 16);-  const SWord8  s2613 = (SWord8) s2612;-  const SWord32 s2614 = table3[s2613];-  const SWord32 s2615 = s2611 ^ s2614;-  const SWord8  s2616 = (SWord8) (s2564 >> 8);-  const SWord32 s2617 = table4[s2616];-  const SWord32 s2618 = s2615 ^ s2617;-  const SWord16 s2619 = (SWord16) s2401;-  const SWord8  s2620 = (SWord8) s2619;-  const SWord32 s2621 = table5[s2620];-  const SWord32 s2622 = s2618 ^ s2621;-  const SWord16 s2623 = (SWord16) (s594 >> 16);-  const SWord8  s2624 = (SWord8) (s2623 >> 8);-  const SWord8  s2625 = table6[s2624];-  const SWord8  s2626 = (SWord8) s2623;-  const SWord8  s2627 = table7[s2626];-  const SWord16 s2628 = (SWord16) s594;-  const SWord8  s2629 = (SWord8) (s2628 >> 8);-  const SWord8  s2630 = table8[s2629];-  const SWord8  s2631 = (SWord8) s2628;-  const SWord8  s2632 = table9[s2631];-  const SWord8  s2633 = s2630 ^ s2632;-  const SWord8  s2634 = s2627 ^ s2633;-  const SWord8  s2635 = s2625 ^ s2634;-  const SWord8  s2636 = table9[s2624];-  const SWord8  s2637 = table6[s2626];-  const SWord8  s2638 = table7[s2629];-  const SWord8  s2639 = table8[s2631];-  const SWord8  s2640 = s2638 ^ s2639;-  const SWord8  s2641 = s2637 ^ s2640;-  const SWord8  s2642 = s2636 ^ s2641;-  const SWord16 s2643 = (((SWord16) s2635) << 8) | ((SWord16) s2642);-  const SWord8  s2644 = table8[s2624];-  const SWord8  s2645 = table9[s2626];-  const SWord8  s2646 = table6[s2629];-  const SWord8  s2647 = table7[s2631];-  const SWord8  s2648 = s2646 ^ s2647;-  const SWord8  s2649 = s2645 ^ s2648;-  const SWord8  s2650 = s2644 ^ s2649;-  const SWord8  s2651 = table7[s2624];-  const SWord8  s2652 = table8[s2626];-  const SWord8  s2653 = table9[s2629];-  const SWord8  s2654 = table6[s2631];-  const SWord8  s2655 = s2653 ^ s2654;-  const SWord8  s2656 = s2652 ^ s2655;-  const SWord8  s2657 = s2651 ^ s2656;-  const SWord16 s2658 = (((SWord16) s2650) << 8) | ((SWord16) s2657);-  const SWord32 s2659 = (((SWord32) s2643) << 16) | ((SWord32) s2658);-  const SWord32 s2660 = s2622 ^ s2659;-  const SWord16 s2661 = (SWord16) s2660;-  const SWord8  s2662 = (SWord8) (s2661 >> 8);-  const SWord32 s2663 = table4[s2662];-  const SWord32 s2664 = s2609 ^ s2663;-  const SWord8  s2665 = (SWord8) (s2612 >> 8);-  const SWord32 s2666 = table1[s2665];-  const SWord8  s2667 = (SWord8) s2348;-  const SWord32 s2668 = table3[s2667];-  const SWord32 s2669 = s2666 ^ s2668;-  const SWord8  s2670 = (SWord8) (s2619 >> 8);-  const SWord32 s2671 = table4[s2670];-  const SWord32 s2672 = s2669 ^ s2671;-  const SWord8  s2673 = (SWord8) s2457;-  const SWord32 s2674 = table5[s2673];-  const SWord32 s2675 = s2672 ^ s2674;-  const SWord16 s2676 = (SWord16) (s593 >> 16);-  const SWord8  s2677 = (SWord8) (s2676 >> 8);-  const SWord8  s2678 = table6[s2677];-  const SWord8  s2679 = (SWord8) s2676;-  const SWord8  s2680 = table7[s2679];-  const SWord16 s2681 = (SWord16) s593;-  const SWord8  s2682 = (SWord8) (s2681 >> 8);-  const SWord8  s2683 = table8[s2682];-  const SWord8  s2684 = (SWord8) s2681;-  const SWord8  s2685 = table9[s2684];-  const SWord8  s2686 = s2683 ^ s2685;-  const SWord8  s2687 = s2680 ^ s2686;-  const SWord8  s2688 = s2678 ^ s2687;-  const SWord8  s2689 = table9[s2677];-  const SWord8  s2690 = table6[s2679];-  const SWord8  s2691 = table7[s2682];-  const SWord8  s2692 = table8[s2684];-  const SWord8  s2693 = s2691 ^ s2692;-  const SWord8  s2694 = s2690 ^ s2693;-  const SWord8  s2695 = s2689 ^ s2694;-  const SWord16 s2696 = (((SWord16) s2688) << 8) | ((SWord16) s2695);-  const SWord8  s2697 = table8[s2677];-  const SWord8  s2698 = table9[s2679];-  const SWord8  s2699 = table6[s2682];-  const SWord8  s2700 = table7[s2684];-  const SWord8  s2701 = s2699 ^ s2700;-  const SWord8  s2702 = s2698 ^ s2701;-  const SWord8  s2703 = s2697 ^ s2702;-  const SWord8  s2704 = table7[s2677];-  const SWord8  s2705 = table8[s2679];-  const SWord8  s2706 = table9[s2682];-  const SWord8  s2707 = table6[s2684];-  const SWord8  s2708 = s2706 ^ s2707;-  const SWord8  s2709 = s2705 ^ s2708;-  const SWord8  s2710 = s2704 ^ s2709;-  const SWord16 s2711 = (((SWord16) s2703) << 8) | ((SWord16) s2710);-  const SWord32 s2712 = (((SWord32) s2696) << 16) | ((SWord32) s2711);-  const SWord32 s2713 = s2675 ^ s2712;-  const SWord16 s2714 = (SWord16) s2713;-  const SWord8  s2715 = (SWord8) s2714;-  const SWord32 s2716 = table5[s2715];-  const SWord32 s2717 = s2664 ^ s2716;-  const SWord16 s2718 = (SWord16) (s573 >> 16);-  const SWord8  s2719 = (SWord8) (s2718 >> 8);-  const SWord8  s2720 = table6[s2719];-  const SWord8  s2721 = (SWord8) s2718;-  const SWord8  s2722 = table7[s2721];-  const SWord16 s2723 = (SWord16) s573;-  const SWord8  s2724 = (SWord8) (s2723 >> 8);-  const SWord8  s2725 = table8[s2724];-  const SWord8  s2726 = (SWord8) s2723;-  const SWord8  s2727 = table9[s2726];-  const SWord8  s2728 = s2725 ^ s2727;-  const SWord8  s2729 = s2722 ^ s2728;-  const SWord8  s2730 = s2720 ^ s2729;-  const SWord8  s2731 = table9[s2719];-  const SWord8  s2732 = table6[s2721];-  const SWord8  s2733 = table7[s2724];-  const SWord8  s2734 = table8[s2726];-  const SWord8  s2735 = s2733 ^ s2734;-  const SWord8  s2736 = s2732 ^ s2735;-  const SWord8  s2737 = s2731 ^ s2736;-  const SWord16 s2738 = (((SWord16) s2730) << 8) | ((SWord16) s2737);-  const SWord8  s2739 = table8[s2719];-  const SWord8  s2740 = table9[s2721];-  const SWord8  s2741 = table6[s2724];-  const SWord8  s2742 = table7[s2726];-  const SWord8  s2743 = s2741 ^ s2742;-  const SWord8  s2744 = s2740 ^ s2743;-  const SWord8  s2745 = s2739 ^ s2744;-  const SWord8  s2746 = table7[s2719];-  const SWord8  s2747 = table8[s2721];-  const SWord8  s2748 = table9[s2724];-  const SWord8  s2749 = table6[s2726];-  const SWord8  s2750 = s2748 ^ s2749;-  const SWord8  s2751 = s2747 ^ s2750;-  const SWord8  s2752 = s2746 ^ s2751;-  const SWord16 s2753 = (((SWord16) s2745) << 8) | ((SWord16) s2752);-  const SWord32 s2754 = (((SWord32) s2738) << 16) | ((SWord32) s2753);-  const SWord32 s2755 = s2717 ^ s2754;-  const SWord16 s2756 = (SWord16) (s2755 >> 16);-  const SWord8  s2757 = (SWord8) (s2756 >> 8);-  const SWord32 s2758 = table1[s2757];-  const SWord8  s2759 = (SWord8) (s2606 >> 8);-  const SWord32 s2760 = table1[s2759];-  const SWord16 s2761 = (SWord16) (s2660 >> 16);-  const SWord8  s2762 = (SWord8) s2761;-  const SWord32 s2763 = table3[s2762];-  const SWord32 s2764 = s2760 ^ s2763;-  const SWord8  s2765 = (SWord8) (s2714 >> 8);-  const SWord32 s2766 = table4[s2765];-  const SWord32 s2767 = s2764 ^ s2766;-  const SWord16 s2768 = (SWord16) s2551;-  const SWord8  s2769 = (SWord8) s2768;-  const SWord32 s2770 = table5[s2769];-  const SWord32 s2771 = s2767 ^ s2770;-  const SWord16 s2772 = (SWord16) (s576 >> 16);-  const SWord8  s2773 = (SWord8) (s2772 >> 8);-  const SWord8  s2774 = table6[s2773];-  const SWord8  s2775 = (SWord8) s2772;-  const SWord8  s2776 = table7[s2775];-  const SWord16 s2777 = (SWord16) s576;-  const SWord8  s2778 = (SWord8) (s2777 >> 8);-  const SWord8  s2779 = table8[s2778];-  const SWord8  s2780 = (SWord8) s2777;-  const SWord8  s2781 = table9[s2780];-  const SWord8  s2782 = s2779 ^ s2781;-  const SWord8  s2783 = s2776 ^ s2782;-  const SWord8  s2784 = s2774 ^ s2783;-  const SWord8  s2785 = table9[s2773];-  const SWord8  s2786 = table6[s2775];-  const SWord8  s2787 = table7[s2778];-  const SWord8  s2788 = table8[s2780];-  const SWord8  s2789 = s2787 ^ s2788;-  const SWord8  s2790 = s2786 ^ s2789;-  const SWord8  s2791 = s2785 ^ s2790;-  const SWord16 s2792 = (((SWord16) s2784) << 8) | ((SWord16) s2791);-  const SWord8  s2793 = table8[s2773];-  const SWord8  s2794 = table9[s2775];-  const SWord8  s2795 = table6[s2778];-  const SWord8  s2796 = table7[s2780];-  const SWord8  s2797 = s2795 ^ s2796;-  const SWord8  s2798 = s2794 ^ s2797;-  const SWord8  s2799 = s2793 ^ s2798;-  const SWord8  s2800 = table7[s2773];-  const SWord8  s2801 = table8[s2775];-  const SWord8  s2802 = table9[s2778];-  const SWord8  s2803 = table6[s2780];-  const SWord8  s2804 = s2802 ^ s2803;-  const SWord8  s2805 = s2801 ^ s2804;-  const SWord8  s2806 = s2800 ^ s2805;-  const SWord16 s2807 = (((SWord16) s2799) << 8) | ((SWord16) s2806);-  const SWord32 s2808 = (((SWord32) s2792) << 16) | ((SWord32) s2807);-  const SWord32 s2809 = s2771 ^ s2808;-  const SWord16 s2810 = (SWord16) (s2809 >> 16);-  const SWord8  s2811 = (SWord8) s2810;-  const SWord32 s2812 = table3[s2811];-  const SWord32 s2813 = s2758 ^ s2812;-  const SWord8  s2814 = (SWord8) (s2761 >> 8);-  const SWord32 s2815 = table1[s2814];-  const SWord16 s2816 = (SWord16) (s2713 >> 16);-  const SWord8  s2817 = (SWord8) s2816;-  const SWord32 s2818 = table3[s2817];-  const SWord32 s2819 = s2815 ^ s2818;-  const SWord8  s2820 = (SWord8) (s2768 >> 8);-  const SWord32 s2821 = table4[s2820];-  const SWord32 s2822 = s2819 ^ s2821;-  const SWord16 s2823 = (SWord16) s2605;-  const SWord8  s2824 = (SWord8) s2823;-  const SWord32 s2825 = table5[s2824];-  const SWord32 s2826 = s2822 ^ s2825;-  const SWord16 s2827 = (SWord16) (s575 >> 16);-  const SWord8  s2828 = (SWord8) (s2827 >> 8);-  const SWord8  s2829 = table6[s2828];-  const SWord8  s2830 = (SWord8) s2827;-  const SWord8  s2831 = table7[s2830];-  const SWord16 s2832 = (SWord16) s575;-  const SWord8  s2833 = (SWord8) (s2832 >> 8);-  const SWord8  s2834 = table8[s2833];-  const SWord8  s2835 = (SWord8) s2832;-  const SWord8  s2836 = table9[s2835];-  const SWord8  s2837 = s2834 ^ s2836;-  const SWord8  s2838 = s2831 ^ s2837;-  const SWord8  s2839 = s2829 ^ s2838;-  const SWord8  s2840 = table9[s2828];-  const SWord8  s2841 = table6[s2830];-  const SWord8  s2842 = table7[s2833];-  const SWord8  s2843 = table8[s2835];-  const SWord8  s2844 = s2842 ^ s2843;-  const SWord8  s2845 = s2841 ^ s2844;-  const SWord8  s2846 = s2840 ^ s2845;-  const SWord16 s2847 = (((SWord16) s2839) << 8) | ((SWord16) s2846);-  const SWord8  s2848 = table8[s2828];-  const SWord8  s2849 = table9[s2830];-  const SWord8  s2850 = table6[s2833];-  const SWord8  s2851 = table7[s2835];-  const SWord8  s2852 = s2850 ^ s2851;-  const SWord8  s2853 = s2849 ^ s2852;-  const SWord8  s2854 = s2848 ^ s2853;-  const SWord8  s2855 = table7[s2828];-  const SWord8  s2856 = table8[s2830];-  const SWord8  s2857 = table9[s2833];-  const SWord8  s2858 = table6[s2835];-  const SWord8  s2859 = s2857 ^ s2858;-  const SWord8  s2860 = s2856 ^ s2859;-  const SWord8  s2861 = s2855 ^ s2860;-  const SWord16 s2862 = (((SWord16) s2854) << 8) | ((SWord16) s2861);-  const SWord32 s2863 = (((SWord32) s2847) << 16) | ((SWord32) s2862);-  const SWord32 s2864 = s2826 ^ s2863;-  const SWord16 s2865 = (SWord16) s2864;-  const SWord8  s2866 = (SWord8) (s2865 >> 8);-  const SWord32 s2867 = table4[s2866];-  const SWord32 s2868 = s2813 ^ s2867;-  const SWord8  s2869 = (SWord8) (s2816 >> 8);-  const SWord32 s2870 = table1[s2869];-  const SWord8  s2871 = (SWord8) s2552;-  const SWord32 s2872 = table3[s2871];-  const SWord32 s2873 = s2870 ^ s2872;-  const SWord8  s2874 = (SWord8) (s2823 >> 8);-  const SWord32 s2875 = table4[s2874];-  const SWord32 s2876 = s2873 ^ s2875;-  const SWord8  s2877 = (SWord8) s2661;-  const SWord32 s2878 = table5[s2877];-  const SWord32 s2879 = s2876 ^ s2878;-  const SWord16 s2880 = (SWord16) (s574 >> 16);-  const SWord8  s2881 = (SWord8) (s2880 >> 8);-  const SWord8  s2882 = table6[s2881];-  const SWord8  s2883 = (SWord8) s2880;-  const SWord8  s2884 = table7[s2883];-  const SWord16 s2885 = (SWord16) s574;-  const SWord8  s2886 = (SWord8) (s2885 >> 8);-  const SWord8  s2887 = table8[s2886];-  const SWord8  s2888 = (SWord8) s2885;-  const SWord8  s2889 = table9[s2888];-  const SWord8  s2890 = s2887 ^ s2889;-  const SWord8  s2891 = s2884 ^ s2890;-  const SWord8  s2892 = s2882 ^ s2891;-  const SWord8  s2893 = table9[s2881];-  const SWord8  s2894 = table6[s2883];-  const SWord8  s2895 = table7[s2886];-  const SWord8  s2896 = table8[s2888];-  const SWord8  s2897 = s2895 ^ s2896;-  const SWord8  s2898 = s2894 ^ s2897;-  const SWord8  s2899 = s2893 ^ s2898;-  const SWord16 s2900 = (((SWord16) s2892) << 8) | ((SWord16) s2899);-  const SWord8  s2901 = table8[s2881];-  const SWord8  s2902 = table9[s2883];-  const SWord8  s2903 = table6[s2886];-  const SWord8  s2904 = table7[s2888];-  const SWord8  s2905 = s2903 ^ s2904;-  const SWord8  s2906 = s2902 ^ s2905;-  const SWord8  s2907 = s2901 ^ s2906;-  const SWord8  s2908 = table7[s2881];-  const SWord8  s2909 = table8[s2883];-  const SWord8  s2910 = table9[s2886];-  const SWord8  s2911 = table6[s2888];-  const SWord8  s2912 = s2910 ^ s2911;-  const SWord8  s2913 = s2909 ^ s2912;-  const SWord8  s2914 = s2908 ^ s2913;-  const SWord16 s2915 = (((SWord16) s2907) << 8) | ((SWord16) s2914);-  const SWord32 s2916 = (((SWord32) s2900) << 16) | ((SWord32) s2915);-  const SWord32 s2917 = s2879 ^ s2916;-  const SWord16 s2918 = (SWord16) s2917;-  const SWord8  s2919 = (SWord8) s2918;-  const SWord32 s2920 = table5[s2919];-  const SWord32 s2921 = s2868 ^ s2920;-  const SWord16 s2922 = (SWord16) (s554 >> 16);-  const SWord8  s2923 = (SWord8) (s2922 >> 8);-  const SWord8  s2924 = table6[s2923];-  const SWord8  s2925 = (SWord8) s2922;-  const SWord8  s2926 = table7[s2925];-  const SWord16 s2927 = (SWord16) s554;-  const SWord8  s2928 = (SWord8) (s2927 >> 8);-  const SWord8  s2929 = table8[s2928];-  const SWord8  s2930 = (SWord8) s2927;-  const SWord8  s2931 = table9[s2930];-  const SWord8  s2932 = s2929 ^ s2931;-  const SWord8  s2933 = s2926 ^ s2932;-  const SWord8  s2934 = s2924 ^ s2933;-  const SWord8  s2935 = table9[s2923];-  const SWord8  s2936 = table6[s2925];-  const SWord8  s2937 = table7[s2928];-  const SWord8  s2938 = table8[s2930];-  const SWord8  s2939 = s2937 ^ s2938;-  const SWord8  s2940 = s2936 ^ s2939;-  const SWord8  s2941 = s2935 ^ s2940;-  const SWord16 s2942 = (((SWord16) s2934) << 8) | ((SWord16) s2941);-  const SWord8  s2943 = table8[s2923];-  const SWord8  s2944 = table9[s2925];-  const SWord8  s2945 = table6[s2928];-  const SWord8  s2946 = table7[s2930];-  const SWord8  s2947 = s2945 ^ s2946;-  const SWord8  s2948 = s2944 ^ s2947;-  const SWord8  s2949 = s2943 ^ s2948;-  const SWord8  s2950 = table7[s2923];-  const SWord8  s2951 = table8[s2925];-  const SWord8  s2952 = table9[s2928];-  const SWord8  s2953 = table6[s2930];-  const SWord8  s2954 = s2952 ^ s2953;-  const SWord8  s2955 = s2951 ^ s2954;-  const SWord8  s2956 = s2950 ^ s2955;-  const SWord16 s2957 = (((SWord16) s2949) << 8) | ((SWord16) s2956);-  const SWord32 s2958 = (((SWord32) s2942) << 16) | ((SWord32) s2957);-  const SWord32 s2959 = s2921 ^ s2958;-  const SWord16 s2960 = (SWord16) (s2959 >> 16);-  const SWord8  s2961 = (SWord8) (s2960 >> 8);-  const SWord32 s2962 = table1[s2961];-  const SWord8  s2963 = (SWord8) (s2810 >> 8);-  const SWord32 s2964 = table1[s2963];-  const SWord16 s2965 = (SWord16) (s2864 >> 16);-  const SWord8  s2966 = (SWord8) s2965;-  const SWord32 s2967 = table3[s2966];-  const SWord32 s2968 = s2964 ^ s2967;-  const SWord8  s2969 = (SWord8) (s2918 >> 8);-  const SWord32 s2970 = table4[s2969];-  const SWord32 s2971 = s2968 ^ s2970;-  const SWord16 s2972 = (SWord16) s2755;-  const SWord8  s2973 = (SWord8) s2972;-  const SWord32 s2974 = table5[s2973];-  const SWord32 s2975 = s2971 ^ s2974;-  const SWord16 s2976 = (SWord16) (s557 >> 16);-  const SWord8  s2977 = (SWord8) (s2976 >> 8);-  const SWord8  s2978 = table6[s2977];-  const SWord8  s2979 = (SWord8) s2976;-  const SWord8  s2980 = table7[s2979];-  const SWord16 s2981 = (SWord16) s557;-  const SWord8  s2982 = (SWord8) (s2981 >> 8);-  const SWord8  s2983 = table8[s2982];-  const SWord8  s2984 = (SWord8) s2981;-  const SWord8  s2985 = table9[s2984];-  const SWord8  s2986 = s2983 ^ s2985;-  const SWord8  s2987 = s2980 ^ s2986;-  const SWord8  s2988 = s2978 ^ s2987;-  const SWord8  s2989 = table9[s2977];-  const SWord8  s2990 = table6[s2979];-  const SWord8  s2991 = table7[s2982];-  const SWord8  s2992 = table8[s2984];-  const SWord8  s2993 = s2991 ^ s2992;-  const SWord8  s2994 = s2990 ^ s2993;-  const SWord8  s2995 = s2989 ^ s2994;-  const SWord16 s2996 = (((SWord16) s2988) << 8) | ((SWord16) s2995);-  const SWord8  s2997 = table8[s2977];-  const SWord8  s2998 = table9[s2979];-  const SWord8  s2999 = table6[s2982];-  const SWord8  s3000 = table7[s2984];-  const SWord8  s3001 = s2999 ^ s3000;-  const SWord8  s3002 = s2998 ^ s3001;-  const SWord8  s3003 = s2997 ^ s3002;-  const SWord8  s3004 = table7[s2977];-  const SWord8  s3005 = table8[s2979];-  const SWord8  s3006 = table9[s2982];-  const SWord8  s3007 = table6[s2984];-  const SWord8  s3008 = s3006 ^ s3007;-  const SWord8  s3009 = s3005 ^ s3008;-  const SWord8  s3010 = s3004 ^ s3009;-  const SWord16 s3011 = (((SWord16) s3003) << 8) | ((SWord16) s3010);-  const SWord32 s3012 = (((SWord32) s2996) << 16) | ((SWord32) s3011);-  const SWord32 s3013 = s2975 ^ s3012;-  const SWord16 s3014 = (SWord16) (s3013 >> 16);-  const SWord8  s3015 = (SWord8) s3014;-  const SWord32 s3016 = table3[s3015];-  const SWord32 s3017 = s2962 ^ s3016;-  const SWord8  s3018 = (SWord8) (s2965 >> 8);-  const SWord32 s3019 = table1[s3018];-  const SWord16 s3020 = (SWord16) (s2917 >> 16);-  const SWord8  s3021 = (SWord8) s3020;-  const SWord32 s3022 = table3[s3021];-  const SWord32 s3023 = s3019 ^ s3022;-  const SWord8  s3024 = (SWord8) (s2972 >> 8);-  const SWord32 s3025 = table4[s3024];-  const SWord32 s3026 = s3023 ^ s3025;-  const SWord16 s3027 = (SWord16) s2809;-  const SWord8  s3028 = (SWord8) s3027;-  const SWord32 s3029 = table5[s3028];-  const SWord32 s3030 = s3026 ^ s3029;-  const SWord16 s3031 = (SWord16) (s556 >> 16);-  const SWord8  s3032 = (SWord8) (s3031 >> 8);-  const SWord8  s3033 = table6[s3032];-  const SWord8  s3034 = (SWord8) s3031;-  const SWord8  s3035 = table7[s3034];-  const SWord16 s3036 = (SWord16) s556;-  const SWord8  s3037 = (SWord8) (s3036 >> 8);-  const SWord8  s3038 = table8[s3037];-  const SWord8  s3039 = (SWord8) s3036;-  const SWord8  s3040 = table9[s3039];-  const SWord8  s3041 = s3038 ^ s3040;-  const SWord8  s3042 = s3035 ^ s3041;-  const SWord8  s3043 = s3033 ^ s3042;-  const SWord8  s3044 = table9[s3032];-  const SWord8  s3045 = table6[s3034];-  const SWord8  s3046 = table7[s3037];-  const SWord8  s3047 = table8[s3039];-  const SWord8  s3048 = s3046 ^ s3047;-  const SWord8  s3049 = s3045 ^ s3048;-  const SWord8  s3050 = s3044 ^ s3049;-  const SWord16 s3051 = (((SWord16) s3043) << 8) | ((SWord16) s3050);-  const SWord8  s3052 = table8[s3032];-  const SWord8  s3053 = table9[s3034];-  const SWord8  s3054 = table6[s3037];-  const SWord8  s3055 = table7[s3039];-  const SWord8  s3056 = s3054 ^ s3055;-  const SWord8  s3057 = s3053 ^ s3056;-  const SWord8  s3058 = s3052 ^ s3057;-  const SWord8  s3059 = table7[s3032];-  const SWord8  s3060 = table8[s3034];-  const SWord8  s3061 = table9[s3037];-  const SWord8  s3062 = table6[s3039];-  const SWord8  s3063 = s3061 ^ s3062;-  const SWord8  s3064 = s3060 ^ s3063;-  const SWord8  s3065 = s3059 ^ s3064;-  const SWord16 s3066 = (((SWord16) s3058) << 8) | ((SWord16) s3065);-  const SWord32 s3067 = (((SWord32) s3051) << 16) | ((SWord32) s3066);-  const SWord32 s3068 = s3030 ^ s3067;-  const SWord16 s3069 = (SWord16) s3068;-  const SWord8  s3070 = (SWord8) (s3069 >> 8);-  const SWord32 s3071 = table4[s3070];-  const SWord32 s3072 = s3017 ^ s3071;-  const SWord8  s3073 = (SWord8) (s3020 >> 8);-  const SWord32 s3074 = table1[s3073];-  const SWord8  s3075 = (SWord8) s2756;-  const SWord32 s3076 = table3[s3075];-  const SWord32 s3077 = s3074 ^ s3076;-  const SWord8  s3078 = (SWord8) (s3027 >> 8);-  const SWord32 s3079 = table4[s3078];-  const SWord32 s3080 = s3077 ^ s3079;-  const SWord8  s3081 = (SWord8) s2865;-  const SWord32 s3082 = table5[s3081];-  const SWord32 s3083 = s3080 ^ s3082;-  const SWord16 s3084 = (SWord16) (s555 >> 16);-  const SWord8  s3085 = (SWord8) (s3084 >> 8);-  const SWord8  s3086 = table6[s3085];-  const SWord8  s3087 = (SWord8) s3084;-  const SWord8  s3088 = table7[s3087];-  const SWord16 s3089 = (SWord16) s555;-  const SWord8  s3090 = (SWord8) (s3089 >> 8);-  const SWord8  s3091 = table8[s3090];-  const SWord8  s3092 = (SWord8) s3089;-  const SWord8  s3093 = table9[s3092];-  const SWord8  s3094 = s3091 ^ s3093;-  const SWord8  s3095 = s3088 ^ s3094;-  const SWord8  s3096 = s3086 ^ s3095;-  const SWord8  s3097 = table9[s3085];-  const SWord8  s3098 = table6[s3087];-  const SWord8  s3099 = table7[s3090];-  const SWord8  s3100 = table8[s3092];-  const SWord8  s3101 = s3099 ^ s3100;-  const SWord8  s3102 = s3098 ^ s3101;-  const SWord8  s3103 = s3097 ^ s3102;-  const SWord16 s3104 = (((SWord16) s3096) << 8) | ((SWord16) s3103);-  const SWord8  s3105 = table8[s3085];-  const SWord8  s3106 = table9[s3087];-  const SWord8  s3107 = table6[s3090];-  const SWord8  s3108 = table7[s3092];-  const SWord8  s3109 = s3107 ^ s3108;-  const SWord8  s3110 = s3106 ^ s3109;-  const SWord8  s3111 = s3105 ^ s3110;-  const SWord8  s3112 = table7[s3085];-  const SWord8  s3113 = table8[s3087];-  const SWord8  s3114 = table9[s3090];-  const SWord8  s3115 = table6[s3092];-  const SWord8  s3116 = s3114 ^ s3115;-  const SWord8  s3117 = s3113 ^ s3116;-  const SWord8  s3118 = s3112 ^ s3117;-  const SWord16 s3119 = (((SWord16) s3111) << 8) | ((SWord16) s3118);-  const SWord32 s3120 = (((SWord32) s3104) << 16) | ((SWord32) s3119);-  const SWord32 s3121 = s3083 ^ s3120;-  const SWord16 s3122 = (SWord16) s3121;-  const SWord8  s3123 = (SWord8) s3122;-  const SWord32 s3124 = table5[s3123];-  const SWord32 s3125 = s3072 ^ s3124;-  const SWord16 s3126 = (SWord16) (s535 >> 16);-  const SWord8  s3127 = (SWord8) (s3126 >> 8);-  const SWord8  s3128 = table6[s3127];-  const SWord8  s3129 = (SWord8) s3126;-  const SWord8  s3130 = table7[s3129];-  const SWord16 s3131 = (SWord16) s535;-  const SWord8  s3132 = (SWord8) (s3131 >> 8);-  const SWord8  s3133 = table8[s3132];-  const SWord8  s3134 = (SWord8) s3131;-  const SWord8  s3135 = table9[s3134];-  const SWord8  s3136 = s3133 ^ s3135;-  const SWord8  s3137 = s3130 ^ s3136;-  const SWord8  s3138 = s3128 ^ s3137;-  const SWord8  s3139 = table9[s3127];-  const SWord8  s3140 = table6[s3129];-  const SWord8  s3141 = table7[s3132];-  const SWord8  s3142 = table8[s3134];-  const SWord8  s3143 = s3141 ^ s3142;-  const SWord8  s3144 = s3140 ^ s3143;-  const SWord8  s3145 = s3139 ^ s3144;-  const SWord16 s3146 = (((SWord16) s3138) << 8) | ((SWord16) s3145);-  const SWord8  s3147 = table8[s3127];-  const SWord8  s3148 = table9[s3129];-  const SWord8  s3149 = table6[s3132];-  const SWord8  s3150 = table7[s3134];-  const SWord8  s3151 = s3149 ^ s3150;-  const SWord8  s3152 = s3148 ^ s3151;-  const SWord8  s3153 = s3147 ^ s3152;-  const SWord8  s3154 = table7[s3127];-  const SWord8  s3155 = table8[s3129];-  const SWord8  s3156 = table9[s3132];-  const SWord8  s3157 = table6[s3134];-  const SWord8  s3158 = s3156 ^ s3157;-  const SWord8  s3159 = s3155 ^ s3158;-  const SWord8  s3160 = s3154 ^ s3159;-  const SWord16 s3161 = (((SWord16) s3153) << 8) | ((SWord16) s3160);-  const SWord32 s3162 = (((SWord32) s3146) << 16) | ((SWord32) s3161);-  const SWord32 s3163 = s3125 ^ s3162;-  const SWord16 s3164 = (SWord16) (s3163 >> 16);-  const SWord8  s3165 = (SWord8) (s3164 >> 8);-  const SWord8  s3166 = table0[s3165];-  const SWord8  s3167 = (SWord8) (s3014 >> 8);-  const SWord32 s3168 = table1[s3167];-  const SWord16 s3169 = (SWord16) (s3068 >> 16);-  const SWord8  s3170 = (SWord8) s3169;-  const SWord32 s3171 = table3[s3170];-  const SWord32 s3172 = s3168 ^ s3171;-  const SWord8  s3173 = (SWord8) (s3122 >> 8);-  const SWord32 s3174 = table4[s3173];-  const SWord32 s3175 = s3172 ^ s3174;-  const SWord16 s3176 = (SWord16) s2959;-  const SWord8  s3177 = (SWord8) s3176;-  const SWord32 s3178 = table5[s3177];-  const SWord32 s3179 = s3175 ^ s3178;-  const SWord16 s3180 = (SWord16) (s538 >> 16);-  const SWord8  s3181 = (SWord8) (s3180 >> 8);-  const SWord8  s3182 = table6[s3181];-  const SWord8  s3183 = (SWord8) s3180;-  const SWord8  s3184 = table7[s3183];-  const SWord16 s3185 = (SWord16) s538;-  const SWord8  s3186 = (SWord8) (s3185 >> 8);-  const SWord8  s3187 = table8[s3186];-  const SWord8  s3188 = (SWord8) s3185;-  const SWord8  s3189 = table9[s3188];-  const SWord8  s3190 = s3187 ^ s3189;-  const SWord8  s3191 = s3184 ^ s3190;-  const SWord8  s3192 = s3182 ^ s3191;-  const SWord8  s3193 = table9[s3181];-  const SWord8  s3194 = table6[s3183];-  const SWord8  s3195 = table7[s3186];-  const SWord8  s3196 = table8[s3188];-  const SWord8  s3197 = s3195 ^ s3196;-  const SWord8  s3198 = s3194 ^ s3197;-  const SWord8  s3199 = s3193 ^ s3198;-  const SWord16 s3200 = (((SWord16) s3192) << 8) | ((SWord16) s3199);-  const SWord8  s3201 = table8[s3181];-  const SWord8  s3202 = table9[s3183];-  const SWord8  s3203 = table6[s3186];-  const SWord8  s3204 = table7[s3188];-  const SWord8  s3205 = s3203 ^ s3204;-  const SWord8  s3206 = s3202 ^ s3205;-  const SWord8  s3207 = s3201 ^ s3206;-  const SWord8  s3208 = table7[s3181];-  const SWord8  s3209 = table8[s3183];-  const SWord8  s3210 = table9[s3186];-  const SWord8  s3211 = table6[s3188];-  const SWord8  s3212 = s3210 ^ s3211;-  const SWord8  s3213 = s3209 ^ s3212;-  const SWord8  s3214 = s3208 ^ s3213;-  const SWord16 s3215 = (((SWord16) s3207) << 8) | ((SWord16) s3214);-  const SWord32 s3216 = (((SWord32) s3200) << 16) | ((SWord32) s3215);-  const SWord32 s3217 = s3179 ^ s3216;-  const SWord16 s3218 = (SWord16) (s3217 >> 16);-  const SWord8  s3219 = (SWord8) s3218;-  const SWord8  s3220 = table0[s3219];-  const SWord16 s3221 = (((SWord16) s3166) << 8) | ((SWord16) s3220);-  const SWord8  s3222 = (SWord8) (s3169 >> 8);-  const SWord32 s3223 = table1[s3222];-  const SWord16 s3224 = (SWord16) (s3121 >> 16);-  const SWord8  s3225 = (SWord8) s3224;-  const SWord32 s3226 = table3[s3225];-  const SWord32 s3227 = s3223 ^ s3226;-  const SWord8  s3228 = (SWord8) (s3176 >> 8);-  const SWord32 s3229 = table4[s3228];-  const SWord32 s3230 = s3227 ^ s3229;-  const SWord16 s3231 = (SWord16) s3013;-  const SWord8  s3232 = (SWord8) s3231;-  const SWord32 s3233 = table5[s3232];-  const SWord32 s3234 = s3230 ^ s3233;-  const SWord16 s3235 = (SWord16) (s537 >> 16);-  const SWord8  s3236 = (SWord8) (s3235 >> 8);-  const SWord8  s3237 = table6[s3236];-  const SWord8  s3238 = (SWord8) s3235;-  const SWord8  s3239 = table7[s3238];-  const SWord16 s3240 = (SWord16) s537;-  const SWord8  s3241 = (SWord8) (s3240 >> 8);-  const SWord8  s3242 = table8[s3241];-  const SWord8  s3243 = (SWord8) s3240;-  const SWord8  s3244 = table9[s3243];-  const SWord8  s3245 = s3242 ^ s3244;-  const SWord8  s3246 = s3239 ^ s3245;-  const SWord8  s3247 = s3237 ^ s3246;-  const SWord8  s3248 = table9[s3236];-  const SWord8  s3249 = table6[s3238];-  const SWord8  s3250 = table7[s3241];-  const SWord8  s3251 = table8[s3243];-  const SWord8  s3252 = s3250 ^ s3251;-  const SWord8  s3253 = s3249 ^ s3252;-  const SWord8  s3254 = s3248 ^ s3253;-  const SWord16 s3255 = (((SWord16) s3247) << 8) | ((SWord16) s3254);-  const SWord8  s3256 = table8[s3236];-  const SWord8  s3257 = table9[s3238];-  const SWord8  s3258 = table6[s3241];-  const SWord8  s3259 = table7[s3243];-  const SWord8  s3260 = s3258 ^ s3259;-  const SWord8  s3261 = s3257 ^ s3260;-  const SWord8  s3262 = s3256 ^ s3261;-  const SWord8  s3263 = table7[s3236];-  const SWord8  s3264 = table8[s3238];-  const SWord8  s3265 = table9[s3241];-  const SWord8  s3266 = table6[s3243];-  const SWord8  s3267 = s3265 ^ s3266;-  const SWord8  s3268 = s3264 ^ s3267;-  const SWord8  s3269 = s3263 ^ s3268;-  const SWord16 s3270 = (((SWord16) s3262) << 8) | ((SWord16) s3269);-  const SWord32 s3271 = (((SWord32) s3255) << 16) | ((SWord32) s3270);-  const SWord32 s3272 = s3234 ^ s3271;-  const SWord16 s3273 = (SWord16) s3272;-  const SWord8  s3274 = (SWord8) (s3273 >> 8);-  const SWord8  s3275 = table0[s3274];-  const SWord8  s3276 = (SWord8) (s3224 >> 8);-  const SWord32 s3277 = table1[s3276];-  const SWord8  s3278 = (SWord8) s2960;-  const SWord32 s3279 = table3[s3278];-  const SWord32 s3280 = s3277 ^ s3279;-  const SWord8  s3281 = (SWord8) (s3231 >> 8);-  const SWord32 s3282 = table4[s3281];-  const SWord32 s3283 = s3280 ^ s3282;-  const SWord8  s3284 = (SWord8) s3069;-  const SWord32 s3285 = table5[s3284];-  const SWord32 s3286 = s3283 ^ s3285;-  const SWord16 s3287 = (SWord16) (s536 >> 16);-  const SWord8  s3288 = (SWord8) (s3287 >> 8);-  const SWord8  s3289 = table6[s3288];-  const SWord8  s3290 = (SWord8) s3287;-  const SWord8  s3291 = table7[s3290];-  const SWord16 s3292 = (SWord16) s536;-  const SWord8  s3293 = (SWord8) (s3292 >> 8);-  const SWord8  s3294 = table8[s3293];-  const SWord8  s3295 = (SWord8) s3292;-  const SWord8  s3296 = table9[s3295];-  const SWord8  s3297 = s3294 ^ s3296;-  const SWord8  s3298 = s3291 ^ s3297;-  const SWord8  s3299 = s3289 ^ s3298;-  const SWord8  s3300 = table9[s3288];-  const SWord8  s3301 = table6[s3290];-  const SWord8  s3302 = table7[s3293];-  const SWord8  s3303 = table8[s3295];-  const SWord8  s3304 = s3302 ^ s3303;-  const SWord8  s3305 = s3301 ^ s3304;-  const SWord8  s3306 = s3300 ^ s3305;-  const SWord16 s3307 = (((SWord16) s3299) << 8) | ((SWord16) s3306);-  const SWord8  s3308 = table8[s3288];-  const SWord8  s3309 = table9[s3290];-  const SWord8  s3310 = table6[s3293];-  const SWord8  s3311 = table7[s3295];-  const SWord8  s3312 = s3310 ^ s3311;-  const SWord8  s3313 = s3309 ^ s3312;-  const SWord8  s3314 = s3308 ^ s3313;-  const SWord8  s3315 = table7[s3288];-  const SWord8  s3316 = table8[s3290];-  const SWord8  s3317 = table9[s3293];-  const SWord8  s3318 = table6[s3295];-  const SWord8  s3319 = s3317 ^ s3318;-  const SWord8  s3320 = s3316 ^ s3319;-  const SWord8  s3321 = s3315 ^ s3320;-  const SWord16 s3322 = (((SWord16) s3314) << 8) | ((SWord16) s3321);-  const SWord32 s3323 = (((SWord32) s3307) << 16) | ((SWord32) s3322);-  const SWord32 s3324 = s3286 ^ s3323;-  const SWord16 s3325 = (SWord16) s3324;-  const SWord8  s3326 = (SWord8) s3325;-  const SWord8  s3327 = table0[s3326];-  const SWord16 s3328 = (((SWord16) s3275) << 8) | ((SWord16) s3327);-  const SWord32 s3329 = (((SWord32) s3221) << 16) | ((SWord32) s3328);-  const SWord32 s3330 = s4 ^ s3329;-  const SWord16 s3331 = (SWord16) (s3324 >> 16);-  const SWord8  s3332 = (SWord8) (s3331 >> 8);-  const SWord8  s3333 = table0[s3332];-  const SWord8  s3334 = (SWord8) s3164;-  const SWord8  s3335 = table0[s3334];-  const SWord16 s3336 = (((SWord16) s3333) << 8) | ((SWord16) s3335);-  const SWord16 s3337 = (SWord16) s3217;-  const SWord8  s3338 = (SWord8) (s3337 >> 8);-  const SWord8  s3339 = table0[s3338];-  const SWord8  s3340 = (SWord8) s3273;-  const SWord8  s3341 = table0[s3340];-  const SWord16 s3342 = (((SWord16) s3339) << 8) | ((SWord16) s3341);-  const SWord32 s3343 = (((SWord32) s3336) << 16) | ((SWord32) s3342);-  const SWord32 s3344 = s5 ^ s3343;-  const SWord16 s3345 = (SWord16) (s3272 >> 16);-  const SWord8  s3346 = (SWord8) (s3345 >> 8);-  const SWord8  s3347 = table0[s3346];-  const SWord8  s3348 = (SWord8) s3331;-  const SWord8  s3349 = table0[s3348];-  const SWord16 s3350 = (((SWord16) s3347) << 8) | ((SWord16) s3349);-  const SWord16 s3351 = (SWord16) s3163;-  const SWord8  s3352 = (SWord8) (s3351 >> 8);-  const SWord8  s3353 = table0[s3352];-  const SWord8  s3354 = (SWord8) s3337;-  const SWord8  s3355 = table0[s3354];-  const SWord16 s3356 = (((SWord16) s3353) << 8) | ((SWord16) s3355);-  const SWord32 s3357 = (((SWord32) s3350) << 16) | ((SWord32) s3356);-  const SWord32 s3358 = s6 ^ s3357;-  const SWord8  s3359 = (SWord8) (s3218 >> 8);-  const SWord8  s3360 = table0[s3359];-  const SWord8  s3361 = (SWord8) s3345;-  const SWord8  s3362 = table0[s3361];-  const SWord16 s3363 = (((SWord16) s3360) << 8) | ((SWord16) s3362);-  const SWord8  s3364 = (SWord8) (s3325 >> 8);-  const SWord8  s3365 = table0[s3364];-  const SWord8  s3366 = (SWord8) s3351;-  const SWord8  s3367 = table0[s3366];-  const SWord16 s3368 = (((SWord16) s3365) << 8) | ((SWord16) s3367);-  const SWord32 s3369 = (((SWord32) s3363) << 16) | ((SWord32) s3368);-  const SWord32 s3370 = s7 ^ s3369;--  ct[0] = s3330;-  ct[1] = s3344;-  ct[2] = s3358;-  ct[3] = s3370;+    printf("  pt[%1d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);++  const SWord32 key[4] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array key:\n");+  int key_ctr;+  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)+    printf("  key[%1d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);++  SWord32 ct[4];++  aes128Dec(pt, key, ct);++  printf("aes128Dec(pt, key, ct) ->\n");+  int ct_ctr;+  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)+    printf("  ct[%1d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);++  return 0;+}+== END: "aes128Dec_driver.c" ==================+== BEGIN: "aes128Dec.c" ================+/* File: "aes128Dec.c". Automatically generated by SBV. Do not edit! */++#include "aes128Dec.h"++void aes128Dec(const SWord32 *pt, const SWord32 *key, SWord32 *ct)+{+  const SWord32 s0 = pt[0];+  const SWord32 s1 = pt[1];+  const SWord32 s2 = pt[2];+  const SWord32 s3 = pt[3];+  const SWord32 s4 = key[0];+  const SWord32 s5 = key[1];+  const SWord32 s6 = key[2];+  const SWord32 s7 = key[3];+  static const SWord8 table0[] = {+       82,   9, 106, 213,  48,  54, 165,  56, 191,  64, 163, 158, 129,+      243, 215, 251, 124, 227,  57, 130, 155,  47, 255, 135,  52, 142,+       67,  68, 196, 222, 233, 203,  84, 123, 148,  50, 166, 194,  35,+       61, 238,  76, 149,  11,  66, 250, 195,  78,   8,  46, 161, 102,+       40, 217,  36, 178, 118,  91, 162,  73, 109, 139, 209,  37, 114,+      248, 246, 100, 134, 104, 152,  22, 212, 164,  92, 204,  93, 101,+      182, 146, 108, 112,  72,  80, 253, 237, 185, 218,  94,  21,  70,+       87, 167, 141, 157, 132, 144, 216, 171,   0, 140, 188, 211,  10,+      247, 228,  88,   5, 184, 179,  69,   6, 208,  44,  30, 143, 202,+       63,  15,   2, 193, 175, 189,   3,   1,  19, 138, 107,  58, 145,+       17,  65,  79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230,+      115, 150, 172, 116,  34, 231, 173,  53, 133, 226, 249,  55, 232,+       28, 117, 223, 110,  71, 241,  26, 113,  29,  41, 197, 137, 111,+      183,  98,  14, 170,  24, 190,  27, 252,  86,  62,  75, 198, 210,+      121,  32, 154, 219, 192, 254, 120, 205,  90, 244,  31, 221, 168,+       51, 136,   7, 199,  49, 177,  18,  16,  89,  39, 128, 236,  95,+       96,  81, 127, 169,  25, 181,  74,  13,  45, 229, 122, 159, 147,+      201, 156, 239, 160, 224,  59,  77, 174,  42, 245, 176, 200, 235,+      187,  60, 131,  83, 153,  97,  23,  43,   4, 126, 186, 119, 214,+       38, 225, 105,  20,  99,  85,  33,  12, 125+  };+  static const SWord32 table1[] = {+      0x51f4a750UL, 0x7e416553UL, 0x1a17a4c3UL, 0x3a275e96UL,+      0x3bab6bcbUL, 0x1f9d45f1UL, 0xacfa58abUL, 0x4be30393UL,+      0x2030fa55UL, 0xad766df6UL, 0x88cc7691UL, 0xf5024c25UL,+      0x4fe5d7fcUL, 0xc52acbd7UL, 0x26354480UL, 0xb562a38fUL,+      0xdeb15a49UL, 0x25ba1b67UL, 0x45ea0e98UL, 0x5dfec0e1UL,+      0xc32f7502UL, 0x814cf012UL, 0x8d4697a3UL, 0x6bd3f9c6UL,+      0x038f5fe7UL, 0x15929c95UL, 0xbf6d7aebUL, 0x955259daUL,+      0xd4be832dUL, 0x587421d3UL, 0x49e06929UL, 0x8ec9c844UL,+      0x75c2896aUL, 0xf48e7978UL, 0x99583e6bUL, 0x27b971ddUL,+      0xbee14fb6UL, 0xf088ad17UL, 0xc920ac66UL, 0x7dce3ab4UL,+      0x63df4a18UL, 0xe51a3182UL, 0x97513360UL, 0x62537f45UL,+      0xb16477e0UL, 0xbb6bae84UL, 0xfe81a01cUL, 0xf9082b94UL,+      0x70486858UL, 0x8f45fd19UL, 0x94de6c87UL, 0x527bf8b7UL,+      0xab73d323UL, 0x724b02e2UL, 0xe31f8f57UL, 0x6655ab2aUL,+      0xb2eb2807UL, 0x2fb5c203UL, 0x86c57b9aUL, 0xd33708a5UL,+      0x302887f2UL, 0x23bfa5b2UL, 0x02036abaUL, 0xed16825cUL,+      0x8acf1c2bUL, 0xa779b492UL, 0xf307f2f0UL, 0x4e69e2a1UL,+      0x65daf4cdUL, 0x0605bed5UL, 0xd134621fUL, 0xc4a6fe8aUL,+      0x342e539dUL, 0xa2f355a0UL, 0x058ae132UL, 0xa4f6eb75UL,+      0x0b83ec39UL, 0x4060efaaUL, 0x5e719f06UL, 0xbd6e1051UL,+      0x3e218af9UL, 0x96dd063dUL, 0xdd3e05aeUL, 0x4de6bd46UL,+      0x91548db5UL, 0x71c45d05UL, 0x0406d46fUL, 0x605015ffUL,+      0x1998fb24UL, 0xd6bde997UL, 0x894043ccUL, 0x67d99e77UL,+      0xb0e842bdUL, 0x07898b88UL, 0xe7195b38UL, 0x79c8eedbUL,+      0xa17c0a47UL, 0x7c420fe9UL, 0xf8841ec9UL, 0x00000000UL,+      0x09808683UL, 0x322bed48UL, 0x1e1170acUL, 0x6c5a724eUL,+      0xfd0efffbUL, 0x0f853856UL, 0x3daed51eUL, 0x362d3927UL,+      0x0a0fd964UL, 0x685ca621UL, 0x9b5b54d1UL, 0x24362e3aUL,+      0x0c0a67b1UL, 0x9357e70fUL, 0xb4ee96d2UL, 0x1b9b919eUL,+      0x80c0c54fUL, 0x61dc20a2UL, 0x5a774b69UL, 0x1c121a16UL,+      0xe293ba0aUL, 0xc0a02ae5UL, 0x3c22e043UL, 0x121b171dUL,+      0x0e090d0bUL, 0xf28bc7adUL, 0x2db6a8b9UL, 0x141ea9c8UL,+      0x57f11985UL, 0xaf75074cUL, 0xee99ddbbUL, 0xa37f60fdUL,+      0xf701269fUL, 0x5c72f5bcUL, 0x44663bc5UL, 0x5bfb7e34UL,+      0x8b432976UL, 0xcb23c6dcUL, 0xb6edfc68UL, 0xb8e4f163UL,+      0xd731dccaUL, 0x42638510UL, 0x13972240UL, 0x84c61120UL,+      0x854a247dUL, 0xd2bb3df8UL, 0xaef93211UL, 0xc729a16dUL,+      0x1d9e2f4bUL, 0xdcb230f3UL, 0x0d8652ecUL, 0x77c1e3d0UL,+      0x2bb3166cUL, 0xa970b999UL, 0x119448faUL, 0x47e96422UL,+      0xa8fc8cc4UL, 0xa0f03f1aUL, 0x567d2cd8UL, 0x223390efUL,+      0x87494ec7UL, 0xd938d1c1UL, 0x8ccaa2feUL, 0x98d40b36UL,+      0xa6f581cfUL, 0xa57ade28UL, 0xdab78e26UL, 0x3fadbfa4UL,+      0x2c3a9de4UL, 0x5078920dUL, 0x6a5fcc9bUL, 0x547e4662UL,+      0xf68d13c2UL, 0x90d8b8e8UL, 0x2e39f75eUL, 0x82c3aff5UL,+      0x9f5d80beUL, 0x69d0937cUL, 0x6fd52da9UL, 0xcf2512b3UL,+      0xc8ac993bUL, 0x10187da7UL, 0xe89c636eUL, 0xdb3bbb7bUL,+      0xcd267809UL, 0x6e5918f4UL, 0xec9ab701UL, 0x834f9aa8UL,+      0xe6956e65UL, 0xaaffe67eUL, 0x21bccf08UL, 0xef15e8e6UL,+      0xbae79bd9UL, 0x4a6f36ceUL, 0xea9f09d4UL, 0x29b07cd6UL,+      0x31a4b2afUL, 0x2a3f2331UL, 0xc6a59430UL, 0x35a266c0UL,+      0x744ebc37UL, 0xfc82caa6UL, 0xe090d0b0UL, 0x33a7d815UL,+      0xf104984aUL, 0x41ecdaf7UL, 0x7fcd500eUL, 0x1791f62fUL,+      0x764dd68dUL, 0x43efb04dUL, 0xccaa4d54UL, 0xe49604dfUL,+      0x9ed1b5e3UL, 0x4c6a881bUL, 0xc12c1fb8UL, 0x4665517fUL,+      0x9d5eea04UL, 0x018c355dUL, 0xfa877473UL, 0xfb0b412eUL,+      0xb3671d5aUL, 0x92dbd252UL, 0xe9105633UL, 0x6dd64713UL,+      0x9ad7618cUL, 0x37a10c7aUL, 0x59f8148eUL, 0xeb133c89UL,+      0xcea927eeUL, 0xb761c935UL, 0xe11ce5edUL, 0x7a47b13cUL,+      0x9cd2df59UL, 0x55f2733fUL, 0x1814ce79UL, 0x73c737bfUL,+      0x53f7cdeaUL, 0x5ffdaa5bUL, 0xdf3d6f14UL, 0x7844db86UL,+      0xcaaff381UL, 0xb968c43eUL, 0x3824342cUL, 0xc2a3405fUL,+      0x161dc372UL, 0xbce2250cUL, 0x283c498bUL, 0xff0d9541UL,+      0x39a80171UL, 0x080cb3deUL, 0xd8b4e49cUL, 0x6456c190UL,+      0x7bcb8461UL, 0xd532b670UL, 0x486c5c74UL, 0xd0b85742UL+  };+  static const SWord8 table2[] = {+       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,+      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,+      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,+      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,+       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,+      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,+       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,+       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,+       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,+      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,+       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,+      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,+      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,+      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,+       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,+       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,+      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,+      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,+      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,+      104,  65, 153,  45,  15, 176,  84, 187,  22+  };+  static const SWord32 table3[] = {+      0x5051f4a7UL, 0x537e4165UL, 0xc31a17a4UL, 0x963a275eUL,+      0xcb3bab6bUL, 0xf11f9d45UL, 0xabacfa58UL, 0x934be303UL,+      0x552030faUL, 0xf6ad766dUL, 0x9188cc76UL, 0x25f5024cUL,+      0xfc4fe5d7UL, 0xd7c52acbUL, 0x80263544UL, 0x8fb562a3UL,+      0x49deb15aUL, 0x6725ba1bUL, 0x9845ea0eUL, 0xe15dfec0UL,+      0x02c32f75UL, 0x12814cf0UL, 0xa38d4697UL, 0xc66bd3f9UL,+      0xe7038f5fUL, 0x9515929cUL, 0xebbf6d7aUL, 0xda955259UL,+      0x2dd4be83UL, 0xd3587421UL, 0x2949e069UL, 0x448ec9c8UL,+      0x6a75c289UL, 0x78f48e79UL, 0x6b99583eUL, 0xdd27b971UL,+      0xb6bee14fUL, 0x17f088adUL, 0x66c920acUL, 0xb47dce3aUL,+      0x1863df4aUL, 0x82e51a31UL, 0x60975133UL, 0x4562537fUL,+      0xe0b16477UL, 0x84bb6baeUL, 0x1cfe81a0UL, 0x94f9082bUL,+      0x58704868UL, 0x198f45fdUL, 0x8794de6cUL, 0xb7527bf8UL,+      0x23ab73d3UL, 0xe2724b02UL, 0x57e31f8fUL, 0x2a6655abUL,+      0x07b2eb28UL, 0x032fb5c2UL, 0x9a86c57bUL, 0xa5d33708UL,+      0xf2302887UL, 0xb223bfa5UL, 0xba02036aUL, 0x5ced1682UL,+      0x2b8acf1cUL, 0x92a779b4UL, 0xf0f307f2UL, 0xa14e69e2UL,+      0xcd65daf4UL, 0xd50605beUL, 0x1fd13462UL, 0x8ac4a6feUL,+      0x9d342e53UL, 0xa0a2f355UL, 0x32058ae1UL, 0x75a4f6ebUL,+      0x390b83ecUL, 0xaa4060efUL, 0x065e719fUL, 0x51bd6e10UL,+      0xf93e218aUL, 0x3d96dd06UL, 0xaedd3e05UL, 0x464de6bdUL,+      0xb591548dUL, 0x0571c45dUL, 0x6f0406d4UL, 0xff605015UL,+      0x241998fbUL, 0x97d6bde9UL, 0xcc894043UL, 0x7767d99eUL,+      0xbdb0e842UL, 0x8807898bUL, 0x38e7195bUL, 0xdb79c8eeUL,+      0x47a17c0aUL, 0xe97c420fUL, 0xc9f8841eUL, 0x00000000UL,+      0x83098086UL, 0x48322bedUL, 0xac1e1170UL, 0x4e6c5a72UL,+      0xfbfd0effUL, 0x560f8538UL, 0x1e3daed5UL, 0x27362d39UL,+      0x640a0fd9UL, 0x21685ca6UL, 0xd19b5b54UL, 0x3a24362eUL,+      0xb10c0a67UL, 0x0f9357e7UL, 0xd2b4ee96UL, 0x9e1b9b91UL,+      0x4f80c0c5UL, 0xa261dc20UL, 0x695a774bUL, 0x161c121aUL,+      0x0ae293baUL, 0xe5c0a02aUL, 0x433c22e0UL, 0x1d121b17UL,+      0x0b0e090dUL, 0xadf28bc7UL, 0xb92db6a8UL, 0xc8141ea9UL,+      0x8557f119UL, 0x4caf7507UL, 0xbbee99ddUL, 0xfda37f60UL,+      0x9ff70126UL, 0xbc5c72f5UL, 0xc544663bUL, 0x345bfb7eUL,+      0x768b4329UL, 0xdccb23c6UL, 0x68b6edfcUL, 0x63b8e4f1UL,+      0xcad731dcUL, 0x10426385UL, 0x40139722UL, 0x2084c611UL,+      0x7d854a24UL, 0xf8d2bb3dUL, 0x11aef932UL, 0x6dc729a1UL,+      0x4b1d9e2fUL, 0xf3dcb230UL, 0xec0d8652UL, 0xd077c1e3UL,+      0x6c2bb316UL, 0x99a970b9UL, 0xfa119448UL, 0x2247e964UL,+      0xc4a8fc8cUL, 0x1aa0f03fUL, 0xd8567d2cUL, 0xef223390UL,+      0xc787494eUL, 0xc1d938d1UL, 0xfe8ccaa2UL, 0x3698d40bUL,+      0xcfa6f581UL, 0x28a57adeUL, 0x26dab78eUL, 0xa43fadbfUL,+      0xe42c3a9dUL, 0x0d507892UL, 0x9b6a5fccUL, 0x62547e46UL,+      0xc2f68d13UL, 0xe890d8b8UL, 0x5e2e39f7UL, 0xf582c3afUL,+      0xbe9f5d80UL, 0x7c69d093UL, 0xa96fd52dUL, 0xb3cf2512UL,+      0x3bc8ac99UL, 0xa710187dUL, 0x6ee89c63UL, 0x7bdb3bbbUL,+      0x09cd2678UL, 0xf46e5918UL, 0x01ec9ab7UL, 0xa8834f9aUL,+      0x65e6956eUL, 0x7eaaffe6UL, 0x0821bccfUL, 0xe6ef15e8UL,+      0xd9bae79bUL, 0xce4a6f36UL, 0xd4ea9f09UL, 0xd629b07cUL,+      0xaf31a4b2UL, 0x312a3f23UL, 0x30c6a594UL, 0xc035a266UL,+      0x37744ebcUL, 0xa6fc82caUL, 0xb0e090d0UL, 0x1533a7d8UL,+      0x4af10498UL, 0xf741ecdaUL, 0x0e7fcd50UL, 0x2f1791f6UL,+      0x8d764dd6UL, 0x4d43efb0UL, 0x54ccaa4dUL, 0xdfe49604UL,+      0xe39ed1b5UL, 0x1b4c6a88UL, 0xb8c12c1fUL, 0x7f466551UL,+      0x049d5eeaUL, 0x5d018c35UL, 0x73fa8774UL, 0x2efb0b41UL,+      0x5ab3671dUL, 0x5292dbd2UL, 0x33e91056UL, 0x136dd647UL,+      0x8c9ad761UL, 0x7a37a10cUL, 0x8e59f814UL, 0x89eb133cUL,+      0xeecea927UL, 0x35b761c9UL, 0xede11ce5UL, 0x3c7a47b1UL,+      0x599cd2dfUL, 0x3f55f273UL, 0x791814ceUL, 0xbf73c737UL,+      0xea53f7cdUL, 0x5b5ffdaaUL, 0x14df3d6fUL, 0x867844dbUL,+      0x81caaff3UL, 0x3eb968c4UL, 0x2c382434UL, 0x5fc2a340UL,+      0x72161dc3UL, 0x0cbce225UL, 0x8b283c49UL, 0x41ff0d95UL,+      0x7139a801UL, 0xde080cb3UL, 0x9cd8b4e4UL, 0x906456c1UL,+      0x617bcb84UL, 0x70d532b6UL, 0x74486c5cUL, 0x42d0b857UL+  };+  static const SWord32 table4[] = {+      0xa75051f4UL, 0x65537e41UL, 0xa4c31a17UL, 0x5e963a27UL,+      0x6bcb3babUL, 0x45f11f9dUL, 0x58abacfaUL, 0x03934be3UL,+      0xfa552030UL, 0x6df6ad76UL, 0x769188ccUL, 0x4c25f502UL,+      0xd7fc4fe5UL, 0xcbd7c52aUL, 0x44802635UL, 0xa38fb562UL,+      0x5a49deb1UL, 0x1b6725baUL, 0x0e9845eaUL, 0xc0e15dfeUL,+      0x7502c32fUL, 0xf012814cUL, 0x97a38d46UL, 0xf9c66bd3UL,+      0x5fe7038fUL, 0x9c951592UL, 0x7aebbf6dUL, 0x59da9552UL,+      0x832dd4beUL, 0x21d35874UL, 0x692949e0UL, 0xc8448ec9UL,+      0x896a75c2UL, 0x7978f48eUL, 0x3e6b9958UL, 0x71dd27b9UL,+      0x4fb6bee1UL, 0xad17f088UL, 0xac66c920UL, 0x3ab47dceUL,+      0x4a1863dfUL, 0x3182e51aUL, 0x33609751UL, 0x7f456253UL,+      0x77e0b164UL, 0xae84bb6bUL, 0xa01cfe81UL, 0x2b94f908UL,+      0x68587048UL, 0xfd198f45UL, 0x6c8794deUL, 0xf8b7527bUL,+      0xd323ab73UL, 0x02e2724bUL, 0x8f57e31fUL, 0xab2a6655UL,+      0x2807b2ebUL, 0xc2032fb5UL, 0x7b9a86c5UL, 0x08a5d337UL,+      0x87f23028UL, 0xa5b223bfUL, 0x6aba0203UL, 0x825ced16UL,+      0x1c2b8acfUL, 0xb492a779UL, 0xf2f0f307UL, 0xe2a14e69UL,+      0xf4cd65daUL, 0xbed50605UL, 0x621fd134UL, 0xfe8ac4a6UL,+      0x539d342eUL, 0x55a0a2f3UL, 0xe132058aUL, 0xeb75a4f6UL,+      0xec390b83UL, 0xefaa4060UL, 0x9f065e71UL, 0x1051bd6eUL,+      0x8af93e21UL, 0x063d96ddUL, 0x05aedd3eUL, 0xbd464de6UL,+      0x8db59154UL, 0x5d0571c4UL, 0xd46f0406UL, 0x15ff6050UL,+      0xfb241998UL, 0xe997d6bdUL, 0x43cc8940UL, 0x9e7767d9UL,+      0x42bdb0e8UL, 0x8b880789UL, 0x5b38e719UL, 0xeedb79c8UL,+      0x0a47a17cUL, 0x0fe97c42UL, 0x1ec9f884UL, 0x00000000UL,+      0x86830980UL, 0xed48322bUL, 0x70ac1e11UL, 0x724e6c5aUL,+      0xfffbfd0eUL, 0x38560f85UL, 0xd51e3daeUL, 0x3927362dUL,+      0xd9640a0fUL, 0xa621685cUL, 0x54d19b5bUL, 0x2e3a2436UL,+      0x67b10c0aUL, 0xe70f9357UL, 0x96d2b4eeUL, 0x919e1b9bUL,+      0xc54f80c0UL, 0x20a261dcUL, 0x4b695a77UL, 0x1a161c12UL,+      0xba0ae293UL, 0x2ae5c0a0UL, 0xe0433c22UL, 0x171d121bUL,+      0x0d0b0e09UL, 0xc7adf28bUL, 0xa8b92db6UL, 0xa9c8141eUL,+      0x198557f1UL, 0x074caf75UL, 0xddbbee99UL, 0x60fda37fUL,+      0x269ff701UL, 0xf5bc5c72UL, 0x3bc54466UL, 0x7e345bfbUL,+      0x29768b43UL, 0xc6dccb23UL, 0xfc68b6edUL, 0xf163b8e4UL,+      0xdccad731UL, 0x85104263UL, 0x22401397UL, 0x112084c6UL,+      0x247d854aUL, 0x3df8d2bbUL, 0x3211aef9UL, 0xa16dc729UL,+      0x2f4b1d9eUL, 0x30f3dcb2UL, 0x52ec0d86UL, 0xe3d077c1UL,+      0x166c2bb3UL, 0xb999a970UL, 0x48fa1194UL, 0x642247e9UL,+      0x8cc4a8fcUL, 0x3f1aa0f0UL, 0x2cd8567dUL, 0x90ef2233UL,+      0x4ec78749UL, 0xd1c1d938UL, 0xa2fe8ccaUL, 0x0b3698d4UL,+      0x81cfa6f5UL, 0xde28a57aUL, 0x8e26dab7UL, 0xbfa43fadUL,+      0x9de42c3aUL, 0x920d5078UL, 0xcc9b6a5fUL, 0x4662547eUL,+      0x13c2f68dUL, 0xb8e890d8UL, 0xf75e2e39UL, 0xaff582c3UL,+      0x80be9f5dUL, 0x937c69d0UL, 0x2da96fd5UL, 0x12b3cf25UL,+      0x993bc8acUL, 0x7da71018UL, 0x636ee89cUL, 0xbb7bdb3bUL,+      0x7809cd26UL, 0x18f46e59UL, 0xb701ec9aUL, 0x9aa8834fUL,+      0x6e65e695UL, 0xe67eaaffUL, 0xcf0821bcUL, 0xe8e6ef15UL,+      0x9bd9bae7UL, 0x36ce4a6fUL, 0x09d4ea9fUL, 0x7cd629b0UL,+      0xb2af31a4UL, 0x23312a3fUL, 0x9430c6a5UL, 0x66c035a2UL,+      0xbc37744eUL, 0xcaa6fc82UL, 0xd0b0e090UL, 0xd81533a7UL,+      0x984af104UL, 0xdaf741ecUL, 0x500e7fcdUL, 0xf62f1791UL,+      0xd68d764dUL, 0xb04d43efUL, 0x4d54ccaaUL, 0x04dfe496UL,+      0xb5e39ed1UL, 0x881b4c6aUL, 0x1fb8c12cUL, 0x517f4665UL,+      0xea049d5eUL, 0x355d018cUL, 0x7473fa87UL, 0x412efb0bUL,+      0x1d5ab367UL, 0xd25292dbUL, 0x5633e910UL, 0x47136dd6UL,+      0x618c9ad7UL, 0x0c7a37a1UL, 0x148e59f8UL, 0x3c89eb13UL,+      0x27eecea9UL, 0xc935b761UL, 0xe5ede11cUL, 0xb13c7a47UL,+      0xdf599cd2UL, 0x733f55f2UL, 0xce791814UL, 0x37bf73c7UL,+      0xcdea53f7UL, 0xaa5b5ffdUL, 0x6f14df3dUL, 0xdb867844UL,+      0xf381caafUL, 0xc43eb968UL, 0x342c3824UL, 0x405fc2a3UL,+      0xc372161dUL, 0x250cbce2UL, 0x498b283cUL, 0x9541ff0dUL,+      0x017139a8UL, 0xb3de080cUL, 0xe49cd8b4UL, 0xc1906456UL,+      0x84617bcbUL, 0xb670d532UL, 0x5c74486cUL, 0x5742d0b8UL+  };+  static const SWord32 table5[] = {+      0xf4a75051UL, 0x4165537eUL, 0x17a4c31aUL, 0x275e963aUL,+      0xab6bcb3bUL, 0x9d45f11fUL, 0xfa58abacUL, 0xe303934bUL,+      0x30fa5520UL, 0x766df6adUL, 0xcc769188UL, 0x024c25f5UL,+      0xe5d7fc4fUL, 0x2acbd7c5UL, 0x35448026UL, 0x62a38fb5UL,+      0xb15a49deUL, 0xba1b6725UL, 0xea0e9845UL, 0xfec0e15dUL,+      0x2f7502c3UL, 0x4cf01281UL, 0x4697a38dUL, 0xd3f9c66bUL,+      0x8f5fe703UL, 0x929c9515UL, 0x6d7aebbfUL, 0x5259da95UL,+      0xbe832dd4UL, 0x7421d358UL, 0xe0692949UL, 0xc9c8448eUL,+      0xc2896a75UL, 0x8e7978f4UL, 0x583e6b99UL, 0xb971dd27UL,+      0xe14fb6beUL, 0x88ad17f0UL, 0x20ac66c9UL, 0xce3ab47dUL,+      0xdf4a1863UL, 0x1a3182e5UL, 0x51336097UL, 0x537f4562UL,+      0x6477e0b1UL, 0x6bae84bbUL, 0x81a01cfeUL, 0x082b94f9UL,+      0x48685870UL, 0x45fd198fUL, 0xde6c8794UL, 0x7bf8b752UL,+      0x73d323abUL, 0x4b02e272UL, 0x1f8f57e3UL, 0x55ab2a66UL,+      0xeb2807b2UL, 0xb5c2032fUL, 0xc57b9a86UL, 0x3708a5d3UL,+      0x2887f230UL, 0xbfa5b223UL, 0x036aba02UL, 0x16825cedUL,+      0xcf1c2b8aUL, 0x79b492a7UL, 0x07f2f0f3UL, 0x69e2a14eUL,+      0xdaf4cd65UL, 0x05bed506UL, 0x34621fd1UL, 0xa6fe8ac4UL,+      0x2e539d34UL, 0xf355a0a2UL, 0x8ae13205UL, 0xf6eb75a4UL,+      0x83ec390bUL, 0x60efaa40UL, 0x719f065eUL, 0x6e1051bdUL,+      0x218af93eUL, 0xdd063d96UL, 0x3e05aeddUL, 0xe6bd464dUL,+      0x548db591UL, 0xc45d0571UL, 0x06d46f04UL, 0x5015ff60UL,+      0x98fb2419UL, 0xbde997d6UL, 0x4043cc89UL, 0xd99e7767UL,+      0xe842bdb0UL, 0x898b8807UL, 0x195b38e7UL, 0xc8eedb79UL,+      0x7c0a47a1UL, 0x420fe97cUL, 0x841ec9f8UL, 0x00000000UL,+      0x80868309UL, 0x2bed4832UL, 0x1170ac1eUL, 0x5a724e6cUL,+      0x0efffbfdUL, 0x8538560fUL, 0xaed51e3dUL, 0x2d392736UL,+      0x0fd9640aUL, 0x5ca62168UL, 0x5b54d19bUL, 0x362e3a24UL,+      0x0a67b10cUL, 0x57e70f93UL, 0xee96d2b4UL, 0x9b919e1bUL,+      0xc0c54f80UL, 0xdc20a261UL, 0x774b695aUL, 0x121a161cUL,+      0x93ba0ae2UL, 0xa02ae5c0UL, 0x22e0433cUL, 0x1b171d12UL,+      0x090d0b0eUL, 0x8bc7adf2UL, 0xb6a8b92dUL, 0x1ea9c814UL,+      0xf1198557UL, 0x75074cafUL, 0x99ddbbeeUL, 0x7f60fda3UL,+      0x01269ff7UL, 0x72f5bc5cUL, 0x663bc544UL, 0xfb7e345bUL,+      0x4329768bUL, 0x23c6dccbUL, 0xedfc68b6UL, 0xe4f163b8UL,+      0x31dccad7UL, 0x63851042UL, 0x97224013UL, 0xc6112084UL,+      0x4a247d85UL, 0xbb3df8d2UL, 0xf93211aeUL, 0x29a16dc7UL,+      0x9e2f4b1dUL, 0xb230f3dcUL, 0x8652ec0dUL, 0xc1e3d077UL,+      0xb3166c2bUL, 0x70b999a9UL, 0x9448fa11UL, 0xe9642247UL,+      0xfc8cc4a8UL, 0xf03f1aa0UL, 0x7d2cd856UL, 0x3390ef22UL,+      0x494ec787UL, 0x38d1c1d9UL, 0xcaa2fe8cUL, 0xd40b3698UL,+      0xf581cfa6UL, 0x7ade28a5UL, 0xb78e26daUL, 0xadbfa43fUL,+      0x3a9de42cUL, 0x78920d50UL, 0x5fcc9b6aUL, 0x7e466254UL,+      0x8d13c2f6UL, 0xd8b8e890UL, 0x39f75e2eUL, 0xc3aff582UL,+      0x5d80be9fUL, 0xd0937c69UL, 0xd52da96fUL, 0x2512b3cfUL,+      0xac993bc8UL, 0x187da710UL, 0x9c636ee8UL, 0x3bbb7bdbUL,+      0x267809cdUL, 0x5918f46eUL, 0x9ab701ecUL, 0x4f9aa883UL,+      0x956e65e6UL, 0xffe67eaaUL, 0xbccf0821UL, 0x15e8e6efUL,+      0xe79bd9baUL, 0x6f36ce4aUL, 0x9f09d4eaUL, 0xb07cd629UL,+      0xa4b2af31UL, 0x3f23312aUL, 0xa59430c6UL, 0xa266c035UL,+      0x4ebc3774UL, 0x82caa6fcUL, 0x90d0b0e0UL, 0xa7d81533UL,+      0x04984af1UL, 0xecdaf741UL, 0xcd500e7fUL, 0x91f62f17UL,+      0x4dd68d76UL, 0xefb04d43UL, 0xaa4d54ccUL, 0x9604dfe4UL,+      0xd1b5e39eUL, 0x6a881b4cUL, 0x2c1fb8c1UL, 0x65517f46UL,+      0x5eea049dUL, 0x8c355d01UL, 0x877473faUL, 0x0b412efbUL,+      0x671d5ab3UL, 0xdbd25292UL, 0x105633e9UL, 0xd647136dUL,+      0xd7618c9aUL, 0xa10c7a37UL, 0xf8148e59UL, 0x133c89ebUL,+      0xa927eeceUL, 0x61c935b7UL, 0x1ce5ede1UL, 0x47b13c7aUL,+      0xd2df599cUL, 0xf2733f55UL, 0x14ce7918UL, 0xc737bf73UL,+      0xf7cdea53UL, 0xfdaa5b5fUL, 0x3d6f14dfUL, 0x44db8678UL,+      0xaff381caUL, 0x68c43eb9UL, 0x24342c38UL, 0xa3405fc2UL,+      0x1dc37216UL, 0xe2250cbcUL, 0x3c498b28UL, 0x0d9541ffUL,+      0xa8017139UL, 0x0cb3de08UL, 0xb4e49cd8UL, 0x56c19064UL,+      0xcb84617bUL, 0x32b670d5UL, 0x6c5c7448UL, 0xb85742d0UL+  };+  static const SWord8 table6[] = {+        0,  14,  28,  18,  56,  54,  36,  42, 112, 126, 108,  98,  72,+       70,  84,  90, 224, 238, 252, 242, 216, 214, 196, 202, 144, 158,+      140, 130, 168, 166, 180, 186, 219, 213, 199, 201, 227, 237, 255,+      241, 171, 165, 183, 185, 147, 157, 143, 129,  59,  53,  39,  41,+        3,  13,  31,  17,  75,  69,  87,  89, 115, 125, 111,  97, 173,+      163, 177, 191, 149, 155, 137, 135, 221, 211, 193, 207, 229, 235,+      249, 247,  77,  67,  81,  95, 117, 123, 105, 103,  61,  51,  33,+       47,   5,  11,  25,  23, 118, 120, 106, 100,  78,  64,  82,  92,+        6,   8,  26,  20,  62,  48,  34,  44, 150, 152, 138, 132, 174,+      160, 178, 188, 230, 232, 250, 244, 222, 208, 194, 204,  65,  79,+       93,  83, 121, 119, 101, 107,  49,  63,  45,  35,   9,   7,  21,+       27, 161, 175, 189, 179, 153, 151, 133, 139, 209, 223, 205, 195,+      233, 231, 245, 251, 154, 148, 134, 136, 162, 172, 190, 176, 234,+      228, 246, 248, 210, 220, 206, 192, 122, 116, 102, 104,  66,  76,+       94,  80,  10,   4,  22,  24,  50,  60,  46,  32, 236, 226, 240,+      254, 212, 218, 200, 198, 156, 146, 128, 142, 164, 170, 184, 182,+       12,   2,  16,  30,  52,  58,  40,  38, 124, 114,  96, 110,  68,+       74,  88,  86,  55,  57,  43,  37,  15,   1,  19,  29,  71,  73,+       91,  85, 127, 113,  99, 109, 215, 217, 203, 197, 239, 225, 243,+      253, 167, 169, 187, 181, 159, 145, 131, 141+  };+  static const SWord8 table7[] = {+        0,  11,  22,  29,  44,  39,  58,  49,  88,  83,  78,  69, 116,+      127,  98, 105, 176, 187, 166, 173, 156, 151, 138, 129, 232, 227,+      254, 245, 196, 207, 210, 217, 123, 112, 109, 102,  87,  92,  65,+       74,  35,  40,  53,  62,  15,   4,  25,  18, 203, 192, 221, 214,+      231, 236, 241, 250, 147, 152, 133, 142, 191, 180, 169, 162, 246,+      253, 224, 235, 218, 209, 204, 199, 174, 165, 184, 179, 130, 137,+      148, 159,  70,  77,  80,  91, 106,  97, 124, 119,  30,  21,   8,+        3,  50,  57,  36,  47, 141, 134, 155, 144, 161, 170, 183, 188,+      213, 222, 195, 200, 249, 242, 239, 228,  61,  54,  43,  32,  17,+       26,   7,  12, 101, 110, 115, 120,  73,  66,  95,  84, 247, 252,+      225, 234, 219, 208, 205, 198, 175, 164, 185, 178, 131, 136, 149,+      158,  71,  76,  81,  90, 107,  96, 125, 118,  31,  20,   9,   2,+       51,  56,  37,  46, 140, 135, 154, 145, 160, 171, 182, 189, 212,+      223, 194, 201, 248, 243, 238, 229,  60,  55,  42,  33,  16,  27,+        6,  13, 100, 111, 114, 121,  72,  67,  94,  85,   1,  10,  23,+       28,  45,  38,  59,  48,  89,  82,  79,  68, 117, 126,  99, 104,+      177, 186, 167, 172, 157, 150, 139, 128, 233, 226, 255, 244, 197,+      206, 211, 216, 122, 113, 108, 103,  86,  93,  64,  75,  34,  41,+       52,  63,  14,   5,  24,  19, 202, 193, 220, 215, 230, 237, 240,+      251, 146, 153, 132, 143, 190, 181, 168, 163+  };+  static const SWord8 table8[] = {+        0,  13,  26,  23,  52,  57,  46,  35, 104, 101, 114, 127,  92,+       81,  70,  75, 208, 221, 202, 199, 228, 233, 254, 243, 184, 181,+      162, 175, 140, 129, 150, 155, 187, 182, 161, 172, 143, 130, 149,+      152, 211, 222, 201, 196, 231, 234, 253, 240, 107, 102, 113, 124,+       95,  82,  69,  72,   3,  14,  25,  20,  55,  58,  45,  32, 109,+       96, 119, 122,  89,  84,  67,  78,   5,   8,  31,  18,  49,  60,+       43,  38, 189, 176, 167, 170, 137, 132, 147, 158, 213, 216, 207,+      194, 225, 236, 251, 246, 214, 219, 204, 193, 226, 239, 248, 245,+      190, 179, 164, 169, 138, 135, 144, 157,   6,  11,  28,  17,  50,+       63,  40,  37, 110,  99, 116, 121,  90,  87,  64,  77, 218, 215,+      192, 205, 238, 227, 244, 249, 178, 191, 168, 165, 134, 139, 156,+      145,  10,   7,  16,  29,  62,  51,  36,  41,  98, 111, 120, 117,+       86,  91,  76,  65,  97, 108, 123, 118,  85,  88,  79,  66,   9,+        4,  19,  30,  61,  48,  39,  42, 177, 188, 171, 166, 133, 136,+      159, 146, 217, 212, 195, 206, 237, 224, 247, 250, 183, 186, 173,+      160, 131, 142, 153, 148, 223, 210, 197, 200, 235, 230, 241, 252,+      103, 106, 125, 112,  83,  94,  73,  68,  15,   2,  21,  24,  59,+       54,  33,  44,  12,   1,  22,  27,  56,  53,  34,  47, 100, 105,+      126, 115,  80,  93,  74,  71, 220, 209, 198, 203, 232, 229, 242,+      255, 180, 185, 174, 163, 128, 141, 154, 151+  };+  static const SWord8 table9[] = {+        0,   9,  18,  27,  36,  45,  54,  63,  72,  65,  90,  83, 108,+      101, 126, 119, 144, 153, 130, 139, 180, 189, 166, 175, 216, 209,+      202, 195, 252, 245, 238, 231,  59,  50,  41,  32,  31,  22,  13,+        4, 115, 122,  97, 104,  87,  94,  69,  76, 171, 162, 185, 176,+      143, 134, 157, 148, 227, 234, 241, 248, 199, 206, 213, 220, 118,+      127, 100, 109,  82,  91,  64,  73,  62,  55,  44,  37,  26,  19,+        8,   1, 230, 239, 244, 253, 194, 203, 208, 217, 174, 167, 188,+      181, 138, 131, 152, 145,  77,  68,  95,  86, 105,  96, 123, 114,+        5,  12,  23,  30,  33,  40,  51,  58, 221, 212, 207, 198, 249,+      240, 235, 226, 149, 156, 135, 142, 177, 184, 163, 170, 236, 229,+      254, 247, 200, 193, 218, 211, 164, 173, 182, 191, 128, 137, 146,+      155, 124, 117, 110, 103,  88,  81,  74,  67,  52,  61,  38,  47,+       16,  25,   2,  11, 215, 222, 197, 204, 243, 250, 225, 232, 159,+      150, 141, 132, 187, 178, 169, 160,  71,  78,  85,  92,  99, 106,+      113, 120,  15,   6,  29,  20,  43,  34,  57,  48, 154, 147, 136,+      129, 190, 183, 172, 165, 210, 219, 192, 201, 246, 255, 228, 237,+       10,   3,  24,  17,  46,  39,  60,  53,  66,  75,  80,  89, 102,+      111, 116, 125, 161, 168, 179, 186, 133, 140, 151, 158, 233, 224,+      251, 242, 205, 196, 223, 214,  49,  56,  35,  42,  21,  28,   7,+       14, 121, 112, 107,  98,  93,  84,  79,  70+  };+  const SWord32 s520 = (s7 << 8) | (s7 >> 24);+  const SWord8  s521 = (SWord8) (s520 >> 24);+  const SWord8  s522 = table2[s521];+  const SWord8  s523 = 1 ^ s522;+  const SWord8  s524 = (SWord8) (s520 >> 16);+  const SWord8  s525 = table2[s524];+  const SWord16 s526 = (((SWord16) s523) << 8) | ((SWord16) s525);+  const SWord8  s527 = (SWord8) (s520 >> 8);+  const SWord8  s528 = table2[s527];+  const SWord8  s529 = (SWord8) s520;+  const SWord8  s530 = table2[s529];+  const SWord16 s531 = (((SWord16) s528) << 8) | ((SWord16) s530);+  const SWord32 s532 = (((SWord32) s526) << 16) | ((SWord32) s531);+  const SWord32 s533 = s4 ^ s532;+  const SWord32 s534 = s5 ^ s533;+  const SWord32 s535 = s6 ^ s534;+  const SWord32 s536 = s7 ^ s535;+  const SWord32 s537 = (s536 << 8) | (s536 >> 24);+  const SWord8  s538 = (SWord8) (s537 >> 24);+  const SWord8  s539 = table2[s538];+  const SWord8  s540 = 2 ^ s539;+  const SWord8  s541 = (SWord8) (s537 >> 16);+  const SWord8  s542 = table2[s541];+  const SWord16 s543 = (((SWord16) s540) << 8) | ((SWord16) s542);+  const SWord8  s544 = (SWord8) (s537 >> 8);+  const SWord8  s545 = table2[s544];+  const SWord8  s546 = (SWord8) s537;+  const SWord8  s547 = table2[s546];+  const SWord16 s548 = (((SWord16) s545) << 8) | ((SWord16) s547);+  const SWord32 s549 = (((SWord32) s543) << 16) | ((SWord32) s548);+  const SWord32 s550 = s533 ^ s549;+  const SWord32 s551 = s534 ^ s550;+  const SWord32 s552 = s535 ^ s551;+  const SWord32 s553 = s536 ^ s552;+  const SWord32 s554 = (s553 << 8) | (s553 >> 24);+  const SWord8  s555 = (SWord8) (s554 >> 24);+  const SWord8  s556 = table2[s555];+  const SWord8  s557 = 4 ^ s556;+  const SWord8  s558 = (SWord8) (s554 >> 16);+  const SWord8  s559 = table2[s558];+  const SWord16 s560 = (((SWord16) s557) << 8) | ((SWord16) s559);+  const SWord8  s561 = (SWord8) (s554 >> 8);+  const SWord8  s562 = table2[s561];+  const SWord8  s563 = (SWord8) s554;+  const SWord8  s564 = table2[s563];+  const SWord16 s565 = (((SWord16) s562) << 8) | ((SWord16) s564);+  const SWord32 s566 = (((SWord32) s560) << 16) | ((SWord32) s565);+  const SWord32 s567 = s550 ^ s566;+  const SWord32 s568 = s551 ^ s567;+  const SWord32 s569 = s552 ^ s568;+  const SWord32 s570 = s553 ^ s569;+  const SWord32 s571 = (s570 << 8) | (s570 >> 24);+  const SWord8  s572 = (SWord8) (s571 >> 24);+  const SWord8  s573 = table2[s572];+  const SWord8  s574 = 8 ^ s573;+  const SWord8  s575 = (SWord8) (s571 >> 16);+  const SWord8  s576 = table2[s575];+  const SWord16 s577 = (((SWord16) s574) << 8) | ((SWord16) s576);+  const SWord8  s578 = (SWord8) (s571 >> 8);+  const SWord8  s579 = table2[s578];+  const SWord8  s580 = (SWord8) s571;+  const SWord8  s581 = table2[s580];+  const SWord16 s582 = (((SWord16) s579) << 8) | ((SWord16) s581);+  const SWord32 s583 = (((SWord32) s577) << 16) | ((SWord32) s582);+  const SWord32 s584 = s567 ^ s583;+  const SWord32 s585 = s568 ^ s584;+  const SWord32 s586 = s569 ^ s585;+  const SWord32 s587 = s570 ^ s586;+  const SWord32 s588 = (s587 << 8) | (s587 >> 24);+  const SWord8  s589 = (SWord8) (s588 >> 24);+  const SWord8  s590 = table2[s589];+  const SWord8  s591 = 16 ^ s590;+  const SWord8  s592 = (SWord8) (s588 >> 16);+  const SWord8  s593 = table2[s592];+  const SWord16 s594 = (((SWord16) s591) << 8) | ((SWord16) s593);+  const SWord8  s595 = (SWord8) (s588 >> 8);+  const SWord8  s596 = table2[s595];+  const SWord8  s597 = (SWord8) s588;+  const SWord8  s598 = table2[s597];+  const SWord16 s599 = (((SWord16) s596) << 8) | ((SWord16) s598);+  const SWord32 s600 = (((SWord32) s594) << 16) | ((SWord32) s599);+  const SWord32 s601 = s584 ^ s600;+  const SWord32 s602 = s585 ^ s601;+  const SWord32 s603 = s586 ^ s602;+  const SWord32 s604 = s587 ^ s603;+  const SWord32 s605 = (s604 << 8) | (s604 >> 24);+  const SWord8  s606 = (SWord8) (s605 >> 24);+  const SWord8  s607 = table2[s606];+  const SWord8  s608 = 32 ^ s607;+  const SWord8  s609 = (SWord8) (s605 >> 16);+  const SWord8  s610 = table2[s609];+  const SWord16 s611 = (((SWord16) s608) << 8) | ((SWord16) s610);+  const SWord8  s612 = (SWord8) (s605 >> 8);+  const SWord8  s613 = table2[s612];+  const SWord8  s614 = (SWord8) s605;+  const SWord8  s615 = table2[s614];+  const SWord16 s616 = (((SWord16) s613) << 8) | ((SWord16) s615);+  const SWord32 s617 = (((SWord32) s611) << 16) | ((SWord32) s616);+  const SWord32 s618 = s601 ^ s617;+  const SWord32 s619 = s602 ^ s618;+  const SWord32 s620 = s603 ^ s619;+  const SWord32 s621 = s604 ^ s620;+  const SWord32 s622 = (s621 << 8) | (s621 >> 24);+  const SWord8  s623 = (SWord8) (s622 >> 24);+  const SWord8  s624 = table2[s623];+  const SWord8  s625 = 64 ^ s624;+  const SWord8  s626 = (SWord8) (s622 >> 16);+  const SWord8  s627 = table2[s626];+  const SWord16 s628 = (((SWord16) s625) << 8) | ((SWord16) s627);+  const SWord8  s629 = (SWord8) (s622 >> 8);+  const SWord8  s630 = table2[s629];+  const SWord8  s631 = (SWord8) s622;+  const SWord8  s632 = table2[s631];+  const SWord16 s633 = (((SWord16) s630) << 8) | ((SWord16) s632);+  const SWord32 s634 = (((SWord32) s628) << 16) | ((SWord32) s633);+  const SWord32 s635 = s618 ^ s634;+  const SWord32 s636 = s619 ^ s635;+  const SWord32 s637 = s620 ^ s636;+  const SWord32 s638 = s621 ^ s637;+  const SWord32 s639 = (s638 << 8) | (s638 >> 24);+  const SWord8  s640 = (SWord8) (s639 >> 24);+  const SWord8  s641 = table2[s640];+  const SWord8  s642 = 128 ^ s641;+  const SWord8  s643 = (SWord8) (s639 >> 16);+  const SWord8  s644 = table2[s643];+  const SWord16 s645 = (((SWord16) s642) << 8) | ((SWord16) s644);+  const SWord8  s646 = (SWord8) (s639 >> 8);+  const SWord8  s647 = table2[s646];+  const SWord8  s648 = (SWord8) s639;+  const SWord8  s649 = table2[s648];+  const SWord16 s650 = (((SWord16) s647) << 8) | ((SWord16) s649);+  const SWord32 s651 = (((SWord32) s645) << 16) | ((SWord32) s650);+  const SWord32 s652 = s635 ^ s651;+  const SWord32 s653 = s636 ^ s652;+  const SWord32 s654 = s637 ^ s653;+  const SWord32 s655 = s638 ^ s654;+  const SWord32 s656 = (s655 << 8) | (s655 >> 24);+  const SWord8  s657 = (SWord8) (s656 >> 24);+  const SWord8  s658 = table2[s657];+  const SWord8  s659 = 27 ^ s658;+  const SWord8  s660 = (SWord8) (s656 >> 16);+  const SWord8  s661 = table2[s660];+  const SWord16 s662 = (((SWord16) s659) << 8) | ((SWord16) s661);+  const SWord8  s663 = (SWord8) (s656 >> 8);+  const SWord8  s664 = table2[s663];+  const SWord8  s665 = (SWord8) s656;+  const SWord8  s666 = table2[s665];+  const SWord16 s667 = (((SWord16) s664) << 8) | ((SWord16) s666);+  const SWord32 s668 = (((SWord32) s662) << 16) | ((SWord32) s667);+  const SWord32 s669 = s652 ^ s668;+  const SWord32 s670 = s653 ^ s669;+  const SWord32 s671 = s654 ^ s670;+  const SWord32 s672 = s655 ^ s671;+  const SWord32 s673 = (s672 << 8) | (s672 >> 24);+  const SWord8  s674 = (SWord8) (s673 >> 24);+  const SWord8  s675 = table2[s674];+  const SWord8  s676 = 54 ^ s675;+  const SWord8  s677 = (SWord8) (s673 >> 16);+  const SWord8  s678 = table2[s677];+  const SWord16 s679 = (((SWord16) s676) << 8) | ((SWord16) s678);+  const SWord8  s680 = (SWord8) (s673 >> 8);+  const SWord8  s681 = table2[s680];+  const SWord8  s682 = (SWord8) s673;+  const SWord8  s683 = table2[s682];+  const SWord16 s684 = (((SWord16) s681) << 8) | ((SWord16) s683);+  const SWord32 s685 = (((SWord32) s679) << 16) | ((SWord32) s684);+  const SWord32 s686 = s669 ^ s685;+  const SWord32 s687 = s0 ^ s686;+  const SWord8  s688 = (SWord8) (s687 >> 24);+  const SWord32 s689 = table1[s688];+  const SWord32 s945 = s670 ^ s686;+  const SWord32 s946 = s671 ^ s945;+  const SWord32 s947 = s672 ^ s946;+  const SWord32 s948 = s3 ^ s947;+  const SWord8  s949 = (SWord8) (s948 >> 16);+  const SWord32 s950 = table3[s949];+  const SWord32 s951 = s689 ^ s950;+  const SWord32 s1207 = s2 ^ s946;+  const SWord8  s1208 = (SWord8) (s1207 >> 8);+  const SWord32 s1209 = table4[s1208];+  const SWord32 s1210 = s951 ^ s1209;+  const SWord32 s1466 = s1 ^ s945;+  const SWord8  s1467 = (SWord8) s1466;+  const SWord32 s1468 = table5[s1467];+  const SWord32 s1469 = s1210 ^ s1468;+  const SWord8  s1470 = (SWord8) (s669 >> 24);+  const SWord8  s1471 = table6[s1470];+  const SWord8  s1472 = (SWord8) (s669 >> 16);+  const SWord8  s1473 = table7[s1472];+  const SWord8  s1474 = (SWord8) (s669 >> 8);+  const SWord8  s1475 = table8[s1474];+  const SWord8  s1476 = (SWord8) s669;+  const SWord8  s1477 = table9[s1476];+  const SWord8  s1478 = s1475 ^ s1477;+  const SWord8  s1479 = s1473 ^ s1478;+  const SWord8  s1480 = s1471 ^ s1479;+  const SWord8  s1481 = table9[s1470];+  const SWord8  s1482 = table6[s1472];+  const SWord8  s1483 = table7[s1474];+  const SWord8  s1484 = table8[s1476];+  const SWord8  s1485 = s1483 ^ s1484;+  const SWord8  s1486 = s1482 ^ s1485;+  const SWord8  s1487 = s1481 ^ s1486;+  const SWord16 s1488 = (((SWord16) s1480) << 8) | ((SWord16) s1487);+  const SWord8  s1489 = table8[s1470];+  const SWord8  s1490 = table9[s1472];+  const SWord8  s1491 = table6[s1474];+  const SWord8  s1492 = table7[s1476];+  const SWord8  s1493 = s1491 ^ s1492;+  const SWord8  s1494 = s1490 ^ s1493;+  const SWord8  s1495 = s1489 ^ s1494;+  const SWord8  s1496 = table7[s1470];+  const SWord8  s1497 = table8[s1472];+  const SWord8  s1498 = table9[s1474];+  const SWord8  s1499 = table6[s1476];+  const SWord8  s1500 = s1498 ^ s1499;+  const SWord8  s1501 = s1497 ^ s1500;+  const SWord8  s1502 = s1496 ^ s1501;+  const SWord16 s1503 = (((SWord16) s1495) << 8) | ((SWord16) s1502);+  const SWord32 s1504 = (((SWord32) s1488) << 16) | ((SWord32) s1503);+  const SWord32 s1505 = s1469 ^ s1504;+  const SWord8  s1506 = (SWord8) (s1505 >> 24);+  const SWord32 s1507 = table1[s1506];+  const SWord8  s1508 = (SWord8) (s948 >> 24);+  const SWord32 s1509 = table1[s1508];+  const SWord8  s1510 = (SWord8) (s1207 >> 16);+  const SWord32 s1511 = table3[s1510];+  const SWord32 s1512 = s1509 ^ s1511;+  const SWord8  s1513 = (SWord8) (s1466 >> 8);+  const SWord32 s1514 = table4[s1513];+  const SWord32 s1515 = s1512 ^ s1514;+  const SWord8  s1516 = (SWord8) s687;+  const SWord32 s1517 = table5[s1516];+  const SWord32 s1518 = s1515 ^ s1517;+  const SWord8  s1519 = (SWord8) (s672 >> 24);+  const SWord8  s1520 = table6[s1519];+  const SWord8  s1521 = (SWord8) (s672 >> 16);+  const SWord8  s1522 = table7[s1521];+  const SWord8  s1523 = (SWord8) (s672 >> 8);+  const SWord8  s1524 = table8[s1523];+  const SWord8  s1525 = (SWord8) s672;+  const SWord8  s1526 = table9[s1525];+  const SWord8  s1527 = s1524 ^ s1526;+  const SWord8  s1528 = s1522 ^ s1527;+  const SWord8  s1529 = s1520 ^ s1528;+  const SWord8  s1530 = table9[s1519];+  const SWord8  s1531 = table6[s1521];+  const SWord8  s1532 = table7[s1523];+  const SWord8  s1533 = table8[s1525];+  const SWord8  s1534 = s1532 ^ s1533;+  const SWord8  s1535 = s1531 ^ s1534;+  const SWord8  s1536 = s1530 ^ s1535;+  const SWord16 s1537 = (((SWord16) s1529) << 8) | ((SWord16) s1536);+  const SWord8  s1538 = table8[s1519];+  const SWord8  s1539 = table9[s1521];+  const SWord8  s1540 = table6[s1523];+  const SWord8  s1541 = table7[s1525];+  const SWord8  s1542 = s1540 ^ s1541;+  const SWord8  s1543 = s1539 ^ s1542;+  const SWord8  s1544 = s1538 ^ s1543;+  const SWord8  s1545 = table7[s1519];+  const SWord8  s1546 = table8[s1521];+  const SWord8  s1547 = table9[s1523];+  const SWord8  s1548 = table6[s1525];+  const SWord8  s1549 = s1547 ^ s1548;+  const SWord8  s1550 = s1546 ^ s1549;+  const SWord8  s1551 = s1545 ^ s1550;+  const SWord16 s1552 = (((SWord16) s1544) << 8) | ((SWord16) s1551);+  const SWord32 s1553 = (((SWord32) s1537) << 16) | ((SWord32) s1552);+  const SWord32 s1554 = s1518 ^ s1553;+  const SWord8  s1555 = (SWord8) (s1554 >> 16);+  const SWord32 s1556 = table3[s1555];+  const SWord32 s1557 = s1507 ^ s1556;+  const SWord8  s1558 = (SWord8) (s1207 >> 24);+  const SWord32 s1559 = table1[s1558];+  const SWord8  s1560 = (SWord8) (s1466 >> 16);+  const SWord32 s1561 = table3[s1560];+  const SWord32 s1562 = s1559 ^ s1561;+  const SWord8  s1563 = (SWord8) (s687 >> 8);+  const SWord32 s1564 = table4[s1563];+  const SWord32 s1565 = s1562 ^ s1564;+  const SWord8  s1566 = (SWord8) s948;+  const SWord32 s1567 = table5[s1566];+  const SWord32 s1568 = s1565 ^ s1567;+  const SWord8  s1569 = (SWord8) (s671 >> 24);+  const SWord8  s1570 = table6[s1569];+  const SWord8  s1571 = (SWord8) (s671 >> 16);+  const SWord8  s1572 = table7[s1571];+  const SWord8  s1573 = (SWord8) (s671 >> 8);+  const SWord8  s1574 = table8[s1573];+  const SWord8  s1575 = (SWord8) s671;+  const SWord8  s1576 = table9[s1575];+  const SWord8  s1577 = s1574 ^ s1576;+  const SWord8  s1578 = s1572 ^ s1577;+  const SWord8  s1579 = s1570 ^ s1578;+  const SWord8  s1580 = table9[s1569];+  const SWord8  s1581 = table6[s1571];+  const SWord8  s1582 = table7[s1573];+  const SWord8  s1583 = table8[s1575];+  const SWord8  s1584 = s1582 ^ s1583;+  const SWord8  s1585 = s1581 ^ s1584;+  const SWord8  s1586 = s1580 ^ s1585;+  const SWord16 s1587 = (((SWord16) s1579) << 8) | ((SWord16) s1586);+  const SWord8  s1588 = table8[s1569];+  const SWord8  s1589 = table9[s1571];+  const SWord8  s1590 = table6[s1573];+  const SWord8  s1591 = table7[s1575];+  const SWord8  s1592 = s1590 ^ s1591;+  const SWord8  s1593 = s1589 ^ s1592;+  const SWord8  s1594 = s1588 ^ s1593;+  const SWord8  s1595 = table7[s1569];+  const SWord8  s1596 = table8[s1571];+  const SWord8  s1597 = table9[s1573];+  const SWord8  s1598 = table6[s1575];+  const SWord8  s1599 = s1597 ^ s1598;+  const SWord8  s1600 = s1596 ^ s1599;+  const SWord8  s1601 = s1595 ^ s1600;+  const SWord16 s1602 = (((SWord16) s1594) << 8) | ((SWord16) s1601);+  const SWord32 s1603 = (((SWord32) s1587) << 16) | ((SWord32) s1602);+  const SWord32 s1604 = s1568 ^ s1603;+  const SWord8  s1605 = (SWord8) (s1604 >> 8);+  const SWord32 s1606 = table4[s1605];+  const SWord32 s1607 = s1557 ^ s1606;+  const SWord8  s1608 = (SWord8) (s1466 >> 24);+  const SWord32 s1609 = table1[s1608];+  const SWord8  s1610 = (SWord8) (s687 >> 16);+  const SWord32 s1611 = table3[s1610];+  const SWord32 s1612 = s1609 ^ s1611;+  const SWord8  s1613 = (SWord8) (s948 >> 8);+  const SWord32 s1614 = table4[s1613];+  const SWord32 s1615 = s1612 ^ s1614;+  const SWord8  s1616 = (SWord8) s1207;+  const SWord32 s1617 = table5[s1616];+  const SWord32 s1618 = s1615 ^ s1617;+  const SWord8  s1619 = (SWord8) (s670 >> 24);+  const SWord8  s1620 = table6[s1619];+  const SWord8  s1621 = (SWord8) (s670 >> 16);+  const SWord8  s1622 = table7[s1621];+  const SWord8  s1623 = (SWord8) (s670 >> 8);+  const SWord8  s1624 = table8[s1623];+  const SWord8  s1625 = (SWord8) s670;+  const SWord8  s1626 = table9[s1625];+  const SWord8  s1627 = s1624 ^ s1626;+  const SWord8  s1628 = s1622 ^ s1627;+  const SWord8  s1629 = s1620 ^ s1628;+  const SWord8  s1630 = table9[s1619];+  const SWord8  s1631 = table6[s1621];+  const SWord8  s1632 = table7[s1623];+  const SWord8  s1633 = table8[s1625];+  const SWord8  s1634 = s1632 ^ s1633;+  const SWord8  s1635 = s1631 ^ s1634;+  const SWord8  s1636 = s1630 ^ s1635;+  const SWord16 s1637 = (((SWord16) s1629) << 8) | ((SWord16) s1636);+  const SWord8  s1638 = table8[s1619];+  const SWord8  s1639 = table9[s1621];+  const SWord8  s1640 = table6[s1623];+  const SWord8  s1641 = table7[s1625];+  const SWord8  s1642 = s1640 ^ s1641;+  const SWord8  s1643 = s1639 ^ s1642;+  const SWord8  s1644 = s1638 ^ s1643;+  const SWord8  s1645 = table7[s1619];+  const SWord8  s1646 = table8[s1621];+  const SWord8  s1647 = table9[s1623];+  const SWord8  s1648 = table6[s1625];+  const SWord8  s1649 = s1647 ^ s1648;+  const SWord8  s1650 = s1646 ^ s1649;+  const SWord8  s1651 = s1645 ^ s1650;+  const SWord16 s1652 = (((SWord16) s1644) << 8) | ((SWord16) s1651);+  const SWord32 s1653 = (((SWord32) s1637) << 16) | ((SWord32) s1652);+  const SWord32 s1654 = s1618 ^ s1653;+  const SWord8  s1655 = (SWord8) s1654;+  const SWord32 s1656 = table5[s1655];+  const SWord32 s1657 = s1607 ^ s1656;+  const SWord8  s1658 = (SWord8) (s652 >> 24);+  const SWord8  s1659 = table6[s1658];+  const SWord8  s1660 = (SWord8) (s652 >> 16);+  const SWord8  s1661 = table7[s1660];+  const SWord8  s1662 = (SWord8) (s652 >> 8);+  const SWord8  s1663 = table8[s1662];+  const SWord8  s1664 = (SWord8) s652;+  const SWord8  s1665 = table9[s1664];+  const SWord8  s1666 = s1663 ^ s1665;+  const SWord8  s1667 = s1661 ^ s1666;+  const SWord8  s1668 = s1659 ^ s1667;+  const SWord8  s1669 = table9[s1658];+  const SWord8  s1670 = table6[s1660];+  const SWord8  s1671 = table7[s1662];+  const SWord8  s1672 = table8[s1664];+  const SWord8  s1673 = s1671 ^ s1672;+  const SWord8  s1674 = s1670 ^ s1673;+  const SWord8  s1675 = s1669 ^ s1674;+  const SWord16 s1676 = (((SWord16) s1668) << 8) | ((SWord16) s1675);+  const SWord8  s1677 = table8[s1658];+  const SWord8  s1678 = table9[s1660];+  const SWord8  s1679 = table6[s1662];+  const SWord8  s1680 = table7[s1664];+  const SWord8  s1681 = s1679 ^ s1680;+  const SWord8  s1682 = s1678 ^ s1681;+  const SWord8  s1683 = s1677 ^ s1682;+  const SWord8  s1684 = table7[s1658];+  const SWord8  s1685 = table8[s1660];+  const SWord8  s1686 = table9[s1662];+  const SWord8  s1687 = table6[s1664];+  const SWord8  s1688 = s1686 ^ s1687;+  const SWord8  s1689 = s1685 ^ s1688;+  const SWord8  s1690 = s1684 ^ s1689;+  const SWord16 s1691 = (((SWord16) s1683) << 8) | ((SWord16) s1690);+  const SWord32 s1692 = (((SWord32) s1676) << 16) | ((SWord32) s1691);+  const SWord32 s1693 = s1657 ^ s1692;+  const SWord8  s1694 = (SWord8) (s1693 >> 24);+  const SWord32 s1695 = table1[s1694];+  const SWord8  s1696 = (SWord8) (s1554 >> 24);+  const SWord32 s1697 = table1[s1696];+  const SWord8  s1698 = (SWord8) (s1604 >> 16);+  const SWord32 s1699 = table3[s1698];+  const SWord32 s1700 = s1697 ^ s1699;+  const SWord8  s1701 = (SWord8) (s1654 >> 8);+  const SWord32 s1702 = table4[s1701];+  const SWord32 s1703 = s1700 ^ s1702;+  const SWord8  s1704 = (SWord8) s1505;+  const SWord32 s1705 = table5[s1704];+  const SWord32 s1706 = s1703 ^ s1705;+  const SWord8  s1707 = (SWord8) (s655 >> 24);+  const SWord8  s1708 = table6[s1707];+  const SWord8  s1709 = (SWord8) (s655 >> 16);+  const SWord8  s1710 = table7[s1709];+  const SWord8  s1711 = (SWord8) (s655 >> 8);+  const SWord8  s1712 = table8[s1711];+  const SWord8  s1713 = (SWord8) s655;+  const SWord8  s1714 = table9[s1713];+  const SWord8  s1715 = s1712 ^ s1714;+  const SWord8  s1716 = s1710 ^ s1715;+  const SWord8  s1717 = s1708 ^ s1716;+  const SWord8  s1718 = table9[s1707];+  const SWord8  s1719 = table6[s1709];+  const SWord8  s1720 = table7[s1711];+  const SWord8  s1721 = table8[s1713];+  const SWord8  s1722 = s1720 ^ s1721;+  const SWord8  s1723 = s1719 ^ s1722;+  const SWord8  s1724 = s1718 ^ s1723;+  const SWord16 s1725 = (((SWord16) s1717) << 8) | ((SWord16) s1724);+  const SWord8  s1726 = table8[s1707];+  const SWord8  s1727 = table9[s1709];+  const SWord8  s1728 = table6[s1711];+  const SWord8  s1729 = table7[s1713];+  const SWord8  s1730 = s1728 ^ s1729;+  const SWord8  s1731 = s1727 ^ s1730;+  const SWord8  s1732 = s1726 ^ s1731;+  const SWord8  s1733 = table7[s1707];+  const SWord8  s1734 = table8[s1709];+  const SWord8  s1735 = table9[s1711];+  const SWord8  s1736 = table6[s1713];+  const SWord8  s1737 = s1735 ^ s1736;+  const SWord8  s1738 = s1734 ^ s1737;+  const SWord8  s1739 = s1733 ^ s1738;+  const SWord16 s1740 = (((SWord16) s1732) << 8) | ((SWord16) s1739);+  const SWord32 s1741 = (((SWord32) s1725) << 16) | ((SWord32) s1740);+  const SWord32 s1742 = s1706 ^ s1741;+  const SWord8  s1743 = (SWord8) (s1742 >> 16);+  const SWord32 s1744 = table3[s1743];+  const SWord32 s1745 = s1695 ^ s1744;+  const SWord8  s1746 = (SWord8) (s1604 >> 24);+  const SWord32 s1747 = table1[s1746];+  const SWord8  s1748 = (SWord8) (s1654 >> 16);+  const SWord32 s1749 = table3[s1748];+  const SWord32 s1750 = s1747 ^ s1749;+  const SWord8  s1751 = (SWord8) (s1505 >> 8);+  const SWord32 s1752 = table4[s1751];+  const SWord32 s1753 = s1750 ^ s1752;+  const SWord8  s1754 = (SWord8) s1554;+  const SWord32 s1755 = table5[s1754];+  const SWord32 s1756 = s1753 ^ s1755;+  const SWord8  s1757 = (SWord8) (s654 >> 24);+  const SWord8  s1758 = table6[s1757];+  const SWord8  s1759 = (SWord8) (s654 >> 16);+  const SWord8  s1760 = table7[s1759];+  const SWord8  s1761 = (SWord8) (s654 >> 8);+  const SWord8  s1762 = table8[s1761];+  const SWord8  s1763 = (SWord8) s654;+  const SWord8  s1764 = table9[s1763];+  const SWord8  s1765 = s1762 ^ s1764;+  const SWord8  s1766 = s1760 ^ s1765;+  const SWord8  s1767 = s1758 ^ s1766;+  const SWord8  s1768 = table9[s1757];+  const SWord8  s1769 = table6[s1759];+  const SWord8  s1770 = table7[s1761];+  const SWord8  s1771 = table8[s1763];+  const SWord8  s1772 = s1770 ^ s1771;+  const SWord8  s1773 = s1769 ^ s1772;+  const SWord8  s1774 = s1768 ^ s1773;+  const SWord16 s1775 = (((SWord16) s1767) << 8) | ((SWord16) s1774);+  const SWord8  s1776 = table8[s1757];+  const SWord8  s1777 = table9[s1759];+  const SWord8  s1778 = table6[s1761];+  const SWord8  s1779 = table7[s1763];+  const SWord8  s1780 = s1778 ^ s1779;+  const SWord8  s1781 = s1777 ^ s1780;+  const SWord8  s1782 = s1776 ^ s1781;+  const SWord8  s1783 = table7[s1757];+  const SWord8  s1784 = table8[s1759];+  const SWord8  s1785 = table9[s1761];+  const SWord8  s1786 = table6[s1763];+  const SWord8  s1787 = s1785 ^ s1786;+  const SWord8  s1788 = s1784 ^ s1787;+  const SWord8  s1789 = s1783 ^ s1788;+  const SWord16 s1790 = (((SWord16) s1782) << 8) | ((SWord16) s1789);+  const SWord32 s1791 = (((SWord32) s1775) << 16) | ((SWord32) s1790);+  const SWord32 s1792 = s1756 ^ s1791;+  const SWord8  s1793 = (SWord8) (s1792 >> 8);+  const SWord32 s1794 = table4[s1793];+  const SWord32 s1795 = s1745 ^ s1794;+  const SWord8  s1796 = (SWord8) (s1654 >> 24);+  const SWord32 s1797 = table1[s1796];+  const SWord8  s1798 = (SWord8) (s1505 >> 16);+  const SWord32 s1799 = table3[s1798];+  const SWord32 s1800 = s1797 ^ s1799;+  const SWord8  s1801 = (SWord8) (s1554 >> 8);+  const SWord32 s1802 = table4[s1801];+  const SWord32 s1803 = s1800 ^ s1802;+  const SWord8  s1804 = (SWord8) s1604;+  const SWord32 s1805 = table5[s1804];+  const SWord32 s1806 = s1803 ^ s1805;+  const SWord8  s1807 = (SWord8) (s653 >> 24);+  const SWord8  s1808 = table6[s1807];+  const SWord8  s1809 = (SWord8) (s653 >> 16);+  const SWord8  s1810 = table7[s1809];+  const SWord8  s1811 = (SWord8) (s653 >> 8);+  const SWord8  s1812 = table8[s1811];+  const SWord8  s1813 = (SWord8) s653;+  const SWord8  s1814 = table9[s1813];+  const SWord8  s1815 = s1812 ^ s1814;+  const SWord8  s1816 = s1810 ^ s1815;+  const SWord8  s1817 = s1808 ^ s1816;+  const SWord8  s1818 = table9[s1807];+  const SWord8  s1819 = table6[s1809];+  const SWord8  s1820 = table7[s1811];+  const SWord8  s1821 = table8[s1813];+  const SWord8  s1822 = s1820 ^ s1821;+  const SWord8  s1823 = s1819 ^ s1822;+  const SWord8  s1824 = s1818 ^ s1823;+  const SWord16 s1825 = (((SWord16) s1817) << 8) | ((SWord16) s1824);+  const SWord8  s1826 = table8[s1807];+  const SWord8  s1827 = table9[s1809];+  const SWord8  s1828 = table6[s1811];+  const SWord8  s1829 = table7[s1813];+  const SWord8  s1830 = s1828 ^ s1829;+  const SWord8  s1831 = s1827 ^ s1830;+  const SWord8  s1832 = s1826 ^ s1831;+  const SWord8  s1833 = table7[s1807];+  const SWord8  s1834 = table8[s1809];+  const SWord8  s1835 = table9[s1811];+  const SWord8  s1836 = table6[s1813];+  const SWord8  s1837 = s1835 ^ s1836;+  const SWord8  s1838 = s1834 ^ s1837;+  const SWord8  s1839 = s1833 ^ s1838;+  const SWord16 s1840 = (((SWord16) s1832) << 8) | ((SWord16) s1839);+  const SWord32 s1841 = (((SWord32) s1825) << 16) | ((SWord32) s1840);+  const SWord32 s1842 = s1806 ^ s1841;+  const SWord8  s1843 = (SWord8) s1842;+  const SWord32 s1844 = table5[s1843];+  const SWord32 s1845 = s1795 ^ s1844;+  const SWord8  s1846 = (SWord8) (s635 >> 24);+  const SWord8  s1847 = table6[s1846];+  const SWord8  s1848 = (SWord8) (s635 >> 16);+  const SWord8  s1849 = table7[s1848];+  const SWord8  s1850 = (SWord8) (s635 >> 8);+  const SWord8  s1851 = table8[s1850];+  const SWord8  s1852 = (SWord8) s635;+  const SWord8  s1853 = table9[s1852];+  const SWord8  s1854 = s1851 ^ s1853;+  const SWord8  s1855 = s1849 ^ s1854;+  const SWord8  s1856 = s1847 ^ s1855;+  const SWord8  s1857 = table9[s1846];+  const SWord8  s1858 = table6[s1848];+  const SWord8  s1859 = table7[s1850];+  const SWord8  s1860 = table8[s1852];+  const SWord8  s1861 = s1859 ^ s1860;+  const SWord8  s1862 = s1858 ^ s1861;+  const SWord8  s1863 = s1857 ^ s1862;+  const SWord16 s1864 = (((SWord16) s1856) << 8) | ((SWord16) s1863);+  const SWord8  s1865 = table8[s1846];+  const SWord8  s1866 = table9[s1848];+  const SWord8  s1867 = table6[s1850];+  const SWord8  s1868 = table7[s1852];+  const SWord8  s1869 = s1867 ^ s1868;+  const SWord8  s1870 = s1866 ^ s1869;+  const SWord8  s1871 = s1865 ^ s1870;+  const SWord8  s1872 = table7[s1846];+  const SWord8  s1873 = table8[s1848];+  const SWord8  s1874 = table9[s1850];+  const SWord8  s1875 = table6[s1852];+  const SWord8  s1876 = s1874 ^ s1875;+  const SWord8  s1877 = s1873 ^ s1876;+  const SWord8  s1878 = s1872 ^ s1877;+  const SWord16 s1879 = (((SWord16) s1871) << 8) | ((SWord16) s1878);+  const SWord32 s1880 = (((SWord32) s1864) << 16) | ((SWord32) s1879);+  const SWord32 s1881 = s1845 ^ s1880;+  const SWord8  s1882 = (SWord8) (s1881 >> 24);+  const SWord32 s1883 = table1[s1882];+  const SWord8  s1884 = (SWord8) (s1742 >> 24);+  const SWord32 s1885 = table1[s1884];+  const SWord8  s1886 = (SWord8) (s1792 >> 16);+  const SWord32 s1887 = table3[s1886];+  const SWord32 s1888 = s1885 ^ s1887;+  const SWord8  s1889 = (SWord8) (s1842 >> 8);+  const SWord32 s1890 = table4[s1889];+  const SWord32 s1891 = s1888 ^ s1890;+  const SWord8  s1892 = (SWord8) s1693;+  const SWord32 s1893 = table5[s1892];+  const SWord32 s1894 = s1891 ^ s1893;+  const SWord8  s1895 = (SWord8) (s638 >> 24);+  const SWord8  s1896 = table6[s1895];+  const SWord8  s1897 = (SWord8) (s638 >> 16);+  const SWord8  s1898 = table7[s1897];+  const SWord8  s1899 = (SWord8) (s638 >> 8);+  const SWord8  s1900 = table8[s1899];+  const SWord8  s1901 = (SWord8) s638;+  const SWord8  s1902 = table9[s1901];+  const SWord8  s1903 = s1900 ^ s1902;+  const SWord8  s1904 = s1898 ^ s1903;+  const SWord8  s1905 = s1896 ^ s1904;+  const SWord8  s1906 = table9[s1895];+  const SWord8  s1907 = table6[s1897];+  const SWord8  s1908 = table7[s1899];+  const SWord8  s1909 = table8[s1901];+  const SWord8  s1910 = s1908 ^ s1909;+  const SWord8  s1911 = s1907 ^ s1910;+  const SWord8  s1912 = s1906 ^ s1911;+  const SWord16 s1913 = (((SWord16) s1905) << 8) | ((SWord16) s1912);+  const SWord8  s1914 = table8[s1895];+  const SWord8  s1915 = table9[s1897];+  const SWord8  s1916 = table6[s1899];+  const SWord8  s1917 = table7[s1901];+  const SWord8  s1918 = s1916 ^ s1917;+  const SWord8  s1919 = s1915 ^ s1918;+  const SWord8  s1920 = s1914 ^ s1919;+  const SWord8  s1921 = table7[s1895];+  const SWord8  s1922 = table8[s1897];+  const SWord8  s1923 = table9[s1899];+  const SWord8  s1924 = table6[s1901];+  const SWord8  s1925 = s1923 ^ s1924;+  const SWord8  s1926 = s1922 ^ s1925;+  const SWord8  s1927 = s1921 ^ s1926;+  const SWord16 s1928 = (((SWord16) s1920) << 8) | ((SWord16) s1927);+  const SWord32 s1929 = (((SWord32) s1913) << 16) | ((SWord32) s1928);+  const SWord32 s1930 = s1894 ^ s1929;+  const SWord8  s1931 = (SWord8) (s1930 >> 16);+  const SWord32 s1932 = table3[s1931];+  const SWord32 s1933 = s1883 ^ s1932;+  const SWord8  s1934 = (SWord8) (s1792 >> 24);+  const SWord32 s1935 = table1[s1934];+  const SWord8  s1936 = (SWord8) (s1842 >> 16);+  const SWord32 s1937 = table3[s1936];+  const SWord32 s1938 = s1935 ^ s1937;+  const SWord8  s1939 = (SWord8) (s1693 >> 8);+  const SWord32 s1940 = table4[s1939];+  const SWord32 s1941 = s1938 ^ s1940;+  const SWord8  s1942 = (SWord8) s1742;+  const SWord32 s1943 = table5[s1942];+  const SWord32 s1944 = s1941 ^ s1943;+  const SWord8  s1945 = (SWord8) (s637 >> 24);+  const SWord8  s1946 = table6[s1945];+  const SWord8  s1947 = (SWord8) (s637 >> 16);+  const SWord8  s1948 = table7[s1947];+  const SWord8  s1949 = (SWord8) (s637 >> 8);+  const SWord8  s1950 = table8[s1949];+  const SWord8  s1951 = (SWord8) s637;+  const SWord8  s1952 = table9[s1951];+  const SWord8  s1953 = s1950 ^ s1952;+  const SWord8  s1954 = s1948 ^ s1953;+  const SWord8  s1955 = s1946 ^ s1954;+  const SWord8  s1956 = table9[s1945];+  const SWord8  s1957 = table6[s1947];+  const SWord8  s1958 = table7[s1949];+  const SWord8  s1959 = table8[s1951];+  const SWord8  s1960 = s1958 ^ s1959;+  const SWord8  s1961 = s1957 ^ s1960;+  const SWord8  s1962 = s1956 ^ s1961;+  const SWord16 s1963 = (((SWord16) s1955) << 8) | ((SWord16) s1962);+  const SWord8  s1964 = table8[s1945];+  const SWord8  s1965 = table9[s1947];+  const SWord8  s1966 = table6[s1949];+  const SWord8  s1967 = table7[s1951];+  const SWord8  s1968 = s1966 ^ s1967;+  const SWord8  s1969 = s1965 ^ s1968;+  const SWord8  s1970 = s1964 ^ s1969;+  const SWord8  s1971 = table7[s1945];+  const SWord8  s1972 = table8[s1947];+  const SWord8  s1973 = table9[s1949];+  const SWord8  s1974 = table6[s1951];+  const SWord8  s1975 = s1973 ^ s1974;+  const SWord8  s1976 = s1972 ^ s1975;+  const SWord8  s1977 = s1971 ^ s1976;+  const SWord16 s1978 = (((SWord16) s1970) << 8) | ((SWord16) s1977);+  const SWord32 s1979 = (((SWord32) s1963) << 16) | ((SWord32) s1978);+  const SWord32 s1980 = s1944 ^ s1979;+  const SWord8  s1981 = (SWord8) (s1980 >> 8);+  const SWord32 s1982 = table4[s1981];+  const SWord32 s1983 = s1933 ^ s1982;+  const SWord8  s1984 = (SWord8) (s1842 >> 24);+  const SWord32 s1985 = table1[s1984];+  const SWord8  s1986 = (SWord8) (s1693 >> 16);+  const SWord32 s1987 = table3[s1986];+  const SWord32 s1988 = s1985 ^ s1987;+  const SWord8  s1989 = (SWord8) (s1742 >> 8);+  const SWord32 s1990 = table4[s1989];+  const SWord32 s1991 = s1988 ^ s1990;+  const SWord8  s1992 = (SWord8) s1792;+  const SWord32 s1993 = table5[s1992];+  const SWord32 s1994 = s1991 ^ s1993;+  const SWord8  s1995 = (SWord8) (s636 >> 24);+  const SWord8  s1996 = table6[s1995];+  const SWord8  s1997 = (SWord8) (s636 >> 16);+  const SWord8  s1998 = table7[s1997];+  const SWord8  s1999 = (SWord8) (s636 >> 8);+  const SWord8  s2000 = table8[s1999];+  const SWord8  s2001 = (SWord8) s636;+  const SWord8  s2002 = table9[s2001];+  const SWord8  s2003 = s2000 ^ s2002;+  const SWord8  s2004 = s1998 ^ s2003;+  const SWord8  s2005 = s1996 ^ s2004;+  const SWord8  s2006 = table9[s1995];+  const SWord8  s2007 = table6[s1997];+  const SWord8  s2008 = table7[s1999];+  const SWord8  s2009 = table8[s2001];+  const SWord8  s2010 = s2008 ^ s2009;+  const SWord8  s2011 = s2007 ^ s2010;+  const SWord8  s2012 = s2006 ^ s2011;+  const SWord16 s2013 = (((SWord16) s2005) << 8) | ((SWord16) s2012);+  const SWord8  s2014 = table8[s1995];+  const SWord8  s2015 = table9[s1997];+  const SWord8  s2016 = table6[s1999];+  const SWord8  s2017 = table7[s2001];+  const SWord8  s2018 = s2016 ^ s2017;+  const SWord8  s2019 = s2015 ^ s2018;+  const SWord8  s2020 = s2014 ^ s2019;+  const SWord8  s2021 = table7[s1995];+  const SWord8  s2022 = table8[s1997];+  const SWord8  s2023 = table9[s1999];+  const SWord8  s2024 = table6[s2001];+  const SWord8  s2025 = s2023 ^ s2024;+  const SWord8  s2026 = s2022 ^ s2025;+  const SWord8  s2027 = s2021 ^ s2026;+  const SWord16 s2028 = (((SWord16) s2020) << 8) | ((SWord16) s2027);+  const SWord32 s2029 = (((SWord32) s2013) << 16) | ((SWord32) s2028);+  const SWord32 s2030 = s1994 ^ s2029;+  const SWord8  s2031 = (SWord8) s2030;+  const SWord32 s2032 = table5[s2031];+  const SWord32 s2033 = s1983 ^ s2032;+  const SWord8  s2034 = (SWord8) (s618 >> 24);+  const SWord8  s2035 = table6[s2034];+  const SWord8  s2036 = (SWord8) (s618 >> 16);+  const SWord8  s2037 = table7[s2036];+  const SWord8  s2038 = (SWord8) (s618 >> 8);+  const SWord8  s2039 = table8[s2038];+  const SWord8  s2040 = (SWord8) s618;+  const SWord8  s2041 = table9[s2040];+  const SWord8  s2042 = s2039 ^ s2041;+  const SWord8  s2043 = s2037 ^ s2042;+  const SWord8  s2044 = s2035 ^ s2043;+  const SWord8  s2045 = table9[s2034];+  const SWord8  s2046 = table6[s2036];+  const SWord8  s2047 = table7[s2038];+  const SWord8  s2048 = table8[s2040];+  const SWord8  s2049 = s2047 ^ s2048;+  const SWord8  s2050 = s2046 ^ s2049;+  const SWord8  s2051 = s2045 ^ s2050;+  const SWord16 s2052 = (((SWord16) s2044) << 8) | ((SWord16) s2051);+  const SWord8  s2053 = table8[s2034];+  const SWord8  s2054 = table9[s2036];+  const SWord8  s2055 = table6[s2038];+  const SWord8  s2056 = table7[s2040];+  const SWord8  s2057 = s2055 ^ s2056;+  const SWord8  s2058 = s2054 ^ s2057;+  const SWord8  s2059 = s2053 ^ s2058;+  const SWord8  s2060 = table7[s2034];+  const SWord8  s2061 = table8[s2036];+  const SWord8  s2062 = table9[s2038];+  const SWord8  s2063 = table6[s2040];+  const SWord8  s2064 = s2062 ^ s2063;+  const SWord8  s2065 = s2061 ^ s2064;+  const SWord8  s2066 = s2060 ^ s2065;+  const SWord16 s2067 = (((SWord16) s2059) << 8) | ((SWord16) s2066);+  const SWord32 s2068 = (((SWord32) s2052) << 16) | ((SWord32) s2067);+  const SWord32 s2069 = s2033 ^ s2068;+  const SWord8  s2070 = (SWord8) (s2069 >> 24);+  const SWord32 s2071 = table1[s2070];+  const SWord8  s2072 = (SWord8) (s1930 >> 24);+  const SWord32 s2073 = table1[s2072];+  const SWord8  s2074 = (SWord8) (s1980 >> 16);+  const SWord32 s2075 = table3[s2074];+  const SWord32 s2076 = s2073 ^ s2075;+  const SWord8  s2077 = (SWord8) (s2030 >> 8);+  const SWord32 s2078 = table4[s2077];+  const SWord32 s2079 = s2076 ^ s2078;+  const SWord8  s2080 = (SWord8) s1881;+  const SWord32 s2081 = table5[s2080];+  const SWord32 s2082 = s2079 ^ s2081;+  const SWord8  s2083 = (SWord8) (s621 >> 24);+  const SWord8  s2084 = table6[s2083];+  const SWord8  s2085 = (SWord8) (s621 >> 16);+  const SWord8  s2086 = table7[s2085];+  const SWord8  s2087 = (SWord8) (s621 >> 8);+  const SWord8  s2088 = table8[s2087];+  const SWord8  s2089 = (SWord8) s621;+  const SWord8  s2090 = table9[s2089];+  const SWord8  s2091 = s2088 ^ s2090;+  const SWord8  s2092 = s2086 ^ s2091;+  const SWord8  s2093 = s2084 ^ s2092;+  const SWord8  s2094 = table9[s2083];+  const SWord8  s2095 = table6[s2085];+  const SWord8  s2096 = table7[s2087];+  const SWord8  s2097 = table8[s2089];+  const SWord8  s2098 = s2096 ^ s2097;+  const SWord8  s2099 = s2095 ^ s2098;+  const SWord8  s2100 = s2094 ^ s2099;+  const SWord16 s2101 = (((SWord16) s2093) << 8) | ((SWord16) s2100);+  const SWord8  s2102 = table8[s2083];+  const SWord8  s2103 = table9[s2085];+  const SWord8  s2104 = table6[s2087];+  const SWord8  s2105 = table7[s2089];+  const SWord8  s2106 = s2104 ^ s2105;+  const SWord8  s2107 = s2103 ^ s2106;+  const SWord8  s2108 = s2102 ^ s2107;+  const SWord8  s2109 = table7[s2083];+  const SWord8  s2110 = table8[s2085];+  const SWord8  s2111 = table9[s2087];+  const SWord8  s2112 = table6[s2089];+  const SWord8  s2113 = s2111 ^ s2112;+  const SWord8  s2114 = s2110 ^ s2113;+  const SWord8  s2115 = s2109 ^ s2114;+  const SWord16 s2116 = (((SWord16) s2108) << 8) | ((SWord16) s2115);+  const SWord32 s2117 = (((SWord32) s2101) << 16) | ((SWord32) s2116);+  const SWord32 s2118 = s2082 ^ s2117;+  const SWord8  s2119 = (SWord8) (s2118 >> 16);+  const SWord32 s2120 = table3[s2119];+  const SWord32 s2121 = s2071 ^ s2120;+  const SWord8  s2122 = (SWord8) (s1980 >> 24);+  const SWord32 s2123 = table1[s2122];+  const SWord8  s2124 = (SWord8) (s2030 >> 16);+  const SWord32 s2125 = table3[s2124];+  const SWord32 s2126 = s2123 ^ s2125;+  const SWord8  s2127 = (SWord8) (s1881 >> 8);+  const SWord32 s2128 = table4[s2127];+  const SWord32 s2129 = s2126 ^ s2128;+  const SWord8  s2130 = (SWord8) s1930;+  const SWord32 s2131 = table5[s2130];+  const SWord32 s2132 = s2129 ^ s2131;+  const SWord8  s2133 = (SWord8) (s620 >> 24);+  const SWord8  s2134 = table6[s2133];+  const SWord8  s2135 = (SWord8) (s620 >> 16);+  const SWord8  s2136 = table7[s2135];+  const SWord8  s2137 = (SWord8) (s620 >> 8);+  const SWord8  s2138 = table8[s2137];+  const SWord8  s2139 = (SWord8) s620;+  const SWord8  s2140 = table9[s2139];+  const SWord8  s2141 = s2138 ^ s2140;+  const SWord8  s2142 = s2136 ^ s2141;+  const SWord8  s2143 = s2134 ^ s2142;+  const SWord8  s2144 = table9[s2133];+  const SWord8  s2145 = table6[s2135];+  const SWord8  s2146 = table7[s2137];+  const SWord8  s2147 = table8[s2139];+  const SWord8  s2148 = s2146 ^ s2147;+  const SWord8  s2149 = s2145 ^ s2148;+  const SWord8  s2150 = s2144 ^ s2149;+  const SWord16 s2151 = (((SWord16) s2143) << 8) | ((SWord16) s2150);+  const SWord8  s2152 = table8[s2133];+  const SWord8  s2153 = table9[s2135];+  const SWord8  s2154 = table6[s2137];+  const SWord8  s2155 = table7[s2139];+  const SWord8  s2156 = s2154 ^ s2155;+  const SWord8  s2157 = s2153 ^ s2156;+  const SWord8  s2158 = s2152 ^ s2157;+  const SWord8  s2159 = table7[s2133];+  const SWord8  s2160 = table8[s2135];+  const SWord8  s2161 = table9[s2137];+  const SWord8  s2162 = table6[s2139];+  const SWord8  s2163 = s2161 ^ s2162;+  const SWord8  s2164 = s2160 ^ s2163;+  const SWord8  s2165 = s2159 ^ s2164;+  const SWord16 s2166 = (((SWord16) s2158) << 8) | ((SWord16) s2165);+  const SWord32 s2167 = (((SWord32) s2151) << 16) | ((SWord32) s2166);+  const SWord32 s2168 = s2132 ^ s2167;+  const SWord8  s2169 = (SWord8) (s2168 >> 8);+  const SWord32 s2170 = table4[s2169];+  const SWord32 s2171 = s2121 ^ s2170;+  const SWord8  s2172 = (SWord8) (s2030 >> 24);+  const SWord32 s2173 = table1[s2172];+  const SWord8  s2174 = (SWord8) (s1881 >> 16);+  const SWord32 s2175 = table3[s2174];+  const SWord32 s2176 = s2173 ^ s2175;+  const SWord8  s2177 = (SWord8) (s1930 >> 8);+  const SWord32 s2178 = table4[s2177];+  const SWord32 s2179 = s2176 ^ s2178;+  const SWord8  s2180 = (SWord8) s1980;+  const SWord32 s2181 = table5[s2180];+  const SWord32 s2182 = s2179 ^ s2181;+  const SWord8  s2183 = (SWord8) (s619 >> 24);+  const SWord8  s2184 = table6[s2183];+  const SWord8  s2185 = (SWord8) (s619 >> 16);+  const SWord8  s2186 = table7[s2185];+  const SWord8  s2187 = (SWord8) (s619 >> 8);+  const SWord8  s2188 = table8[s2187];+  const SWord8  s2189 = (SWord8) s619;+  const SWord8  s2190 = table9[s2189];+  const SWord8  s2191 = s2188 ^ s2190;+  const SWord8  s2192 = s2186 ^ s2191;+  const SWord8  s2193 = s2184 ^ s2192;+  const SWord8  s2194 = table9[s2183];+  const SWord8  s2195 = table6[s2185];+  const SWord8  s2196 = table7[s2187];+  const SWord8  s2197 = table8[s2189];+  const SWord8  s2198 = s2196 ^ s2197;+  const SWord8  s2199 = s2195 ^ s2198;+  const SWord8  s2200 = s2194 ^ s2199;+  const SWord16 s2201 = (((SWord16) s2193) << 8) | ((SWord16) s2200);+  const SWord8  s2202 = table8[s2183];+  const SWord8  s2203 = table9[s2185];+  const SWord8  s2204 = table6[s2187];+  const SWord8  s2205 = table7[s2189];+  const SWord8  s2206 = s2204 ^ s2205;+  const SWord8  s2207 = s2203 ^ s2206;+  const SWord8  s2208 = s2202 ^ s2207;+  const SWord8  s2209 = table7[s2183];+  const SWord8  s2210 = table8[s2185];+  const SWord8  s2211 = table9[s2187];+  const SWord8  s2212 = table6[s2189];+  const SWord8  s2213 = s2211 ^ s2212;+  const SWord8  s2214 = s2210 ^ s2213;+  const SWord8  s2215 = s2209 ^ s2214;+  const SWord16 s2216 = (((SWord16) s2208) << 8) | ((SWord16) s2215);+  const SWord32 s2217 = (((SWord32) s2201) << 16) | ((SWord32) s2216);+  const SWord32 s2218 = s2182 ^ s2217;+  const SWord8  s2219 = (SWord8) s2218;+  const SWord32 s2220 = table5[s2219];+  const SWord32 s2221 = s2171 ^ s2220;+  const SWord8  s2222 = (SWord8) (s601 >> 24);+  const SWord8  s2223 = table6[s2222];+  const SWord8  s2224 = (SWord8) (s601 >> 16);+  const SWord8  s2225 = table7[s2224];+  const SWord8  s2226 = (SWord8) (s601 >> 8);+  const SWord8  s2227 = table8[s2226];+  const SWord8  s2228 = (SWord8) s601;+  const SWord8  s2229 = table9[s2228];+  const SWord8  s2230 = s2227 ^ s2229;+  const SWord8  s2231 = s2225 ^ s2230;+  const SWord8  s2232 = s2223 ^ s2231;+  const SWord8  s2233 = table9[s2222];+  const SWord8  s2234 = table6[s2224];+  const SWord8  s2235 = table7[s2226];+  const SWord8  s2236 = table8[s2228];+  const SWord8  s2237 = s2235 ^ s2236;+  const SWord8  s2238 = s2234 ^ s2237;+  const SWord8  s2239 = s2233 ^ s2238;+  const SWord16 s2240 = (((SWord16) s2232) << 8) | ((SWord16) s2239);+  const SWord8  s2241 = table8[s2222];+  const SWord8  s2242 = table9[s2224];+  const SWord8  s2243 = table6[s2226];+  const SWord8  s2244 = table7[s2228];+  const SWord8  s2245 = s2243 ^ s2244;+  const SWord8  s2246 = s2242 ^ s2245;+  const SWord8  s2247 = s2241 ^ s2246;+  const SWord8  s2248 = table7[s2222];+  const SWord8  s2249 = table8[s2224];+  const SWord8  s2250 = table9[s2226];+  const SWord8  s2251 = table6[s2228];+  const SWord8  s2252 = s2250 ^ s2251;+  const SWord8  s2253 = s2249 ^ s2252;+  const SWord8  s2254 = s2248 ^ s2253;+  const SWord16 s2255 = (((SWord16) s2247) << 8) | ((SWord16) s2254);+  const SWord32 s2256 = (((SWord32) s2240) << 16) | ((SWord32) s2255);+  const SWord32 s2257 = s2221 ^ s2256;+  const SWord8  s2258 = (SWord8) (s2257 >> 24);+  const SWord32 s2259 = table1[s2258];+  const SWord8  s2260 = (SWord8) (s2118 >> 24);+  const SWord32 s2261 = table1[s2260];+  const SWord8  s2262 = (SWord8) (s2168 >> 16);+  const SWord32 s2263 = table3[s2262];+  const SWord32 s2264 = s2261 ^ s2263;+  const SWord8  s2265 = (SWord8) (s2218 >> 8);+  const SWord32 s2266 = table4[s2265];+  const SWord32 s2267 = s2264 ^ s2266;+  const SWord8  s2268 = (SWord8) s2069;+  const SWord32 s2269 = table5[s2268];+  const SWord32 s2270 = s2267 ^ s2269;+  const SWord8  s2271 = (SWord8) (s604 >> 24);+  const SWord8  s2272 = table6[s2271];+  const SWord8  s2273 = (SWord8) (s604 >> 16);+  const SWord8  s2274 = table7[s2273];+  const SWord8  s2275 = (SWord8) (s604 >> 8);+  const SWord8  s2276 = table8[s2275];+  const SWord8  s2277 = (SWord8) s604;+  const SWord8  s2278 = table9[s2277];+  const SWord8  s2279 = s2276 ^ s2278;+  const SWord8  s2280 = s2274 ^ s2279;+  const SWord8  s2281 = s2272 ^ s2280;+  const SWord8  s2282 = table9[s2271];+  const SWord8  s2283 = table6[s2273];+  const SWord8  s2284 = table7[s2275];+  const SWord8  s2285 = table8[s2277];+  const SWord8  s2286 = s2284 ^ s2285;+  const SWord8  s2287 = s2283 ^ s2286;+  const SWord8  s2288 = s2282 ^ s2287;+  const SWord16 s2289 = (((SWord16) s2281) << 8) | ((SWord16) s2288);+  const SWord8  s2290 = table8[s2271];+  const SWord8  s2291 = table9[s2273];+  const SWord8  s2292 = table6[s2275];+  const SWord8  s2293 = table7[s2277];+  const SWord8  s2294 = s2292 ^ s2293;+  const SWord8  s2295 = s2291 ^ s2294;+  const SWord8  s2296 = s2290 ^ s2295;+  const SWord8  s2297 = table7[s2271];+  const SWord8  s2298 = table8[s2273];+  const SWord8  s2299 = table9[s2275];+  const SWord8  s2300 = table6[s2277];+  const SWord8  s2301 = s2299 ^ s2300;+  const SWord8  s2302 = s2298 ^ s2301;+  const SWord8  s2303 = s2297 ^ s2302;+  const SWord16 s2304 = (((SWord16) s2296) << 8) | ((SWord16) s2303);+  const SWord32 s2305 = (((SWord32) s2289) << 16) | ((SWord32) s2304);+  const SWord32 s2306 = s2270 ^ s2305;+  const SWord8  s2307 = (SWord8) (s2306 >> 16);+  const SWord32 s2308 = table3[s2307];+  const SWord32 s2309 = s2259 ^ s2308;+  const SWord8  s2310 = (SWord8) (s2168 >> 24);+  const SWord32 s2311 = table1[s2310];+  const SWord8  s2312 = (SWord8) (s2218 >> 16);+  const SWord32 s2313 = table3[s2312];+  const SWord32 s2314 = s2311 ^ s2313;+  const SWord8  s2315 = (SWord8) (s2069 >> 8);+  const SWord32 s2316 = table4[s2315];+  const SWord32 s2317 = s2314 ^ s2316;+  const SWord8  s2318 = (SWord8) s2118;+  const SWord32 s2319 = table5[s2318];+  const SWord32 s2320 = s2317 ^ s2319;+  const SWord8  s2321 = (SWord8) (s603 >> 24);+  const SWord8  s2322 = table6[s2321];+  const SWord8  s2323 = (SWord8) (s603 >> 16);+  const SWord8  s2324 = table7[s2323];+  const SWord8  s2325 = (SWord8) (s603 >> 8);+  const SWord8  s2326 = table8[s2325];+  const SWord8  s2327 = (SWord8) s603;+  const SWord8  s2328 = table9[s2327];+  const SWord8  s2329 = s2326 ^ s2328;+  const SWord8  s2330 = s2324 ^ s2329;+  const SWord8  s2331 = s2322 ^ s2330;+  const SWord8  s2332 = table9[s2321];+  const SWord8  s2333 = table6[s2323];+  const SWord8  s2334 = table7[s2325];+  const SWord8  s2335 = table8[s2327];+  const SWord8  s2336 = s2334 ^ s2335;+  const SWord8  s2337 = s2333 ^ s2336;+  const SWord8  s2338 = s2332 ^ s2337;+  const SWord16 s2339 = (((SWord16) s2331) << 8) | ((SWord16) s2338);+  const SWord8  s2340 = table8[s2321];+  const SWord8  s2341 = table9[s2323];+  const SWord8  s2342 = table6[s2325];+  const SWord8  s2343 = table7[s2327];+  const SWord8  s2344 = s2342 ^ s2343;+  const SWord8  s2345 = s2341 ^ s2344;+  const SWord8  s2346 = s2340 ^ s2345;+  const SWord8  s2347 = table7[s2321];+  const SWord8  s2348 = table8[s2323];+  const SWord8  s2349 = table9[s2325];+  const SWord8  s2350 = table6[s2327];+  const SWord8  s2351 = s2349 ^ s2350;+  const SWord8  s2352 = s2348 ^ s2351;+  const SWord8  s2353 = s2347 ^ s2352;+  const SWord16 s2354 = (((SWord16) s2346) << 8) | ((SWord16) s2353);+  const SWord32 s2355 = (((SWord32) s2339) << 16) | ((SWord32) s2354);+  const SWord32 s2356 = s2320 ^ s2355;+  const SWord8  s2357 = (SWord8) (s2356 >> 8);+  const SWord32 s2358 = table4[s2357];+  const SWord32 s2359 = s2309 ^ s2358;+  const SWord8  s2360 = (SWord8) (s2218 >> 24);+  const SWord32 s2361 = table1[s2360];+  const SWord8  s2362 = (SWord8) (s2069 >> 16);+  const SWord32 s2363 = table3[s2362];+  const SWord32 s2364 = s2361 ^ s2363;+  const SWord8  s2365 = (SWord8) (s2118 >> 8);+  const SWord32 s2366 = table4[s2365];+  const SWord32 s2367 = s2364 ^ s2366;+  const SWord8  s2368 = (SWord8) s2168;+  const SWord32 s2369 = table5[s2368];+  const SWord32 s2370 = s2367 ^ s2369;+  const SWord8  s2371 = (SWord8) (s602 >> 24);+  const SWord8  s2372 = table6[s2371];+  const SWord8  s2373 = (SWord8) (s602 >> 16);+  const SWord8  s2374 = table7[s2373];+  const SWord8  s2375 = (SWord8) (s602 >> 8);+  const SWord8  s2376 = table8[s2375];+  const SWord8  s2377 = (SWord8) s602;+  const SWord8  s2378 = table9[s2377];+  const SWord8  s2379 = s2376 ^ s2378;+  const SWord8  s2380 = s2374 ^ s2379;+  const SWord8  s2381 = s2372 ^ s2380;+  const SWord8  s2382 = table9[s2371];+  const SWord8  s2383 = table6[s2373];+  const SWord8  s2384 = table7[s2375];+  const SWord8  s2385 = table8[s2377];+  const SWord8  s2386 = s2384 ^ s2385;+  const SWord8  s2387 = s2383 ^ s2386;+  const SWord8  s2388 = s2382 ^ s2387;+  const SWord16 s2389 = (((SWord16) s2381) << 8) | ((SWord16) s2388);+  const SWord8  s2390 = table8[s2371];+  const SWord8  s2391 = table9[s2373];+  const SWord8  s2392 = table6[s2375];+  const SWord8  s2393 = table7[s2377];+  const SWord8  s2394 = s2392 ^ s2393;+  const SWord8  s2395 = s2391 ^ s2394;+  const SWord8  s2396 = s2390 ^ s2395;+  const SWord8  s2397 = table7[s2371];+  const SWord8  s2398 = table8[s2373];+  const SWord8  s2399 = table9[s2375];+  const SWord8  s2400 = table6[s2377];+  const SWord8  s2401 = s2399 ^ s2400;+  const SWord8  s2402 = s2398 ^ s2401;+  const SWord8  s2403 = s2397 ^ s2402;+  const SWord16 s2404 = (((SWord16) s2396) << 8) | ((SWord16) s2403);+  const SWord32 s2405 = (((SWord32) s2389) << 16) | ((SWord32) s2404);+  const SWord32 s2406 = s2370 ^ s2405;+  const SWord8  s2407 = (SWord8) s2406;+  const SWord32 s2408 = table5[s2407];+  const SWord32 s2409 = s2359 ^ s2408;+  const SWord8  s2410 = (SWord8) (s584 >> 24);+  const SWord8  s2411 = table6[s2410];+  const SWord8  s2412 = (SWord8) (s584 >> 16);+  const SWord8  s2413 = table7[s2412];+  const SWord8  s2414 = (SWord8) (s584 >> 8);+  const SWord8  s2415 = table8[s2414];+  const SWord8  s2416 = (SWord8) s584;+  const SWord8  s2417 = table9[s2416];+  const SWord8  s2418 = s2415 ^ s2417;+  const SWord8  s2419 = s2413 ^ s2418;+  const SWord8  s2420 = s2411 ^ s2419;+  const SWord8  s2421 = table9[s2410];+  const SWord8  s2422 = table6[s2412];+  const SWord8  s2423 = table7[s2414];+  const SWord8  s2424 = table8[s2416];+  const SWord8  s2425 = s2423 ^ s2424;+  const SWord8  s2426 = s2422 ^ s2425;+  const SWord8  s2427 = s2421 ^ s2426;+  const SWord16 s2428 = (((SWord16) s2420) << 8) | ((SWord16) s2427);+  const SWord8  s2429 = table8[s2410];+  const SWord8  s2430 = table9[s2412];+  const SWord8  s2431 = table6[s2414];+  const SWord8  s2432 = table7[s2416];+  const SWord8  s2433 = s2431 ^ s2432;+  const SWord8  s2434 = s2430 ^ s2433;+  const SWord8  s2435 = s2429 ^ s2434;+  const SWord8  s2436 = table7[s2410];+  const SWord8  s2437 = table8[s2412];+  const SWord8  s2438 = table9[s2414];+  const SWord8  s2439 = table6[s2416];+  const SWord8  s2440 = s2438 ^ s2439;+  const SWord8  s2441 = s2437 ^ s2440;+  const SWord8  s2442 = s2436 ^ s2441;+  const SWord16 s2443 = (((SWord16) s2435) << 8) | ((SWord16) s2442);+  const SWord32 s2444 = (((SWord32) s2428) << 16) | ((SWord32) s2443);+  const SWord32 s2445 = s2409 ^ s2444;+  const SWord8  s2446 = (SWord8) (s2445 >> 24);+  const SWord32 s2447 = table1[s2446];+  const SWord8  s2448 = (SWord8) (s2306 >> 24);+  const SWord32 s2449 = table1[s2448];+  const SWord8  s2450 = (SWord8) (s2356 >> 16);+  const SWord32 s2451 = table3[s2450];+  const SWord32 s2452 = s2449 ^ s2451;+  const SWord8  s2453 = (SWord8) (s2406 >> 8);+  const SWord32 s2454 = table4[s2453];+  const SWord32 s2455 = s2452 ^ s2454;+  const SWord8  s2456 = (SWord8) s2257;+  const SWord32 s2457 = table5[s2456];+  const SWord32 s2458 = s2455 ^ s2457;+  const SWord8  s2459 = (SWord8) (s587 >> 24);+  const SWord8  s2460 = table6[s2459];+  const SWord8  s2461 = (SWord8) (s587 >> 16);+  const SWord8  s2462 = table7[s2461];+  const SWord8  s2463 = (SWord8) (s587 >> 8);+  const SWord8  s2464 = table8[s2463];+  const SWord8  s2465 = (SWord8) s587;+  const SWord8  s2466 = table9[s2465];+  const SWord8  s2467 = s2464 ^ s2466;+  const SWord8  s2468 = s2462 ^ s2467;+  const SWord8  s2469 = s2460 ^ s2468;+  const SWord8  s2470 = table9[s2459];+  const SWord8  s2471 = table6[s2461];+  const SWord8  s2472 = table7[s2463];+  const SWord8  s2473 = table8[s2465];+  const SWord8  s2474 = s2472 ^ s2473;+  const SWord8  s2475 = s2471 ^ s2474;+  const SWord8  s2476 = s2470 ^ s2475;+  const SWord16 s2477 = (((SWord16) s2469) << 8) | ((SWord16) s2476);+  const SWord8  s2478 = table8[s2459];+  const SWord8  s2479 = table9[s2461];+  const SWord8  s2480 = table6[s2463];+  const SWord8  s2481 = table7[s2465];+  const SWord8  s2482 = s2480 ^ s2481;+  const SWord8  s2483 = s2479 ^ s2482;+  const SWord8  s2484 = s2478 ^ s2483;+  const SWord8  s2485 = table7[s2459];+  const SWord8  s2486 = table8[s2461];+  const SWord8  s2487 = table9[s2463];+  const SWord8  s2488 = table6[s2465];+  const SWord8  s2489 = s2487 ^ s2488;+  const SWord8  s2490 = s2486 ^ s2489;+  const SWord8  s2491 = s2485 ^ s2490;+  const SWord16 s2492 = (((SWord16) s2484) << 8) | ((SWord16) s2491);+  const SWord32 s2493 = (((SWord32) s2477) << 16) | ((SWord32) s2492);+  const SWord32 s2494 = s2458 ^ s2493;+  const SWord8  s2495 = (SWord8) (s2494 >> 16);+  const SWord32 s2496 = table3[s2495];+  const SWord32 s2497 = s2447 ^ s2496;+  const SWord8  s2498 = (SWord8) (s2356 >> 24);+  const SWord32 s2499 = table1[s2498];+  const SWord8  s2500 = (SWord8) (s2406 >> 16);+  const SWord32 s2501 = table3[s2500];+  const SWord32 s2502 = s2499 ^ s2501;+  const SWord8  s2503 = (SWord8) (s2257 >> 8);+  const SWord32 s2504 = table4[s2503];+  const SWord32 s2505 = s2502 ^ s2504;+  const SWord8  s2506 = (SWord8) s2306;+  const SWord32 s2507 = table5[s2506];+  const SWord32 s2508 = s2505 ^ s2507;+  const SWord8  s2509 = (SWord8) (s586 >> 24);+  const SWord8  s2510 = table6[s2509];+  const SWord8  s2511 = (SWord8) (s586 >> 16);+  const SWord8  s2512 = table7[s2511];+  const SWord8  s2513 = (SWord8) (s586 >> 8);+  const SWord8  s2514 = table8[s2513];+  const SWord8  s2515 = (SWord8) s586;+  const SWord8  s2516 = table9[s2515];+  const SWord8  s2517 = s2514 ^ s2516;+  const SWord8  s2518 = s2512 ^ s2517;+  const SWord8  s2519 = s2510 ^ s2518;+  const SWord8  s2520 = table9[s2509];+  const SWord8  s2521 = table6[s2511];+  const SWord8  s2522 = table7[s2513];+  const SWord8  s2523 = table8[s2515];+  const SWord8  s2524 = s2522 ^ s2523;+  const SWord8  s2525 = s2521 ^ s2524;+  const SWord8  s2526 = s2520 ^ s2525;+  const SWord16 s2527 = (((SWord16) s2519) << 8) | ((SWord16) s2526);+  const SWord8  s2528 = table8[s2509];+  const SWord8  s2529 = table9[s2511];+  const SWord8  s2530 = table6[s2513];+  const SWord8  s2531 = table7[s2515];+  const SWord8  s2532 = s2530 ^ s2531;+  const SWord8  s2533 = s2529 ^ s2532;+  const SWord8  s2534 = s2528 ^ s2533;+  const SWord8  s2535 = table7[s2509];+  const SWord8  s2536 = table8[s2511];+  const SWord8  s2537 = table9[s2513];+  const SWord8  s2538 = table6[s2515];+  const SWord8  s2539 = s2537 ^ s2538;+  const SWord8  s2540 = s2536 ^ s2539;+  const SWord8  s2541 = s2535 ^ s2540;+  const SWord16 s2542 = (((SWord16) s2534) << 8) | ((SWord16) s2541);+  const SWord32 s2543 = (((SWord32) s2527) << 16) | ((SWord32) s2542);+  const SWord32 s2544 = s2508 ^ s2543;+  const SWord8  s2545 = (SWord8) (s2544 >> 8);+  const SWord32 s2546 = table4[s2545];+  const SWord32 s2547 = s2497 ^ s2546;+  const SWord8  s2548 = (SWord8) (s2406 >> 24);+  const SWord32 s2549 = table1[s2548];+  const SWord8  s2550 = (SWord8) (s2257 >> 16);+  const SWord32 s2551 = table3[s2550];+  const SWord32 s2552 = s2549 ^ s2551;+  const SWord8  s2553 = (SWord8) (s2306 >> 8);+  const SWord32 s2554 = table4[s2553];+  const SWord32 s2555 = s2552 ^ s2554;+  const SWord8  s2556 = (SWord8) s2356;+  const SWord32 s2557 = table5[s2556];+  const SWord32 s2558 = s2555 ^ s2557;+  const SWord8  s2559 = (SWord8) (s585 >> 24);+  const SWord8  s2560 = table6[s2559];+  const SWord8  s2561 = (SWord8) (s585 >> 16);+  const SWord8  s2562 = table7[s2561];+  const SWord8  s2563 = (SWord8) (s585 >> 8);+  const SWord8  s2564 = table8[s2563];+  const SWord8  s2565 = (SWord8) s585;+  const SWord8  s2566 = table9[s2565];+  const SWord8  s2567 = s2564 ^ s2566;+  const SWord8  s2568 = s2562 ^ s2567;+  const SWord8  s2569 = s2560 ^ s2568;+  const SWord8  s2570 = table9[s2559];+  const SWord8  s2571 = table6[s2561];+  const SWord8  s2572 = table7[s2563];+  const SWord8  s2573 = table8[s2565];+  const SWord8  s2574 = s2572 ^ s2573;+  const SWord8  s2575 = s2571 ^ s2574;+  const SWord8  s2576 = s2570 ^ s2575;+  const SWord16 s2577 = (((SWord16) s2569) << 8) | ((SWord16) s2576);+  const SWord8  s2578 = table8[s2559];+  const SWord8  s2579 = table9[s2561];+  const SWord8  s2580 = table6[s2563];+  const SWord8  s2581 = table7[s2565];+  const SWord8  s2582 = s2580 ^ s2581;+  const SWord8  s2583 = s2579 ^ s2582;+  const SWord8  s2584 = s2578 ^ s2583;+  const SWord8  s2585 = table7[s2559];+  const SWord8  s2586 = table8[s2561];+  const SWord8  s2587 = table9[s2563];+  const SWord8  s2588 = table6[s2565];+  const SWord8  s2589 = s2587 ^ s2588;+  const SWord8  s2590 = s2586 ^ s2589;+  const SWord8  s2591 = s2585 ^ s2590;+  const SWord16 s2592 = (((SWord16) s2584) << 8) | ((SWord16) s2591);+  const SWord32 s2593 = (((SWord32) s2577) << 16) | ((SWord32) s2592);+  const SWord32 s2594 = s2558 ^ s2593;+  const SWord8  s2595 = (SWord8) s2594;+  const SWord32 s2596 = table5[s2595];+  const SWord32 s2597 = s2547 ^ s2596;+  const SWord8  s2598 = (SWord8) (s567 >> 24);+  const SWord8  s2599 = table6[s2598];+  const SWord8  s2600 = (SWord8) (s567 >> 16);+  const SWord8  s2601 = table7[s2600];+  const SWord8  s2602 = (SWord8) (s567 >> 8);+  const SWord8  s2603 = table8[s2602];+  const SWord8  s2604 = (SWord8) s567;+  const SWord8  s2605 = table9[s2604];+  const SWord8  s2606 = s2603 ^ s2605;+  const SWord8  s2607 = s2601 ^ s2606;+  const SWord8  s2608 = s2599 ^ s2607;+  const SWord8  s2609 = table9[s2598];+  const SWord8  s2610 = table6[s2600];+  const SWord8  s2611 = table7[s2602];+  const SWord8  s2612 = table8[s2604];+  const SWord8  s2613 = s2611 ^ s2612;+  const SWord8  s2614 = s2610 ^ s2613;+  const SWord8  s2615 = s2609 ^ s2614;+  const SWord16 s2616 = (((SWord16) s2608) << 8) | ((SWord16) s2615);+  const SWord8  s2617 = table8[s2598];+  const SWord8  s2618 = table9[s2600];+  const SWord8  s2619 = table6[s2602];+  const SWord8  s2620 = table7[s2604];+  const SWord8  s2621 = s2619 ^ s2620;+  const SWord8  s2622 = s2618 ^ s2621;+  const SWord8  s2623 = s2617 ^ s2622;+  const SWord8  s2624 = table7[s2598];+  const SWord8  s2625 = table8[s2600];+  const SWord8  s2626 = table9[s2602];+  const SWord8  s2627 = table6[s2604];+  const SWord8  s2628 = s2626 ^ s2627;+  const SWord8  s2629 = s2625 ^ s2628;+  const SWord8  s2630 = s2624 ^ s2629;+  const SWord16 s2631 = (((SWord16) s2623) << 8) | ((SWord16) s2630);+  const SWord32 s2632 = (((SWord32) s2616) << 16) | ((SWord32) s2631);+  const SWord32 s2633 = s2597 ^ s2632;+  const SWord8  s2634 = (SWord8) (s2633 >> 24);+  const SWord32 s2635 = table1[s2634];+  const SWord8  s2636 = (SWord8) (s2494 >> 24);+  const SWord32 s2637 = table1[s2636];+  const SWord8  s2638 = (SWord8) (s2544 >> 16);+  const SWord32 s2639 = table3[s2638];+  const SWord32 s2640 = s2637 ^ s2639;+  const SWord8  s2641 = (SWord8) (s2594 >> 8);+  const SWord32 s2642 = table4[s2641];+  const SWord32 s2643 = s2640 ^ s2642;+  const SWord8  s2644 = (SWord8) s2445;+  const SWord32 s2645 = table5[s2644];+  const SWord32 s2646 = s2643 ^ s2645;+  const SWord8  s2647 = (SWord8) (s570 >> 24);+  const SWord8  s2648 = table6[s2647];+  const SWord8  s2649 = (SWord8) (s570 >> 16);+  const SWord8  s2650 = table7[s2649];+  const SWord8  s2651 = (SWord8) (s570 >> 8);+  const SWord8  s2652 = table8[s2651];+  const SWord8  s2653 = (SWord8) s570;+  const SWord8  s2654 = table9[s2653];+  const SWord8  s2655 = s2652 ^ s2654;+  const SWord8  s2656 = s2650 ^ s2655;+  const SWord8  s2657 = s2648 ^ s2656;+  const SWord8  s2658 = table9[s2647];+  const SWord8  s2659 = table6[s2649];+  const SWord8  s2660 = table7[s2651];+  const SWord8  s2661 = table8[s2653];+  const SWord8  s2662 = s2660 ^ s2661;+  const SWord8  s2663 = s2659 ^ s2662;+  const SWord8  s2664 = s2658 ^ s2663;+  const SWord16 s2665 = (((SWord16) s2657) << 8) | ((SWord16) s2664);+  const SWord8  s2666 = table8[s2647];+  const SWord8  s2667 = table9[s2649];+  const SWord8  s2668 = table6[s2651];+  const SWord8  s2669 = table7[s2653];+  const SWord8  s2670 = s2668 ^ s2669;+  const SWord8  s2671 = s2667 ^ s2670;+  const SWord8  s2672 = s2666 ^ s2671;+  const SWord8  s2673 = table7[s2647];+  const SWord8  s2674 = table8[s2649];+  const SWord8  s2675 = table9[s2651];+  const SWord8  s2676 = table6[s2653];+  const SWord8  s2677 = s2675 ^ s2676;+  const SWord8  s2678 = s2674 ^ s2677;+  const SWord8  s2679 = s2673 ^ s2678;+  const SWord16 s2680 = (((SWord16) s2672) << 8) | ((SWord16) s2679);+  const SWord32 s2681 = (((SWord32) s2665) << 16) | ((SWord32) s2680);+  const SWord32 s2682 = s2646 ^ s2681;+  const SWord8  s2683 = (SWord8) (s2682 >> 16);+  const SWord32 s2684 = table3[s2683];+  const SWord32 s2685 = s2635 ^ s2684;+  const SWord8  s2686 = (SWord8) (s2544 >> 24);+  const SWord32 s2687 = table1[s2686];+  const SWord8  s2688 = (SWord8) (s2594 >> 16);+  const SWord32 s2689 = table3[s2688];+  const SWord32 s2690 = s2687 ^ s2689;+  const SWord8  s2691 = (SWord8) (s2445 >> 8);+  const SWord32 s2692 = table4[s2691];+  const SWord32 s2693 = s2690 ^ s2692;+  const SWord8  s2694 = (SWord8) s2494;+  const SWord32 s2695 = table5[s2694];+  const SWord32 s2696 = s2693 ^ s2695;+  const SWord8  s2697 = (SWord8) (s569 >> 24);+  const SWord8  s2698 = table6[s2697];+  const SWord8  s2699 = (SWord8) (s569 >> 16);+  const SWord8  s2700 = table7[s2699];+  const SWord8  s2701 = (SWord8) (s569 >> 8);+  const SWord8  s2702 = table8[s2701];+  const SWord8  s2703 = (SWord8) s569;+  const SWord8  s2704 = table9[s2703];+  const SWord8  s2705 = s2702 ^ s2704;+  const SWord8  s2706 = s2700 ^ s2705;+  const SWord8  s2707 = s2698 ^ s2706;+  const SWord8  s2708 = table9[s2697];+  const SWord8  s2709 = table6[s2699];+  const SWord8  s2710 = table7[s2701];+  const SWord8  s2711 = table8[s2703];+  const SWord8  s2712 = s2710 ^ s2711;+  const SWord8  s2713 = s2709 ^ s2712;+  const SWord8  s2714 = s2708 ^ s2713;+  const SWord16 s2715 = (((SWord16) s2707) << 8) | ((SWord16) s2714);+  const SWord8  s2716 = table8[s2697];+  const SWord8  s2717 = table9[s2699];+  const SWord8  s2718 = table6[s2701];+  const SWord8  s2719 = table7[s2703];+  const SWord8  s2720 = s2718 ^ s2719;+  const SWord8  s2721 = s2717 ^ s2720;+  const SWord8  s2722 = s2716 ^ s2721;+  const SWord8  s2723 = table7[s2697];+  const SWord8  s2724 = table8[s2699];+  const SWord8  s2725 = table9[s2701];+  const SWord8  s2726 = table6[s2703];+  const SWord8  s2727 = s2725 ^ s2726;+  const SWord8  s2728 = s2724 ^ s2727;+  const SWord8  s2729 = s2723 ^ s2728;+  const SWord16 s2730 = (((SWord16) s2722) << 8) | ((SWord16) s2729);+  const SWord32 s2731 = (((SWord32) s2715) << 16) | ((SWord32) s2730);+  const SWord32 s2732 = s2696 ^ s2731;+  const SWord8  s2733 = (SWord8) (s2732 >> 8);+  const SWord32 s2734 = table4[s2733];+  const SWord32 s2735 = s2685 ^ s2734;+  const SWord8  s2736 = (SWord8) (s2594 >> 24);+  const SWord32 s2737 = table1[s2736];+  const SWord8  s2738 = (SWord8) (s2445 >> 16);+  const SWord32 s2739 = table3[s2738];+  const SWord32 s2740 = s2737 ^ s2739;+  const SWord8  s2741 = (SWord8) (s2494 >> 8);+  const SWord32 s2742 = table4[s2741];+  const SWord32 s2743 = s2740 ^ s2742;+  const SWord8  s2744 = (SWord8) s2544;+  const SWord32 s2745 = table5[s2744];+  const SWord32 s2746 = s2743 ^ s2745;+  const SWord8  s2747 = (SWord8) (s568 >> 24);+  const SWord8  s2748 = table6[s2747];+  const SWord8  s2749 = (SWord8) (s568 >> 16);+  const SWord8  s2750 = table7[s2749];+  const SWord8  s2751 = (SWord8) (s568 >> 8);+  const SWord8  s2752 = table8[s2751];+  const SWord8  s2753 = (SWord8) s568;+  const SWord8  s2754 = table9[s2753];+  const SWord8  s2755 = s2752 ^ s2754;+  const SWord8  s2756 = s2750 ^ s2755;+  const SWord8  s2757 = s2748 ^ s2756;+  const SWord8  s2758 = table9[s2747];+  const SWord8  s2759 = table6[s2749];+  const SWord8  s2760 = table7[s2751];+  const SWord8  s2761 = table8[s2753];+  const SWord8  s2762 = s2760 ^ s2761;+  const SWord8  s2763 = s2759 ^ s2762;+  const SWord8  s2764 = s2758 ^ s2763;+  const SWord16 s2765 = (((SWord16) s2757) << 8) | ((SWord16) s2764);+  const SWord8  s2766 = table8[s2747];+  const SWord8  s2767 = table9[s2749];+  const SWord8  s2768 = table6[s2751];+  const SWord8  s2769 = table7[s2753];+  const SWord8  s2770 = s2768 ^ s2769;+  const SWord8  s2771 = s2767 ^ s2770;+  const SWord8  s2772 = s2766 ^ s2771;+  const SWord8  s2773 = table7[s2747];+  const SWord8  s2774 = table8[s2749];+  const SWord8  s2775 = table9[s2751];+  const SWord8  s2776 = table6[s2753];+  const SWord8  s2777 = s2775 ^ s2776;+  const SWord8  s2778 = s2774 ^ s2777;+  const SWord8  s2779 = s2773 ^ s2778;+  const SWord16 s2780 = (((SWord16) s2772) << 8) | ((SWord16) s2779);+  const SWord32 s2781 = (((SWord32) s2765) << 16) | ((SWord32) s2780);+  const SWord32 s2782 = s2746 ^ s2781;+  const SWord8  s2783 = (SWord8) s2782;+  const SWord32 s2784 = table5[s2783];+  const SWord32 s2785 = s2735 ^ s2784;+  const SWord8  s2786 = (SWord8) (s550 >> 24);+  const SWord8  s2787 = table6[s2786];+  const SWord8  s2788 = (SWord8) (s550 >> 16);+  const SWord8  s2789 = table7[s2788];+  const SWord8  s2790 = (SWord8) (s550 >> 8);+  const SWord8  s2791 = table8[s2790];+  const SWord8  s2792 = (SWord8) s550;+  const SWord8  s2793 = table9[s2792];+  const SWord8  s2794 = s2791 ^ s2793;+  const SWord8  s2795 = s2789 ^ s2794;+  const SWord8  s2796 = s2787 ^ s2795;+  const SWord8  s2797 = table9[s2786];+  const SWord8  s2798 = table6[s2788];+  const SWord8  s2799 = table7[s2790];+  const SWord8  s2800 = table8[s2792];+  const SWord8  s2801 = s2799 ^ s2800;+  const SWord8  s2802 = s2798 ^ s2801;+  const SWord8  s2803 = s2797 ^ s2802;+  const SWord16 s2804 = (((SWord16) s2796) << 8) | ((SWord16) s2803);+  const SWord8  s2805 = table8[s2786];+  const SWord8  s2806 = table9[s2788];+  const SWord8  s2807 = table6[s2790];+  const SWord8  s2808 = table7[s2792];+  const SWord8  s2809 = s2807 ^ s2808;+  const SWord8  s2810 = s2806 ^ s2809;+  const SWord8  s2811 = s2805 ^ s2810;+  const SWord8  s2812 = table7[s2786];+  const SWord8  s2813 = table8[s2788];+  const SWord8  s2814 = table9[s2790];+  const SWord8  s2815 = table6[s2792];+  const SWord8  s2816 = s2814 ^ s2815;+  const SWord8  s2817 = s2813 ^ s2816;+  const SWord8  s2818 = s2812 ^ s2817;+  const SWord16 s2819 = (((SWord16) s2811) << 8) | ((SWord16) s2818);+  const SWord32 s2820 = (((SWord32) s2804) << 16) | ((SWord32) s2819);+  const SWord32 s2821 = s2785 ^ s2820;+  const SWord8  s2822 = (SWord8) (s2821 >> 24);+  const SWord32 s2823 = table1[s2822];+  const SWord8  s2824 = (SWord8) (s2682 >> 24);+  const SWord32 s2825 = table1[s2824];+  const SWord8  s2826 = (SWord8) (s2732 >> 16);+  const SWord32 s2827 = table3[s2826];+  const SWord32 s2828 = s2825 ^ s2827;+  const SWord8  s2829 = (SWord8) (s2782 >> 8);+  const SWord32 s2830 = table4[s2829];+  const SWord32 s2831 = s2828 ^ s2830;+  const SWord8  s2832 = (SWord8) s2633;+  const SWord32 s2833 = table5[s2832];+  const SWord32 s2834 = s2831 ^ s2833;+  const SWord8  s2835 = (SWord8) (s553 >> 24);+  const SWord8  s2836 = table6[s2835];+  const SWord8  s2837 = (SWord8) (s553 >> 16);+  const SWord8  s2838 = table7[s2837];+  const SWord8  s2839 = (SWord8) (s553 >> 8);+  const SWord8  s2840 = table8[s2839];+  const SWord8  s2841 = (SWord8) s553;+  const SWord8  s2842 = table9[s2841];+  const SWord8  s2843 = s2840 ^ s2842;+  const SWord8  s2844 = s2838 ^ s2843;+  const SWord8  s2845 = s2836 ^ s2844;+  const SWord8  s2846 = table9[s2835];+  const SWord8  s2847 = table6[s2837];+  const SWord8  s2848 = table7[s2839];+  const SWord8  s2849 = table8[s2841];+  const SWord8  s2850 = s2848 ^ s2849;+  const SWord8  s2851 = s2847 ^ s2850;+  const SWord8  s2852 = s2846 ^ s2851;+  const SWord16 s2853 = (((SWord16) s2845) << 8) | ((SWord16) s2852);+  const SWord8  s2854 = table8[s2835];+  const SWord8  s2855 = table9[s2837];+  const SWord8  s2856 = table6[s2839];+  const SWord8  s2857 = table7[s2841];+  const SWord8  s2858 = s2856 ^ s2857;+  const SWord8  s2859 = s2855 ^ s2858;+  const SWord8  s2860 = s2854 ^ s2859;+  const SWord8  s2861 = table7[s2835];+  const SWord8  s2862 = table8[s2837];+  const SWord8  s2863 = table9[s2839];+  const SWord8  s2864 = table6[s2841];+  const SWord8  s2865 = s2863 ^ s2864;+  const SWord8  s2866 = s2862 ^ s2865;+  const SWord8  s2867 = s2861 ^ s2866;+  const SWord16 s2868 = (((SWord16) s2860) << 8) | ((SWord16) s2867);+  const SWord32 s2869 = (((SWord32) s2853) << 16) | ((SWord32) s2868);+  const SWord32 s2870 = s2834 ^ s2869;+  const SWord8  s2871 = (SWord8) (s2870 >> 16);+  const SWord32 s2872 = table3[s2871];+  const SWord32 s2873 = s2823 ^ s2872;+  const SWord8  s2874 = (SWord8) (s2732 >> 24);+  const SWord32 s2875 = table1[s2874];+  const SWord8  s2876 = (SWord8) (s2782 >> 16);+  const SWord32 s2877 = table3[s2876];+  const SWord32 s2878 = s2875 ^ s2877;+  const SWord8  s2879 = (SWord8) (s2633 >> 8);+  const SWord32 s2880 = table4[s2879];+  const SWord32 s2881 = s2878 ^ s2880;+  const SWord8  s2882 = (SWord8) s2682;+  const SWord32 s2883 = table5[s2882];+  const SWord32 s2884 = s2881 ^ s2883;+  const SWord8  s2885 = (SWord8) (s552 >> 24);+  const SWord8  s2886 = table6[s2885];+  const SWord8  s2887 = (SWord8) (s552 >> 16);+  const SWord8  s2888 = table7[s2887];+  const SWord8  s2889 = (SWord8) (s552 >> 8);+  const SWord8  s2890 = table8[s2889];+  const SWord8  s2891 = (SWord8) s552;+  const SWord8  s2892 = table9[s2891];+  const SWord8  s2893 = s2890 ^ s2892;+  const SWord8  s2894 = s2888 ^ s2893;+  const SWord8  s2895 = s2886 ^ s2894;+  const SWord8  s2896 = table9[s2885];+  const SWord8  s2897 = table6[s2887];+  const SWord8  s2898 = table7[s2889];+  const SWord8  s2899 = table8[s2891];+  const SWord8  s2900 = s2898 ^ s2899;+  const SWord8  s2901 = s2897 ^ s2900;+  const SWord8  s2902 = s2896 ^ s2901;+  const SWord16 s2903 = (((SWord16) s2895) << 8) | ((SWord16) s2902);+  const SWord8  s2904 = table8[s2885];+  const SWord8  s2905 = table9[s2887];+  const SWord8  s2906 = table6[s2889];+  const SWord8  s2907 = table7[s2891];+  const SWord8  s2908 = s2906 ^ s2907;+  const SWord8  s2909 = s2905 ^ s2908;+  const SWord8  s2910 = s2904 ^ s2909;+  const SWord8  s2911 = table7[s2885];+  const SWord8  s2912 = table8[s2887];+  const SWord8  s2913 = table9[s2889];+  const SWord8  s2914 = table6[s2891];+  const SWord8  s2915 = s2913 ^ s2914;+  const SWord8  s2916 = s2912 ^ s2915;+  const SWord8  s2917 = s2911 ^ s2916;+  const SWord16 s2918 = (((SWord16) s2910) << 8) | ((SWord16) s2917);+  const SWord32 s2919 = (((SWord32) s2903) << 16) | ((SWord32) s2918);+  const SWord32 s2920 = s2884 ^ s2919;+  const SWord8  s2921 = (SWord8) (s2920 >> 8);+  const SWord32 s2922 = table4[s2921];+  const SWord32 s2923 = s2873 ^ s2922;+  const SWord8  s2924 = (SWord8) (s2782 >> 24);+  const SWord32 s2925 = table1[s2924];+  const SWord8  s2926 = (SWord8) (s2633 >> 16);+  const SWord32 s2927 = table3[s2926];+  const SWord32 s2928 = s2925 ^ s2927;+  const SWord8  s2929 = (SWord8) (s2682 >> 8);+  const SWord32 s2930 = table4[s2929];+  const SWord32 s2931 = s2928 ^ s2930;+  const SWord8  s2932 = (SWord8) s2732;+  const SWord32 s2933 = table5[s2932];+  const SWord32 s2934 = s2931 ^ s2933;+  const SWord8  s2935 = (SWord8) (s551 >> 24);+  const SWord8  s2936 = table6[s2935];+  const SWord8  s2937 = (SWord8) (s551 >> 16);+  const SWord8  s2938 = table7[s2937];+  const SWord8  s2939 = (SWord8) (s551 >> 8);+  const SWord8  s2940 = table8[s2939];+  const SWord8  s2941 = (SWord8) s551;+  const SWord8  s2942 = table9[s2941];+  const SWord8  s2943 = s2940 ^ s2942;+  const SWord8  s2944 = s2938 ^ s2943;+  const SWord8  s2945 = s2936 ^ s2944;+  const SWord8  s2946 = table9[s2935];+  const SWord8  s2947 = table6[s2937];+  const SWord8  s2948 = table7[s2939];+  const SWord8  s2949 = table8[s2941];+  const SWord8  s2950 = s2948 ^ s2949;+  const SWord8  s2951 = s2947 ^ s2950;+  const SWord8  s2952 = s2946 ^ s2951;+  const SWord16 s2953 = (((SWord16) s2945) << 8) | ((SWord16) s2952);+  const SWord8  s2954 = table8[s2935];+  const SWord8  s2955 = table9[s2937];+  const SWord8  s2956 = table6[s2939];+  const SWord8  s2957 = table7[s2941];+  const SWord8  s2958 = s2956 ^ s2957;+  const SWord8  s2959 = s2955 ^ s2958;+  const SWord8  s2960 = s2954 ^ s2959;+  const SWord8  s2961 = table7[s2935];+  const SWord8  s2962 = table8[s2937];+  const SWord8  s2963 = table9[s2939];+  const SWord8  s2964 = table6[s2941];+  const SWord8  s2965 = s2963 ^ s2964;+  const SWord8  s2966 = s2962 ^ s2965;+  const SWord8  s2967 = s2961 ^ s2966;+  const SWord16 s2968 = (((SWord16) s2960) << 8) | ((SWord16) s2967);+  const SWord32 s2969 = (((SWord32) s2953) << 16) | ((SWord32) s2968);+  const SWord32 s2970 = s2934 ^ s2969;+  const SWord8  s2971 = (SWord8) s2970;+  const SWord32 s2972 = table5[s2971];+  const SWord32 s2973 = s2923 ^ s2972;+  const SWord8  s2974 = (SWord8) (s533 >> 24);+  const SWord8  s2975 = table6[s2974];+  const SWord8  s2976 = (SWord8) (s533 >> 16);+  const SWord8  s2977 = table7[s2976];+  const SWord8  s2978 = (SWord8) (s533 >> 8);+  const SWord8  s2979 = table8[s2978];+  const SWord8  s2980 = (SWord8) s533;+  const SWord8  s2981 = table9[s2980];+  const SWord8  s2982 = s2979 ^ s2981;+  const SWord8  s2983 = s2977 ^ s2982;+  const SWord8  s2984 = s2975 ^ s2983;+  const SWord8  s2985 = table9[s2974];+  const SWord8  s2986 = table6[s2976];+  const SWord8  s2987 = table7[s2978];+  const SWord8  s2988 = table8[s2980];+  const SWord8  s2989 = s2987 ^ s2988;+  const SWord8  s2990 = s2986 ^ s2989;+  const SWord8  s2991 = s2985 ^ s2990;+  const SWord16 s2992 = (((SWord16) s2984) << 8) | ((SWord16) s2991);+  const SWord8  s2993 = table8[s2974];+  const SWord8  s2994 = table9[s2976];+  const SWord8  s2995 = table6[s2978];+  const SWord8  s2996 = table7[s2980];+  const SWord8  s2997 = s2995 ^ s2996;+  const SWord8  s2998 = s2994 ^ s2997;+  const SWord8  s2999 = s2993 ^ s2998;+  const SWord8  s3000 = table7[s2974];+  const SWord8  s3001 = table8[s2976];+  const SWord8  s3002 = table9[s2978];+  const SWord8  s3003 = table6[s2980];+  const SWord8  s3004 = s3002 ^ s3003;+  const SWord8  s3005 = s3001 ^ s3004;+  const SWord8  s3006 = s3000 ^ s3005;+  const SWord16 s3007 = (((SWord16) s2999) << 8) | ((SWord16) s3006);+  const SWord32 s3008 = (((SWord32) s2992) << 16) | ((SWord32) s3007);+  const SWord32 s3009 = s2973 ^ s3008;+  const SWord8  s3010 = (SWord8) (s3009 >> 24);+  const SWord8  s3011 = table0[s3010];+  const SWord8  s3012 = (SWord8) (s2870 >> 24);+  const SWord32 s3013 = table1[s3012];+  const SWord8  s3014 = (SWord8) (s2920 >> 16);+  const SWord32 s3015 = table3[s3014];+  const SWord32 s3016 = s3013 ^ s3015;+  const SWord8  s3017 = (SWord8) (s2970 >> 8);+  const SWord32 s3018 = table4[s3017];+  const SWord32 s3019 = s3016 ^ s3018;+  const SWord8  s3020 = (SWord8) s2821;+  const SWord32 s3021 = table5[s3020];+  const SWord32 s3022 = s3019 ^ s3021;+  const SWord8  s3023 = (SWord8) (s536 >> 24);+  const SWord8  s3024 = table6[s3023];+  const SWord8  s3025 = (SWord8) (s536 >> 16);+  const SWord8  s3026 = table7[s3025];+  const SWord8  s3027 = (SWord8) (s536 >> 8);+  const SWord8  s3028 = table8[s3027];+  const SWord8  s3029 = (SWord8) s536;+  const SWord8  s3030 = table9[s3029];+  const SWord8  s3031 = s3028 ^ s3030;+  const SWord8  s3032 = s3026 ^ s3031;+  const SWord8  s3033 = s3024 ^ s3032;+  const SWord8  s3034 = table9[s3023];+  const SWord8  s3035 = table6[s3025];+  const SWord8  s3036 = table7[s3027];+  const SWord8  s3037 = table8[s3029];+  const SWord8  s3038 = s3036 ^ s3037;+  const SWord8  s3039 = s3035 ^ s3038;+  const SWord8  s3040 = s3034 ^ s3039;+  const SWord16 s3041 = (((SWord16) s3033) << 8) | ((SWord16) s3040);+  const SWord8  s3042 = table8[s3023];+  const SWord8  s3043 = table9[s3025];+  const SWord8  s3044 = table6[s3027];+  const SWord8  s3045 = table7[s3029];+  const SWord8  s3046 = s3044 ^ s3045;+  const SWord8  s3047 = s3043 ^ s3046;+  const SWord8  s3048 = s3042 ^ s3047;+  const SWord8  s3049 = table7[s3023];+  const SWord8  s3050 = table8[s3025];+  const SWord8  s3051 = table9[s3027];+  const SWord8  s3052 = table6[s3029];+  const SWord8  s3053 = s3051 ^ s3052;+  const SWord8  s3054 = s3050 ^ s3053;+  const SWord8  s3055 = s3049 ^ s3054;+  const SWord16 s3056 = (((SWord16) s3048) << 8) | ((SWord16) s3055);+  const SWord32 s3057 = (((SWord32) s3041) << 16) | ((SWord32) s3056);+  const SWord32 s3058 = s3022 ^ s3057;+  const SWord8  s3059 = (SWord8) (s3058 >> 16);+  const SWord8  s3060 = table0[s3059];+  const SWord16 s3061 = (((SWord16) s3011) << 8) | ((SWord16) s3060);+  const SWord8  s3062 = (SWord8) (s2920 >> 24);+  const SWord32 s3063 = table1[s3062];+  const SWord8  s3064 = (SWord8) (s2970 >> 16);+  const SWord32 s3065 = table3[s3064];+  const SWord32 s3066 = s3063 ^ s3065;+  const SWord8  s3067 = (SWord8) (s2821 >> 8);+  const SWord32 s3068 = table4[s3067];+  const SWord32 s3069 = s3066 ^ s3068;+  const SWord8  s3070 = (SWord8) s2870;+  const SWord32 s3071 = table5[s3070];+  const SWord32 s3072 = s3069 ^ s3071;+  const SWord8  s3073 = (SWord8) (s535 >> 24);+  const SWord8  s3074 = table6[s3073];+  const SWord8  s3075 = (SWord8) (s535 >> 16);+  const SWord8  s3076 = table7[s3075];+  const SWord8  s3077 = (SWord8) (s535 >> 8);+  const SWord8  s3078 = table8[s3077];+  const SWord8  s3079 = (SWord8) s535;+  const SWord8  s3080 = table9[s3079];+  const SWord8  s3081 = s3078 ^ s3080;+  const SWord8  s3082 = s3076 ^ s3081;+  const SWord8  s3083 = s3074 ^ s3082;+  const SWord8  s3084 = table9[s3073];+  const SWord8  s3085 = table6[s3075];+  const SWord8  s3086 = table7[s3077];+  const SWord8  s3087 = table8[s3079];+  const SWord8  s3088 = s3086 ^ s3087;+  const SWord8  s3089 = s3085 ^ s3088;+  const SWord8  s3090 = s3084 ^ s3089;+  const SWord16 s3091 = (((SWord16) s3083) << 8) | ((SWord16) s3090);+  const SWord8  s3092 = table8[s3073];+  const SWord8  s3093 = table9[s3075];+  const SWord8  s3094 = table6[s3077];+  const SWord8  s3095 = table7[s3079];+  const SWord8  s3096 = s3094 ^ s3095;+  const SWord8  s3097 = s3093 ^ s3096;+  const SWord8  s3098 = s3092 ^ s3097;+  const SWord8  s3099 = table7[s3073];+  const SWord8  s3100 = table8[s3075];+  const SWord8  s3101 = table9[s3077];+  const SWord8  s3102 = table6[s3079];+  const SWord8  s3103 = s3101 ^ s3102;+  const SWord8  s3104 = s3100 ^ s3103;+  const SWord8  s3105 = s3099 ^ s3104;+  const SWord16 s3106 = (((SWord16) s3098) << 8) | ((SWord16) s3105);+  const SWord32 s3107 = (((SWord32) s3091) << 16) | ((SWord32) s3106);+  const SWord32 s3108 = s3072 ^ s3107;+  const SWord8  s3109 = (SWord8) (s3108 >> 8);+  const SWord8  s3110 = table0[s3109];+  const SWord8  s3111 = (SWord8) (s2970 >> 24);+  const SWord32 s3112 = table1[s3111];+  const SWord8  s3113 = (SWord8) (s2821 >> 16);+  const SWord32 s3114 = table3[s3113];+  const SWord32 s3115 = s3112 ^ s3114;+  const SWord8  s3116 = (SWord8) (s2870 >> 8);+  const SWord32 s3117 = table4[s3116];+  const SWord32 s3118 = s3115 ^ s3117;+  const SWord8  s3119 = (SWord8) s2920;+  const SWord32 s3120 = table5[s3119];+  const SWord32 s3121 = s3118 ^ s3120;+  const SWord8  s3122 = (SWord8) (s534 >> 24);+  const SWord8  s3123 = table6[s3122];+  const SWord8  s3124 = (SWord8) (s534 >> 16);+  const SWord8  s3125 = table7[s3124];+  const SWord8  s3126 = (SWord8) (s534 >> 8);+  const SWord8  s3127 = table8[s3126];+  const SWord8  s3128 = (SWord8) s534;+  const SWord8  s3129 = table9[s3128];+  const SWord8  s3130 = s3127 ^ s3129;+  const SWord8  s3131 = s3125 ^ s3130;+  const SWord8  s3132 = s3123 ^ s3131;+  const SWord8  s3133 = table9[s3122];+  const SWord8  s3134 = table6[s3124];+  const SWord8  s3135 = table7[s3126];+  const SWord8  s3136 = table8[s3128];+  const SWord8  s3137 = s3135 ^ s3136;+  const SWord8  s3138 = s3134 ^ s3137;+  const SWord8  s3139 = s3133 ^ s3138;+  const SWord16 s3140 = (((SWord16) s3132) << 8) | ((SWord16) s3139);+  const SWord8  s3141 = table8[s3122];+  const SWord8  s3142 = table9[s3124];+  const SWord8  s3143 = table6[s3126];+  const SWord8  s3144 = table7[s3128];+  const SWord8  s3145 = s3143 ^ s3144;+  const SWord8  s3146 = s3142 ^ s3145;+  const SWord8  s3147 = s3141 ^ s3146;+  const SWord8  s3148 = table7[s3122];+  const SWord8  s3149 = table8[s3124];+  const SWord8  s3150 = table9[s3126];+  const SWord8  s3151 = table6[s3128];+  const SWord8  s3152 = s3150 ^ s3151;+  const SWord8  s3153 = s3149 ^ s3152;+  const SWord8  s3154 = s3148 ^ s3153;+  const SWord16 s3155 = (((SWord16) s3147) << 8) | ((SWord16) s3154);+  const SWord32 s3156 = (((SWord32) s3140) << 16) | ((SWord32) s3155);+  const SWord32 s3157 = s3121 ^ s3156;+  const SWord8  s3158 = (SWord8) s3157;+  const SWord8  s3159 = table0[s3158];+  const SWord16 s3160 = (((SWord16) s3110) << 8) | ((SWord16) s3159);+  const SWord32 s3161 = (((SWord32) s3061) << 16) | ((SWord32) s3160);+  const SWord32 s3162 = s4 ^ s3161;+  const SWord8  s3163 = (SWord8) (s3157 >> 24);+  const SWord8  s3164 = table0[s3163];+  const SWord8  s3165 = (SWord8) (s3009 >> 16);+  const SWord8  s3166 = table0[s3165];+  const SWord16 s3167 = (((SWord16) s3164) << 8) | ((SWord16) s3166);+  const SWord8  s3168 = (SWord8) (s3058 >> 8);+  const SWord8  s3169 = table0[s3168];+  const SWord8  s3170 = (SWord8) s3108;+  const SWord8  s3171 = table0[s3170];+  const SWord16 s3172 = (((SWord16) s3169) << 8) | ((SWord16) s3171);+  const SWord32 s3173 = (((SWord32) s3167) << 16) | ((SWord32) s3172);+  const SWord32 s3174 = s5 ^ s3173;+  const SWord8  s3175 = (SWord8) (s3108 >> 24);+  const SWord8  s3176 = table0[s3175];+  const SWord8  s3177 = (SWord8) (s3157 >> 16);+  const SWord8  s3178 = table0[s3177];+  const SWord16 s3179 = (((SWord16) s3176) << 8) | ((SWord16) s3178);+  const SWord8  s3180 = (SWord8) (s3009 >> 8);+  const SWord8  s3181 = table0[s3180];+  const SWord8  s3182 = (SWord8) s3058;+  const SWord8  s3183 = table0[s3182];+  const SWord16 s3184 = (((SWord16) s3181) << 8) | ((SWord16) s3183);+  const SWord32 s3185 = (((SWord32) s3179) << 16) | ((SWord32) s3184);+  const SWord32 s3186 = s6 ^ s3185;+  const SWord8  s3187 = (SWord8) (s3058 >> 24);+  const SWord8  s3188 = table0[s3187];+  const SWord8  s3189 = (SWord8) (s3108 >> 16);+  const SWord8  s3190 = table0[s3189];+  const SWord16 s3191 = (((SWord16) s3188) << 8) | ((SWord16) s3190);+  const SWord8  s3192 = (SWord8) (s3157 >> 8);+  const SWord8  s3193 = table0[s3192];+  const SWord8  s3194 = (SWord8) s3009;+  const SWord8  s3195 = table0[s3194];+  const SWord16 s3196 = (((SWord16) s3193) << 8) | ((SWord16) s3195);+  const SWord32 s3197 = (((SWord32) s3191) << 16) | ((SWord32) s3196);+  const SWord32 s3198 = s7 ^ s3197;++  ct[0] = s3162;+  ct[1] = s3174;+  ct[2] = s3186;+  ct[3] = s3198; } == END: "aes128Dec.c" ==================
SBVTestSuite/GoldFiles/aes128Enc.gold view
@@ -80,1088 +80,988 @@   printf("Contents of input array pt:\n");   int pt_ctr;   for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)-    printf("  pt[%d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);--  const SWord32 key[4] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array key:\n");-  int key_ctr;-  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)-    printf("  key[%d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);--  SWord32 ct[4];--  aes128Enc(pt, key, ct);--  printf("aes128Enc(pt, key, ct) ->\n");-  int ct_ctr;-  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)-    printf("  ct[%d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);--  return 0;-}-== END: "aes128Enc_driver.c" ==================-== BEGIN: "aes128Enc.c" ================-/* File: "aes128Enc.c". Automatically generated by SBV. Do not edit! */--#include "aes128Enc.h"--void aes128Enc(const SWord32 *pt, const SWord32 *key, SWord32 *ct)-{-  const SWord32 s0 = pt[0];-  const SWord32 s1 = pt[1];-  const SWord32 s2 = pt[2];-  const SWord32 s3 = pt[3];-  const SWord32 s4 = key[0];-  const SWord32 s5 = key[1];-  const SWord32 s6 = key[2];-  const SWord32 s7 = key[3];-  static const SWord8 table0[] = {-       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,-      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,-      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,-      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,-       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,-      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,-       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,-       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,-       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,-      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,-       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,-      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,-      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,-      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,-       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,-       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,-      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,-      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,-      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,-      104,  65, 153,  45,  15, 176,  84, 187,  22-  };-  static const SWord32 table1[] = {-      0xc66363a5UL, 0xf87c7c84UL, 0xee777799UL, 0xf67b7b8dUL,-      0xfff2f20dUL, 0xd66b6bbdUL, 0xde6f6fb1UL, 0x91c5c554UL,-      0x60303050UL, 0x02010103UL, 0xce6767a9UL, 0x562b2b7dUL,-      0xe7fefe19UL, 0xb5d7d762UL, 0x4dababe6UL, 0xec76769aUL,-      0x8fcaca45UL, 0x1f82829dUL, 0x89c9c940UL, 0xfa7d7d87UL,-      0xeffafa15UL, 0xb25959ebUL, 0x8e4747c9UL, 0xfbf0f00bUL,-      0x41adadecUL, 0xb3d4d467UL, 0x5fa2a2fdUL, 0x45afafeaUL,-      0x239c9cbfUL, 0x53a4a4f7UL, 0xe4727296UL, 0x9bc0c05bUL,-      0x75b7b7c2UL, 0xe1fdfd1cUL, 0x3d9393aeUL, 0x4c26266aUL,-      0x6c36365aUL, 0x7e3f3f41UL, 0xf5f7f702UL, 0x83cccc4fUL,-      0x6834345cUL, 0x51a5a5f4UL, 0xd1e5e534UL, 0xf9f1f108UL,-      0xe2717193UL, 0xabd8d873UL, 0x62313153UL, 0x2a15153fUL,-      0x0804040cUL, 0x95c7c752UL, 0x46232365UL, 0x9dc3c35eUL,-      0x30181828UL, 0x379696a1UL, 0x0a05050fUL, 0x2f9a9ab5UL,-      0x0e070709UL, 0x24121236UL, 0x1b80809bUL, 0xdfe2e23dUL,-      0xcdebeb26UL, 0x4e272769UL, 0x7fb2b2cdUL, 0xea75759fUL,-      0x1209091bUL, 0x1d83839eUL, 0x582c2c74UL, 0x341a1a2eUL,-      0x361b1b2dUL, 0xdc6e6eb2UL, 0xb45a5aeeUL, 0x5ba0a0fbUL,-      0xa45252f6UL, 0x763b3b4dUL, 0xb7d6d661UL, 0x7db3b3ceUL,-      0x5229297bUL, 0xdde3e33eUL, 0x5e2f2f71UL, 0x13848497UL,-      0xa65353f5UL, 0xb9d1d168UL, 0x00000000UL, 0xc1eded2cUL,-      0x40202060UL, 0xe3fcfc1fUL, 0x79b1b1c8UL, 0xb65b5bedUL,-      0xd46a6abeUL, 0x8dcbcb46UL, 0x67bebed9UL, 0x7239394bUL,-      0x944a4adeUL, 0x984c4cd4UL, 0xb05858e8UL, 0x85cfcf4aUL,-      0xbbd0d06bUL, 0xc5efef2aUL, 0x4faaaae5UL, 0xedfbfb16UL,-      0x864343c5UL, 0x9a4d4dd7UL, 0x66333355UL, 0x11858594UL,-      0x8a4545cfUL, 0xe9f9f910UL, 0x04020206UL, 0xfe7f7f81UL,-      0xa05050f0UL, 0x783c3c44UL, 0x259f9fbaUL, 0x4ba8a8e3UL,-      0xa25151f3UL, 0x5da3a3feUL, 0x804040c0UL, 0x058f8f8aUL,-      0x3f9292adUL, 0x219d9dbcUL, 0x70383848UL, 0xf1f5f504UL,-      0x63bcbcdfUL, 0x77b6b6c1UL, 0xafdada75UL, 0x42212163UL,-      0x20101030UL, 0xe5ffff1aUL, 0xfdf3f30eUL, 0xbfd2d26dUL,-      0x81cdcd4cUL, 0x180c0c14UL, 0x26131335UL, 0xc3ecec2fUL,-      0xbe5f5fe1UL, 0x359797a2UL, 0x884444ccUL, 0x2e171739UL,-      0x93c4c457UL, 0x55a7a7f2UL, 0xfc7e7e82UL, 0x7a3d3d47UL,-      0xc86464acUL, 0xba5d5de7UL, 0x3219192bUL, 0xe6737395UL,-      0xc06060a0UL, 0x19818198UL, 0x9e4f4fd1UL, 0xa3dcdc7fUL,-      0x44222266UL, 0x542a2a7eUL, 0x3b9090abUL, 0x0b888883UL,-      0x8c4646caUL, 0xc7eeee29UL, 0x6bb8b8d3UL, 0x2814143cUL,-      0xa7dede79UL, 0xbc5e5ee2UL, 0x160b0b1dUL, 0xaddbdb76UL,-      0xdbe0e03bUL, 0x64323256UL, 0x743a3a4eUL, 0x140a0a1eUL,-      0x924949dbUL, 0x0c06060aUL, 0x4824246cUL, 0xb85c5ce4UL,-      0x9fc2c25dUL, 0xbdd3d36eUL, 0x43acacefUL, 0xc46262a6UL,-      0x399191a8UL, 0x319595a4UL, 0xd3e4e437UL, 0xf279798bUL,-      0xd5e7e732UL, 0x8bc8c843UL, 0x6e373759UL, 0xda6d6db7UL,-      0x018d8d8cUL, 0xb1d5d564UL, 0x9c4e4ed2UL, 0x49a9a9e0UL,-      0xd86c6cb4UL, 0xac5656faUL, 0xf3f4f407UL, 0xcfeaea25UL,-      0xca6565afUL, 0xf47a7a8eUL, 0x47aeaee9UL, 0x10080818UL,-      0x6fbabad5UL, 0xf0787888UL, 0x4a25256fUL, 0x5c2e2e72UL,-      0x381c1c24UL, 0x57a6a6f1UL, 0x73b4b4c7UL, 0x97c6c651UL,-      0xcbe8e823UL, 0xa1dddd7cUL, 0xe874749cUL, 0x3e1f1f21UL,-      0x964b4bddUL, 0x61bdbddcUL, 0x0d8b8b86UL, 0x0f8a8a85UL,-      0xe0707090UL, 0x7c3e3e42UL, 0x71b5b5c4UL, 0xcc6666aaUL,-      0x904848d8UL, 0x06030305UL, 0xf7f6f601UL, 0x1c0e0e12UL,-      0xc26161a3UL, 0x6a35355fUL, 0xae5757f9UL, 0x69b9b9d0UL,-      0x17868691UL, 0x99c1c158UL, 0x3a1d1d27UL, 0x279e9eb9UL,-      0xd9e1e138UL, 0xebf8f813UL, 0x2b9898b3UL, 0x22111133UL,-      0xd26969bbUL, 0xa9d9d970UL, 0x078e8e89UL, 0x339494a7UL,-      0x2d9b9bb6UL, 0x3c1e1e22UL, 0x15878792UL, 0xc9e9e920UL,-      0x87cece49UL, 0xaa5555ffUL, 0x50282878UL, 0xa5dfdf7aUL,-      0x038c8c8fUL, 0x59a1a1f8UL, 0x09898980UL, 0x1a0d0d17UL,-      0x65bfbfdaUL, 0xd7e6e631UL, 0x844242c6UL, 0xd06868b8UL,-      0x824141c3UL, 0x299999b0UL, 0x5a2d2d77UL, 0x1e0f0f11UL,-      0x7bb0b0cbUL, 0xa85454fcUL, 0x6dbbbbd6UL, 0x2c16163aUL-  };-  static const SWord32 table2[] = {-      0xa5c66363UL, 0x84f87c7cUL, 0x99ee7777UL, 0x8df67b7bUL,-      0x0dfff2f2UL, 0xbdd66b6bUL, 0xb1de6f6fUL, 0x5491c5c5UL,-      0x50603030UL, 0x03020101UL, 0xa9ce6767UL, 0x7d562b2bUL,-      0x19e7fefeUL, 0x62b5d7d7UL, 0xe64dababUL, 0x9aec7676UL,-      0x458fcacaUL, 0x9d1f8282UL, 0x4089c9c9UL, 0x87fa7d7dUL,-      0x15effafaUL, 0xebb25959UL, 0xc98e4747UL, 0x0bfbf0f0UL,-      0xec41adadUL, 0x67b3d4d4UL, 0xfd5fa2a2UL, 0xea45afafUL,-      0xbf239c9cUL, 0xf753a4a4UL, 0x96e47272UL, 0x5b9bc0c0UL,-      0xc275b7b7UL, 0x1ce1fdfdUL, 0xae3d9393UL, 0x6a4c2626UL,-      0x5a6c3636UL, 0x417e3f3fUL, 0x02f5f7f7UL, 0x4f83ccccUL,-      0x5c683434UL, 0xf451a5a5UL, 0x34d1e5e5UL, 0x08f9f1f1UL,-      0x93e27171UL, 0x73abd8d8UL, 0x53623131UL, 0x3f2a1515UL,-      0x0c080404UL, 0x5295c7c7UL, 0x65462323UL, 0x5e9dc3c3UL,-      0x28301818UL, 0xa1379696UL, 0x0f0a0505UL, 0xb52f9a9aUL,-      0x090e0707UL, 0x36241212UL, 0x9b1b8080UL, 0x3ddfe2e2UL,-      0x26cdebebUL, 0x694e2727UL, 0xcd7fb2b2UL, 0x9fea7575UL,-      0x1b120909UL, 0x9e1d8383UL, 0x74582c2cUL, 0x2e341a1aUL,-      0x2d361b1bUL, 0xb2dc6e6eUL, 0xeeb45a5aUL, 0xfb5ba0a0UL,-      0xf6a45252UL, 0x4d763b3bUL, 0x61b7d6d6UL, 0xce7db3b3UL,-      0x7b522929UL, 0x3edde3e3UL, 0x715e2f2fUL, 0x97138484UL,-      0xf5a65353UL, 0x68b9d1d1UL, 0x00000000UL, 0x2cc1ededUL,-      0x60402020UL, 0x1fe3fcfcUL, 0xc879b1b1UL, 0xedb65b5bUL,-      0xbed46a6aUL, 0x468dcbcbUL, 0xd967bebeUL, 0x4b723939UL,-      0xde944a4aUL, 0xd4984c4cUL, 0xe8b05858UL, 0x4a85cfcfUL,-      0x6bbbd0d0UL, 0x2ac5efefUL, 0xe54faaaaUL, 0x16edfbfbUL,-      0xc5864343UL, 0xd79a4d4dUL, 0x55663333UL, 0x94118585UL,-      0xcf8a4545UL, 0x10e9f9f9UL, 0x06040202UL, 0x81fe7f7fUL,-      0xf0a05050UL, 0x44783c3cUL, 0xba259f9fUL, 0xe34ba8a8UL,-      0xf3a25151UL, 0xfe5da3a3UL, 0xc0804040UL, 0x8a058f8fUL,-      0xad3f9292UL, 0xbc219d9dUL, 0x48703838UL, 0x04f1f5f5UL,-      0xdf63bcbcUL, 0xc177b6b6UL, 0x75afdadaUL, 0x63422121UL,-      0x30201010UL, 0x1ae5ffffUL, 0x0efdf3f3UL, 0x6dbfd2d2UL,-      0x4c81cdcdUL, 0x14180c0cUL, 0x35261313UL, 0x2fc3ececUL,-      0xe1be5f5fUL, 0xa2359797UL, 0xcc884444UL, 0x392e1717UL,-      0x5793c4c4UL, 0xf255a7a7UL, 0x82fc7e7eUL, 0x477a3d3dUL,-      0xacc86464UL, 0xe7ba5d5dUL, 0x2b321919UL, 0x95e67373UL,-      0xa0c06060UL, 0x98198181UL, 0xd19e4f4fUL, 0x7fa3dcdcUL,-      0x66442222UL, 0x7e542a2aUL, 0xab3b9090UL, 0x830b8888UL,-      0xca8c4646UL, 0x29c7eeeeUL, 0xd36bb8b8UL, 0x3c281414UL,-      0x79a7dedeUL, 0xe2bc5e5eUL, 0x1d160b0bUL, 0x76addbdbUL,-      0x3bdbe0e0UL, 0x56643232UL, 0x4e743a3aUL, 0x1e140a0aUL,-      0xdb924949UL, 0x0a0c0606UL, 0x6c482424UL, 0xe4b85c5cUL,-      0x5d9fc2c2UL, 0x6ebdd3d3UL, 0xef43acacUL, 0xa6c46262UL,-      0xa8399191UL, 0xa4319595UL, 0x37d3e4e4UL, 0x8bf27979UL,-      0x32d5e7e7UL, 0x438bc8c8UL, 0x596e3737UL, 0xb7da6d6dUL,-      0x8c018d8dUL, 0x64b1d5d5UL, 0xd29c4e4eUL, 0xe049a9a9UL,-      0xb4d86c6cUL, 0xfaac5656UL, 0x07f3f4f4UL, 0x25cfeaeaUL,-      0xafca6565UL, 0x8ef47a7aUL, 0xe947aeaeUL, 0x18100808UL,-      0xd56fbabaUL, 0x88f07878UL, 0x6f4a2525UL, 0x725c2e2eUL,-      0x24381c1cUL, 0xf157a6a6UL, 0xc773b4b4UL, 0x5197c6c6UL,-      0x23cbe8e8UL, 0x7ca1ddddUL, 0x9ce87474UL, 0x213e1f1fUL,-      0xdd964b4bUL, 0xdc61bdbdUL, 0x860d8b8bUL, 0x850f8a8aUL,-      0x90e07070UL, 0x427c3e3eUL, 0xc471b5b5UL, 0xaacc6666UL,-      0xd8904848UL, 0x05060303UL, 0x01f7f6f6UL, 0x121c0e0eUL,-      0xa3c26161UL, 0x5f6a3535UL, 0xf9ae5757UL, 0xd069b9b9UL,-      0x91178686UL, 0x5899c1c1UL, 0x273a1d1dUL, 0xb9279e9eUL,-      0x38d9e1e1UL, 0x13ebf8f8UL, 0xb32b9898UL, 0x33221111UL,-      0xbbd26969UL, 0x70a9d9d9UL, 0x89078e8eUL, 0xa7339494UL,-      0xb62d9b9bUL, 0x223c1e1eUL, 0x92158787UL, 0x20c9e9e9UL,-      0x4987ceceUL, 0xffaa5555UL, 0x78502828UL, 0x7aa5dfdfUL,-      0x8f038c8cUL, 0xf859a1a1UL, 0x80098989UL, 0x171a0d0dUL,-      0xda65bfbfUL, 0x31d7e6e6UL, 0xc6844242UL, 0xb8d06868UL,-      0xc3824141UL, 0xb0299999UL, 0x775a2d2dUL, 0x111e0f0fUL,-      0xcb7bb0b0UL, 0xfca85454UL, 0xd66dbbbbUL, 0x3a2c1616UL-  };-  static const SWord32 table3[] = {-      0x63a5c663UL, 0x7c84f87cUL, 0x7799ee77UL, 0x7b8df67bUL,-      0xf20dfff2UL, 0x6bbdd66bUL, 0x6fb1de6fUL, 0xc55491c5UL,-      0x30506030UL, 0x01030201UL, 0x67a9ce67UL, 0x2b7d562bUL,-      0xfe19e7feUL, 0xd762b5d7UL, 0xabe64dabUL, 0x769aec76UL,-      0xca458fcaUL, 0x829d1f82UL, 0xc94089c9UL, 0x7d87fa7dUL,-      0xfa15effaUL, 0x59ebb259UL, 0x47c98e47UL, 0xf00bfbf0UL,-      0xadec41adUL, 0xd467b3d4UL, 0xa2fd5fa2UL, 0xafea45afUL,-      0x9cbf239cUL, 0xa4f753a4UL, 0x7296e472UL, 0xc05b9bc0UL,-      0xb7c275b7UL, 0xfd1ce1fdUL, 0x93ae3d93UL, 0x266a4c26UL,-      0x365a6c36UL, 0x3f417e3fUL, 0xf702f5f7UL, 0xcc4f83ccUL,-      0x345c6834UL, 0xa5f451a5UL, 0xe534d1e5UL, 0xf108f9f1UL,-      0x7193e271UL, 0xd873abd8UL, 0x31536231UL, 0x153f2a15UL,-      0x040c0804UL, 0xc75295c7UL, 0x23654623UL, 0xc35e9dc3UL,-      0x18283018UL, 0x96a13796UL, 0x050f0a05UL, 0x9ab52f9aUL,-      0x07090e07UL, 0x12362412UL, 0x809b1b80UL, 0xe23ddfe2UL,-      0xeb26cdebUL, 0x27694e27UL, 0xb2cd7fb2UL, 0x759fea75UL,-      0x091b1209UL, 0x839e1d83UL, 0x2c74582cUL, 0x1a2e341aUL,-      0x1b2d361bUL, 0x6eb2dc6eUL, 0x5aeeb45aUL, 0xa0fb5ba0UL,-      0x52f6a452UL, 0x3b4d763bUL, 0xd661b7d6UL, 0xb3ce7db3UL,-      0x297b5229UL, 0xe33edde3UL, 0x2f715e2fUL, 0x84971384UL,-      0x53f5a653UL, 0xd168b9d1UL, 0x00000000UL, 0xed2cc1edUL,-      0x20604020UL, 0xfc1fe3fcUL, 0xb1c879b1UL, 0x5bedb65bUL,-      0x6abed46aUL, 0xcb468dcbUL, 0xbed967beUL, 0x394b7239UL,-      0x4ade944aUL, 0x4cd4984cUL, 0x58e8b058UL, 0xcf4a85cfUL,-      0xd06bbbd0UL, 0xef2ac5efUL, 0xaae54faaUL, 0xfb16edfbUL,-      0x43c58643UL, 0x4dd79a4dUL, 0x33556633UL, 0x85941185UL,-      0x45cf8a45UL, 0xf910e9f9UL, 0x02060402UL, 0x7f81fe7fUL,-      0x50f0a050UL, 0x3c44783cUL, 0x9fba259fUL, 0xa8e34ba8UL,-      0x51f3a251UL, 0xa3fe5da3UL, 0x40c08040UL, 0x8f8a058fUL,-      0x92ad3f92UL, 0x9dbc219dUL, 0x38487038UL, 0xf504f1f5UL,-      0xbcdf63bcUL, 0xb6c177b6UL, 0xda75afdaUL, 0x21634221UL,-      0x10302010UL, 0xff1ae5ffUL, 0xf30efdf3UL, 0xd26dbfd2UL,-      0xcd4c81cdUL, 0x0c14180cUL, 0x13352613UL, 0xec2fc3ecUL,-      0x5fe1be5fUL, 0x97a23597UL, 0x44cc8844UL, 0x17392e17UL,-      0xc45793c4UL, 0xa7f255a7UL, 0x7e82fc7eUL, 0x3d477a3dUL,-      0x64acc864UL, 0x5de7ba5dUL, 0x192b3219UL, 0x7395e673UL,-      0x60a0c060UL, 0x81981981UL, 0x4fd19e4fUL, 0xdc7fa3dcUL,-      0x22664422UL, 0x2a7e542aUL, 0x90ab3b90UL, 0x88830b88UL,-      0x46ca8c46UL, 0xee29c7eeUL, 0xb8d36bb8UL, 0x143c2814UL,-      0xde79a7deUL, 0x5ee2bc5eUL, 0x0b1d160bUL, 0xdb76addbUL,-      0xe03bdbe0UL, 0x32566432UL, 0x3a4e743aUL, 0x0a1e140aUL,-      0x49db9249UL, 0x060a0c06UL, 0x246c4824UL, 0x5ce4b85cUL,-      0xc25d9fc2UL, 0xd36ebdd3UL, 0xacef43acUL, 0x62a6c462UL,-      0x91a83991UL, 0x95a43195UL, 0xe437d3e4UL, 0x798bf279UL,-      0xe732d5e7UL, 0xc8438bc8UL, 0x37596e37UL, 0x6db7da6dUL,-      0x8d8c018dUL, 0xd564b1d5UL, 0x4ed29c4eUL, 0xa9e049a9UL,-      0x6cb4d86cUL, 0x56faac56UL, 0xf407f3f4UL, 0xea25cfeaUL,-      0x65afca65UL, 0x7a8ef47aUL, 0xaee947aeUL, 0x08181008UL,-      0xbad56fbaUL, 0x7888f078UL, 0x256f4a25UL, 0x2e725c2eUL,-      0x1c24381cUL, 0xa6f157a6UL, 0xb4c773b4UL, 0xc65197c6UL,-      0xe823cbe8UL, 0xdd7ca1ddUL, 0x749ce874UL, 0x1f213e1fUL,-      0x4bdd964bUL, 0xbddc61bdUL, 0x8b860d8bUL, 0x8a850f8aUL,-      0x7090e070UL, 0x3e427c3eUL, 0xb5c471b5UL, 0x66aacc66UL,-      0x48d89048UL, 0x03050603UL, 0xf601f7f6UL, 0x0e121c0eUL,-      0x61a3c261UL, 0x355f6a35UL, 0x57f9ae57UL, 0xb9d069b9UL,-      0x86911786UL, 0xc15899c1UL, 0x1d273a1dUL, 0x9eb9279eUL,-      0xe138d9e1UL, 0xf813ebf8UL, 0x98b32b98UL, 0x11332211UL,-      0x69bbd269UL, 0xd970a9d9UL, 0x8e89078eUL, 0x94a73394UL,-      0x9bb62d9bUL, 0x1e223c1eUL, 0x87921587UL, 0xe920c9e9UL,-      0xce4987ceUL, 0x55ffaa55UL, 0x28785028UL, 0xdf7aa5dfUL,-      0x8c8f038cUL, 0xa1f859a1UL, 0x89800989UL, 0x0d171a0dUL,-      0xbfda65bfUL, 0xe631d7e6UL, 0x42c68442UL, 0x68b8d068UL,-      0x41c38241UL, 0x99b02999UL, 0x2d775a2dUL, 0x0f111e0fUL,-      0xb0cb7bb0UL, 0x54fca854UL, 0xbbd66dbbUL, 0x163a2c16UL-  };-  static const SWord32 table4[] = {-      0x6363a5c6UL, 0x7c7c84f8UL, 0x777799eeUL, 0x7b7b8df6UL,-      0xf2f20dffUL, 0x6b6bbdd6UL, 0x6f6fb1deUL, 0xc5c55491UL,-      0x30305060UL, 0x01010302UL, 0x6767a9ceUL, 0x2b2b7d56UL,-      0xfefe19e7UL, 0xd7d762b5UL, 0xababe64dUL, 0x76769aecUL,-      0xcaca458fUL, 0x82829d1fUL, 0xc9c94089UL, 0x7d7d87faUL,-      0xfafa15efUL, 0x5959ebb2UL, 0x4747c98eUL, 0xf0f00bfbUL,-      0xadadec41UL, 0xd4d467b3UL, 0xa2a2fd5fUL, 0xafafea45UL,-      0x9c9cbf23UL, 0xa4a4f753UL, 0x727296e4UL, 0xc0c05b9bUL,-      0xb7b7c275UL, 0xfdfd1ce1UL, 0x9393ae3dUL, 0x26266a4cUL,-      0x36365a6cUL, 0x3f3f417eUL, 0xf7f702f5UL, 0xcccc4f83UL,-      0x34345c68UL, 0xa5a5f451UL, 0xe5e534d1UL, 0xf1f108f9UL,-      0x717193e2UL, 0xd8d873abUL, 0x31315362UL, 0x15153f2aUL,-      0x04040c08UL, 0xc7c75295UL, 0x23236546UL, 0xc3c35e9dUL,-      0x18182830UL, 0x9696a137UL, 0x05050f0aUL, 0x9a9ab52fUL,-      0x0707090eUL, 0x12123624UL, 0x80809b1bUL, 0xe2e23ddfUL,-      0xebeb26cdUL, 0x2727694eUL, 0xb2b2cd7fUL, 0x75759feaUL,-      0x09091b12UL, 0x83839e1dUL, 0x2c2c7458UL, 0x1a1a2e34UL,-      0x1b1b2d36UL, 0x6e6eb2dcUL, 0x5a5aeeb4UL, 0xa0a0fb5bUL,-      0x5252f6a4UL, 0x3b3b4d76UL, 0xd6d661b7UL, 0xb3b3ce7dUL,-      0x29297b52UL, 0xe3e33eddUL, 0x2f2f715eUL, 0x84849713UL,-      0x5353f5a6UL, 0xd1d168b9UL, 0x00000000UL, 0xeded2cc1UL,-      0x20206040UL, 0xfcfc1fe3UL, 0xb1b1c879UL, 0x5b5bedb6UL,-      0x6a6abed4UL, 0xcbcb468dUL, 0xbebed967UL, 0x39394b72UL,-      0x4a4ade94UL, 0x4c4cd498UL, 0x5858e8b0UL, 0xcfcf4a85UL,-      0xd0d06bbbUL, 0xefef2ac5UL, 0xaaaae54fUL, 0xfbfb16edUL,-      0x4343c586UL, 0x4d4dd79aUL, 0x33335566UL, 0x85859411UL,-      0x4545cf8aUL, 0xf9f910e9UL, 0x02020604UL, 0x7f7f81feUL,-      0x5050f0a0UL, 0x3c3c4478UL, 0x9f9fba25UL, 0xa8a8e34bUL,-      0x5151f3a2UL, 0xa3a3fe5dUL, 0x4040c080UL, 0x8f8f8a05UL,-      0x9292ad3fUL, 0x9d9dbc21UL, 0x38384870UL, 0xf5f504f1UL,-      0xbcbcdf63UL, 0xb6b6c177UL, 0xdada75afUL, 0x21216342UL,-      0x10103020UL, 0xffff1ae5UL, 0xf3f30efdUL, 0xd2d26dbfUL,-      0xcdcd4c81UL, 0x0c0c1418UL, 0x13133526UL, 0xecec2fc3UL,-      0x5f5fe1beUL, 0x9797a235UL, 0x4444cc88UL, 0x1717392eUL,-      0xc4c45793UL, 0xa7a7f255UL, 0x7e7e82fcUL, 0x3d3d477aUL,-      0x6464acc8UL, 0x5d5de7baUL, 0x19192b32UL, 0x737395e6UL,-      0x6060a0c0UL, 0x81819819UL, 0x4f4fd19eUL, 0xdcdc7fa3UL,-      0x22226644UL, 0x2a2a7e54UL, 0x9090ab3bUL, 0x8888830bUL,-      0x4646ca8cUL, 0xeeee29c7UL, 0xb8b8d36bUL, 0x14143c28UL,-      0xdede79a7UL, 0x5e5ee2bcUL, 0x0b0b1d16UL, 0xdbdb76adUL,-      0xe0e03bdbUL, 0x32325664UL, 0x3a3a4e74UL, 0x0a0a1e14UL,-      0x4949db92UL, 0x06060a0cUL, 0x24246c48UL, 0x5c5ce4b8UL,-      0xc2c25d9fUL, 0xd3d36ebdUL, 0xacacef43UL, 0x6262a6c4UL,-      0x9191a839UL, 0x9595a431UL, 0xe4e437d3UL, 0x79798bf2UL,-      0xe7e732d5UL, 0xc8c8438bUL, 0x3737596eUL, 0x6d6db7daUL,-      0x8d8d8c01UL, 0xd5d564b1UL, 0x4e4ed29cUL, 0xa9a9e049UL,-      0x6c6cb4d8UL, 0x5656faacUL, 0xf4f407f3UL, 0xeaea25cfUL,-      0x6565afcaUL, 0x7a7a8ef4UL, 0xaeaee947UL, 0x08081810UL,-      0xbabad56fUL, 0x787888f0UL, 0x25256f4aUL, 0x2e2e725cUL,-      0x1c1c2438UL, 0xa6a6f157UL, 0xb4b4c773UL, 0xc6c65197UL,-      0xe8e823cbUL, 0xdddd7ca1UL, 0x74749ce8UL, 0x1f1f213eUL,-      0x4b4bdd96UL, 0xbdbddc61UL, 0x8b8b860dUL, 0x8a8a850fUL,-      0x707090e0UL, 0x3e3e427cUL, 0xb5b5c471UL, 0x6666aaccUL,-      0x4848d890UL, 0x03030506UL, 0xf6f601f7UL, 0x0e0e121cUL,-      0x6161a3c2UL, 0x35355f6aUL, 0x5757f9aeUL, 0xb9b9d069UL,-      0x86869117UL, 0xc1c15899UL, 0x1d1d273aUL, 0x9e9eb927UL,-      0xe1e138d9UL, 0xf8f813ebUL, 0x9898b32bUL, 0x11113322UL,-      0x6969bbd2UL, 0xd9d970a9UL, 0x8e8e8907UL, 0x9494a733UL,-      0x9b9bb62dUL, 0x1e1e223cUL, 0x87879215UL, 0xe9e920c9UL,-      0xcece4987UL, 0x5555ffaaUL, 0x28287850UL, 0xdfdf7aa5UL,-      0x8c8c8f03UL, 0xa1a1f859UL, 0x89898009UL, 0x0d0d171aUL,-      0xbfbfda65UL, 0xe6e631d7UL, 0x4242c684UL, 0x6868b8d0UL,-      0x4141c382UL, 0x9999b029UL, 0x2d2d775aUL, 0x0f0f111eUL,-      0xb0b0cb7bUL, 0x5454fca8UL, 0xbbbbd66dUL, 0x16163a2cUL-  };-  const SWord32 s520 = s0 ^ s4;-  const SWord16 s521 = (SWord16) (s520 >> 16);-  const SWord8  s522 = (SWord8) (s521 >> 8);-  const SWord32 s523 = table1[s522];-  const SWord32 s779 = s1 ^ s5;-  const SWord16 s780 = (SWord16) (s779 >> 16);-  const SWord8  s781 = (SWord8) s780;-  const SWord32 s782 = table2[s781];-  const SWord32 s783 = s523 ^ s782;-  const SWord32 s1039 = s2 ^ s6;-  const SWord16 s1040 = (SWord16) s1039;-  const SWord8  s1041 = (SWord8) (s1040 >> 8);-  const SWord32 s1042 = table3[s1041];-  const SWord32 s1043 = s783 ^ s1042;-  const SWord32 s1299 = s3 ^ s7;-  const SWord16 s1300 = (SWord16) s1299;-  const SWord8  s1301 = (SWord8) s1300;-  const SWord32 s1302 = table4[s1301];-  const SWord32 s1303 = s1043 ^ s1302;-  const SWord32 s1304 = (s7 << 8) | (s7 >> 24);-  const SWord16 s1305 = (SWord16) (s1304 >> 16);-  const SWord8  s1306 = (SWord8) (s1305 >> 8);-  const SWord8  s1307 = table0[s1306];-  const SWord8  s1308 = 1 ^ s1307;-  const SWord8  s1309 = (SWord8) s1305;-  const SWord8  s1310 = table0[s1309];-  const SWord16 s1311 = (((SWord16) s1308) << 8) | ((SWord16) s1310);-  const SWord16 s1312 = (SWord16) s1304;-  const SWord8  s1313 = (SWord8) (s1312 >> 8);-  const SWord8  s1314 = table0[s1313];-  const SWord8  s1315 = (SWord8) s1312;-  const SWord8  s1316 = table0[s1315];-  const SWord16 s1317 = (((SWord16) s1314) << 8) | ((SWord16) s1316);-  const SWord32 s1318 = (((SWord32) s1311) << 16) | ((SWord32) s1317);-  const SWord32 s1319 = s4 ^ s1318;-  const SWord32 s1320 = s1303 ^ s1319;-  const SWord16 s1321 = (SWord16) (s1320 >> 16);-  const SWord8  s1322 = (SWord8) (s1321 >> 8);-  const SWord32 s1323 = table1[s1322];-  const SWord8  s1324 = (SWord8) (s780 >> 8);-  const SWord32 s1325 = table1[s1324];-  const SWord16 s1326 = (SWord16) (s1039 >> 16);-  const SWord8  s1327 = (SWord8) s1326;-  const SWord32 s1328 = table2[s1327];-  const SWord32 s1329 = s1325 ^ s1328;-  const SWord8  s1330 = (SWord8) (s1300 >> 8);-  const SWord32 s1331 = table3[s1330];-  const SWord32 s1332 = s1329 ^ s1331;-  const SWord16 s1333 = (SWord16) s520;-  const SWord8  s1334 = (SWord8) s1333;-  const SWord32 s1335 = table4[s1334];-  const SWord32 s1336 = s1332 ^ s1335;-  const SWord32 s1337 = s5 ^ s1319;-  const SWord32 s1338 = s1336 ^ s1337;-  const SWord16 s1339 = (SWord16) (s1338 >> 16);-  const SWord8  s1340 = (SWord8) s1339;-  const SWord32 s1341 = table2[s1340];-  const SWord32 s1342 = s1323 ^ s1341;-  const SWord8  s1343 = (SWord8) (s1326 >> 8);-  const SWord32 s1344 = table1[s1343];-  const SWord16 s1345 = (SWord16) (s1299 >> 16);-  const SWord8  s1346 = (SWord8) s1345;-  const SWord32 s1347 = table2[s1346];-  const SWord32 s1348 = s1344 ^ s1347;-  const SWord8  s1349 = (SWord8) (s1333 >> 8);-  const SWord32 s1350 = table3[s1349];-  const SWord32 s1351 = s1348 ^ s1350;-  const SWord16 s1352 = (SWord16) s779;-  const SWord8  s1353 = (SWord8) s1352;-  const SWord32 s1354 = table4[s1353];-  const SWord32 s1355 = s1351 ^ s1354;-  const SWord32 s1356 = s6 ^ s1337;-  const SWord32 s1357 = s1355 ^ s1356;-  const SWord16 s1358 = (SWord16) s1357;-  const SWord8  s1359 = (SWord8) (s1358 >> 8);-  const SWord32 s1360 = table3[s1359];-  const SWord32 s1361 = s1342 ^ s1360;-  const SWord8  s1362 = (SWord8) (s1345 >> 8);-  const SWord32 s1363 = table1[s1362];-  const SWord8  s1364 = (SWord8) s521;-  const SWord32 s1365 = table2[s1364];-  const SWord32 s1366 = s1363 ^ s1365;-  const SWord8  s1367 = (SWord8) (s1352 >> 8);-  const SWord32 s1368 = table3[s1367];-  const SWord32 s1369 = s1366 ^ s1368;-  const SWord8  s1370 = (SWord8) s1040;-  const SWord32 s1371 = table4[s1370];-  const SWord32 s1372 = s1369 ^ s1371;-  const SWord32 s1373 = s7 ^ s1356;-  const SWord32 s1374 = s1372 ^ s1373;-  const SWord16 s1375 = (SWord16) s1374;-  const SWord8  s1376 = (SWord8) s1375;-  const SWord32 s1377 = table4[s1376];-  const SWord32 s1378 = s1361 ^ s1377;-  const SWord32 s1379 = (s1373 << 8) | (s1373 >> 24);-  const SWord16 s1380 = (SWord16) (s1379 >> 16);-  const SWord8  s1381 = (SWord8) (s1380 >> 8);-  const SWord8  s1382 = table0[s1381];-  const SWord8  s1383 = 2 ^ s1382;-  const SWord8  s1384 = (SWord8) s1380;-  const SWord8  s1385 = table0[s1384];-  const SWord16 s1386 = (((SWord16) s1383) << 8) | ((SWord16) s1385);-  const SWord16 s1387 = (SWord16) s1379;-  const SWord8  s1388 = (SWord8) (s1387 >> 8);-  const SWord8  s1389 = table0[s1388];-  const SWord8  s1390 = (SWord8) s1387;-  const SWord8  s1391 = table0[s1390];-  const SWord16 s1392 = (((SWord16) s1389) << 8) | ((SWord16) s1391);-  const SWord32 s1393 = (((SWord32) s1386) << 16) | ((SWord32) s1392);-  const SWord32 s1394 = s1319 ^ s1393;-  const SWord32 s1395 = s1378 ^ s1394;-  const SWord16 s1396 = (SWord16) (s1395 >> 16);-  const SWord8  s1397 = (SWord8) (s1396 >> 8);-  const SWord32 s1398 = table1[s1397];-  const SWord8  s1399 = (SWord8) (s1339 >> 8);-  const SWord32 s1400 = table1[s1399];-  const SWord16 s1401 = (SWord16) (s1357 >> 16);-  const SWord8  s1402 = (SWord8) s1401;-  const SWord32 s1403 = table2[s1402];-  const SWord32 s1404 = s1400 ^ s1403;-  const SWord8  s1405 = (SWord8) (s1375 >> 8);-  const SWord32 s1406 = table3[s1405];-  const SWord32 s1407 = s1404 ^ s1406;-  const SWord16 s1408 = (SWord16) s1320;-  const SWord8  s1409 = (SWord8) s1408;-  const SWord32 s1410 = table4[s1409];-  const SWord32 s1411 = s1407 ^ s1410;-  const SWord32 s1412 = s1337 ^ s1394;-  const SWord32 s1413 = s1411 ^ s1412;-  const SWord16 s1414 = (SWord16) (s1413 >> 16);-  const SWord8  s1415 = (SWord8) s1414;-  const SWord32 s1416 = table2[s1415];-  const SWord32 s1417 = s1398 ^ s1416;-  const SWord8  s1418 = (SWord8) (s1401 >> 8);-  const SWord32 s1419 = table1[s1418];-  const SWord16 s1420 = (SWord16) (s1374 >> 16);-  const SWord8  s1421 = (SWord8) s1420;-  const SWord32 s1422 = table2[s1421];-  const SWord32 s1423 = s1419 ^ s1422;-  const SWord8  s1424 = (SWord8) (s1408 >> 8);-  const SWord32 s1425 = table3[s1424];-  const SWord32 s1426 = s1423 ^ s1425;-  const SWord16 s1427 = (SWord16) s1338;-  const SWord8  s1428 = (SWord8) s1427;-  const SWord32 s1429 = table4[s1428];-  const SWord32 s1430 = s1426 ^ s1429;-  const SWord32 s1431 = s1356 ^ s1412;-  const SWord32 s1432 = s1430 ^ s1431;-  const SWord16 s1433 = (SWord16) s1432;-  const SWord8  s1434 = (SWord8) (s1433 >> 8);-  const SWord32 s1435 = table3[s1434];-  const SWord32 s1436 = s1417 ^ s1435;-  const SWord8  s1437 = (SWord8) (s1420 >> 8);-  const SWord32 s1438 = table1[s1437];-  const SWord8  s1439 = (SWord8) s1321;-  const SWord32 s1440 = table2[s1439];-  const SWord32 s1441 = s1438 ^ s1440;-  const SWord8  s1442 = (SWord8) (s1427 >> 8);-  const SWord32 s1443 = table3[s1442];-  const SWord32 s1444 = s1441 ^ s1443;-  const SWord8  s1445 = (SWord8) s1358;-  const SWord32 s1446 = table4[s1445];-  const SWord32 s1447 = s1444 ^ s1446;-  const SWord32 s1448 = s1373 ^ s1431;-  const SWord32 s1449 = s1447 ^ s1448;-  const SWord16 s1450 = (SWord16) s1449;-  const SWord8  s1451 = (SWord8) s1450;-  const SWord32 s1452 = table4[s1451];-  const SWord32 s1453 = s1436 ^ s1452;-  const SWord32 s1454 = (s1448 << 8) | (s1448 >> 24);-  const SWord16 s1455 = (SWord16) (s1454 >> 16);-  const SWord8  s1456 = (SWord8) (s1455 >> 8);-  const SWord8  s1457 = table0[s1456];-  const SWord8  s1458 = 4 ^ s1457;-  const SWord8  s1459 = (SWord8) s1455;-  const SWord8  s1460 = table0[s1459];-  const SWord16 s1461 = (((SWord16) s1458) << 8) | ((SWord16) s1460);-  const SWord16 s1462 = (SWord16) s1454;-  const SWord8  s1463 = (SWord8) (s1462 >> 8);-  const SWord8  s1464 = table0[s1463];-  const SWord8  s1465 = (SWord8) s1462;-  const SWord8  s1466 = table0[s1465];-  const SWord16 s1467 = (((SWord16) s1464) << 8) | ((SWord16) s1466);-  const SWord32 s1468 = (((SWord32) s1461) << 16) | ((SWord32) s1467);-  const SWord32 s1469 = s1394 ^ s1468;-  const SWord32 s1470 = s1453 ^ s1469;-  const SWord16 s1471 = (SWord16) (s1470 >> 16);-  const SWord8  s1472 = (SWord8) (s1471 >> 8);-  const SWord32 s1473 = table1[s1472];-  const SWord8  s1474 = (SWord8) (s1414 >> 8);-  const SWord32 s1475 = table1[s1474];-  const SWord16 s1476 = (SWord16) (s1432 >> 16);-  const SWord8  s1477 = (SWord8) s1476;-  const SWord32 s1478 = table2[s1477];-  const SWord32 s1479 = s1475 ^ s1478;-  const SWord8  s1480 = (SWord8) (s1450 >> 8);-  const SWord32 s1481 = table3[s1480];-  const SWord32 s1482 = s1479 ^ s1481;-  const SWord16 s1483 = (SWord16) s1395;-  const SWord8  s1484 = (SWord8) s1483;-  const SWord32 s1485 = table4[s1484];-  const SWord32 s1486 = s1482 ^ s1485;-  const SWord32 s1487 = s1412 ^ s1469;-  const SWord32 s1488 = s1486 ^ s1487;-  const SWord16 s1489 = (SWord16) (s1488 >> 16);-  const SWord8  s1490 = (SWord8) s1489;-  const SWord32 s1491 = table2[s1490];-  const SWord32 s1492 = s1473 ^ s1491;-  const SWord8  s1493 = (SWord8) (s1476 >> 8);-  const SWord32 s1494 = table1[s1493];-  const SWord16 s1495 = (SWord16) (s1449 >> 16);-  const SWord8  s1496 = (SWord8) s1495;-  const SWord32 s1497 = table2[s1496];-  const SWord32 s1498 = s1494 ^ s1497;-  const SWord8  s1499 = (SWord8) (s1483 >> 8);-  const SWord32 s1500 = table3[s1499];-  const SWord32 s1501 = s1498 ^ s1500;-  const SWord16 s1502 = (SWord16) s1413;-  const SWord8  s1503 = (SWord8) s1502;-  const SWord32 s1504 = table4[s1503];-  const SWord32 s1505 = s1501 ^ s1504;-  const SWord32 s1506 = s1431 ^ s1487;-  const SWord32 s1507 = s1505 ^ s1506;-  const SWord16 s1508 = (SWord16) s1507;-  const SWord8  s1509 = (SWord8) (s1508 >> 8);-  const SWord32 s1510 = table3[s1509];-  const SWord32 s1511 = s1492 ^ s1510;-  const SWord8  s1512 = (SWord8) (s1495 >> 8);-  const SWord32 s1513 = table1[s1512];-  const SWord8  s1514 = (SWord8) s1396;-  const SWord32 s1515 = table2[s1514];-  const SWord32 s1516 = s1513 ^ s1515;-  const SWord8  s1517 = (SWord8) (s1502 >> 8);-  const SWord32 s1518 = table3[s1517];-  const SWord32 s1519 = s1516 ^ s1518;-  const SWord8  s1520 = (SWord8) s1433;-  const SWord32 s1521 = table4[s1520];-  const SWord32 s1522 = s1519 ^ s1521;-  const SWord32 s1523 = s1448 ^ s1506;-  const SWord32 s1524 = s1522 ^ s1523;-  const SWord16 s1525 = (SWord16) s1524;-  const SWord8  s1526 = (SWord8) s1525;-  const SWord32 s1527 = table4[s1526];-  const SWord32 s1528 = s1511 ^ s1527;-  const SWord32 s1529 = (s1523 << 8) | (s1523 >> 24);-  const SWord16 s1530 = (SWord16) (s1529 >> 16);-  const SWord8  s1531 = (SWord8) (s1530 >> 8);-  const SWord8  s1532 = table0[s1531];-  const SWord8  s1533 = 8 ^ s1532;-  const SWord8  s1534 = (SWord8) s1530;-  const SWord8  s1535 = table0[s1534];-  const SWord16 s1536 = (((SWord16) s1533) << 8) | ((SWord16) s1535);-  const SWord16 s1537 = (SWord16) s1529;-  const SWord8  s1538 = (SWord8) (s1537 >> 8);-  const SWord8  s1539 = table0[s1538];-  const SWord8  s1540 = (SWord8) s1537;-  const SWord8  s1541 = table0[s1540];-  const SWord16 s1542 = (((SWord16) s1539) << 8) | ((SWord16) s1541);-  const SWord32 s1543 = (((SWord32) s1536) << 16) | ((SWord32) s1542);-  const SWord32 s1544 = s1469 ^ s1543;-  const SWord32 s1545 = s1528 ^ s1544;-  const SWord16 s1546 = (SWord16) (s1545 >> 16);-  const SWord8  s1547 = (SWord8) (s1546 >> 8);-  const SWord32 s1548 = table1[s1547];-  const SWord8  s1549 = (SWord8) (s1489 >> 8);-  const SWord32 s1550 = table1[s1549];-  const SWord16 s1551 = (SWord16) (s1507 >> 16);-  const SWord8  s1552 = (SWord8) s1551;-  const SWord32 s1553 = table2[s1552];-  const SWord32 s1554 = s1550 ^ s1553;-  const SWord8  s1555 = (SWord8) (s1525 >> 8);-  const SWord32 s1556 = table3[s1555];-  const SWord32 s1557 = s1554 ^ s1556;-  const SWord16 s1558 = (SWord16) s1470;-  const SWord8  s1559 = (SWord8) s1558;-  const SWord32 s1560 = table4[s1559];-  const SWord32 s1561 = s1557 ^ s1560;-  const SWord32 s1562 = s1487 ^ s1544;-  const SWord32 s1563 = s1561 ^ s1562;-  const SWord16 s1564 = (SWord16) (s1563 >> 16);-  const SWord8  s1565 = (SWord8) s1564;-  const SWord32 s1566 = table2[s1565];-  const SWord32 s1567 = s1548 ^ s1566;-  const SWord8  s1568 = (SWord8) (s1551 >> 8);-  const SWord32 s1569 = table1[s1568];-  const SWord16 s1570 = (SWord16) (s1524 >> 16);-  const SWord8  s1571 = (SWord8) s1570;-  const SWord32 s1572 = table2[s1571];-  const SWord32 s1573 = s1569 ^ s1572;-  const SWord8  s1574 = (SWord8) (s1558 >> 8);-  const SWord32 s1575 = table3[s1574];-  const SWord32 s1576 = s1573 ^ s1575;-  const SWord16 s1577 = (SWord16) s1488;-  const SWord8  s1578 = (SWord8) s1577;-  const SWord32 s1579 = table4[s1578];-  const SWord32 s1580 = s1576 ^ s1579;-  const SWord32 s1581 = s1506 ^ s1562;-  const SWord32 s1582 = s1580 ^ s1581;-  const SWord16 s1583 = (SWord16) s1582;-  const SWord8  s1584 = (SWord8) (s1583 >> 8);-  const SWord32 s1585 = table3[s1584];-  const SWord32 s1586 = s1567 ^ s1585;-  const SWord8  s1587 = (SWord8) (s1570 >> 8);-  const SWord32 s1588 = table1[s1587];-  const SWord8  s1589 = (SWord8) s1471;-  const SWord32 s1590 = table2[s1589];-  const SWord32 s1591 = s1588 ^ s1590;-  const SWord8  s1592 = (SWord8) (s1577 >> 8);-  const SWord32 s1593 = table3[s1592];-  const SWord32 s1594 = s1591 ^ s1593;-  const SWord8  s1595 = (SWord8) s1508;-  const SWord32 s1596 = table4[s1595];-  const SWord32 s1597 = s1594 ^ s1596;-  const SWord32 s1598 = s1523 ^ s1581;-  const SWord32 s1599 = s1597 ^ s1598;-  const SWord16 s1600 = (SWord16) s1599;-  const SWord8  s1601 = (SWord8) s1600;-  const SWord32 s1602 = table4[s1601];-  const SWord32 s1603 = s1586 ^ s1602;-  const SWord32 s1604 = (s1598 << 8) | (s1598 >> 24);-  const SWord16 s1605 = (SWord16) (s1604 >> 16);-  const SWord8  s1606 = (SWord8) (s1605 >> 8);-  const SWord8  s1607 = table0[s1606];-  const SWord8  s1608 = 16 ^ s1607;-  const SWord8  s1609 = (SWord8) s1605;-  const SWord8  s1610 = table0[s1609];-  const SWord16 s1611 = (((SWord16) s1608) << 8) | ((SWord16) s1610);-  const SWord16 s1612 = (SWord16) s1604;-  const SWord8  s1613 = (SWord8) (s1612 >> 8);-  const SWord8  s1614 = table0[s1613];-  const SWord8  s1615 = (SWord8) s1612;-  const SWord8  s1616 = table0[s1615];-  const SWord16 s1617 = (((SWord16) s1614) << 8) | ((SWord16) s1616);-  const SWord32 s1618 = (((SWord32) s1611) << 16) | ((SWord32) s1617);-  const SWord32 s1619 = s1544 ^ s1618;-  const SWord32 s1620 = s1603 ^ s1619;-  const SWord16 s1621 = (SWord16) (s1620 >> 16);-  const SWord8  s1622 = (SWord8) (s1621 >> 8);-  const SWord32 s1623 = table1[s1622];-  const SWord8  s1624 = (SWord8) (s1564 >> 8);-  const SWord32 s1625 = table1[s1624];-  const SWord16 s1626 = (SWord16) (s1582 >> 16);-  const SWord8  s1627 = (SWord8) s1626;-  const SWord32 s1628 = table2[s1627];-  const SWord32 s1629 = s1625 ^ s1628;-  const SWord8  s1630 = (SWord8) (s1600 >> 8);-  const SWord32 s1631 = table3[s1630];-  const SWord32 s1632 = s1629 ^ s1631;-  const SWord16 s1633 = (SWord16) s1545;-  const SWord8  s1634 = (SWord8) s1633;-  const SWord32 s1635 = table4[s1634];-  const SWord32 s1636 = s1632 ^ s1635;-  const SWord32 s1637 = s1562 ^ s1619;-  const SWord32 s1638 = s1636 ^ s1637;-  const SWord16 s1639 = (SWord16) (s1638 >> 16);-  const SWord8  s1640 = (SWord8) s1639;-  const SWord32 s1641 = table2[s1640];-  const SWord32 s1642 = s1623 ^ s1641;-  const SWord8  s1643 = (SWord8) (s1626 >> 8);-  const SWord32 s1644 = table1[s1643];-  const SWord16 s1645 = (SWord16) (s1599 >> 16);-  const SWord8  s1646 = (SWord8) s1645;-  const SWord32 s1647 = table2[s1646];-  const SWord32 s1648 = s1644 ^ s1647;-  const SWord8  s1649 = (SWord8) (s1633 >> 8);-  const SWord32 s1650 = table3[s1649];-  const SWord32 s1651 = s1648 ^ s1650;-  const SWord16 s1652 = (SWord16) s1563;-  const SWord8  s1653 = (SWord8) s1652;-  const SWord32 s1654 = table4[s1653];-  const SWord32 s1655 = s1651 ^ s1654;-  const SWord32 s1656 = s1581 ^ s1637;-  const SWord32 s1657 = s1655 ^ s1656;-  const SWord16 s1658 = (SWord16) s1657;-  const SWord8  s1659 = (SWord8) (s1658 >> 8);-  const SWord32 s1660 = table3[s1659];-  const SWord32 s1661 = s1642 ^ s1660;-  const SWord8  s1662 = (SWord8) (s1645 >> 8);-  const SWord32 s1663 = table1[s1662];-  const SWord8  s1664 = (SWord8) s1546;-  const SWord32 s1665 = table2[s1664];-  const SWord32 s1666 = s1663 ^ s1665;-  const SWord8  s1667 = (SWord8) (s1652 >> 8);-  const SWord32 s1668 = table3[s1667];-  const SWord32 s1669 = s1666 ^ s1668;-  const SWord8  s1670 = (SWord8) s1583;-  const SWord32 s1671 = table4[s1670];-  const SWord32 s1672 = s1669 ^ s1671;-  const SWord32 s1673 = s1598 ^ s1656;-  const SWord32 s1674 = s1672 ^ s1673;-  const SWord16 s1675 = (SWord16) s1674;-  const SWord8  s1676 = (SWord8) s1675;-  const SWord32 s1677 = table4[s1676];-  const SWord32 s1678 = s1661 ^ s1677;-  const SWord32 s1679 = (s1673 << 8) | (s1673 >> 24);-  const SWord16 s1680 = (SWord16) (s1679 >> 16);-  const SWord8  s1681 = (SWord8) (s1680 >> 8);-  const SWord8  s1682 = table0[s1681];-  const SWord8  s1683 = 32 ^ s1682;-  const SWord8  s1684 = (SWord8) s1680;-  const SWord8  s1685 = table0[s1684];-  const SWord16 s1686 = (((SWord16) s1683) << 8) | ((SWord16) s1685);-  const SWord16 s1687 = (SWord16) s1679;-  const SWord8  s1688 = (SWord8) (s1687 >> 8);-  const SWord8  s1689 = table0[s1688];-  const SWord8  s1690 = (SWord8) s1687;-  const SWord8  s1691 = table0[s1690];-  const SWord16 s1692 = (((SWord16) s1689) << 8) | ((SWord16) s1691);-  const SWord32 s1693 = (((SWord32) s1686) << 16) | ((SWord32) s1692);-  const SWord32 s1694 = s1619 ^ s1693;-  const SWord32 s1695 = s1678 ^ s1694;-  const SWord16 s1696 = (SWord16) (s1695 >> 16);-  const SWord8  s1697 = (SWord8) (s1696 >> 8);-  const SWord32 s1698 = table1[s1697];-  const SWord8  s1699 = (SWord8) (s1639 >> 8);-  const SWord32 s1700 = table1[s1699];-  const SWord16 s1701 = (SWord16) (s1657 >> 16);-  const SWord8  s1702 = (SWord8) s1701;-  const SWord32 s1703 = table2[s1702];-  const SWord32 s1704 = s1700 ^ s1703;-  const SWord8  s1705 = (SWord8) (s1675 >> 8);-  const SWord32 s1706 = table3[s1705];-  const SWord32 s1707 = s1704 ^ s1706;-  const SWord16 s1708 = (SWord16) s1620;-  const SWord8  s1709 = (SWord8) s1708;-  const SWord32 s1710 = table4[s1709];-  const SWord32 s1711 = s1707 ^ s1710;-  const SWord32 s1712 = s1637 ^ s1694;-  const SWord32 s1713 = s1711 ^ s1712;-  const SWord16 s1714 = (SWord16) (s1713 >> 16);-  const SWord8  s1715 = (SWord8) s1714;-  const SWord32 s1716 = table2[s1715];-  const SWord32 s1717 = s1698 ^ s1716;-  const SWord8  s1718 = (SWord8) (s1701 >> 8);-  const SWord32 s1719 = table1[s1718];-  const SWord16 s1720 = (SWord16) (s1674 >> 16);-  const SWord8  s1721 = (SWord8) s1720;-  const SWord32 s1722 = table2[s1721];-  const SWord32 s1723 = s1719 ^ s1722;-  const SWord8  s1724 = (SWord8) (s1708 >> 8);-  const SWord32 s1725 = table3[s1724];-  const SWord32 s1726 = s1723 ^ s1725;-  const SWord16 s1727 = (SWord16) s1638;-  const SWord8  s1728 = (SWord8) s1727;-  const SWord32 s1729 = table4[s1728];-  const SWord32 s1730 = s1726 ^ s1729;-  const SWord32 s1731 = s1656 ^ s1712;-  const SWord32 s1732 = s1730 ^ s1731;-  const SWord16 s1733 = (SWord16) s1732;-  const SWord8  s1734 = (SWord8) (s1733 >> 8);-  const SWord32 s1735 = table3[s1734];-  const SWord32 s1736 = s1717 ^ s1735;-  const SWord8  s1737 = (SWord8) (s1720 >> 8);-  const SWord32 s1738 = table1[s1737];-  const SWord8  s1739 = (SWord8) s1621;-  const SWord32 s1740 = table2[s1739];-  const SWord32 s1741 = s1738 ^ s1740;-  const SWord8  s1742 = (SWord8) (s1727 >> 8);-  const SWord32 s1743 = table3[s1742];-  const SWord32 s1744 = s1741 ^ s1743;-  const SWord8  s1745 = (SWord8) s1658;-  const SWord32 s1746 = table4[s1745];-  const SWord32 s1747 = s1744 ^ s1746;-  const SWord32 s1748 = s1673 ^ s1731;-  const SWord32 s1749 = s1747 ^ s1748;-  const SWord16 s1750 = (SWord16) s1749;-  const SWord8  s1751 = (SWord8) s1750;-  const SWord32 s1752 = table4[s1751];-  const SWord32 s1753 = s1736 ^ s1752;-  const SWord32 s1754 = (s1748 << 8) | (s1748 >> 24);-  const SWord16 s1755 = (SWord16) (s1754 >> 16);-  const SWord8  s1756 = (SWord8) (s1755 >> 8);-  const SWord8  s1757 = table0[s1756];-  const SWord8  s1758 = 64 ^ s1757;-  const SWord8  s1759 = (SWord8) s1755;-  const SWord8  s1760 = table0[s1759];-  const SWord16 s1761 = (((SWord16) s1758) << 8) | ((SWord16) s1760);-  const SWord16 s1762 = (SWord16) s1754;-  const SWord8  s1763 = (SWord8) (s1762 >> 8);-  const SWord8  s1764 = table0[s1763];-  const SWord8  s1765 = (SWord8) s1762;-  const SWord8  s1766 = table0[s1765];-  const SWord16 s1767 = (((SWord16) s1764) << 8) | ((SWord16) s1766);-  const SWord32 s1768 = (((SWord32) s1761) << 16) | ((SWord32) s1767);-  const SWord32 s1769 = s1694 ^ s1768;-  const SWord32 s1770 = s1753 ^ s1769;-  const SWord16 s1771 = (SWord16) (s1770 >> 16);-  const SWord8  s1772 = (SWord8) (s1771 >> 8);-  const SWord32 s1773 = table1[s1772];-  const SWord8  s1774 = (SWord8) (s1714 >> 8);-  const SWord32 s1775 = table1[s1774];-  const SWord16 s1776 = (SWord16) (s1732 >> 16);-  const SWord8  s1777 = (SWord8) s1776;-  const SWord32 s1778 = table2[s1777];-  const SWord32 s1779 = s1775 ^ s1778;-  const SWord8  s1780 = (SWord8) (s1750 >> 8);-  const SWord32 s1781 = table3[s1780];-  const SWord32 s1782 = s1779 ^ s1781;-  const SWord16 s1783 = (SWord16) s1695;-  const SWord8  s1784 = (SWord8) s1783;-  const SWord32 s1785 = table4[s1784];-  const SWord32 s1786 = s1782 ^ s1785;-  const SWord32 s1787 = s1712 ^ s1769;-  const SWord32 s1788 = s1786 ^ s1787;-  const SWord16 s1789 = (SWord16) (s1788 >> 16);-  const SWord8  s1790 = (SWord8) s1789;-  const SWord32 s1791 = table2[s1790];-  const SWord32 s1792 = s1773 ^ s1791;-  const SWord8  s1793 = (SWord8) (s1776 >> 8);-  const SWord32 s1794 = table1[s1793];-  const SWord16 s1795 = (SWord16) (s1749 >> 16);-  const SWord8  s1796 = (SWord8) s1795;-  const SWord32 s1797 = table2[s1796];-  const SWord32 s1798 = s1794 ^ s1797;-  const SWord8  s1799 = (SWord8) (s1783 >> 8);-  const SWord32 s1800 = table3[s1799];-  const SWord32 s1801 = s1798 ^ s1800;-  const SWord16 s1802 = (SWord16) s1713;-  const SWord8  s1803 = (SWord8) s1802;-  const SWord32 s1804 = table4[s1803];-  const SWord32 s1805 = s1801 ^ s1804;-  const SWord32 s1806 = s1731 ^ s1787;-  const SWord32 s1807 = s1805 ^ s1806;-  const SWord16 s1808 = (SWord16) s1807;-  const SWord8  s1809 = (SWord8) (s1808 >> 8);-  const SWord32 s1810 = table3[s1809];-  const SWord32 s1811 = s1792 ^ s1810;-  const SWord8  s1812 = (SWord8) (s1795 >> 8);-  const SWord32 s1813 = table1[s1812];-  const SWord8  s1814 = (SWord8) s1696;-  const SWord32 s1815 = table2[s1814];-  const SWord32 s1816 = s1813 ^ s1815;-  const SWord8  s1817 = (SWord8) (s1802 >> 8);-  const SWord32 s1818 = table3[s1817];-  const SWord32 s1819 = s1816 ^ s1818;-  const SWord8  s1820 = (SWord8) s1733;-  const SWord32 s1821 = table4[s1820];-  const SWord32 s1822 = s1819 ^ s1821;-  const SWord32 s1823 = s1748 ^ s1806;-  const SWord32 s1824 = s1822 ^ s1823;-  const SWord16 s1825 = (SWord16) s1824;-  const SWord8  s1826 = (SWord8) s1825;-  const SWord32 s1827 = table4[s1826];-  const SWord32 s1828 = s1811 ^ s1827;-  const SWord32 s1829 = (s1823 << 8) | (s1823 >> 24);-  const SWord16 s1830 = (SWord16) (s1829 >> 16);-  const SWord8  s1831 = (SWord8) (s1830 >> 8);-  const SWord8  s1832 = table0[s1831];-  const SWord8  s1833 = 128 ^ s1832;-  const SWord8  s1834 = (SWord8) s1830;-  const SWord8  s1835 = table0[s1834];-  const SWord16 s1836 = (((SWord16) s1833) << 8) | ((SWord16) s1835);-  const SWord16 s1837 = (SWord16) s1829;-  const SWord8  s1838 = (SWord8) (s1837 >> 8);-  const SWord8  s1839 = table0[s1838];-  const SWord8  s1840 = (SWord8) s1837;-  const SWord8  s1841 = table0[s1840];-  const SWord16 s1842 = (((SWord16) s1839) << 8) | ((SWord16) s1841);-  const SWord32 s1843 = (((SWord32) s1836) << 16) | ((SWord32) s1842);-  const SWord32 s1844 = s1769 ^ s1843;-  const SWord32 s1845 = s1828 ^ s1844;-  const SWord16 s1846 = (SWord16) (s1845 >> 16);-  const SWord8  s1847 = (SWord8) (s1846 >> 8);-  const SWord32 s1848 = table1[s1847];-  const SWord8  s1849 = (SWord8) (s1789 >> 8);-  const SWord32 s1850 = table1[s1849];-  const SWord16 s1851 = (SWord16) (s1807 >> 16);-  const SWord8  s1852 = (SWord8) s1851;-  const SWord32 s1853 = table2[s1852];-  const SWord32 s1854 = s1850 ^ s1853;-  const SWord8  s1855 = (SWord8) (s1825 >> 8);-  const SWord32 s1856 = table3[s1855];-  const SWord32 s1857 = s1854 ^ s1856;-  const SWord16 s1858 = (SWord16) s1770;-  const SWord8  s1859 = (SWord8) s1858;-  const SWord32 s1860 = table4[s1859];-  const SWord32 s1861 = s1857 ^ s1860;-  const SWord32 s1862 = s1787 ^ s1844;-  const SWord32 s1863 = s1861 ^ s1862;-  const SWord16 s1864 = (SWord16) (s1863 >> 16);-  const SWord8  s1865 = (SWord8) s1864;-  const SWord32 s1866 = table2[s1865];-  const SWord32 s1867 = s1848 ^ s1866;-  const SWord8  s1868 = (SWord8) (s1851 >> 8);-  const SWord32 s1869 = table1[s1868];-  const SWord16 s1870 = (SWord16) (s1824 >> 16);-  const SWord8  s1871 = (SWord8) s1870;-  const SWord32 s1872 = table2[s1871];-  const SWord32 s1873 = s1869 ^ s1872;-  const SWord8  s1874 = (SWord8) (s1858 >> 8);-  const SWord32 s1875 = table3[s1874];-  const SWord32 s1876 = s1873 ^ s1875;-  const SWord16 s1877 = (SWord16) s1788;-  const SWord8  s1878 = (SWord8) s1877;-  const SWord32 s1879 = table4[s1878];-  const SWord32 s1880 = s1876 ^ s1879;-  const SWord32 s1881 = s1806 ^ s1862;-  const SWord32 s1882 = s1880 ^ s1881;-  const SWord16 s1883 = (SWord16) s1882;-  const SWord8  s1884 = (SWord8) (s1883 >> 8);-  const SWord32 s1885 = table3[s1884];-  const SWord32 s1886 = s1867 ^ s1885;-  const SWord8  s1887 = (SWord8) (s1870 >> 8);-  const SWord32 s1888 = table1[s1887];-  const SWord8  s1889 = (SWord8) s1771;-  const SWord32 s1890 = table2[s1889];-  const SWord32 s1891 = s1888 ^ s1890;-  const SWord8  s1892 = (SWord8) (s1877 >> 8);-  const SWord32 s1893 = table3[s1892];-  const SWord32 s1894 = s1891 ^ s1893;-  const SWord8  s1895 = (SWord8) s1808;-  const SWord32 s1896 = table4[s1895];-  const SWord32 s1897 = s1894 ^ s1896;-  const SWord32 s1898 = s1823 ^ s1881;-  const SWord32 s1899 = s1897 ^ s1898;-  const SWord16 s1900 = (SWord16) s1899;-  const SWord8  s1901 = (SWord8) s1900;-  const SWord32 s1902 = table4[s1901];-  const SWord32 s1903 = s1886 ^ s1902;-  const SWord32 s1904 = (s1898 << 8) | (s1898 >> 24);-  const SWord16 s1905 = (SWord16) (s1904 >> 16);-  const SWord8  s1906 = (SWord8) (s1905 >> 8);-  const SWord8  s1907 = table0[s1906];-  const SWord8  s1908 = 27 ^ s1907;-  const SWord8  s1909 = (SWord8) s1905;-  const SWord8  s1910 = table0[s1909];-  const SWord16 s1911 = (((SWord16) s1908) << 8) | ((SWord16) s1910);-  const SWord16 s1912 = (SWord16) s1904;-  const SWord8  s1913 = (SWord8) (s1912 >> 8);-  const SWord8  s1914 = table0[s1913];-  const SWord8  s1915 = (SWord8) s1912;-  const SWord8  s1916 = table0[s1915];-  const SWord16 s1917 = (((SWord16) s1914) << 8) | ((SWord16) s1916);-  const SWord32 s1918 = (((SWord32) s1911) << 16) | ((SWord32) s1917);-  const SWord32 s1919 = s1844 ^ s1918;-  const SWord32 s1920 = s1903 ^ s1919;-  const SWord16 s1921 = (SWord16) (s1920 >> 16);-  const SWord8  s1922 = (SWord8) (s1921 >> 8);-  const SWord8  s1923 = table0[s1922];-  const SWord8  s1924 = (SWord8) (s1864 >> 8);-  const SWord32 s1925 = table1[s1924];-  const SWord16 s1926 = (SWord16) (s1882 >> 16);-  const SWord8  s1927 = (SWord8) s1926;-  const SWord32 s1928 = table2[s1927];-  const SWord32 s1929 = s1925 ^ s1928;-  const SWord8  s1930 = (SWord8) (s1900 >> 8);-  const SWord32 s1931 = table3[s1930];-  const SWord32 s1932 = s1929 ^ s1931;-  const SWord16 s1933 = (SWord16) s1845;-  const SWord8  s1934 = (SWord8) s1933;-  const SWord32 s1935 = table4[s1934];-  const SWord32 s1936 = s1932 ^ s1935;-  const SWord32 s1937 = s1862 ^ s1919;-  const SWord32 s1938 = s1936 ^ s1937;-  const SWord16 s1939 = (SWord16) (s1938 >> 16);-  const SWord8  s1940 = (SWord8) s1939;-  const SWord8  s1941 = table0[s1940];-  const SWord16 s1942 = (((SWord16) s1923) << 8) | ((SWord16) s1941);-  const SWord8  s1943 = (SWord8) (s1926 >> 8);-  const SWord32 s1944 = table1[s1943];-  const SWord16 s1945 = (SWord16) (s1899 >> 16);-  const SWord8  s1946 = (SWord8) s1945;-  const SWord32 s1947 = table2[s1946];-  const SWord32 s1948 = s1944 ^ s1947;-  const SWord8  s1949 = (SWord8) (s1933 >> 8);-  const SWord32 s1950 = table3[s1949];-  const SWord32 s1951 = s1948 ^ s1950;-  const SWord16 s1952 = (SWord16) s1863;-  const SWord8  s1953 = (SWord8) s1952;-  const SWord32 s1954 = table4[s1953];-  const SWord32 s1955 = s1951 ^ s1954;-  const SWord32 s1956 = s1881 ^ s1937;-  const SWord32 s1957 = s1955 ^ s1956;-  const SWord16 s1958 = (SWord16) s1957;-  const SWord8  s1959 = (SWord8) (s1958 >> 8);-  const SWord8  s1960 = table0[s1959];-  const SWord8  s1961 = (SWord8) (s1945 >> 8);-  const SWord32 s1962 = table1[s1961];-  const SWord8  s1963 = (SWord8) s1846;-  const SWord32 s1964 = table2[s1963];-  const SWord32 s1965 = s1962 ^ s1964;-  const SWord8  s1966 = (SWord8) (s1952 >> 8);-  const SWord32 s1967 = table3[s1966];-  const SWord32 s1968 = s1965 ^ s1967;-  const SWord8  s1969 = (SWord8) s1883;-  const SWord32 s1970 = table4[s1969];-  const SWord32 s1971 = s1968 ^ s1970;-  const SWord32 s1972 = s1898 ^ s1956;-  const SWord32 s1973 = s1971 ^ s1972;-  const SWord16 s1974 = (SWord16) s1973;-  const SWord8  s1975 = (SWord8) s1974;-  const SWord8  s1976 = table0[s1975];-  const SWord16 s1977 = (((SWord16) s1960) << 8) | ((SWord16) s1976);-  const SWord32 s1978 = (((SWord32) s1942) << 16) | ((SWord32) s1977);-  const SWord32 s1979 = (s1972 << 8) | (s1972 >> 24);-  const SWord16 s1980 = (SWord16) (s1979 >> 16);-  const SWord8  s1981 = (SWord8) (s1980 >> 8);-  const SWord8  s1982 = table0[s1981];-  const SWord8  s1983 = 54 ^ s1982;-  const SWord8  s1984 = (SWord8) s1980;-  const SWord8  s1985 = table0[s1984];-  const SWord16 s1986 = (((SWord16) s1983) << 8) | ((SWord16) s1985);-  const SWord16 s1987 = (SWord16) s1979;-  const SWord8  s1988 = (SWord8) (s1987 >> 8);-  const SWord8  s1989 = table0[s1988];-  const SWord8  s1990 = (SWord8) s1987;-  const SWord8  s1991 = table0[s1990];-  const SWord16 s1992 = (((SWord16) s1989) << 8) | ((SWord16) s1991);-  const SWord32 s1993 = (((SWord32) s1986) << 16) | ((SWord32) s1992);-  const SWord32 s1994 = s1919 ^ s1993;-  const SWord32 s1995 = s1978 ^ s1994;-  const SWord8  s1996 = (SWord8) (s1939 >> 8);-  const SWord8  s1997 = table0[s1996];-  const SWord16 s1998 = (SWord16) (s1957 >> 16);-  const SWord8  s1999 = (SWord8) s1998;-  const SWord8  s2000 = table0[s1999];-  const SWord16 s2001 = (((SWord16) s1997) << 8) | ((SWord16) s2000);-  const SWord8  s2002 = (SWord8) (s1974 >> 8);-  const SWord8  s2003 = table0[s2002];-  const SWord16 s2004 = (SWord16) s1920;-  const SWord8  s2005 = (SWord8) s2004;-  const SWord8  s2006 = table0[s2005];-  const SWord16 s2007 = (((SWord16) s2003) << 8) | ((SWord16) s2006);-  const SWord32 s2008 = (((SWord32) s2001) << 16) | ((SWord32) s2007);-  const SWord32 s2009 = s1937 ^ s1994;-  const SWord32 s2010 = s2008 ^ s2009;-  const SWord8  s2011 = (SWord8) (s1998 >> 8);-  const SWord8  s2012 = table0[s2011];-  const SWord16 s2013 = (SWord16) (s1973 >> 16);-  const SWord8  s2014 = (SWord8) s2013;-  const SWord8  s2015 = table0[s2014];-  const SWord16 s2016 = (((SWord16) s2012) << 8) | ((SWord16) s2015);-  const SWord8  s2017 = (SWord8) (s2004 >> 8);-  const SWord8  s2018 = table0[s2017];-  const SWord16 s2019 = (SWord16) s1938;-  const SWord8  s2020 = (SWord8) s2019;-  const SWord8  s2021 = table0[s2020];-  const SWord16 s2022 = (((SWord16) s2018) << 8) | ((SWord16) s2021);-  const SWord32 s2023 = (((SWord32) s2016) << 16) | ((SWord32) s2022);-  const SWord32 s2024 = s1956 ^ s2009;-  const SWord32 s2025 = s2023 ^ s2024;-  const SWord8  s2026 = (SWord8) (s2013 >> 8);-  const SWord8  s2027 = table0[s2026];-  const SWord8  s2028 = (SWord8) s1921;-  const SWord8  s2029 = table0[s2028];-  const SWord16 s2030 = (((SWord16) s2027) << 8) | ((SWord16) s2029);-  const SWord8  s2031 = (SWord8) (s2019 >> 8);-  const SWord8  s2032 = table0[s2031];-  const SWord8  s2033 = (SWord8) s1958;-  const SWord8  s2034 = table0[s2033];-  const SWord16 s2035 = (((SWord16) s2032) << 8) | ((SWord16) s2034);-  const SWord32 s2036 = (((SWord32) s2030) << 16) | ((SWord32) s2035);-  const SWord32 s2037 = s1972 ^ s2024;-  const SWord32 s2038 = s2036 ^ s2037;--  ct[0] = s1995;-  ct[1] = s2010;-  ct[2] = s2025;-  ct[3] = s2038;+    printf("  pt[%1d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);++  const SWord32 key[4] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array key:\n");+  int key_ctr;+  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)+    printf("  key[%1d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);++  SWord32 ct[4];++  aes128Enc(pt, key, ct);++  printf("aes128Enc(pt, key, ct) ->\n");+  int ct_ctr;+  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)+    printf("  ct[%1d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);++  return 0;+}+== END: "aes128Enc_driver.c" ==================+== BEGIN: "aes128Enc.c" ================+/* File: "aes128Enc.c". Automatically generated by SBV. Do not edit! */++#include "aes128Enc.h"++void aes128Enc(const SWord32 *pt, const SWord32 *key, SWord32 *ct)+{+  const SWord32 s0 = pt[0];+  const SWord32 s1 = pt[1];+  const SWord32 s2 = pt[2];+  const SWord32 s3 = pt[3];+  const SWord32 s4 = key[0];+  const SWord32 s5 = key[1];+  const SWord32 s6 = key[2];+  const SWord32 s7 = key[3];+  static const SWord8 table0[] = {+       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,+      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,+      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,+      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,+       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,+      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,+       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,+       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,+       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,+      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,+       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,+      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,+      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,+      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,+       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,+       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,+      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,+      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,+      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,+      104,  65, 153,  45,  15, 176,  84, 187,  22+  };+  static const SWord32 table1[] = {+      0xc66363a5UL, 0xf87c7c84UL, 0xee777799UL, 0xf67b7b8dUL,+      0xfff2f20dUL, 0xd66b6bbdUL, 0xde6f6fb1UL, 0x91c5c554UL,+      0x60303050UL, 0x02010103UL, 0xce6767a9UL, 0x562b2b7dUL,+      0xe7fefe19UL, 0xb5d7d762UL, 0x4dababe6UL, 0xec76769aUL,+      0x8fcaca45UL, 0x1f82829dUL, 0x89c9c940UL, 0xfa7d7d87UL,+      0xeffafa15UL, 0xb25959ebUL, 0x8e4747c9UL, 0xfbf0f00bUL,+      0x41adadecUL, 0xb3d4d467UL, 0x5fa2a2fdUL, 0x45afafeaUL,+      0x239c9cbfUL, 0x53a4a4f7UL, 0xe4727296UL, 0x9bc0c05bUL,+      0x75b7b7c2UL, 0xe1fdfd1cUL, 0x3d9393aeUL, 0x4c26266aUL,+      0x6c36365aUL, 0x7e3f3f41UL, 0xf5f7f702UL, 0x83cccc4fUL,+      0x6834345cUL, 0x51a5a5f4UL, 0xd1e5e534UL, 0xf9f1f108UL,+      0xe2717193UL, 0xabd8d873UL, 0x62313153UL, 0x2a15153fUL,+      0x0804040cUL, 0x95c7c752UL, 0x46232365UL, 0x9dc3c35eUL,+      0x30181828UL, 0x379696a1UL, 0x0a05050fUL, 0x2f9a9ab5UL,+      0x0e070709UL, 0x24121236UL, 0x1b80809bUL, 0xdfe2e23dUL,+      0xcdebeb26UL, 0x4e272769UL, 0x7fb2b2cdUL, 0xea75759fUL,+      0x1209091bUL, 0x1d83839eUL, 0x582c2c74UL, 0x341a1a2eUL,+      0x361b1b2dUL, 0xdc6e6eb2UL, 0xb45a5aeeUL, 0x5ba0a0fbUL,+      0xa45252f6UL, 0x763b3b4dUL, 0xb7d6d661UL, 0x7db3b3ceUL,+      0x5229297bUL, 0xdde3e33eUL, 0x5e2f2f71UL, 0x13848497UL,+      0xa65353f5UL, 0xb9d1d168UL, 0x00000000UL, 0xc1eded2cUL,+      0x40202060UL, 0xe3fcfc1fUL, 0x79b1b1c8UL, 0xb65b5bedUL,+      0xd46a6abeUL, 0x8dcbcb46UL, 0x67bebed9UL, 0x7239394bUL,+      0x944a4adeUL, 0x984c4cd4UL, 0xb05858e8UL, 0x85cfcf4aUL,+      0xbbd0d06bUL, 0xc5efef2aUL, 0x4faaaae5UL, 0xedfbfb16UL,+      0x864343c5UL, 0x9a4d4dd7UL, 0x66333355UL, 0x11858594UL,+      0x8a4545cfUL, 0xe9f9f910UL, 0x04020206UL, 0xfe7f7f81UL,+      0xa05050f0UL, 0x783c3c44UL, 0x259f9fbaUL, 0x4ba8a8e3UL,+      0xa25151f3UL, 0x5da3a3feUL, 0x804040c0UL, 0x058f8f8aUL,+      0x3f9292adUL, 0x219d9dbcUL, 0x70383848UL, 0xf1f5f504UL,+      0x63bcbcdfUL, 0x77b6b6c1UL, 0xafdada75UL, 0x42212163UL,+      0x20101030UL, 0xe5ffff1aUL, 0xfdf3f30eUL, 0xbfd2d26dUL,+      0x81cdcd4cUL, 0x180c0c14UL, 0x26131335UL, 0xc3ecec2fUL,+      0xbe5f5fe1UL, 0x359797a2UL, 0x884444ccUL, 0x2e171739UL,+      0x93c4c457UL, 0x55a7a7f2UL, 0xfc7e7e82UL, 0x7a3d3d47UL,+      0xc86464acUL, 0xba5d5de7UL, 0x3219192bUL, 0xe6737395UL,+      0xc06060a0UL, 0x19818198UL, 0x9e4f4fd1UL, 0xa3dcdc7fUL,+      0x44222266UL, 0x542a2a7eUL, 0x3b9090abUL, 0x0b888883UL,+      0x8c4646caUL, 0xc7eeee29UL, 0x6bb8b8d3UL, 0x2814143cUL,+      0xa7dede79UL, 0xbc5e5ee2UL, 0x160b0b1dUL, 0xaddbdb76UL,+      0xdbe0e03bUL, 0x64323256UL, 0x743a3a4eUL, 0x140a0a1eUL,+      0x924949dbUL, 0x0c06060aUL, 0x4824246cUL, 0xb85c5ce4UL,+      0x9fc2c25dUL, 0xbdd3d36eUL, 0x43acacefUL, 0xc46262a6UL,+      0x399191a8UL, 0x319595a4UL, 0xd3e4e437UL, 0xf279798bUL,+      0xd5e7e732UL, 0x8bc8c843UL, 0x6e373759UL, 0xda6d6db7UL,+      0x018d8d8cUL, 0xb1d5d564UL, 0x9c4e4ed2UL, 0x49a9a9e0UL,+      0xd86c6cb4UL, 0xac5656faUL, 0xf3f4f407UL, 0xcfeaea25UL,+      0xca6565afUL, 0xf47a7a8eUL, 0x47aeaee9UL, 0x10080818UL,+      0x6fbabad5UL, 0xf0787888UL, 0x4a25256fUL, 0x5c2e2e72UL,+      0x381c1c24UL, 0x57a6a6f1UL, 0x73b4b4c7UL, 0x97c6c651UL,+      0xcbe8e823UL, 0xa1dddd7cUL, 0xe874749cUL, 0x3e1f1f21UL,+      0x964b4bddUL, 0x61bdbddcUL, 0x0d8b8b86UL, 0x0f8a8a85UL,+      0xe0707090UL, 0x7c3e3e42UL, 0x71b5b5c4UL, 0xcc6666aaUL,+      0x904848d8UL, 0x06030305UL, 0xf7f6f601UL, 0x1c0e0e12UL,+      0xc26161a3UL, 0x6a35355fUL, 0xae5757f9UL, 0x69b9b9d0UL,+      0x17868691UL, 0x99c1c158UL, 0x3a1d1d27UL, 0x279e9eb9UL,+      0xd9e1e138UL, 0xebf8f813UL, 0x2b9898b3UL, 0x22111133UL,+      0xd26969bbUL, 0xa9d9d970UL, 0x078e8e89UL, 0x339494a7UL,+      0x2d9b9bb6UL, 0x3c1e1e22UL, 0x15878792UL, 0xc9e9e920UL,+      0x87cece49UL, 0xaa5555ffUL, 0x50282878UL, 0xa5dfdf7aUL,+      0x038c8c8fUL, 0x59a1a1f8UL, 0x09898980UL, 0x1a0d0d17UL,+      0x65bfbfdaUL, 0xd7e6e631UL, 0x844242c6UL, 0xd06868b8UL,+      0x824141c3UL, 0x299999b0UL, 0x5a2d2d77UL, 0x1e0f0f11UL,+      0x7bb0b0cbUL, 0xa85454fcUL, 0x6dbbbbd6UL, 0x2c16163aUL+  };+  static const SWord32 table2[] = {+      0xa5c66363UL, 0x84f87c7cUL, 0x99ee7777UL, 0x8df67b7bUL,+      0x0dfff2f2UL, 0xbdd66b6bUL, 0xb1de6f6fUL, 0x5491c5c5UL,+      0x50603030UL, 0x03020101UL, 0xa9ce6767UL, 0x7d562b2bUL,+      0x19e7fefeUL, 0x62b5d7d7UL, 0xe64dababUL, 0x9aec7676UL,+      0x458fcacaUL, 0x9d1f8282UL, 0x4089c9c9UL, 0x87fa7d7dUL,+      0x15effafaUL, 0xebb25959UL, 0xc98e4747UL, 0x0bfbf0f0UL,+      0xec41adadUL, 0x67b3d4d4UL, 0xfd5fa2a2UL, 0xea45afafUL,+      0xbf239c9cUL, 0xf753a4a4UL, 0x96e47272UL, 0x5b9bc0c0UL,+      0xc275b7b7UL, 0x1ce1fdfdUL, 0xae3d9393UL, 0x6a4c2626UL,+      0x5a6c3636UL, 0x417e3f3fUL, 0x02f5f7f7UL, 0x4f83ccccUL,+      0x5c683434UL, 0xf451a5a5UL, 0x34d1e5e5UL, 0x08f9f1f1UL,+      0x93e27171UL, 0x73abd8d8UL, 0x53623131UL, 0x3f2a1515UL,+      0x0c080404UL, 0x5295c7c7UL, 0x65462323UL, 0x5e9dc3c3UL,+      0x28301818UL, 0xa1379696UL, 0x0f0a0505UL, 0xb52f9a9aUL,+      0x090e0707UL, 0x36241212UL, 0x9b1b8080UL, 0x3ddfe2e2UL,+      0x26cdebebUL, 0x694e2727UL, 0xcd7fb2b2UL, 0x9fea7575UL,+      0x1b120909UL, 0x9e1d8383UL, 0x74582c2cUL, 0x2e341a1aUL,+      0x2d361b1bUL, 0xb2dc6e6eUL, 0xeeb45a5aUL, 0xfb5ba0a0UL,+      0xf6a45252UL, 0x4d763b3bUL, 0x61b7d6d6UL, 0xce7db3b3UL,+      0x7b522929UL, 0x3edde3e3UL, 0x715e2f2fUL, 0x97138484UL,+      0xf5a65353UL, 0x68b9d1d1UL, 0x00000000UL, 0x2cc1ededUL,+      0x60402020UL, 0x1fe3fcfcUL, 0xc879b1b1UL, 0xedb65b5bUL,+      0xbed46a6aUL, 0x468dcbcbUL, 0xd967bebeUL, 0x4b723939UL,+      0xde944a4aUL, 0xd4984c4cUL, 0xe8b05858UL, 0x4a85cfcfUL,+      0x6bbbd0d0UL, 0x2ac5efefUL, 0xe54faaaaUL, 0x16edfbfbUL,+      0xc5864343UL, 0xd79a4d4dUL, 0x55663333UL, 0x94118585UL,+      0xcf8a4545UL, 0x10e9f9f9UL, 0x06040202UL, 0x81fe7f7fUL,+      0xf0a05050UL, 0x44783c3cUL, 0xba259f9fUL, 0xe34ba8a8UL,+      0xf3a25151UL, 0xfe5da3a3UL, 0xc0804040UL, 0x8a058f8fUL,+      0xad3f9292UL, 0xbc219d9dUL, 0x48703838UL, 0x04f1f5f5UL,+      0xdf63bcbcUL, 0xc177b6b6UL, 0x75afdadaUL, 0x63422121UL,+      0x30201010UL, 0x1ae5ffffUL, 0x0efdf3f3UL, 0x6dbfd2d2UL,+      0x4c81cdcdUL, 0x14180c0cUL, 0x35261313UL, 0x2fc3ececUL,+      0xe1be5f5fUL, 0xa2359797UL, 0xcc884444UL, 0x392e1717UL,+      0x5793c4c4UL, 0xf255a7a7UL, 0x82fc7e7eUL, 0x477a3d3dUL,+      0xacc86464UL, 0xe7ba5d5dUL, 0x2b321919UL, 0x95e67373UL,+      0xa0c06060UL, 0x98198181UL, 0xd19e4f4fUL, 0x7fa3dcdcUL,+      0x66442222UL, 0x7e542a2aUL, 0xab3b9090UL, 0x830b8888UL,+      0xca8c4646UL, 0x29c7eeeeUL, 0xd36bb8b8UL, 0x3c281414UL,+      0x79a7dedeUL, 0xe2bc5e5eUL, 0x1d160b0bUL, 0x76addbdbUL,+      0x3bdbe0e0UL, 0x56643232UL, 0x4e743a3aUL, 0x1e140a0aUL,+      0xdb924949UL, 0x0a0c0606UL, 0x6c482424UL, 0xe4b85c5cUL,+      0x5d9fc2c2UL, 0x6ebdd3d3UL, 0xef43acacUL, 0xa6c46262UL,+      0xa8399191UL, 0xa4319595UL, 0x37d3e4e4UL, 0x8bf27979UL,+      0x32d5e7e7UL, 0x438bc8c8UL, 0x596e3737UL, 0xb7da6d6dUL,+      0x8c018d8dUL, 0x64b1d5d5UL, 0xd29c4e4eUL, 0xe049a9a9UL,+      0xb4d86c6cUL, 0xfaac5656UL, 0x07f3f4f4UL, 0x25cfeaeaUL,+      0xafca6565UL, 0x8ef47a7aUL, 0xe947aeaeUL, 0x18100808UL,+      0xd56fbabaUL, 0x88f07878UL, 0x6f4a2525UL, 0x725c2e2eUL,+      0x24381c1cUL, 0xf157a6a6UL, 0xc773b4b4UL, 0x5197c6c6UL,+      0x23cbe8e8UL, 0x7ca1ddddUL, 0x9ce87474UL, 0x213e1f1fUL,+      0xdd964b4bUL, 0xdc61bdbdUL, 0x860d8b8bUL, 0x850f8a8aUL,+      0x90e07070UL, 0x427c3e3eUL, 0xc471b5b5UL, 0xaacc6666UL,+      0xd8904848UL, 0x05060303UL, 0x01f7f6f6UL, 0x121c0e0eUL,+      0xa3c26161UL, 0x5f6a3535UL, 0xf9ae5757UL, 0xd069b9b9UL,+      0x91178686UL, 0x5899c1c1UL, 0x273a1d1dUL, 0xb9279e9eUL,+      0x38d9e1e1UL, 0x13ebf8f8UL, 0xb32b9898UL, 0x33221111UL,+      0xbbd26969UL, 0x70a9d9d9UL, 0x89078e8eUL, 0xa7339494UL,+      0xb62d9b9bUL, 0x223c1e1eUL, 0x92158787UL, 0x20c9e9e9UL,+      0x4987ceceUL, 0xffaa5555UL, 0x78502828UL, 0x7aa5dfdfUL,+      0x8f038c8cUL, 0xf859a1a1UL, 0x80098989UL, 0x171a0d0dUL,+      0xda65bfbfUL, 0x31d7e6e6UL, 0xc6844242UL, 0xb8d06868UL,+      0xc3824141UL, 0xb0299999UL, 0x775a2d2dUL, 0x111e0f0fUL,+      0xcb7bb0b0UL, 0xfca85454UL, 0xd66dbbbbUL, 0x3a2c1616UL+  };+  static const SWord32 table3[] = {+      0x63a5c663UL, 0x7c84f87cUL, 0x7799ee77UL, 0x7b8df67bUL,+      0xf20dfff2UL, 0x6bbdd66bUL, 0x6fb1de6fUL, 0xc55491c5UL,+      0x30506030UL, 0x01030201UL, 0x67a9ce67UL, 0x2b7d562bUL,+      0xfe19e7feUL, 0xd762b5d7UL, 0xabe64dabUL, 0x769aec76UL,+      0xca458fcaUL, 0x829d1f82UL, 0xc94089c9UL, 0x7d87fa7dUL,+      0xfa15effaUL, 0x59ebb259UL, 0x47c98e47UL, 0xf00bfbf0UL,+      0xadec41adUL, 0xd467b3d4UL, 0xa2fd5fa2UL, 0xafea45afUL,+      0x9cbf239cUL, 0xa4f753a4UL, 0x7296e472UL, 0xc05b9bc0UL,+      0xb7c275b7UL, 0xfd1ce1fdUL, 0x93ae3d93UL, 0x266a4c26UL,+      0x365a6c36UL, 0x3f417e3fUL, 0xf702f5f7UL, 0xcc4f83ccUL,+      0x345c6834UL, 0xa5f451a5UL, 0xe534d1e5UL, 0xf108f9f1UL,+      0x7193e271UL, 0xd873abd8UL, 0x31536231UL, 0x153f2a15UL,+      0x040c0804UL, 0xc75295c7UL, 0x23654623UL, 0xc35e9dc3UL,+      0x18283018UL, 0x96a13796UL, 0x050f0a05UL, 0x9ab52f9aUL,+      0x07090e07UL, 0x12362412UL, 0x809b1b80UL, 0xe23ddfe2UL,+      0xeb26cdebUL, 0x27694e27UL, 0xb2cd7fb2UL, 0x759fea75UL,+      0x091b1209UL, 0x839e1d83UL, 0x2c74582cUL, 0x1a2e341aUL,+      0x1b2d361bUL, 0x6eb2dc6eUL, 0x5aeeb45aUL, 0xa0fb5ba0UL,+      0x52f6a452UL, 0x3b4d763bUL, 0xd661b7d6UL, 0xb3ce7db3UL,+      0x297b5229UL, 0xe33edde3UL, 0x2f715e2fUL, 0x84971384UL,+      0x53f5a653UL, 0xd168b9d1UL, 0x00000000UL, 0xed2cc1edUL,+      0x20604020UL, 0xfc1fe3fcUL, 0xb1c879b1UL, 0x5bedb65bUL,+      0x6abed46aUL, 0xcb468dcbUL, 0xbed967beUL, 0x394b7239UL,+      0x4ade944aUL, 0x4cd4984cUL, 0x58e8b058UL, 0xcf4a85cfUL,+      0xd06bbbd0UL, 0xef2ac5efUL, 0xaae54faaUL, 0xfb16edfbUL,+      0x43c58643UL, 0x4dd79a4dUL, 0x33556633UL, 0x85941185UL,+      0x45cf8a45UL, 0xf910e9f9UL, 0x02060402UL, 0x7f81fe7fUL,+      0x50f0a050UL, 0x3c44783cUL, 0x9fba259fUL, 0xa8e34ba8UL,+      0x51f3a251UL, 0xa3fe5da3UL, 0x40c08040UL, 0x8f8a058fUL,+      0x92ad3f92UL, 0x9dbc219dUL, 0x38487038UL, 0xf504f1f5UL,+      0xbcdf63bcUL, 0xb6c177b6UL, 0xda75afdaUL, 0x21634221UL,+      0x10302010UL, 0xff1ae5ffUL, 0xf30efdf3UL, 0xd26dbfd2UL,+      0xcd4c81cdUL, 0x0c14180cUL, 0x13352613UL, 0xec2fc3ecUL,+      0x5fe1be5fUL, 0x97a23597UL, 0x44cc8844UL, 0x17392e17UL,+      0xc45793c4UL, 0xa7f255a7UL, 0x7e82fc7eUL, 0x3d477a3dUL,+      0x64acc864UL, 0x5de7ba5dUL, 0x192b3219UL, 0x7395e673UL,+      0x60a0c060UL, 0x81981981UL, 0x4fd19e4fUL, 0xdc7fa3dcUL,+      0x22664422UL, 0x2a7e542aUL, 0x90ab3b90UL, 0x88830b88UL,+      0x46ca8c46UL, 0xee29c7eeUL, 0xb8d36bb8UL, 0x143c2814UL,+      0xde79a7deUL, 0x5ee2bc5eUL, 0x0b1d160bUL, 0xdb76addbUL,+      0xe03bdbe0UL, 0x32566432UL, 0x3a4e743aUL, 0x0a1e140aUL,+      0x49db9249UL, 0x060a0c06UL, 0x246c4824UL, 0x5ce4b85cUL,+      0xc25d9fc2UL, 0xd36ebdd3UL, 0xacef43acUL, 0x62a6c462UL,+      0x91a83991UL, 0x95a43195UL, 0xe437d3e4UL, 0x798bf279UL,+      0xe732d5e7UL, 0xc8438bc8UL, 0x37596e37UL, 0x6db7da6dUL,+      0x8d8c018dUL, 0xd564b1d5UL, 0x4ed29c4eUL, 0xa9e049a9UL,+      0x6cb4d86cUL, 0x56faac56UL, 0xf407f3f4UL, 0xea25cfeaUL,+      0x65afca65UL, 0x7a8ef47aUL, 0xaee947aeUL, 0x08181008UL,+      0xbad56fbaUL, 0x7888f078UL, 0x256f4a25UL, 0x2e725c2eUL,+      0x1c24381cUL, 0xa6f157a6UL, 0xb4c773b4UL, 0xc65197c6UL,+      0xe823cbe8UL, 0xdd7ca1ddUL, 0x749ce874UL, 0x1f213e1fUL,+      0x4bdd964bUL, 0xbddc61bdUL, 0x8b860d8bUL, 0x8a850f8aUL,+      0x7090e070UL, 0x3e427c3eUL, 0xb5c471b5UL, 0x66aacc66UL,+      0x48d89048UL, 0x03050603UL, 0xf601f7f6UL, 0x0e121c0eUL,+      0x61a3c261UL, 0x355f6a35UL, 0x57f9ae57UL, 0xb9d069b9UL,+      0x86911786UL, 0xc15899c1UL, 0x1d273a1dUL, 0x9eb9279eUL,+      0xe138d9e1UL, 0xf813ebf8UL, 0x98b32b98UL, 0x11332211UL,+      0x69bbd269UL, 0xd970a9d9UL, 0x8e89078eUL, 0x94a73394UL,+      0x9bb62d9bUL, 0x1e223c1eUL, 0x87921587UL, 0xe920c9e9UL,+      0xce4987ceUL, 0x55ffaa55UL, 0x28785028UL, 0xdf7aa5dfUL,+      0x8c8f038cUL, 0xa1f859a1UL, 0x89800989UL, 0x0d171a0dUL,+      0xbfda65bfUL, 0xe631d7e6UL, 0x42c68442UL, 0x68b8d068UL,+      0x41c38241UL, 0x99b02999UL, 0x2d775a2dUL, 0x0f111e0fUL,+      0xb0cb7bb0UL, 0x54fca854UL, 0xbbd66dbbUL, 0x163a2c16UL+  };+  static const SWord32 table4[] = {+      0x6363a5c6UL, 0x7c7c84f8UL, 0x777799eeUL, 0x7b7b8df6UL,+      0xf2f20dffUL, 0x6b6bbdd6UL, 0x6f6fb1deUL, 0xc5c55491UL,+      0x30305060UL, 0x01010302UL, 0x6767a9ceUL, 0x2b2b7d56UL,+      0xfefe19e7UL, 0xd7d762b5UL, 0xababe64dUL, 0x76769aecUL,+      0xcaca458fUL, 0x82829d1fUL, 0xc9c94089UL, 0x7d7d87faUL,+      0xfafa15efUL, 0x5959ebb2UL, 0x4747c98eUL, 0xf0f00bfbUL,+      0xadadec41UL, 0xd4d467b3UL, 0xa2a2fd5fUL, 0xafafea45UL,+      0x9c9cbf23UL, 0xa4a4f753UL, 0x727296e4UL, 0xc0c05b9bUL,+      0xb7b7c275UL, 0xfdfd1ce1UL, 0x9393ae3dUL, 0x26266a4cUL,+      0x36365a6cUL, 0x3f3f417eUL, 0xf7f702f5UL, 0xcccc4f83UL,+      0x34345c68UL, 0xa5a5f451UL, 0xe5e534d1UL, 0xf1f108f9UL,+      0x717193e2UL, 0xd8d873abUL, 0x31315362UL, 0x15153f2aUL,+      0x04040c08UL, 0xc7c75295UL, 0x23236546UL, 0xc3c35e9dUL,+      0x18182830UL, 0x9696a137UL, 0x05050f0aUL, 0x9a9ab52fUL,+      0x0707090eUL, 0x12123624UL, 0x80809b1bUL, 0xe2e23ddfUL,+      0xebeb26cdUL, 0x2727694eUL, 0xb2b2cd7fUL, 0x75759feaUL,+      0x09091b12UL, 0x83839e1dUL, 0x2c2c7458UL, 0x1a1a2e34UL,+      0x1b1b2d36UL, 0x6e6eb2dcUL, 0x5a5aeeb4UL, 0xa0a0fb5bUL,+      0x5252f6a4UL, 0x3b3b4d76UL, 0xd6d661b7UL, 0xb3b3ce7dUL,+      0x29297b52UL, 0xe3e33eddUL, 0x2f2f715eUL, 0x84849713UL,+      0x5353f5a6UL, 0xd1d168b9UL, 0x00000000UL, 0xeded2cc1UL,+      0x20206040UL, 0xfcfc1fe3UL, 0xb1b1c879UL, 0x5b5bedb6UL,+      0x6a6abed4UL, 0xcbcb468dUL, 0xbebed967UL, 0x39394b72UL,+      0x4a4ade94UL, 0x4c4cd498UL, 0x5858e8b0UL, 0xcfcf4a85UL,+      0xd0d06bbbUL, 0xefef2ac5UL, 0xaaaae54fUL, 0xfbfb16edUL,+      0x4343c586UL, 0x4d4dd79aUL, 0x33335566UL, 0x85859411UL,+      0x4545cf8aUL, 0xf9f910e9UL, 0x02020604UL, 0x7f7f81feUL,+      0x5050f0a0UL, 0x3c3c4478UL, 0x9f9fba25UL, 0xa8a8e34bUL,+      0x5151f3a2UL, 0xa3a3fe5dUL, 0x4040c080UL, 0x8f8f8a05UL,+      0x9292ad3fUL, 0x9d9dbc21UL, 0x38384870UL, 0xf5f504f1UL,+      0xbcbcdf63UL, 0xb6b6c177UL, 0xdada75afUL, 0x21216342UL,+      0x10103020UL, 0xffff1ae5UL, 0xf3f30efdUL, 0xd2d26dbfUL,+      0xcdcd4c81UL, 0x0c0c1418UL, 0x13133526UL, 0xecec2fc3UL,+      0x5f5fe1beUL, 0x9797a235UL, 0x4444cc88UL, 0x1717392eUL,+      0xc4c45793UL, 0xa7a7f255UL, 0x7e7e82fcUL, 0x3d3d477aUL,+      0x6464acc8UL, 0x5d5de7baUL, 0x19192b32UL, 0x737395e6UL,+      0x6060a0c0UL, 0x81819819UL, 0x4f4fd19eUL, 0xdcdc7fa3UL,+      0x22226644UL, 0x2a2a7e54UL, 0x9090ab3bUL, 0x8888830bUL,+      0x4646ca8cUL, 0xeeee29c7UL, 0xb8b8d36bUL, 0x14143c28UL,+      0xdede79a7UL, 0x5e5ee2bcUL, 0x0b0b1d16UL, 0xdbdb76adUL,+      0xe0e03bdbUL, 0x32325664UL, 0x3a3a4e74UL, 0x0a0a1e14UL,+      0x4949db92UL, 0x06060a0cUL, 0x24246c48UL, 0x5c5ce4b8UL,+      0xc2c25d9fUL, 0xd3d36ebdUL, 0xacacef43UL, 0x6262a6c4UL,+      0x9191a839UL, 0x9595a431UL, 0xe4e437d3UL, 0x79798bf2UL,+      0xe7e732d5UL, 0xc8c8438bUL, 0x3737596eUL, 0x6d6db7daUL,+      0x8d8d8c01UL, 0xd5d564b1UL, 0x4e4ed29cUL, 0xa9a9e049UL,+      0x6c6cb4d8UL, 0x5656faacUL, 0xf4f407f3UL, 0xeaea25cfUL,+      0x6565afcaUL, 0x7a7a8ef4UL, 0xaeaee947UL, 0x08081810UL,+      0xbabad56fUL, 0x787888f0UL, 0x25256f4aUL, 0x2e2e725cUL,+      0x1c1c2438UL, 0xa6a6f157UL, 0xb4b4c773UL, 0xc6c65197UL,+      0xe8e823cbUL, 0xdddd7ca1UL, 0x74749ce8UL, 0x1f1f213eUL,+      0x4b4bdd96UL, 0xbdbddc61UL, 0x8b8b860dUL, 0x8a8a850fUL,+      0x707090e0UL, 0x3e3e427cUL, 0xb5b5c471UL, 0x6666aaccUL,+      0x4848d890UL, 0x03030506UL, 0xf6f601f7UL, 0x0e0e121cUL,+      0x6161a3c2UL, 0x35355f6aUL, 0x5757f9aeUL, 0xb9b9d069UL,+      0x86869117UL, 0xc1c15899UL, 0x1d1d273aUL, 0x9e9eb927UL,+      0xe1e138d9UL, 0xf8f813ebUL, 0x9898b32bUL, 0x11113322UL,+      0x6969bbd2UL, 0xd9d970a9UL, 0x8e8e8907UL, 0x9494a733UL,+      0x9b9bb62dUL, 0x1e1e223cUL, 0x87879215UL, 0xe9e920c9UL,+      0xcece4987UL, 0x5555ffaaUL, 0x28287850UL, 0xdfdf7aa5UL,+      0x8c8c8f03UL, 0xa1a1f859UL, 0x89898009UL, 0x0d0d171aUL,+      0xbfbfda65UL, 0xe6e631d7UL, 0x4242c684UL, 0x6868b8d0UL,+      0x4141c382UL, 0x9999b029UL, 0x2d2d775aUL, 0x0f0f111eUL,+      0xb0b0cb7bUL, 0x5454fca8UL, 0xbbbbd66dUL, 0x16163a2cUL+  };+  const SWord32 s520 = s0 ^ s4;+  const SWord8  s521 = (SWord8) (s520 >> 24);+  const SWord32 s522 = table1[s521];+  const SWord32 s778 = s1 ^ s5;+  const SWord8  s779 = (SWord8) (s778 >> 16);+  const SWord32 s780 = table2[s779];+  const SWord32 s781 = s522 ^ s780;+  const SWord32 s1037 = s2 ^ s6;+  const SWord8  s1038 = (SWord8) (s1037 >> 8);+  const SWord32 s1039 = table3[s1038];+  const SWord32 s1040 = s781 ^ s1039;+  const SWord32 s1296 = s3 ^ s7;+  const SWord8  s1297 = (SWord8) s1296;+  const SWord32 s1298 = table4[s1297];+  const SWord32 s1299 = s1040 ^ s1298;+  const SWord32 s1300 = (s7 << 8) | (s7 >> 24);+  const SWord8  s1301 = (SWord8) (s1300 >> 24);+  const SWord8  s1302 = table0[s1301];+  const SWord8  s1303 = 1 ^ s1302;+  const SWord8  s1304 = (SWord8) (s1300 >> 16);+  const SWord8  s1305 = table0[s1304];+  const SWord16 s1306 = (((SWord16) s1303) << 8) | ((SWord16) s1305);+  const SWord8  s1307 = (SWord8) (s1300 >> 8);+  const SWord8  s1308 = table0[s1307];+  const SWord8  s1309 = (SWord8) s1300;+  const SWord8  s1310 = table0[s1309];+  const SWord16 s1311 = (((SWord16) s1308) << 8) | ((SWord16) s1310);+  const SWord32 s1312 = (((SWord32) s1306) << 16) | ((SWord32) s1311);+  const SWord32 s1313 = s4 ^ s1312;+  const SWord32 s1314 = s1299 ^ s1313;+  const SWord8  s1315 = (SWord8) (s1314 >> 24);+  const SWord32 s1316 = table1[s1315];+  const SWord8  s1317 = (SWord8) (s778 >> 24);+  const SWord32 s1318 = table1[s1317];+  const SWord8  s1319 = (SWord8) (s1037 >> 16);+  const SWord32 s1320 = table2[s1319];+  const SWord32 s1321 = s1318 ^ s1320;+  const SWord8  s1322 = (SWord8) (s1296 >> 8);+  const SWord32 s1323 = table3[s1322];+  const SWord32 s1324 = s1321 ^ s1323;+  const SWord8  s1325 = (SWord8) s520;+  const SWord32 s1326 = table4[s1325];+  const SWord32 s1327 = s1324 ^ s1326;+  const SWord32 s1328 = s5 ^ s1313;+  const SWord32 s1329 = s1327 ^ s1328;+  const SWord8  s1330 = (SWord8) (s1329 >> 16);+  const SWord32 s1331 = table2[s1330];+  const SWord32 s1332 = s1316 ^ s1331;+  const SWord8  s1333 = (SWord8) (s1037 >> 24);+  const SWord32 s1334 = table1[s1333];+  const SWord8  s1335 = (SWord8) (s1296 >> 16);+  const SWord32 s1336 = table2[s1335];+  const SWord32 s1337 = s1334 ^ s1336;+  const SWord8  s1338 = (SWord8) (s520 >> 8);+  const SWord32 s1339 = table3[s1338];+  const SWord32 s1340 = s1337 ^ s1339;+  const SWord8  s1341 = (SWord8) s778;+  const SWord32 s1342 = table4[s1341];+  const SWord32 s1343 = s1340 ^ s1342;+  const SWord32 s1344 = s6 ^ s1328;+  const SWord32 s1345 = s1343 ^ s1344;+  const SWord8  s1346 = (SWord8) (s1345 >> 8);+  const SWord32 s1347 = table3[s1346];+  const SWord32 s1348 = s1332 ^ s1347;+  const SWord8  s1349 = (SWord8) (s1296 >> 24);+  const SWord32 s1350 = table1[s1349];+  const SWord8  s1351 = (SWord8) (s520 >> 16);+  const SWord32 s1352 = table2[s1351];+  const SWord32 s1353 = s1350 ^ s1352;+  const SWord8  s1354 = (SWord8) (s778 >> 8);+  const SWord32 s1355 = table3[s1354];+  const SWord32 s1356 = s1353 ^ s1355;+  const SWord8  s1357 = (SWord8) s1037;+  const SWord32 s1358 = table4[s1357];+  const SWord32 s1359 = s1356 ^ s1358;+  const SWord32 s1360 = s7 ^ s1344;+  const SWord32 s1361 = s1359 ^ s1360;+  const SWord8  s1362 = (SWord8) s1361;+  const SWord32 s1363 = table4[s1362];+  const SWord32 s1364 = s1348 ^ s1363;+  const SWord32 s1365 = (s1360 << 8) | (s1360 >> 24);+  const SWord8  s1366 = (SWord8) (s1365 >> 24);+  const SWord8  s1367 = table0[s1366];+  const SWord8  s1368 = 2 ^ s1367;+  const SWord8  s1369 = (SWord8) (s1365 >> 16);+  const SWord8  s1370 = table0[s1369];+  const SWord16 s1371 = (((SWord16) s1368) << 8) | ((SWord16) s1370);+  const SWord8  s1372 = (SWord8) (s1365 >> 8);+  const SWord8  s1373 = table0[s1372];+  const SWord8  s1374 = (SWord8) s1365;+  const SWord8  s1375 = table0[s1374];+  const SWord16 s1376 = (((SWord16) s1373) << 8) | ((SWord16) s1375);+  const SWord32 s1377 = (((SWord32) s1371) << 16) | ((SWord32) s1376);+  const SWord32 s1378 = s1313 ^ s1377;+  const SWord32 s1379 = s1364 ^ s1378;+  const SWord8  s1380 = (SWord8) (s1379 >> 24);+  const SWord32 s1381 = table1[s1380];+  const SWord8  s1382 = (SWord8) (s1329 >> 24);+  const SWord32 s1383 = table1[s1382];+  const SWord8  s1384 = (SWord8) (s1345 >> 16);+  const SWord32 s1385 = table2[s1384];+  const SWord32 s1386 = s1383 ^ s1385;+  const SWord8  s1387 = (SWord8) (s1361 >> 8);+  const SWord32 s1388 = table3[s1387];+  const SWord32 s1389 = s1386 ^ s1388;+  const SWord8  s1390 = (SWord8) s1314;+  const SWord32 s1391 = table4[s1390];+  const SWord32 s1392 = s1389 ^ s1391;+  const SWord32 s1393 = s1328 ^ s1378;+  const SWord32 s1394 = s1392 ^ s1393;+  const SWord8  s1395 = (SWord8) (s1394 >> 16);+  const SWord32 s1396 = table2[s1395];+  const SWord32 s1397 = s1381 ^ s1396;+  const SWord8  s1398 = (SWord8) (s1345 >> 24);+  const SWord32 s1399 = table1[s1398];+  const SWord8  s1400 = (SWord8) (s1361 >> 16);+  const SWord32 s1401 = table2[s1400];+  const SWord32 s1402 = s1399 ^ s1401;+  const SWord8  s1403 = (SWord8) (s1314 >> 8);+  const SWord32 s1404 = table3[s1403];+  const SWord32 s1405 = s1402 ^ s1404;+  const SWord8  s1406 = (SWord8) s1329;+  const SWord32 s1407 = table4[s1406];+  const SWord32 s1408 = s1405 ^ s1407;+  const SWord32 s1409 = s1344 ^ s1393;+  const SWord32 s1410 = s1408 ^ s1409;+  const SWord8  s1411 = (SWord8) (s1410 >> 8);+  const SWord32 s1412 = table3[s1411];+  const SWord32 s1413 = s1397 ^ s1412;+  const SWord8  s1414 = (SWord8) (s1361 >> 24);+  const SWord32 s1415 = table1[s1414];+  const SWord8  s1416 = (SWord8) (s1314 >> 16);+  const SWord32 s1417 = table2[s1416];+  const SWord32 s1418 = s1415 ^ s1417;+  const SWord8  s1419 = (SWord8) (s1329 >> 8);+  const SWord32 s1420 = table3[s1419];+  const SWord32 s1421 = s1418 ^ s1420;+  const SWord8  s1422 = (SWord8) s1345;+  const SWord32 s1423 = table4[s1422];+  const SWord32 s1424 = s1421 ^ s1423;+  const SWord32 s1425 = s1360 ^ s1409;+  const SWord32 s1426 = s1424 ^ s1425;+  const SWord8  s1427 = (SWord8) s1426;+  const SWord32 s1428 = table4[s1427];+  const SWord32 s1429 = s1413 ^ s1428;+  const SWord32 s1430 = (s1425 << 8) | (s1425 >> 24);+  const SWord8  s1431 = (SWord8) (s1430 >> 24);+  const SWord8  s1432 = table0[s1431];+  const SWord8  s1433 = 4 ^ s1432;+  const SWord8  s1434 = (SWord8) (s1430 >> 16);+  const SWord8  s1435 = table0[s1434];+  const SWord16 s1436 = (((SWord16) s1433) << 8) | ((SWord16) s1435);+  const SWord8  s1437 = (SWord8) (s1430 >> 8);+  const SWord8  s1438 = table0[s1437];+  const SWord8  s1439 = (SWord8) s1430;+  const SWord8  s1440 = table0[s1439];+  const SWord16 s1441 = (((SWord16) s1438) << 8) | ((SWord16) s1440);+  const SWord32 s1442 = (((SWord32) s1436) << 16) | ((SWord32) s1441);+  const SWord32 s1443 = s1378 ^ s1442;+  const SWord32 s1444 = s1429 ^ s1443;+  const SWord8  s1445 = (SWord8) (s1444 >> 24);+  const SWord32 s1446 = table1[s1445];+  const SWord8  s1447 = (SWord8) (s1394 >> 24);+  const SWord32 s1448 = table1[s1447];+  const SWord8  s1449 = (SWord8) (s1410 >> 16);+  const SWord32 s1450 = table2[s1449];+  const SWord32 s1451 = s1448 ^ s1450;+  const SWord8  s1452 = (SWord8) (s1426 >> 8);+  const SWord32 s1453 = table3[s1452];+  const SWord32 s1454 = s1451 ^ s1453;+  const SWord8  s1455 = (SWord8) s1379;+  const SWord32 s1456 = table4[s1455];+  const SWord32 s1457 = s1454 ^ s1456;+  const SWord32 s1458 = s1393 ^ s1443;+  const SWord32 s1459 = s1457 ^ s1458;+  const SWord8  s1460 = (SWord8) (s1459 >> 16);+  const SWord32 s1461 = table2[s1460];+  const SWord32 s1462 = s1446 ^ s1461;+  const SWord8  s1463 = (SWord8) (s1410 >> 24);+  const SWord32 s1464 = table1[s1463];+  const SWord8  s1465 = (SWord8) (s1426 >> 16);+  const SWord32 s1466 = table2[s1465];+  const SWord32 s1467 = s1464 ^ s1466;+  const SWord8  s1468 = (SWord8) (s1379 >> 8);+  const SWord32 s1469 = table3[s1468];+  const SWord32 s1470 = s1467 ^ s1469;+  const SWord8  s1471 = (SWord8) s1394;+  const SWord32 s1472 = table4[s1471];+  const SWord32 s1473 = s1470 ^ s1472;+  const SWord32 s1474 = s1409 ^ s1458;+  const SWord32 s1475 = s1473 ^ s1474;+  const SWord8  s1476 = (SWord8) (s1475 >> 8);+  const SWord32 s1477 = table3[s1476];+  const SWord32 s1478 = s1462 ^ s1477;+  const SWord8  s1479 = (SWord8) (s1426 >> 24);+  const SWord32 s1480 = table1[s1479];+  const SWord8  s1481 = (SWord8) (s1379 >> 16);+  const SWord32 s1482 = table2[s1481];+  const SWord32 s1483 = s1480 ^ s1482;+  const SWord8  s1484 = (SWord8) (s1394 >> 8);+  const SWord32 s1485 = table3[s1484];+  const SWord32 s1486 = s1483 ^ s1485;+  const SWord8  s1487 = (SWord8) s1410;+  const SWord32 s1488 = table4[s1487];+  const SWord32 s1489 = s1486 ^ s1488;+  const SWord32 s1490 = s1425 ^ s1474;+  const SWord32 s1491 = s1489 ^ s1490;+  const SWord8  s1492 = (SWord8) s1491;+  const SWord32 s1493 = table4[s1492];+  const SWord32 s1494 = s1478 ^ s1493;+  const SWord32 s1495 = (s1490 << 8) | (s1490 >> 24);+  const SWord8  s1496 = (SWord8) (s1495 >> 24);+  const SWord8  s1497 = table0[s1496];+  const SWord8  s1498 = 8 ^ s1497;+  const SWord8  s1499 = (SWord8) (s1495 >> 16);+  const SWord8  s1500 = table0[s1499];+  const SWord16 s1501 = (((SWord16) s1498) << 8) | ((SWord16) s1500);+  const SWord8  s1502 = (SWord8) (s1495 >> 8);+  const SWord8  s1503 = table0[s1502];+  const SWord8  s1504 = (SWord8) s1495;+  const SWord8  s1505 = table0[s1504];+  const SWord16 s1506 = (((SWord16) s1503) << 8) | ((SWord16) s1505);+  const SWord32 s1507 = (((SWord32) s1501) << 16) | ((SWord32) s1506);+  const SWord32 s1508 = s1443 ^ s1507;+  const SWord32 s1509 = s1494 ^ s1508;+  const SWord8  s1510 = (SWord8) (s1509 >> 24);+  const SWord32 s1511 = table1[s1510];+  const SWord8  s1512 = (SWord8) (s1459 >> 24);+  const SWord32 s1513 = table1[s1512];+  const SWord8  s1514 = (SWord8) (s1475 >> 16);+  const SWord32 s1515 = table2[s1514];+  const SWord32 s1516 = s1513 ^ s1515;+  const SWord8  s1517 = (SWord8) (s1491 >> 8);+  const SWord32 s1518 = table3[s1517];+  const SWord32 s1519 = s1516 ^ s1518;+  const SWord8  s1520 = (SWord8) s1444;+  const SWord32 s1521 = table4[s1520];+  const SWord32 s1522 = s1519 ^ s1521;+  const SWord32 s1523 = s1458 ^ s1508;+  const SWord32 s1524 = s1522 ^ s1523;+  const SWord8  s1525 = (SWord8) (s1524 >> 16);+  const SWord32 s1526 = table2[s1525];+  const SWord32 s1527 = s1511 ^ s1526;+  const SWord8  s1528 = (SWord8) (s1475 >> 24);+  const SWord32 s1529 = table1[s1528];+  const SWord8  s1530 = (SWord8) (s1491 >> 16);+  const SWord32 s1531 = table2[s1530];+  const SWord32 s1532 = s1529 ^ s1531;+  const SWord8  s1533 = (SWord8) (s1444 >> 8);+  const SWord32 s1534 = table3[s1533];+  const SWord32 s1535 = s1532 ^ s1534;+  const SWord8  s1536 = (SWord8) s1459;+  const SWord32 s1537 = table4[s1536];+  const SWord32 s1538 = s1535 ^ s1537;+  const SWord32 s1539 = s1474 ^ s1523;+  const SWord32 s1540 = s1538 ^ s1539;+  const SWord8  s1541 = (SWord8) (s1540 >> 8);+  const SWord32 s1542 = table3[s1541];+  const SWord32 s1543 = s1527 ^ s1542;+  const SWord8  s1544 = (SWord8) (s1491 >> 24);+  const SWord32 s1545 = table1[s1544];+  const SWord8  s1546 = (SWord8) (s1444 >> 16);+  const SWord32 s1547 = table2[s1546];+  const SWord32 s1548 = s1545 ^ s1547;+  const SWord8  s1549 = (SWord8) (s1459 >> 8);+  const SWord32 s1550 = table3[s1549];+  const SWord32 s1551 = s1548 ^ s1550;+  const SWord8  s1552 = (SWord8) s1475;+  const SWord32 s1553 = table4[s1552];+  const SWord32 s1554 = s1551 ^ s1553;+  const SWord32 s1555 = s1490 ^ s1539;+  const SWord32 s1556 = s1554 ^ s1555;+  const SWord8  s1557 = (SWord8) s1556;+  const SWord32 s1558 = table4[s1557];+  const SWord32 s1559 = s1543 ^ s1558;+  const SWord32 s1560 = (s1555 << 8) | (s1555 >> 24);+  const SWord8  s1561 = (SWord8) (s1560 >> 24);+  const SWord8  s1562 = table0[s1561];+  const SWord8  s1563 = 16 ^ s1562;+  const SWord8  s1564 = (SWord8) (s1560 >> 16);+  const SWord8  s1565 = table0[s1564];+  const SWord16 s1566 = (((SWord16) s1563) << 8) | ((SWord16) s1565);+  const SWord8  s1567 = (SWord8) (s1560 >> 8);+  const SWord8  s1568 = table0[s1567];+  const SWord8  s1569 = (SWord8) s1560;+  const SWord8  s1570 = table0[s1569];+  const SWord16 s1571 = (((SWord16) s1568) << 8) | ((SWord16) s1570);+  const SWord32 s1572 = (((SWord32) s1566) << 16) | ((SWord32) s1571);+  const SWord32 s1573 = s1508 ^ s1572;+  const SWord32 s1574 = s1559 ^ s1573;+  const SWord8  s1575 = (SWord8) (s1574 >> 24);+  const SWord32 s1576 = table1[s1575];+  const SWord8  s1577 = (SWord8) (s1524 >> 24);+  const SWord32 s1578 = table1[s1577];+  const SWord8  s1579 = (SWord8) (s1540 >> 16);+  const SWord32 s1580 = table2[s1579];+  const SWord32 s1581 = s1578 ^ s1580;+  const SWord8  s1582 = (SWord8) (s1556 >> 8);+  const SWord32 s1583 = table3[s1582];+  const SWord32 s1584 = s1581 ^ s1583;+  const SWord8  s1585 = (SWord8) s1509;+  const SWord32 s1586 = table4[s1585];+  const SWord32 s1587 = s1584 ^ s1586;+  const SWord32 s1588 = s1523 ^ s1573;+  const SWord32 s1589 = s1587 ^ s1588;+  const SWord8  s1590 = (SWord8) (s1589 >> 16);+  const SWord32 s1591 = table2[s1590];+  const SWord32 s1592 = s1576 ^ s1591;+  const SWord8  s1593 = (SWord8) (s1540 >> 24);+  const SWord32 s1594 = table1[s1593];+  const SWord8  s1595 = (SWord8) (s1556 >> 16);+  const SWord32 s1596 = table2[s1595];+  const SWord32 s1597 = s1594 ^ s1596;+  const SWord8  s1598 = (SWord8) (s1509 >> 8);+  const SWord32 s1599 = table3[s1598];+  const SWord32 s1600 = s1597 ^ s1599;+  const SWord8  s1601 = (SWord8) s1524;+  const SWord32 s1602 = table4[s1601];+  const SWord32 s1603 = s1600 ^ s1602;+  const SWord32 s1604 = s1539 ^ s1588;+  const SWord32 s1605 = s1603 ^ s1604;+  const SWord8  s1606 = (SWord8) (s1605 >> 8);+  const SWord32 s1607 = table3[s1606];+  const SWord32 s1608 = s1592 ^ s1607;+  const SWord8  s1609 = (SWord8) (s1556 >> 24);+  const SWord32 s1610 = table1[s1609];+  const SWord8  s1611 = (SWord8) (s1509 >> 16);+  const SWord32 s1612 = table2[s1611];+  const SWord32 s1613 = s1610 ^ s1612;+  const SWord8  s1614 = (SWord8) (s1524 >> 8);+  const SWord32 s1615 = table3[s1614];+  const SWord32 s1616 = s1613 ^ s1615;+  const SWord8  s1617 = (SWord8) s1540;+  const SWord32 s1618 = table4[s1617];+  const SWord32 s1619 = s1616 ^ s1618;+  const SWord32 s1620 = s1555 ^ s1604;+  const SWord32 s1621 = s1619 ^ s1620;+  const SWord8  s1622 = (SWord8) s1621;+  const SWord32 s1623 = table4[s1622];+  const SWord32 s1624 = s1608 ^ s1623;+  const SWord32 s1625 = (s1620 << 8) | (s1620 >> 24);+  const SWord8  s1626 = (SWord8) (s1625 >> 24);+  const SWord8  s1627 = table0[s1626];+  const SWord8  s1628 = 32 ^ s1627;+  const SWord8  s1629 = (SWord8) (s1625 >> 16);+  const SWord8  s1630 = table0[s1629];+  const SWord16 s1631 = (((SWord16) s1628) << 8) | ((SWord16) s1630);+  const SWord8  s1632 = (SWord8) (s1625 >> 8);+  const SWord8  s1633 = table0[s1632];+  const SWord8  s1634 = (SWord8) s1625;+  const SWord8  s1635 = table0[s1634];+  const SWord16 s1636 = (((SWord16) s1633) << 8) | ((SWord16) s1635);+  const SWord32 s1637 = (((SWord32) s1631) << 16) | ((SWord32) s1636);+  const SWord32 s1638 = s1573 ^ s1637;+  const SWord32 s1639 = s1624 ^ s1638;+  const SWord8  s1640 = (SWord8) (s1639 >> 24);+  const SWord32 s1641 = table1[s1640];+  const SWord8  s1642 = (SWord8) (s1589 >> 24);+  const SWord32 s1643 = table1[s1642];+  const SWord8  s1644 = (SWord8) (s1605 >> 16);+  const SWord32 s1645 = table2[s1644];+  const SWord32 s1646 = s1643 ^ s1645;+  const SWord8  s1647 = (SWord8) (s1621 >> 8);+  const SWord32 s1648 = table3[s1647];+  const SWord32 s1649 = s1646 ^ s1648;+  const SWord8  s1650 = (SWord8) s1574;+  const SWord32 s1651 = table4[s1650];+  const SWord32 s1652 = s1649 ^ s1651;+  const SWord32 s1653 = s1588 ^ s1638;+  const SWord32 s1654 = s1652 ^ s1653;+  const SWord8  s1655 = (SWord8) (s1654 >> 16);+  const SWord32 s1656 = table2[s1655];+  const SWord32 s1657 = s1641 ^ s1656;+  const SWord8  s1658 = (SWord8) (s1605 >> 24);+  const SWord32 s1659 = table1[s1658];+  const SWord8  s1660 = (SWord8) (s1621 >> 16);+  const SWord32 s1661 = table2[s1660];+  const SWord32 s1662 = s1659 ^ s1661;+  const SWord8  s1663 = (SWord8) (s1574 >> 8);+  const SWord32 s1664 = table3[s1663];+  const SWord32 s1665 = s1662 ^ s1664;+  const SWord8  s1666 = (SWord8) s1589;+  const SWord32 s1667 = table4[s1666];+  const SWord32 s1668 = s1665 ^ s1667;+  const SWord32 s1669 = s1604 ^ s1653;+  const SWord32 s1670 = s1668 ^ s1669;+  const SWord8  s1671 = (SWord8) (s1670 >> 8);+  const SWord32 s1672 = table3[s1671];+  const SWord32 s1673 = s1657 ^ s1672;+  const SWord8  s1674 = (SWord8) (s1621 >> 24);+  const SWord32 s1675 = table1[s1674];+  const SWord8  s1676 = (SWord8) (s1574 >> 16);+  const SWord32 s1677 = table2[s1676];+  const SWord32 s1678 = s1675 ^ s1677;+  const SWord8  s1679 = (SWord8) (s1589 >> 8);+  const SWord32 s1680 = table3[s1679];+  const SWord32 s1681 = s1678 ^ s1680;+  const SWord8  s1682 = (SWord8) s1605;+  const SWord32 s1683 = table4[s1682];+  const SWord32 s1684 = s1681 ^ s1683;+  const SWord32 s1685 = s1620 ^ s1669;+  const SWord32 s1686 = s1684 ^ s1685;+  const SWord8  s1687 = (SWord8) s1686;+  const SWord32 s1688 = table4[s1687];+  const SWord32 s1689 = s1673 ^ s1688;+  const SWord32 s1690 = (s1685 << 8) | (s1685 >> 24);+  const SWord8  s1691 = (SWord8) (s1690 >> 24);+  const SWord8  s1692 = table0[s1691];+  const SWord8  s1693 = 64 ^ s1692;+  const SWord8  s1694 = (SWord8) (s1690 >> 16);+  const SWord8  s1695 = table0[s1694];+  const SWord16 s1696 = (((SWord16) s1693) << 8) | ((SWord16) s1695);+  const SWord8  s1697 = (SWord8) (s1690 >> 8);+  const SWord8  s1698 = table0[s1697];+  const SWord8  s1699 = (SWord8) s1690;+  const SWord8  s1700 = table0[s1699];+  const SWord16 s1701 = (((SWord16) s1698) << 8) | ((SWord16) s1700);+  const SWord32 s1702 = (((SWord32) s1696) << 16) | ((SWord32) s1701);+  const SWord32 s1703 = s1638 ^ s1702;+  const SWord32 s1704 = s1689 ^ s1703;+  const SWord8  s1705 = (SWord8) (s1704 >> 24);+  const SWord32 s1706 = table1[s1705];+  const SWord8  s1707 = (SWord8) (s1654 >> 24);+  const SWord32 s1708 = table1[s1707];+  const SWord8  s1709 = (SWord8) (s1670 >> 16);+  const SWord32 s1710 = table2[s1709];+  const SWord32 s1711 = s1708 ^ s1710;+  const SWord8  s1712 = (SWord8) (s1686 >> 8);+  const SWord32 s1713 = table3[s1712];+  const SWord32 s1714 = s1711 ^ s1713;+  const SWord8  s1715 = (SWord8) s1639;+  const SWord32 s1716 = table4[s1715];+  const SWord32 s1717 = s1714 ^ s1716;+  const SWord32 s1718 = s1653 ^ s1703;+  const SWord32 s1719 = s1717 ^ s1718;+  const SWord8  s1720 = (SWord8) (s1719 >> 16);+  const SWord32 s1721 = table2[s1720];+  const SWord32 s1722 = s1706 ^ s1721;+  const SWord8  s1723 = (SWord8) (s1670 >> 24);+  const SWord32 s1724 = table1[s1723];+  const SWord8  s1725 = (SWord8) (s1686 >> 16);+  const SWord32 s1726 = table2[s1725];+  const SWord32 s1727 = s1724 ^ s1726;+  const SWord8  s1728 = (SWord8) (s1639 >> 8);+  const SWord32 s1729 = table3[s1728];+  const SWord32 s1730 = s1727 ^ s1729;+  const SWord8  s1731 = (SWord8) s1654;+  const SWord32 s1732 = table4[s1731];+  const SWord32 s1733 = s1730 ^ s1732;+  const SWord32 s1734 = s1669 ^ s1718;+  const SWord32 s1735 = s1733 ^ s1734;+  const SWord8  s1736 = (SWord8) (s1735 >> 8);+  const SWord32 s1737 = table3[s1736];+  const SWord32 s1738 = s1722 ^ s1737;+  const SWord8  s1739 = (SWord8) (s1686 >> 24);+  const SWord32 s1740 = table1[s1739];+  const SWord8  s1741 = (SWord8) (s1639 >> 16);+  const SWord32 s1742 = table2[s1741];+  const SWord32 s1743 = s1740 ^ s1742;+  const SWord8  s1744 = (SWord8) (s1654 >> 8);+  const SWord32 s1745 = table3[s1744];+  const SWord32 s1746 = s1743 ^ s1745;+  const SWord8  s1747 = (SWord8) s1670;+  const SWord32 s1748 = table4[s1747];+  const SWord32 s1749 = s1746 ^ s1748;+  const SWord32 s1750 = s1685 ^ s1734;+  const SWord32 s1751 = s1749 ^ s1750;+  const SWord8  s1752 = (SWord8) s1751;+  const SWord32 s1753 = table4[s1752];+  const SWord32 s1754 = s1738 ^ s1753;+  const SWord32 s1755 = (s1750 << 8) | (s1750 >> 24);+  const SWord8  s1756 = (SWord8) (s1755 >> 24);+  const SWord8  s1757 = table0[s1756];+  const SWord8  s1758 = 128 ^ s1757;+  const SWord8  s1759 = (SWord8) (s1755 >> 16);+  const SWord8  s1760 = table0[s1759];+  const SWord16 s1761 = (((SWord16) s1758) << 8) | ((SWord16) s1760);+  const SWord8  s1762 = (SWord8) (s1755 >> 8);+  const SWord8  s1763 = table0[s1762];+  const SWord8  s1764 = (SWord8) s1755;+  const SWord8  s1765 = table0[s1764];+  const SWord16 s1766 = (((SWord16) s1763) << 8) | ((SWord16) s1765);+  const SWord32 s1767 = (((SWord32) s1761) << 16) | ((SWord32) s1766);+  const SWord32 s1768 = s1703 ^ s1767;+  const SWord32 s1769 = s1754 ^ s1768;+  const SWord8  s1770 = (SWord8) (s1769 >> 24);+  const SWord32 s1771 = table1[s1770];+  const SWord8  s1772 = (SWord8) (s1719 >> 24);+  const SWord32 s1773 = table1[s1772];+  const SWord8  s1774 = (SWord8) (s1735 >> 16);+  const SWord32 s1775 = table2[s1774];+  const SWord32 s1776 = s1773 ^ s1775;+  const SWord8  s1777 = (SWord8) (s1751 >> 8);+  const SWord32 s1778 = table3[s1777];+  const SWord32 s1779 = s1776 ^ s1778;+  const SWord8  s1780 = (SWord8) s1704;+  const SWord32 s1781 = table4[s1780];+  const SWord32 s1782 = s1779 ^ s1781;+  const SWord32 s1783 = s1718 ^ s1768;+  const SWord32 s1784 = s1782 ^ s1783;+  const SWord8  s1785 = (SWord8) (s1784 >> 16);+  const SWord32 s1786 = table2[s1785];+  const SWord32 s1787 = s1771 ^ s1786;+  const SWord8  s1788 = (SWord8) (s1735 >> 24);+  const SWord32 s1789 = table1[s1788];+  const SWord8  s1790 = (SWord8) (s1751 >> 16);+  const SWord32 s1791 = table2[s1790];+  const SWord32 s1792 = s1789 ^ s1791;+  const SWord8  s1793 = (SWord8) (s1704 >> 8);+  const SWord32 s1794 = table3[s1793];+  const SWord32 s1795 = s1792 ^ s1794;+  const SWord8  s1796 = (SWord8) s1719;+  const SWord32 s1797 = table4[s1796];+  const SWord32 s1798 = s1795 ^ s1797;+  const SWord32 s1799 = s1734 ^ s1783;+  const SWord32 s1800 = s1798 ^ s1799;+  const SWord8  s1801 = (SWord8) (s1800 >> 8);+  const SWord32 s1802 = table3[s1801];+  const SWord32 s1803 = s1787 ^ s1802;+  const SWord8  s1804 = (SWord8) (s1751 >> 24);+  const SWord32 s1805 = table1[s1804];+  const SWord8  s1806 = (SWord8) (s1704 >> 16);+  const SWord32 s1807 = table2[s1806];+  const SWord32 s1808 = s1805 ^ s1807;+  const SWord8  s1809 = (SWord8) (s1719 >> 8);+  const SWord32 s1810 = table3[s1809];+  const SWord32 s1811 = s1808 ^ s1810;+  const SWord8  s1812 = (SWord8) s1735;+  const SWord32 s1813 = table4[s1812];+  const SWord32 s1814 = s1811 ^ s1813;+  const SWord32 s1815 = s1750 ^ s1799;+  const SWord32 s1816 = s1814 ^ s1815;+  const SWord8  s1817 = (SWord8) s1816;+  const SWord32 s1818 = table4[s1817];+  const SWord32 s1819 = s1803 ^ s1818;+  const SWord32 s1820 = (s1815 << 8) | (s1815 >> 24);+  const SWord8  s1821 = (SWord8) (s1820 >> 24);+  const SWord8  s1822 = table0[s1821];+  const SWord8  s1823 = 27 ^ s1822;+  const SWord8  s1824 = (SWord8) (s1820 >> 16);+  const SWord8  s1825 = table0[s1824];+  const SWord16 s1826 = (((SWord16) s1823) << 8) | ((SWord16) s1825);+  const SWord8  s1827 = (SWord8) (s1820 >> 8);+  const SWord8  s1828 = table0[s1827];+  const SWord8  s1829 = (SWord8) s1820;+  const SWord8  s1830 = table0[s1829];+  const SWord16 s1831 = (((SWord16) s1828) << 8) | ((SWord16) s1830);+  const SWord32 s1832 = (((SWord32) s1826) << 16) | ((SWord32) s1831);+  const SWord32 s1833 = s1768 ^ s1832;+  const SWord32 s1834 = s1819 ^ s1833;+  const SWord8  s1835 = (SWord8) (s1834 >> 24);+  const SWord8  s1836 = table0[s1835];+  const SWord8  s1837 = (SWord8) (s1784 >> 24);+  const SWord32 s1838 = table1[s1837];+  const SWord8  s1839 = (SWord8) (s1800 >> 16);+  const SWord32 s1840 = table2[s1839];+  const SWord32 s1841 = s1838 ^ s1840;+  const SWord8  s1842 = (SWord8) (s1816 >> 8);+  const SWord32 s1843 = table3[s1842];+  const SWord32 s1844 = s1841 ^ s1843;+  const SWord8  s1845 = (SWord8) s1769;+  const SWord32 s1846 = table4[s1845];+  const SWord32 s1847 = s1844 ^ s1846;+  const SWord32 s1848 = s1783 ^ s1833;+  const SWord32 s1849 = s1847 ^ s1848;+  const SWord8  s1850 = (SWord8) (s1849 >> 16);+  const SWord8  s1851 = table0[s1850];+  const SWord16 s1852 = (((SWord16) s1836) << 8) | ((SWord16) s1851);+  const SWord8  s1853 = (SWord8) (s1800 >> 24);+  const SWord32 s1854 = table1[s1853];+  const SWord8  s1855 = (SWord8) (s1816 >> 16);+  const SWord32 s1856 = table2[s1855];+  const SWord32 s1857 = s1854 ^ s1856;+  const SWord8  s1858 = (SWord8) (s1769 >> 8);+  const SWord32 s1859 = table3[s1858];+  const SWord32 s1860 = s1857 ^ s1859;+  const SWord8  s1861 = (SWord8) s1784;+  const SWord32 s1862 = table4[s1861];+  const SWord32 s1863 = s1860 ^ s1862;+  const SWord32 s1864 = s1799 ^ s1848;+  const SWord32 s1865 = s1863 ^ s1864;+  const SWord8  s1866 = (SWord8) (s1865 >> 8);+  const SWord8  s1867 = table0[s1866];+  const SWord8  s1868 = (SWord8) (s1816 >> 24);+  const SWord32 s1869 = table1[s1868];+  const SWord8  s1870 = (SWord8) (s1769 >> 16);+  const SWord32 s1871 = table2[s1870];+  const SWord32 s1872 = s1869 ^ s1871;+  const SWord8  s1873 = (SWord8) (s1784 >> 8);+  const SWord32 s1874 = table3[s1873];+  const SWord32 s1875 = s1872 ^ s1874;+  const SWord8  s1876 = (SWord8) s1800;+  const SWord32 s1877 = table4[s1876];+  const SWord32 s1878 = s1875 ^ s1877;+  const SWord32 s1879 = s1815 ^ s1864;+  const SWord32 s1880 = s1878 ^ s1879;+  const SWord8  s1881 = (SWord8) s1880;+  const SWord8  s1882 = table0[s1881];+  const SWord16 s1883 = (((SWord16) s1867) << 8) | ((SWord16) s1882);+  const SWord32 s1884 = (((SWord32) s1852) << 16) | ((SWord32) s1883);+  const SWord32 s1885 = (s1879 << 8) | (s1879 >> 24);+  const SWord8  s1886 = (SWord8) (s1885 >> 24);+  const SWord8  s1887 = table0[s1886];+  const SWord8  s1888 = 54 ^ s1887;+  const SWord8  s1889 = (SWord8) (s1885 >> 16);+  const SWord8  s1890 = table0[s1889];+  const SWord16 s1891 = (((SWord16) s1888) << 8) | ((SWord16) s1890);+  const SWord8  s1892 = (SWord8) (s1885 >> 8);+  const SWord8  s1893 = table0[s1892];+  const SWord8  s1894 = (SWord8) s1885;+  const SWord8  s1895 = table0[s1894];+  const SWord16 s1896 = (((SWord16) s1893) << 8) | ((SWord16) s1895);+  const SWord32 s1897 = (((SWord32) s1891) << 16) | ((SWord32) s1896);+  const SWord32 s1898 = s1833 ^ s1897;+  const SWord32 s1899 = s1884 ^ s1898;+  const SWord8  s1900 = (SWord8) (s1849 >> 24);+  const SWord8  s1901 = table0[s1900];+  const SWord8  s1902 = (SWord8) (s1865 >> 16);+  const SWord8  s1903 = table0[s1902];+  const SWord16 s1904 = (((SWord16) s1901) << 8) | ((SWord16) s1903);+  const SWord8  s1905 = (SWord8) (s1880 >> 8);+  const SWord8  s1906 = table0[s1905];+  const SWord8  s1907 = (SWord8) s1834;+  const SWord8  s1908 = table0[s1907];+  const SWord16 s1909 = (((SWord16) s1906) << 8) | ((SWord16) s1908);+  const SWord32 s1910 = (((SWord32) s1904) << 16) | ((SWord32) s1909);+  const SWord32 s1911 = s1848 ^ s1898;+  const SWord32 s1912 = s1910 ^ s1911;+  const SWord8  s1913 = (SWord8) (s1865 >> 24);+  const SWord8  s1914 = table0[s1913];+  const SWord8  s1915 = (SWord8) (s1880 >> 16);+  const SWord8  s1916 = table0[s1915];+  const SWord16 s1917 = (((SWord16) s1914) << 8) | ((SWord16) s1916);+  const SWord8  s1918 = (SWord8) (s1834 >> 8);+  const SWord8  s1919 = table0[s1918];+  const SWord8  s1920 = (SWord8) s1849;+  const SWord8  s1921 = table0[s1920];+  const SWord16 s1922 = (((SWord16) s1919) << 8) | ((SWord16) s1921);+  const SWord32 s1923 = (((SWord32) s1917) << 16) | ((SWord32) s1922);+  const SWord32 s1924 = s1864 ^ s1911;+  const SWord32 s1925 = s1923 ^ s1924;+  const SWord8  s1926 = (SWord8) (s1880 >> 24);+  const SWord8  s1927 = table0[s1926];+  const SWord8  s1928 = (SWord8) (s1834 >> 16);+  const SWord8  s1929 = table0[s1928];+  const SWord16 s1930 = (((SWord16) s1927) << 8) | ((SWord16) s1929);+  const SWord8  s1931 = (SWord8) (s1849 >> 8);+  const SWord8  s1932 = table0[s1931];+  const SWord8  s1933 = (SWord8) s1865;+  const SWord8  s1934 = table0[s1933];+  const SWord16 s1935 = (((SWord16) s1932) << 8) | ((SWord16) s1934);+  const SWord32 s1936 = (((SWord32) s1930) << 16) | ((SWord32) s1935);+  const SWord32 s1937 = s1879 ^ s1924;+  const SWord32 s1938 = s1936 ^ s1937;++  ct[0] = s1899;+  ct[1] = s1912;+  ct[2] = s1925;+  ct[3] = s1938; } == END: "aes128Enc.c" ==================
SBVTestSuite/GoldFiles/aes128Lib.gold view
@@ -121,3599 +121,3347 @@        14, 121, 112, 107,  98,  93,  84,  79,  70   };   const SWord32 s260 = (s3 << 8) | (s3 >> 24);-  const SWord16 s261 = (SWord16) (s260 >> 16);-  const SWord8  s262 = (SWord8) (s261 >> 8);-  const SWord8  s263 = table0[s262];-  const SWord8  s264 = 1 ^ s263;-  const SWord8  s265 = (SWord8) s261;-  const SWord8  s266 = table0[s265];-  const SWord16 s267 = (((SWord16) s264) << 8) | ((SWord16) s266);-  const SWord16 s268 = (SWord16) s260;-  const SWord8  s269 = (SWord8) (s268 >> 8);-  const SWord8  s270 = table0[s269];-  const SWord8  s271 = (SWord8) s268;-  const SWord8  s272 = table0[s271];-  const SWord16 s273 = (((SWord16) s270) << 8) | ((SWord16) s272);-  const SWord32 s274 = (((SWord32) s267) << 16) | ((SWord32) s273);-  const SWord32 s275 = s0 ^ s274;-  const SWord32 s276 = s1 ^ s275;-  const SWord32 s277 = s2 ^ s276;-  const SWord32 s278 = s3 ^ s277;-  const SWord32 s279 = (s278 << 8) | (s278 >> 24);-  const SWord16 s280 = (SWord16) (s279 >> 16);-  const SWord8  s281 = (SWord8) (s280 >> 8);-  const SWord8  s282 = table0[s281];-  const SWord8  s283 = 2 ^ s282;-  const SWord8  s284 = (SWord8) s280;-  const SWord8  s285 = table0[s284];-  const SWord16 s286 = (((SWord16) s283) << 8) | ((SWord16) s285);-  const SWord16 s287 = (SWord16) s279;-  const SWord8  s288 = (SWord8) (s287 >> 8);-  const SWord8  s289 = table0[s288];-  const SWord8  s290 = (SWord8) s287;-  const SWord8  s291 = table0[s290];-  const SWord16 s292 = (((SWord16) s289) << 8) | ((SWord16) s291);-  const SWord32 s293 = (((SWord32) s286) << 16) | ((SWord32) s292);-  const SWord32 s294 = s275 ^ s293;-  const SWord32 s295 = s276 ^ s294;-  const SWord32 s296 = s277 ^ s295;-  const SWord32 s297 = s278 ^ s296;-  const SWord32 s298 = (s297 << 8) | (s297 >> 24);-  const SWord16 s299 = (SWord16) (s298 >> 16);-  const SWord8  s300 = (SWord8) (s299 >> 8);-  const SWord8  s301 = table0[s300];-  const SWord8  s302 = 4 ^ s301;-  const SWord8  s303 = (SWord8) s299;-  const SWord8  s304 = table0[s303];-  const SWord16 s305 = (((SWord16) s302) << 8) | ((SWord16) s304);-  const SWord16 s306 = (SWord16) s298;-  const SWord8  s307 = (SWord8) (s306 >> 8);-  const SWord8  s308 = table0[s307];-  const SWord8  s309 = (SWord8) s306;-  const SWord8  s310 = table0[s309];-  const SWord16 s311 = (((SWord16) s308) << 8) | ((SWord16) s310);-  const SWord32 s312 = (((SWord32) s305) << 16) | ((SWord32) s311);-  const SWord32 s313 = s294 ^ s312;-  const SWord32 s314 = s295 ^ s313;-  const SWord32 s315 = s296 ^ s314;-  const SWord32 s316 = s297 ^ s315;-  const SWord32 s317 = (s316 << 8) | (s316 >> 24);-  const SWord16 s318 = (SWord16) (s317 >> 16);-  const SWord8  s319 = (SWord8) (s318 >> 8);-  const SWord8  s320 = table0[s319];-  const SWord8  s321 = 8 ^ s320;-  const SWord8  s322 = (SWord8) s318;-  const SWord8  s323 = table0[s322];-  const SWord16 s324 = (((SWord16) s321) << 8) | ((SWord16) s323);-  const SWord16 s325 = (SWord16) s317;-  const SWord8  s326 = (SWord8) (s325 >> 8);-  const SWord8  s327 = table0[s326];-  const SWord8  s328 = (SWord8) s325;-  const SWord8  s329 = table0[s328];-  const SWord16 s330 = (((SWord16) s327) << 8) | ((SWord16) s329);-  const SWord32 s331 = (((SWord32) s324) << 16) | ((SWord32) s330);-  const SWord32 s332 = s313 ^ s331;-  const SWord32 s333 = s314 ^ s332;-  const SWord32 s334 = s315 ^ s333;-  const SWord32 s335 = s316 ^ s334;-  const SWord32 s336 = (s335 << 8) | (s335 >> 24);-  const SWord16 s337 = (SWord16) (s336 >> 16);-  const SWord8  s338 = (SWord8) (s337 >> 8);-  const SWord8  s339 = table0[s338];-  const SWord8  s340 = 16 ^ s339;-  const SWord8  s341 = (SWord8) s337;-  const SWord8  s342 = table0[s341];-  const SWord16 s343 = (((SWord16) s340) << 8) | ((SWord16) s342);-  const SWord16 s344 = (SWord16) s336;-  const SWord8  s345 = (SWord8) (s344 >> 8);-  const SWord8  s346 = table0[s345];-  const SWord8  s347 = (SWord8) s344;-  const SWord8  s348 = table0[s347];-  const SWord16 s349 = (((SWord16) s346) << 8) | ((SWord16) s348);-  const SWord32 s350 = (((SWord32) s343) << 16) | ((SWord32) s349);-  const SWord32 s351 = s332 ^ s350;-  const SWord32 s352 = s333 ^ s351;-  const SWord32 s353 = s334 ^ s352;-  const SWord32 s354 = s335 ^ s353;-  const SWord32 s355 = (s354 << 8) | (s354 >> 24);-  const SWord16 s356 = (SWord16) (s355 >> 16);-  const SWord8  s357 = (SWord8) (s356 >> 8);-  const SWord8  s358 = table0[s357];-  const SWord8  s359 = 32 ^ s358;-  const SWord8  s360 = (SWord8) s356;-  const SWord8  s361 = table0[s360];-  const SWord16 s362 = (((SWord16) s359) << 8) | ((SWord16) s361);-  const SWord16 s363 = (SWord16) s355;-  const SWord8  s364 = (SWord8) (s363 >> 8);-  const SWord8  s365 = table0[s364];-  const SWord8  s366 = (SWord8) s363;-  const SWord8  s367 = table0[s366];-  const SWord16 s368 = (((SWord16) s365) << 8) | ((SWord16) s367);-  const SWord32 s369 = (((SWord32) s362) << 16) | ((SWord32) s368);-  const SWord32 s370 = s351 ^ s369;-  const SWord32 s371 = s352 ^ s370;-  const SWord32 s372 = s353 ^ s371;-  const SWord32 s373 = s354 ^ s372;-  const SWord32 s374 = (s373 << 8) | (s373 >> 24);-  const SWord16 s375 = (SWord16) (s374 >> 16);-  const SWord8  s376 = (SWord8) (s375 >> 8);-  const SWord8  s377 = table0[s376];-  const SWord8  s378 = 64 ^ s377;-  const SWord8  s379 = (SWord8) s375;-  const SWord8  s380 = table0[s379];-  const SWord16 s381 = (((SWord16) s378) << 8) | ((SWord16) s380);-  const SWord16 s382 = (SWord16) s374;-  const SWord8  s383 = (SWord8) (s382 >> 8);-  const SWord8  s384 = table0[s383];-  const SWord8  s385 = (SWord8) s382;-  const SWord8  s386 = table0[s385];-  const SWord16 s387 = (((SWord16) s384) << 8) | ((SWord16) s386);-  const SWord32 s388 = (((SWord32) s381) << 16) | ((SWord32) s387);-  const SWord32 s389 = s370 ^ s388;-  const SWord32 s390 = s371 ^ s389;-  const SWord32 s391 = s372 ^ s390;-  const SWord32 s392 = s373 ^ s391;-  const SWord32 s393 = (s392 << 8) | (s392 >> 24);-  const SWord16 s394 = (SWord16) (s393 >> 16);-  const SWord8  s395 = (SWord8) (s394 >> 8);-  const SWord8  s396 = table0[s395];-  const SWord8  s397 = 128 ^ s396;-  const SWord8  s398 = (SWord8) s394;-  const SWord8  s399 = table0[s398];-  const SWord16 s400 = (((SWord16) s397) << 8) | ((SWord16) s399);-  const SWord16 s401 = (SWord16) s393;-  const SWord8  s402 = (SWord8) (s401 >> 8);-  const SWord8  s403 = table0[s402];-  const SWord8  s404 = (SWord8) s401;-  const SWord8  s405 = table0[s404];-  const SWord16 s406 = (((SWord16) s403) << 8) | ((SWord16) s405);-  const SWord32 s407 = (((SWord32) s400) << 16) | ((SWord32) s406);-  const SWord32 s408 = s389 ^ s407;-  const SWord32 s409 = s390 ^ s408;-  const SWord32 s410 = s391 ^ s409;-  const SWord32 s411 = s392 ^ s410;-  const SWord32 s412 = (s411 << 8) | (s411 >> 24);-  const SWord16 s413 = (SWord16) (s412 >> 16);-  const SWord8  s414 = (SWord8) (s413 >> 8);-  const SWord8  s415 = table0[s414];-  const SWord8  s416 = 27 ^ s415;-  const SWord8  s417 = (SWord8) s413;-  const SWord8  s418 = table0[s417];-  const SWord16 s419 = (((SWord16) s416) << 8) | ((SWord16) s418);-  const SWord16 s420 = (SWord16) s412;-  const SWord8  s421 = (SWord8) (s420 >> 8);-  const SWord8  s422 = table0[s421];-  const SWord8  s423 = (SWord8) s420;-  const SWord8  s424 = table0[s423];-  const SWord16 s425 = (((SWord16) s422) << 8) | ((SWord16) s424);-  const SWord32 s426 = (((SWord32) s419) << 16) | ((SWord32) s425);-  const SWord32 s427 = s408 ^ s426;-  const SWord32 s428 = s409 ^ s427;-  const SWord32 s429 = s410 ^ s428;-  const SWord32 s430 = s411 ^ s429;-  const SWord32 s431 = (s430 << 8) | (s430 >> 24);-  const SWord16 s432 = (SWord16) (s431 >> 16);-  const SWord8  s433 = (SWord8) (s432 >> 8);-  const SWord8  s434 = table0[s433];-  const SWord8  s435 = 54 ^ s434;-  const SWord8  s436 = (SWord8) s432;-  const SWord8  s437 = table0[s436];-  const SWord16 s438 = (((SWord16) s435) << 8) | ((SWord16) s437);-  const SWord16 s439 = (SWord16) s431;-  const SWord8  s440 = (SWord8) (s439 >> 8);-  const SWord8  s441 = table0[s440];-  const SWord8  s442 = (SWord8) s439;-  const SWord8  s443 = table0[s442];-  const SWord16 s444 = (((SWord16) s441) << 8) | ((SWord16) s443);-  const SWord32 s445 = (((SWord32) s438) << 16) | ((SWord32) s444);-  const SWord32 s446 = s427 ^ s445;-  const SWord32 s447 = s428 ^ s446;-  const SWord32 s448 = s429 ^ s447;-  const SWord32 s449 = s430 ^ s448;-  const SWord16 s450 = (SWord16) (s427 >> 16);-  const SWord8  s451 = (SWord8) (s450 >> 8);-  const SWord8  s452 = table1[s451];-  const SWord8  s453 = (SWord8) s450;-  const SWord8  s454 = table2[s453];-  const SWord16 s455 = (SWord16) s427;-  const SWord8  s456 = (SWord8) (s455 >> 8);-  const SWord8  s457 = table3[s456];-  const SWord8  s458 = (SWord8) s455;-  const SWord8  s459 = table4[s458];-  const SWord8  s460 = s457 ^ s459;-  const SWord8  s461 = s454 ^ s460;-  const SWord8  s462 = s452 ^ s461;-  const SWord8  s463 = table4[s451];-  const SWord8  s464 = table1[s453];-  const SWord8  s465 = table2[s456];-  const SWord8  s466 = table3[s458];-  const SWord8  s467 = s465 ^ s466;-  const SWord8  s468 = s464 ^ s467;-  const SWord8  s469 = s463 ^ s468;-  const SWord16 s470 = (((SWord16) s462) << 8) | ((SWord16) s469);-  const SWord8  s471 = table3[s451];-  const SWord8  s472 = table4[s453];-  const SWord8  s473 = table1[s456];-  const SWord8  s474 = table2[s458];-  const SWord8  s475 = s473 ^ s474;-  const SWord8  s476 = s472 ^ s475;-  const SWord8  s477 = s471 ^ s476;-  const SWord8  s478 = table2[s451];-  const SWord8  s479 = table3[s453];-  const SWord8  s480 = table4[s456];-  const SWord8  s481 = table1[s458];-  const SWord8  s482 = s480 ^ s481;-  const SWord8  s483 = s479 ^ s482;-  const SWord8  s484 = s478 ^ s483;-  const SWord16 s485 = (((SWord16) s477) << 8) | ((SWord16) s484);-  const SWord32 s486 = (((SWord32) s470) << 16) | ((SWord32) s485);-  const SWord16 s487 = (SWord16) (s428 >> 16);-  const SWord8  s488 = (SWord8) (s487 >> 8);-  const SWord8  s489 = table1[s488];-  const SWord8  s490 = (SWord8) s487;-  const SWord8  s491 = table2[s490];-  const SWord16 s492 = (SWord16) s428;-  const SWord8  s493 = (SWord8) (s492 >> 8);-  const SWord8  s494 = table3[s493];-  const SWord8  s495 = (SWord8) s492;-  const SWord8  s496 = table4[s495];-  const SWord8  s497 = s494 ^ s496;-  const SWord8  s498 = s491 ^ s497;-  const SWord8  s499 = s489 ^ s498;-  const SWord8  s500 = table4[s488];-  const SWord8  s501 = table1[s490];-  const SWord8  s502 = table2[s493];-  const SWord8  s503 = table3[s495];-  const SWord8  s504 = s502 ^ s503;-  const SWord8  s505 = s501 ^ s504;-  const SWord8  s506 = s500 ^ s505;-  const SWord16 s507 = (((SWord16) s499) << 8) | ((SWord16) s506);-  const SWord8  s508 = table3[s488];-  const SWord8  s509 = table4[s490];-  const SWord8  s510 = table1[s493];-  const SWord8  s511 = table2[s495];-  const SWord8  s512 = s510 ^ s511;-  const SWord8  s513 = s509 ^ s512;-  const SWord8  s514 = s508 ^ s513;-  const SWord8  s515 = table2[s488];-  const SWord8  s516 = table3[s490];-  const SWord8  s517 = table4[s493];-  const SWord8  s518 = table1[s495];-  const SWord8  s519 = s517 ^ s518;-  const SWord8  s520 = s516 ^ s519;-  const SWord8  s521 = s515 ^ s520;-  const SWord16 s522 = (((SWord16) s514) << 8) | ((SWord16) s521);-  const SWord32 s523 = (((SWord32) s507) << 16) | ((SWord32) s522);-  const SWord16 s524 = (SWord16) (s429 >> 16);-  const SWord8  s525 = (SWord8) (s524 >> 8);-  const SWord8  s526 = table1[s525];-  const SWord8  s527 = (SWord8) s524;-  const SWord8  s528 = table2[s527];-  const SWord16 s529 = (SWord16) s429;-  const SWord8  s530 = (SWord8) (s529 >> 8);-  const SWord8  s531 = table3[s530];-  const SWord8  s532 = (SWord8) s529;-  const SWord8  s533 = table4[s532];-  const SWord8  s534 = s531 ^ s533;-  const SWord8  s535 = s528 ^ s534;-  const SWord8  s536 = s526 ^ s535;-  const SWord8  s537 = table4[s525];-  const SWord8  s538 = table1[s527];-  const SWord8  s539 = table2[s530];-  const SWord8  s540 = table3[s532];-  const SWord8  s541 = s539 ^ s540;-  const SWord8  s542 = s538 ^ s541;-  const SWord8  s543 = s537 ^ s542;-  const SWord16 s544 = (((SWord16) s536) << 8) | ((SWord16) s543);-  const SWord8  s545 = table3[s525];-  const SWord8  s546 = table4[s527];-  const SWord8  s547 = table1[s530];-  const SWord8  s548 = table2[s532];-  const SWord8  s549 = s547 ^ s548;-  const SWord8  s550 = s546 ^ s549;-  const SWord8  s551 = s545 ^ s550;-  const SWord8  s552 = table2[s525];-  const SWord8  s553 = table3[s527];-  const SWord8  s554 = table4[s530];-  const SWord8  s555 = table1[s532];-  const SWord8  s556 = s554 ^ s555;-  const SWord8  s557 = s553 ^ s556;-  const SWord8  s558 = s552 ^ s557;-  const SWord16 s559 = (((SWord16) s551) << 8) | ((SWord16) s558);-  const SWord32 s560 = (((SWord32) s544) << 16) | ((SWord32) s559);-  const SWord16 s561 = (SWord16) (s430 >> 16);-  const SWord8  s562 = (SWord8) (s561 >> 8);-  const SWord8  s563 = table1[s562];-  const SWord8  s564 = (SWord8) s561;-  const SWord8  s565 = table2[s564];-  const SWord16 s566 = (SWord16) s430;-  const SWord8  s567 = (SWord8) (s566 >> 8);-  const SWord8  s568 = table3[s567];-  const SWord8  s569 = (SWord8) s566;-  const SWord8  s570 = table4[s569];-  const SWord8  s571 = s568 ^ s570;-  const SWord8  s572 = s565 ^ s571;-  const SWord8  s573 = s563 ^ s572;-  const SWord8  s574 = table4[s562];-  const SWord8  s575 = table1[s564];-  const SWord8  s576 = table2[s567];-  const SWord8  s577 = table3[s569];-  const SWord8  s578 = s576 ^ s577;-  const SWord8  s579 = s575 ^ s578;-  const SWord8  s580 = s574 ^ s579;-  const SWord16 s581 = (((SWord16) s573) << 8) | ((SWord16) s580);-  const SWord8  s582 = table3[s562];-  const SWord8  s583 = table4[s564];-  const SWord8  s584 = table1[s567];-  const SWord8  s585 = table2[s569];-  const SWord8  s586 = s584 ^ s585;-  const SWord8  s587 = s583 ^ s586;-  const SWord8  s588 = s582 ^ s587;-  const SWord8  s589 = table2[s562];-  const SWord8  s590 = table3[s564];-  const SWord8  s591 = table4[s567];-  const SWord8  s592 = table1[s569];-  const SWord8  s593 = s591 ^ s592;-  const SWord8  s594 = s590 ^ s593;-  const SWord8  s595 = s589 ^ s594;-  const SWord16 s596 = (((SWord16) s588) << 8) | ((SWord16) s595);-  const SWord32 s597 = (((SWord32) s581) << 16) | ((SWord32) s596);-  const SWord16 s598 = (SWord16) (s408 >> 16);-  const SWord8  s599 = (SWord8) (s598 >> 8);-  const SWord8  s600 = table1[s599];-  const SWord8  s601 = (SWord8) s598;-  const SWord8  s602 = table2[s601];-  const SWord16 s603 = (SWord16) s408;-  const SWord8  s604 = (SWord8) (s603 >> 8);-  const SWord8  s605 = table3[s604];-  const SWord8  s606 = (SWord8) s603;-  const SWord8  s607 = table4[s606];-  const SWord8  s608 = s605 ^ s607;-  const SWord8  s609 = s602 ^ s608;-  const SWord8  s610 = s600 ^ s609;-  const SWord8  s611 = table4[s599];-  const SWord8  s612 = table1[s601];-  const SWord8  s613 = table2[s604];-  const SWord8  s614 = table3[s606];-  const SWord8  s615 = s613 ^ s614;-  const SWord8  s616 = s612 ^ s615;-  const SWord8  s617 = s611 ^ s616;-  const SWord16 s618 = (((SWord16) s610) << 8) | ((SWord16) s617);-  const SWord8  s619 = table3[s599];-  const SWord8  s620 = table4[s601];-  const SWord8  s621 = table1[s604];-  const SWord8  s622 = table2[s606];-  const SWord8  s623 = s621 ^ s622;-  const SWord8  s624 = s620 ^ s623;-  const SWord8  s625 = s619 ^ s624;-  const SWord8  s626 = table2[s599];-  const SWord8  s627 = table3[s601];-  const SWord8  s628 = table4[s604];-  const SWord8  s629 = table1[s606];-  const SWord8  s630 = s628 ^ s629;-  const SWord8  s631 = s627 ^ s630;-  const SWord8  s632 = s626 ^ s631;-  const SWord16 s633 = (((SWord16) s625) << 8) | ((SWord16) s632);-  const SWord32 s634 = (((SWord32) s618) << 16) | ((SWord32) s633);-  const SWord16 s635 = (SWord16) (s409 >> 16);-  const SWord8  s636 = (SWord8) (s635 >> 8);-  const SWord8  s637 = table1[s636];-  const SWord8  s638 = (SWord8) s635;-  const SWord8  s639 = table2[s638];-  const SWord16 s640 = (SWord16) s409;-  const SWord8  s641 = (SWord8) (s640 >> 8);-  const SWord8  s642 = table3[s641];-  const SWord8  s643 = (SWord8) s640;-  const SWord8  s644 = table4[s643];-  const SWord8  s645 = s642 ^ s644;-  const SWord8  s646 = s639 ^ s645;-  const SWord8  s647 = s637 ^ s646;-  const SWord8  s648 = table4[s636];-  const SWord8  s649 = table1[s638];-  const SWord8  s650 = table2[s641];-  const SWord8  s651 = table3[s643];-  const SWord8  s652 = s650 ^ s651;-  const SWord8  s653 = s649 ^ s652;-  const SWord8  s654 = s648 ^ s653;-  const SWord16 s655 = (((SWord16) s647) << 8) | ((SWord16) s654);-  const SWord8  s656 = table3[s636];-  const SWord8  s657 = table4[s638];-  const SWord8  s658 = table1[s641];-  const SWord8  s659 = table2[s643];-  const SWord8  s660 = s658 ^ s659;-  const SWord8  s661 = s657 ^ s660;-  const SWord8  s662 = s656 ^ s661;-  const SWord8  s663 = table2[s636];-  const SWord8  s664 = table3[s638];-  const SWord8  s665 = table4[s641];-  const SWord8  s666 = table1[s643];-  const SWord8  s667 = s665 ^ s666;-  const SWord8  s668 = s664 ^ s667;-  const SWord8  s669 = s663 ^ s668;-  const SWord16 s670 = (((SWord16) s662) << 8) | ((SWord16) s669);-  const SWord32 s671 = (((SWord32) s655) << 16) | ((SWord32) s670);-  const SWord16 s672 = (SWord16) (s410 >> 16);-  const SWord8  s673 = (SWord8) (s672 >> 8);-  const SWord8  s674 = table1[s673];-  const SWord8  s675 = (SWord8) s672;-  const SWord8  s676 = table2[s675];-  const SWord16 s677 = (SWord16) s410;-  const SWord8  s678 = (SWord8) (s677 >> 8);-  const SWord8  s679 = table3[s678];-  const SWord8  s680 = (SWord8) s677;-  const SWord8  s681 = table4[s680];-  const SWord8  s682 = s679 ^ s681;-  const SWord8  s683 = s676 ^ s682;-  const SWord8  s684 = s674 ^ s683;-  const SWord8  s685 = table4[s673];-  const SWord8  s686 = table1[s675];-  const SWord8  s687 = table2[s678];-  const SWord8  s688 = table3[s680];-  const SWord8  s689 = s687 ^ s688;-  const SWord8  s690 = s686 ^ s689;-  const SWord8  s691 = s685 ^ s690;-  const SWord16 s692 = (((SWord16) s684) << 8) | ((SWord16) s691);-  const SWord8  s693 = table3[s673];-  const SWord8  s694 = table4[s675];-  const SWord8  s695 = table1[s678];-  const SWord8  s696 = table2[s680];-  const SWord8  s697 = s695 ^ s696;-  const SWord8  s698 = s694 ^ s697;-  const SWord8  s699 = s693 ^ s698;-  const SWord8  s700 = table2[s673];-  const SWord8  s701 = table3[s675];-  const SWord8  s702 = table4[s678];-  const SWord8  s703 = table1[s680];-  const SWord8  s704 = s702 ^ s703;-  const SWord8  s705 = s701 ^ s704;-  const SWord8  s706 = s700 ^ s705;-  const SWord16 s707 = (((SWord16) s699) << 8) | ((SWord16) s706);-  const SWord32 s708 = (((SWord32) s692) << 16) | ((SWord32) s707);-  const SWord16 s709 = (SWord16) (s411 >> 16);-  const SWord8  s710 = (SWord8) (s709 >> 8);-  const SWord8  s711 = table1[s710];-  const SWord8  s712 = (SWord8) s709;-  const SWord8  s713 = table2[s712];-  const SWord16 s714 = (SWord16) s411;-  const SWord8  s715 = (SWord8) (s714 >> 8);-  const SWord8  s716 = table3[s715];-  const SWord8  s717 = (SWord8) s714;-  const SWord8  s718 = table4[s717];-  const SWord8  s719 = s716 ^ s718;-  const SWord8  s720 = s713 ^ s719;-  const SWord8  s721 = s711 ^ s720;-  const SWord8  s722 = table4[s710];-  const SWord8  s723 = table1[s712];-  const SWord8  s724 = table2[s715];-  const SWord8  s725 = table3[s717];-  const SWord8  s726 = s724 ^ s725;-  const SWord8  s727 = s723 ^ s726;-  const SWord8  s728 = s722 ^ s727;-  const SWord16 s729 = (((SWord16) s721) << 8) | ((SWord16) s728);-  const SWord8  s730 = table3[s710];-  const SWord8  s731 = table4[s712];-  const SWord8  s732 = table1[s715];-  const SWord8  s733 = table2[s717];-  const SWord8  s734 = s732 ^ s733;-  const SWord8  s735 = s731 ^ s734;-  const SWord8  s736 = s730 ^ s735;-  const SWord8  s737 = table2[s710];-  const SWord8  s738 = table3[s712];-  const SWord8  s739 = table4[s715];-  const SWord8  s740 = table1[s717];-  const SWord8  s741 = s739 ^ s740;-  const SWord8  s742 = s738 ^ s741;-  const SWord8  s743 = s737 ^ s742;-  const SWord16 s744 = (((SWord16) s736) << 8) | ((SWord16) s743);-  const SWord32 s745 = (((SWord32) s729) << 16) | ((SWord32) s744);-  const SWord16 s746 = (SWord16) (s389 >> 16);-  const SWord8  s747 = (SWord8) (s746 >> 8);-  const SWord8  s748 = table1[s747];-  const SWord8  s749 = (SWord8) s746;-  const SWord8  s750 = table2[s749];-  const SWord16 s751 = (SWord16) s389;-  const SWord8  s752 = (SWord8) (s751 >> 8);-  const SWord8  s753 = table3[s752];-  const SWord8  s754 = (SWord8) s751;-  const SWord8  s755 = table4[s754];-  const SWord8  s756 = s753 ^ s755;-  const SWord8  s757 = s750 ^ s756;-  const SWord8  s758 = s748 ^ s757;-  const SWord8  s759 = table4[s747];-  const SWord8  s760 = table1[s749];-  const SWord8  s761 = table2[s752];-  const SWord8  s762 = table3[s754];-  const SWord8  s763 = s761 ^ s762;-  const SWord8  s764 = s760 ^ s763;-  const SWord8  s765 = s759 ^ s764;-  const SWord16 s766 = (((SWord16) s758) << 8) | ((SWord16) s765);-  const SWord8  s767 = table3[s747];-  const SWord8  s768 = table4[s749];-  const SWord8  s769 = table1[s752];-  const SWord8  s770 = table2[s754];-  const SWord8  s771 = s769 ^ s770;-  const SWord8  s772 = s768 ^ s771;-  const SWord8  s773 = s767 ^ s772;-  const SWord8  s774 = table2[s747];-  const SWord8  s775 = table3[s749];-  const SWord8  s776 = table4[s752];-  const SWord8  s777 = table1[s754];-  const SWord8  s778 = s776 ^ s777;-  const SWord8  s779 = s775 ^ s778;-  const SWord8  s780 = s774 ^ s779;-  const SWord16 s781 = (((SWord16) s773) << 8) | ((SWord16) s780);-  const SWord32 s782 = (((SWord32) s766) << 16) | ((SWord32) s781);-  const SWord16 s783 = (SWord16) (s390 >> 16);-  const SWord8  s784 = (SWord8) (s783 >> 8);-  const SWord8  s785 = table1[s784];-  const SWord8  s786 = (SWord8) s783;-  const SWord8  s787 = table2[s786];-  const SWord16 s788 = (SWord16) s390;-  const SWord8  s789 = (SWord8) (s788 >> 8);-  const SWord8  s790 = table3[s789];-  const SWord8  s791 = (SWord8) s788;-  const SWord8  s792 = table4[s791];-  const SWord8  s793 = s790 ^ s792;-  const SWord8  s794 = s787 ^ s793;-  const SWord8  s795 = s785 ^ s794;-  const SWord8  s796 = table4[s784];-  const SWord8  s797 = table1[s786];-  const SWord8  s798 = table2[s789];-  const SWord8  s799 = table3[s791];-  const SWord8  s800 = s798 ^ s799;-  const SWord8  s801 = s797 ^ s800;-  const SWord8  s802 = s796 ^ s801;-  const SWord16 s803 = (((SWord16) s795) << 8) | ((SWord16) s802);-  const SWord8  s804 = table3[s784];-  const SWord8  s805 = table4[s786];-  const SWord8  s806 = table1[s789];-  const SWord8  s807 = table2[s791];-  const SWord8  s808 = s806 ^ s807;-  const SWord8  s809 = s805 ^ s808;-  const SWord8  s810 = s804 ^ s809;-  const SWord8  s811 = table2[s784];-  const SWord8  s812 = table3[s786];-  const SWord8  s813 = table4[s789];-  const SWord8  s814 = table1[s791];-  const SWord8  s815 = s813 ^ s814;-  const SWord8  s816 = s812 ^ s815;-  const SWord8  s817 = s811 ^ s816;-  const SWord16 s818 = (((SWord16) s810) << 8) | ((SWord16) s817);-  const SWord32 s819 = (((SWord32) s803) << 16) | ((SWord32) s818);-  const SWord16 s820 = (SWord16) (s391 >> 16);-  const SWord8  s821 = (SWord8) (s820 >> 8);-  const SWord8  s822 = table1[s821];-  const SWord8  s823 = (SWord8) s820;-  const SWord8  s824 = table2[s823];-  const SWord16 s825 = (SWord16) s391;-  const SWord8  s826 = (SWord8) (s825 >> 8);-  const SWord8  s827 = table3[s826];-  const SWord8  s828 = (SWord8) s825;-  const SWord8  s829 = table4[s828];-  const SWord8  s830 = s827 ^ s829;-  const SWord8  s831 = s824 ^ s830;-  const SWord8  s832 = s822 ^ s831;-  const SWord8  s833 = table4[s821];-  const SWord8  s834 = table1[s823];-  const SWord8  s835 = table2[s826];-  const SWord8  s836 = table3[s828];-  const SWord8  s837 = s835 ^ s836;-  const SWord8  s838 = s834 ^ s837;-  const SWord8  s839 = s833 ^ s838;-  const SWord16 s840 = (((SWord16) s832) << 8) | ((SWord16) s839);-  const SWord8  s841 = table3[s821];-  const SWord8  s842 = table4[s823];-  const SWord8  s843 = table1[s826];-  const SWord8  s844 = table2[s828];-  const SWord8  s845 = s843 ^ s844;-  const SWord8  s846 = s842 ^ s845;-  const SWord8  s847 = s841 ^ s846;-  const SWord8  s848 = table2[s821];-  const SWord8  s849 = table3[s823];-  const SWord8  s850 = table4[s826];-  const SWord8  s851 = table1[s828];-  const SWord8  s852 = s850 ^ s851;-  const SWord8  s853 = s849 ^ s852;-  const SWord8  s854 = s848 ^ s853;-  const SWord16 s855 = (((SWord16) s847) << 8) | ((SWord16) s854);-  const SWord32 s856 = (((SWord32) s840) << 16) | ((SWord32) s855);-  const SWord16 s857 = (SWord16) (s392 >> 16);-  const SWord8  s858 = (SWord8) (s857 >> 8);-  const SWord8  s859 = table1[s858];-  const SWord8  s860 = (SWord8) s857;-  const SWord8  s861 = table2[s860];-  const SWord16 s862 = (SWord16) s392;-  const SWord8  s863 = (SWord8) (s862 >> 8);-  const SWord8  s864 = table3[s863];-  const SWord8  s865 = (SWord8) s862;-  const SWord8  s866 = table4[s865];-  const SWord8  s867 = s864 ^ s866;-  const SWord8  s868 = s861 ^ s867;-  const SWord8  s869 = s859 ^ s868;-  const SWord8  s870 = table4[s858];-  const SWord8  s871 = table1[s860];-  const SWord8  s872 = table2[s863];-  const SWord8  s873 = table3[s865];-  const SWord8  s874 = s872 ^ s873;-  const SWord8  s875 = s871 ^ s874;-  const SWord8  s876 = s870 ^ s875;-  const SWord16 s877 = (((SWord16) s869) << 8) | ((SWord16) s876);-  const SWord8  s878 = table3[s858];-  const SWord8  s879 = table4[s860];-  const SWord8  s880 = table1[s863];-  const SWord8  s881 = table2[s865];-  const SWord8  s882 = s880 ^ s881;-  const SWord8  s883 = s879 ^ s882;-  const SWord8  s884 = s878 ^ s883;-  const SWord8  s885 = table2[s858];-  const SWord8  s886 = table3[s860];-  const SWord8  s887 = table4[s863];-  const SWord8  s888 = table1[s865];-  const SWord8  s889 = s887 ^ s888;-  const SWord8  s890 = s886 ^ s889;-  const SWord8  s891 = s885 ^ s890;-  const SWord16 s892 = (((SWord16) s884) << 8) | ((SWord16) s891);-  const SWord32 s893 = (((SWord32) s877) << 16) | ((SWord32) s892);-  const SWord16 s894 = (SWord16) (s370 >> 16);-  const SWord8  s895 = (SWord8) (s894 >> 8);-  const SWord8  s896 = table1[s895];-  const SWord8  s897 = (SWord8) s894;-  const SWord8  s898 = table2[s897];-  const SWord16 s899 = (SWord16) s370;-  const SWord8  s900 = (SWord8) (s899 >> 8);-  const SWord8  s901 = table3[s900];-  const SWord8  s902 = (SWord8) s899;-  const SWord8  s903 = table4[s902];-  const SWord8  s904 = s901 ^ s903;-  const SWord8  s905 = s898 ^ s904;-  const SWord8  s906 = s896 ^ s905;-  const SWord8  s907 = table4[s895];-  const SWord8  s908 = table1[s897];-  const SWord8  s909 = table2[s900];-  const SWord8  s910 = table3[s902];-  const SWord8  s911 = s909 ^ s910;-  const SWord8  s912 = s908 ^ s911;-  const SWord8  s913 = s907 ^ s912;-  const SWord16 s914 = (((SWord16) s906) << 8) | ((SWord16) s913);-  const SWord8  s915 = table3[s895];-  const SWord8  s916 = table4[s897];-  const SWord8  s917 = table1[s900];-  const SWord8  s918 = table2[s902];-  const SWord8  s919 = s917 ^ s918;-  const SWord8  s920 = s916 ^ s919;-  const SWord8  s921 = s915 ^ s920;-  const SWord8  s922 = table2[s895];-  const SWord8  s923 = table3[s897];-  const SWord8  s924 = table4[s900];-  const SWord8  s925 = table1[s902];-  const SWord8  s926 = s924 ^ s925;-  const SWord8  s927 = s923 ^ s926;-  const SWord8  s928 = s922 ^ s927;-  const SWord16 s929 = (((SWord16) s921) << 8) | ((SWord16) s928);-  const SWord32 s930 = (((SWord32) s914) << 16) | ((SWord32) s929);-  const SWord16 s931 = (SWord16) (s371 >> 16);-  const SWord8  s932 = (SWord8) (s931 >> 8);-  const SWord8  s933 = table1[s932];-  const SWord8  s934 = (SWord8) s931;-  const SWord8  s935 = table2[s934];-  const SWord16 s936 = (SWord16) s371;-  const SWord8  s937 = (SWord8) (s936 >> 8);-  const SWord8  s938 = table3[s937];-  const SWord8  s939 = (SWord8) s936;-  const SWord8  s940 = table4[s939];-  const SWord8  s941 = s938 ^ s940;-  const SWord8  s942 = s935 ^ s941;-  const SWord8  s943 = s933 ^ s942;-  const SWord8  s944 = table4[s932];-  const SWord8  s945 = table1[s934];-  const SWord8  s946 = table2[s937];-  const SWord8  s947 = table3[s939];-  const SWord8  s948 = s946 ^ s947;-  const SWord8  s949 = s945 ^ s948;-  const SWord8  s950 = s944 ^ s949;-  const SWord16 s951 = (((SWord16) s943) << 8) | ((SWord16) s950);-  const SWord8  s952 = table3[s932];-  const SWord8  s953 = table4[s934];-  const SWord8  s954 = table1[s937];-  const SWord8  s955 = table2[s939];-  const SWord8  s956 = s954 ^ s955;-  const SWord8  s957 = s953 ^ s956;-  const SWord8  s958 = s952 ^ s957;-  const SWord8  s959 = table2[s932];-  const SWord8  s960 = table3[s934];-  const SWord8  s961 = table4[s937];-  const SWord8  s962 = table1[s939];-  const SWord8  s963 = s961 ^ s962;-  const SWord8  s964 = s960 ^ s963;-  const SWord8  s965 = s959 ^ s964;-  const SWord16 s966 = (((SWord16) s958) << 8) | ((SWord16) s965);-  const SWord32 s967 = (((SWord32) s951) << 16) | ((SWord32) s966);-  const SWord16 s968 = (SWord16) (s372 >> 16);-  const SWord8  s969 = (SWord8) (s968 >> 8);-  const SWord8  s970 = table1[s969];-  const SWord8  s971 = (SWord8) s968;-  const SWord8  s972 = table2[s971];-  const SWord16 s973 = (SWord16) s372;-  const SWord8  s974 = (SWord8) (s973 >> 8);-  const SWord8  s975 = table3[s974];-  const SWord8  s976 = (SWord8) s973;-  const SWord8  s977 = table4[s976];-  const SWord8  s978 = s975 ^ s977;-  const SWord8  s979 = s972 ^ s978;-  const SWord8  s980 = s970 ^ s979;-  const SWord8  s981 = table4[s969];-  const SWord8  s982 = table1[s971];-  const SWord8  s983 = table2[s974];-  const SWord8  s984 = table3[s976];-  const SWord8  s985 = s983 ^ s984;-  const SWord8  s986 = s982 ^ s985;-  const SWord8  s987 = s981 ^ s986;-  const SWord16 s988 = (((SWord16) s980) << 8) | ((SWord16) s987);-  const SWord8  s989 = table3[s969];-  const SWord8  s990 = table4[s971];-  const SWord8  s991 = table1[s974];-  const SWord8  s992 = table2[s976];-  const SWord8  s993 = s991 ^ s992;-  const SWord8  s994 = s990 ^ s993;-  const SWord8  s995 = s989 ^ s994;-  const SWord8  s996 = table2[s969];-  const SWord8  s997 = table3[s971];-  const SWord8  s998 = table4[s974];-  const SWord8  s999 = table1[s976];-  const SWord8  s1000 = s998 ^ s999;-  const SWord8  s1001 = s997 ^ s1000;-  const SWord8  s1002 = s996 ^ s1001;-  const SWord16 s1003 = (((SWord16) s995) << 8) | ((SWord16) s1002);-  const SWord32 s1004 = (((SWord32) s988) << 16) | ((SWord32) s1003);-  const SWord16 s1005 = (SWord16) (s373 >> 16);-  const SWord8  s1006 = (SWord8) (s1005 >> 8);-  const SWord8  s1007 = table1[s1006];-  const SWord8  s1008 = (SWord8) s1005;-  const SWord8  s1009 = table2[s1008];-  const SWord16 s1010 = (SWord16) s373;-  const SWord8  s1011 = (SWord8) (s1010 >> 8);-  const SWord8  s1012 = table3[s1011];-  const SWord8  s1013 = (SWord8) s1010;-  const SWord8  s1014 = table4[s1013];-  const SWord8  s1015 = s1012 ^ s1014;-  const SWord8  s1016 = s1009 ^ s1015;-  const SWord8  s1017 = s1007 ^ s1016;-  const SWord8  s1018 = table4[s1006];-  const SWord8  s1019 = table1[s1008];-  const SWord8  s1020 = table2[s1011];-  const SWord8  s1021 = table3[s1013];-  const SWord8  s1022 = s1020 ^ s1021;-  const SWord8  s1023 = s1019 ^ s1022;-  const SWord8  s1024 = s1018 ^ s1023;-  const SWord16 s1025 = (((SWord16) s1017) << 8) | ((SWord16) s1024);-  const SWord8  s1026 = table3[s1006];-  const SWord8  s1027 = table4[s1008];-  const SWord8  s1028 = table1[s1011];-  const SWord8  s1029 = table2[s1013];-  const SWord8  s1030 = s1028 ^ s1029;-  const SWord8  s1031 = s1027 ^ s1030;-  const SWord8  s1032 = s1026 ^ s1031;-  const SWord8  s1033 = table2[s1006];-  const SWord8  s1034 = table3[s1008];-  const SWord8  s1035 = table4[s1011];-  const SWord8  s1036 = table1[s1013];-  const SWord8  s1037 = s1035 ^ s1036;-  const SWord8  s1038 = s1034 ^ s1037;-  const SWord8  s1039 = s1033 ^ s1038;-  const SWord16 s1040 = (((SWord16) s1032) << 8) | ((SWord16) s1039);-  const SWord32 s1041 = (((SWord32) s1025) << 16) | ((SWord32) s1040);-  const SWord16 s1042 = (SWord16) (s351 >> 16);-  const SWord8  s1043 = (SWord8) (s1042 >> 8);-  const SWord8  s1044 = table1[s1043];-  const SWord8  s1045 = (SWord8) s1042;-  const SWord8  s1046 = table2[s1045];-  const SWord16 s1047 = (SWord16) s351;-  const SWord8  s1048 = (SWord8) (s1047 >> 8);-  const SWord8  s1049 = table3[s1048];-  const SWord8  s1050 = (SWord8) s1047;-  const SWord8  s1051 = table4[s1050];-  const SWord8  s1052 = s1049 ^ s1051;-  const SWord8  s1053 = s1046 ^ s1052;-  const SWord8  s1054 = s1044 ^ s1053;-  const SWord8  s1055 = table4[s1043];-  const SWord8  s1056 = table1[s1045];-  const SWord8  s1057 = table2[s1048];-  const SWord8  s1058 = table3[s1050];-  const SWord8  s1059 = s1057 ^ s1058;-  const SWord8  s1060 = s1056 ^ s1059;-  const SWord8  s1061 = s1055 ^ s1060;-  const SWord16 s1062 = (((SWord16) s1054) << 8) | ((SWord16) s1061);-  const SWord8  s1063 = table3[s1043];-  const SWord8  s1064 = table4[s1045];-  const SWord8  s1065 = table1[s1048];-  const SWord8  s1066 = table2[s1050];-  const SWord8  s1067 = s1065 ^ s1066;-  const SWord8  s1068 = s1064 ^ s1067;-  const SWord8  s1069 = s1063 ^ s1068;-  const SWord8  s1070 = table2[s1043];-  const SWord8  s1071 = table3[s1045];-  const SWord8  s1072 = table4[s1048];-  const SWord8  s1073 = table1[s1050];-  const SWord8  s1074 = s1072 ^ s1073;-  const SWord8  s1075 = s1071 ^ s1074;-  const SWord8  s1076 = s1070 ^ s1075;-  const SWord16 s1077 = (((SWord16) s1069) << 8) | ((SWord16) s1076);-  const SWord32 s1078 = (((SWord32) s1062) << 16) | ((SWord32) s1077);-  const SWord16 s1079 = (SWord16) (s352 >> 16);-  const SWord8  s1080 = (SWord8) (s1079 >> 8);-  const SWord8  s1081 = table1[s1080];-  const SWord8  s1082 = (SWord8) s1079;-  const SWord8  s1083 = table2[s1082];-  const SWord16 s1084 = (SWord16) s352;-  const SWord8  s1085 = (SWord8) (s1084 >> 8);-  const SWord8  s1086 = table3[s1085];-  const SWord8  s1087 = (SWord8) s1084;-  const SWord8  s1088 = table4[s1087];-  const SWord8  s1089 = s1086 ^ s1088;-  const SWord8  s1090 = s1083 ^ s1089;-  const SWord8  s1091 = s1081 ^ s1090;-  const SWord8  s1092 = table4[s1080];-  const SWord8  s1093 = table1[s1082];-  const SWord8  s1094 = table2[s1085];-  const SWord8  s1095 = table3[s1087];-  const SWord8  s1096 = s1094 ^ s1095;-  const SWord8  s1097 = s1093 ^ s1096;-  const SWord8  s1098 = s1092 ^ s1097;-  const SWord16 s1099 = (((SWord16) s1091) << 8) | ((SWord16) s1098);-  const SWord8  s1100 = table3[s1080];-  const SWord8  s1101 = table4[s1082];-  const SWord8  s1102 = table1[s1085];-  const SWord8  s1103 = table2[s1087];-  const SWord8  s1104 = s1102 ^ s1103;-  const SWord8  s1105 = s1101 ^ s1104;-  const SWord8  s1106 = s1100 ^ s1105;-  const SWord8  s1107 = table2[s1080];-  const SWord8  s1108 = table3[s1082];-  const SWord8  s1109 = table4[s1085];-  const SWord8  s1110 = table1[s1087];-  const SWord8  s1111 = s1109 ^ s1110;-  const SWord8  s1112 = s1108 ^ s1111;-  const SWord8  s1113 = s1107 ^ s1112;-  const SWord16 s1114 = (((SWord16) s1106) << 8) | ((SWord16) s1113);-  const SWord32 s1115 = (((SWord32) s1099) << 16) | ((SWord32) s1114);-  const SWord16 s1116 = (SWord16) (s353 >> 16);-  const SWord8  s1117 = (SWord8) (s1116 >> 8);-  const SWord8  s1118 = table1[s1117];-  const SWord8  s1119 = (SWord8) s1116;-  const SWord8  s1120 = table2[s1119];-  const SWord16 s1121 = (SWord16) s353;-  const SWord8  s1122 = (SWord8) (s1121 >> 8);-  const SWord8  s1123 = table3[s1122];-  const SWord8  s1124 = (SWord8) s1121;-  const SWord8  s1125 = table4[s1124];-  const SWord8  s1126 = s1123 ^ s1125;-  const SWord8  s1127 = s1120 ^ s1126;-  const SWord8  s1128 = s1118 ^ s1127;-  const SWord8  s1129 = table4[s1117];-  const SWord8  s1130 = table1[s1119];-  const SWord8  s1131 = table2[s1122];-  const SWord8  s1132 = table3[s1124];-  const SWord8  s1133 = s1131 ^ s1132;-  const SWord8  s1134 = s1130 ^ s1133;-  const SWord8  s1135 = s1129 ^ s1134;-  const SWord16 s1136 = (((SWord16) s1128) << 8) | ((SWord16) s1135);-  const SWord8  s1137 = table3[s1117];-  const SWord8  s1138 = table4[s1119];-  const SWord8  s1139 = table1[s1122];-  const SWord8  s1140 = table2[s1124];-  const SWord8  s1141 = s1139 ^ s1140;-  const SWord8  s1142 = s1138 ^ s1141;-  const SWord8  s1143 = s1137 ^ s1142;-  const SWord8  s1144 = table2[s1117];-  const SWord8  s1145 = table3[s1119];-  const SWord8  s1146 = table4[s1122];-  const SWord8  s1147 = table1[s1124];-  const SWord8  s1148 = s1146 ^ s1147;-  const SWord8  s1149 = s1145 ^ s1148;-  const SWord8  s1150 = s1144 ^ s1149;-  const SWord16 s1151 = (((SWord16) s1143) << 8) | ((SWord16) s1150);-  const SWord32 s1152 = (((SWord32) s1136) << 16) | ((SWord32) s1151);-  const SWord16 s1153 = (SWord16) (s354 >> 16);-  const SWord8  s1154 = (SWord8) (s1153 >> 8);-  const SWord8  s1155 = table1[s1154];-  const SWord8  s1156 = (SWord8) s1153;-  const SWord8  s1157 = table2[s1156];-  const SWord16 s1158 = (SWord16) s354;-  const SWord8  s1159 = (SWord8) (s1158 >> 8);-  const SWord8  s1160 = table3[s1159];-  const SWord8  s1161 = (SWord8) s1158;-  const SWord8  s1162 = table4[s1161];-  const SWord8  s1163 = s1160 ^ s1162;-  const SWord8  s1164 = s1157 ^ s1163;-  const SWord8  s1165 = s1155 ^ s1164;-  const SWord8  s1166 = table4[s1154];-  const SWord8  s1167 = table1[s1156];-  const SWord8  s1168 = table2[s1159];-  const SWord8  s1169 = table3[s1161];-  const SWord8  s1170 = s1168 ^ s1169;-  const SWord8  s1171 = s1167 ^ s1170;-  const SWord8  s1172 = s1166 ^ s1171;-  const SWord16 s1173 = (((SWord16) s1165) << 8) | ((SWord16) s1172);-  const SWord8  s1174 = table3[s1154];-  const SWord8  s1175 = table4[s1156];-  const SWord8  s1176 = table1[s1159];-  const SWord8  s1177 = table2[s1161];-  const SWord8  s1178 = s1176 ^ s1177;-  const SWord8  s1179 = s1175 ^ s1178;-  const SWord8  s1180 = s1174 ^ s1179;-  const SWord8  s1181 = table2[s1154];-  const SWord8  s1182 = table3[s1156];-  const SWord8  s1183 = table4[s1159];-  const SWord8  s1184 = table1[s1161];-  const SWord8  s1185 = s1183 ^ s1184;-  const SWord8  s1186 = s1182 ^ s1185;-  const SWord8  s1187 = s1181 ^ s1186;-  const SWord16 s1188 = (((SWord16) s1180) << 8) | ((SWord16) s1187);-  const SWord32 s1189 = (((SWord32) s1173) << 16) | ((SWord32) s1188);-  const SWord16 s1190 = (SWord16) (s332 >> 16);-  const SWord8  s1191 = (SWord8) (s1190 >> 8);-  const SWord8  s1192 = table1[s1191];-  const SWord8  s1193 = (SWord8) s1190;-  const SWord8  s1194 = table2[s1193];-  const SWord16 s1195 = (SWord16) s332;-  const SWord8  s1196 = (SWord8) (s1195 >> 8);-  const SWord8  s1197 = table3[s1196];-  const SWord8  s1198 = (SWord8) s1195;-  const SWord8  s1199 = table4[s1198];-  const SWord8  s1200 = s1197 ^ s1199;-  const SWord8  s1201 = s1194 ^ s1200;-  const SWord8  s1202 = s1192 ^ s1201;-  const SWord8  s1203 = table4[s1191];-  const SWord8  s1204 = table1[s1193];-  const SWord8  s1205 = table2[s1196];-  const SWord8  s1206 = table3[s1198];-  const SWord8  s1207 = s1205 ^ s1206;-  const SWord8  s1208 = s1204 ^ s1207;-  const SWord8  s1209 = s1203 ^ s1208;-  const SWord16 s1210 = (((SWord16) s1202) << 8) | ((SWord16) s1209);-  const SWord8  s1211 = table3[s1191];-  const SWord8  s1212 = table4[s1193];-  const SWord8  s1213 = table1[s1196];-  const SWord8  s1214 = table2[s1198];-  const SWord8  s1215 = s1213 ^ s1214;-  const SWord8  s1216 = s1212 ^ s1215;-  const SWord8  s1217 = s1211 ^ s1216;-  const SWord8  s1218 = table2[s1191];-  const SWord8  s1219 = table3[s1193];-  const SWord8  s1220 = table4[s1196];-  const SWord8  s1221 = table1[s1198];-  const SWord8  s1222 = s1220 ^ s1221;-  const SWord8  s1223 = s1219 ^ s1222;-  const SWord8  s1224 = s1218 ^ s1223;-  const SWord16 s1225 = (((SWord16) s1217) << 8) | ((SWord16) s1224);-  const SWord32 s1226 = (((SWord32) s1210) << 16) | ((SWord32) s1225);-  const SWord16 s1227 = (SWord16) (s333 >> 16);-  const SWord8  s1228 = (SWord8) (s1227 >> 8);-  const SWord8  s1229 = table1[s1228];-  const SWord8  s1230 = (SWord8) s1227;-  const SWord8  s1231 = table2[s1230];-  const SWord16 s1232 = (SWord16) s333;-  const SWord8  s1233 = (SWord8) (s1232 >> 8);-  const SWord8  s1234 = table3[s1233];-  const SWord8  s1235 = (SWord8) s1232;-  const SWord8  s1236 = table4[s1235];-  const SWord8  s1237 = s1234 ^ s1236;-  const SWord8  s1238 = s1231 ^ s1237;-  const SWord8  s1239 = s1229 ^ s1238;-  const SWord8  s1240 = table4[s1228];-  const SWord8  s1241 = table1[s1230];-  const SWord8  s1242 = table2[s1233];-  const SWord8  s1243 = table3[s1235];-  const SWord8  s1244 = s1242 ^ s1243;-  const SWord8  s1245 = s1241 ^ s1244;-  const SWord8  s1246 = s1240 ^ s1245;-  const SWord16 s1247 = (((SWord16) s1239) << 8) | ((SWord16) s1246);-  const SWord8  s1248 = table3[s1228];-  const SWord8  s1249 = table4[s1230];-  const SWord8  s1250 = table1[s1233];-  const SWord8  s1251 = table2[s1235];-  const SWord8  s1252 = s1250 ^ s1251;-  const SWord8  s1253 = s1249 ^ s1252;-  const SWord8  s1254 = s1248 ^ s1253;-  const SWord8  s1255 = table2[s1228];-  const SWord8  s1256 = table3[s1230];-  const SWord8  s1257 = table4[s1233];-  const SWord8  s1258 = table1[s1235];-  const SWord8  s1259 = s1257 ^ s1258;-  const SWord8  s1260 = s1256 ^ s1259;-  const SWord8  s1261 = s1255 ^ s1260;-  const SWord16 s1262 = (((SWord16) s1254) << 8) | ((SWord16) s1261);-  const SWord32 s1263 = (((SWord32) s1247) << 16) | ((SWord32) s1262);-  const SWord16 s1264 = (SWord16) (s334 >> 16);-  const SWord8  s1265 = (SWord8) (s1264 >> 8);-  const SWord8  s1266 = table1[s1265];-  const SWord8  s1267 = (SWord8) s1264;-  const SWord8  s1268 = table2[s1267];-  const SWord16 s1269 = (SWord16) s334;-  const SWord8  s1270 = (SWord8) (s1269 >> 8);-  const SWord8  s1271 = table3[s1270];-  const SWord8  s1272 = (SWord8) s1269;-  const SWord8  s1273 = table4[s1272];-  const SWord8  s1274 = s1271 ^ s1273;-  const SWord8  s1275 = s1268 ^ s1274;-  const SWord8  s1276 = s1266 ^ s1275;-  const SWord8  s1277 = table4[s1265];-  const SWord8  s1278 = table1[s1267];-  const SWord8  s1279 = table2[s1270];-  const SWord8  s1280 = table3[s1272];-  const SWord8  s1281 = s1279 ^ s1280;-  const SWord8  s1282 = s1278 ^ s1281;-  const SWord8  s1283 = s1277 ^ s1282;-  const SWord16 s1284 = (((SWord16) s1276) << 8) | ((SWord16) s1283);-  const SWord8  s1285 = table3[s1265];-  const SWord8  s1286 = table4[s1267];-  const SWord8  s1287 = table1[s1270];-  const SWord8  s1288 = table2[s1272];-  const SWord8  s1289 = s1287 ^ s1288;-  const SWord8  s1290 = s1286 ^ s1289;-  const SWord8  s1291 = s1285 ^ s1290;-  const SWord8  s1292 = table2[s1265];-  const SWord8  s1293 = table3[s1267];-  const SWord8  s1294 = table4[s1270];-  const SWord8  s1295 = table1[s1272];-  const SWord8  s1296 = s1294 ^ s1295;-  const SWord8  s1297 = s1293 ^ s1296;-  const SWord8  s1298 = s1292 ^ s1297;-  const SWord16 s1299 = (((SWord16) s1291) << 8) | ((SWord16) s1298);-  const SWord32 s1300 = (((SWord32) s1284) << 16) | ((SWord32) s1299);-  const SWord16 s1301 = (SWord16) (s335 >> 16);-  const SWord8  s1302 = (SWord8) (s1301 >> 8);-  const SWord8  s1303 = table1[s1302];-  const SWord8  s1304 = (SWord8) s1301;-  const SWord8  s1305 = table2[s1304];-  const SWord16 s1306 = (SWord16) s335;-  const SWord8  s1307 = (SWord8) (s1306 >> 8);-  const SWord8  s1308 = table3[s1307];-  const SWord8  s1309 = (SWord8) s1306;-  const SWord8  s1310 = table4[s1309];-  const SWord8  s1311 = s1308 ^ s1310;-  const SWord8  s1312 = s1305 ^ s1311;-  const SWord8  s1313 = s1303 ^ s1312;-  const SWord8  s1314 = table4[s1302];-  const SWord8  s1315 = table1[s1304];-  const SWord8  s1316 = table2[s1307];-  const SWord8  s1317 = table3[s1309];-  const SWord8  s1318 = s1316 ^ s1317;-  const SWord8  s1319 = s1315 ^ s1318;-  const SWord8  s1320 = s1314 ^ s1319;-  const SWord16 s1321 = (((SWord16) s1313) << 8) | ((SWord16) s1320);-  const SWord8  s1322 = table3[s1302];-  const SWord8  s1323 = table4[s1304];-  const SWord8  s1324 = table1[s1307];-  const SWord8  s1325 = table2[s1309];-  const SWord8  s1326 = s1324 ^ s1325;-  const SWord8  s1327 = s1323 ^ s1326;-  const SWord8  s1328 = s1322 ^ s1327;-  const SWord8  s1329 = table2[s1302];-  const SWord8  s1330 = table3[s1304];-  const SWord8  s1331 = table4[s1307];-  const SWord8  s1332 = table1[s1309];-  const SWord8  s1333 = s1331 ^ s1332;-  const SWord8  s1334 = s1330 ^ s1333;-  const SWord8  s1335 = s1329 ^ s1334;-  const SWord16 s1336 = (((SWord16) s1328) << 8) | ((SWord16) s1335);-  const SWord32 s1337 = (((SWord32) s1321) << 16) | ((SWord32) s1336);-  const SWord16 s1338 = (SWord16) (s313 >> 16);-  const SWord8  s1339 = (SWord8) (s1338 >> 8);-  const SWord8  s1340 = table1[s1339];-  const SWord8  s1341 = (SWord8) s1338;-  const SWord8  s1342 = table2[s1341];-  const SWord16 s1343 = (SWord16) s313;-  const SWord8  s1344 = (SWord8) (s1343 >> 8);-  const SWord8  s1345 = table3[s1344];-  const SWord8  s1346 = (SWord8) s1343;-  const SWord8  s1347 = table4[s1346];-  const SWord8  s1348 = s1345 ^ s1347;-  const SWord8  s1349 = s1342 ^ s1348;-  const SWord8  s1350 = s1340 ^ s1349;-  const SWord8  s1351 = table4[s1339];-  const SWord8  s1352 = table1[s1341];-  const SWord8  s1353 = table2[s1344];-  const SWord8  s1354 = table3[s1346];-  const SWord8  s1355 = s1353 ^ s1354;-  const SWord8  s1356 = s1352 ^ s1355;-  const SWord8  s1357 = s1351 ^ s1356;-  const SWord16 s1358 = (((SWord16) s1350) << 8) | ((SWord16) s1357);-  const SWord8  s1359 = table3[s1339];-  const SWord8  s1360 = table4[s1341];-  const SWord8  s1361 = table1[s1344];-  const SWord8  s1362 = table2[s1346];-  const SWord8  s1363 = s1361 ^ s1362;-  const SWord8  s1364 = s1360 ^ s1363;-  const SWord8  s1365 = s1359 ^ s1364;-  const SWord8  s1366 = table2[s1339];-  const SWord8  s1367 = table3[s1341];-  const SWord8  s1368 = table4[s1344];-  const SWord8  s1369 = table1[s1346];-  const SWord8  s1370 = s1368 ^ s1369;-  const SWord8  s1371 = s1367 ^ s1370;-  const SWord8  s1372 = s1366 ^ s1371;-  const SWord16 s1373 = (((SWord16) s1365) << 8) | ((SWord16) s1372);-  const SWord32 s1374 = (((SWord32) s1358) << 16) | ((SWord32) s1373);-  const SWord16 s1375 = (SWord16) (s314 >> 16);-  const SWord8  s1376 = (SWord8) (s1375 >> 8);-  const SWord8  s1377 = table1[s1376];-  const SWord8  s1378 = (SWord8) s1375;-  const SWord8  s1379 = table2[s1378];-  const SWord16 s1380 = (SWord16) s314;-  const SWord8  s1381 = (SWord8) (s1380 >> 8);-  const SWord8  s1382 = table3[s1381];-  const SWord8  s1383 = (SWord8) s1380;-  const SWord8  s1384 = table4[s1383];-  const SWord8  s1385 = s1382 ^ s1384;-  const SWord8  s1386 = s1379 ^ s1385;-  const SWord8  s1387 = s1377 ^ s1386;-  const SWord8  s1388 = table4[s1376];-  const SWord8  s1389 = table1[s1378];-  const SWord8  s1390 = table2[s1381];-  const SWord8  s1391 = table3[s1383];-  const SWord8  s1392 = s1390 ^ s1391;-  const SWord8  s1393 = s1389 ^ s1392;-  const SWord8  s1394 = s1388 ^ s1393;-  const SWord16 s1395 = (((SWord16) s1387) << 8) | ((SWord16) s1394);-  const SWord8  s1396 = table3[s1376];-  const SWord8  s1397 = table4[s1378];-  const SWord8  s1398 = table1[s1381];-  const SWord8  s1399 = table2[s1383];-  const SWord8  s1400 = s1398 ^ s1399;-  const SWord8  s1401 = s1397 ^ s1400;-  const SWord8  s1402 = s1396 ^ s1401;-  const SWord8  s1403 = table2[s1376];-  const SWord8  s1404 = table3[s1378];-  const SWord8  s1405 = table4[s1381];-  const SWord8  s1406 = table1[s1383];-  const SWord8  s1407 = s1405 ^ s1406;-  const SWord8  s1408 = s1404 ^ s1407;-  const SWord8  s1409 = s1403 ^ s1408;-  const SWord16 s1410 = (((SWord16) s1402) << 8) | ((SWord16) s1409);-  const SWord32 s1411 = (((SWord32) s1395) << 16) | ((SWord32) s1410);-  const SWord16 s1412 = (SWord16) (s315 >> 16);-  const SWord8  s1413 = (SWord8) (s1412 >> 8);-  const SWord8  s1414 = table1[s1413];-  const SWord8  s1415 = (SWord8) s1412;-  const SWord8  s1416 = table2[s1415];-  const SWord16 s1417 = (SWord16) s315;-  const SWord8  s1418 = (SWord8) (s1417 >> 8);-  const SWord8  s1419 = table3[s1418];-  const SWord8  s1420 = (SWord8) s1417;-  const SWord8  s1421 = table4[s1420];-  const SWord8  s1422 = s1419 ^ s1421;-  const SWord8  s1423 = s1416 ^ s1422;-  const SWord8  s1424 = s1414 ^ s1423;-  const SWord8  s1425 = table4[s1413];-  const SWord8  s1426 = table1[s1415];-  const SWord8  s1427 = table2[s1418];-  const SWord8  s1428 = table3[s1420];-  const SWord8  s1429 = s1427 ^ s1428;-  const SWord8  s1430 = s1426 ^ s1429;-  const SWord8  s1431 = s1425 ^ s1430;-  const SWord16 s1432 = (((SWord16) s1424) << 8) | ((SWord16) s1431);-  const SWord8  s1433 = table3[s1413];-  const SWord8  s1434 = table4[s1415];-  const SWord8  s1435 = table1[s1418];-  const SWord8  s1436 = table2[s1420];-  const SWord8  s1437 = s1435 ^ s1436;-  const SWord8  s1438 = s1434 ^ s1437;-  const SWord8  s1439 = s1433 ^ s1438;-  const SWord8  s1440 = table2[s1413];-  const SWord8  s1441 = table3[s1415];-  const SWord8  s1442 = table4[s1418];-  const SWord8  s1443 = table1[s1420];-  const SWord8  s1444 = s1442 ^ s1443;-  const SWord8  s1445 = s1441 ^ s1444;-  const SWord8  s1446 = s1440 ^ s1445;-  const SWord16 s1447 = (((SWord16) s1439) << 8) | ((SWord16) s1446);-  const SWord32 s1448 = (((SWord32) s1432) << 16) | ((SWord32) s1447);-  const SWord16 s1449 = (SWord16) (s316 >> 16);-  const SWord8  s1450 = (SWord8) (s1449 >> 8);-  const SWord8  s1451 = table1[s1450];-  const SWord8  s1452 = (SWord8) s1449;-  const SWord8  s1453 = table2[s1452];-  const SWord16 s1454 = (SWord16) s316;-  const SWord8  s1455 = (SWord8) (s1454 >> 8);-  const SWord8  s1456 = table3[s1455];-  const SWord8  s1457 = (SWord8) s1454;-  const SWord8  s1458 = table4[s1457];-  const SWord8  s1459 = s1456 ^ s1458;-  const SWord8  s1460 = s1453 ^ s1459;-  const SWord8  s1461 = s1451 ^ s1460;-  const SWord8  s1462 = table4[s1450];-  const SWord8  s1463 = table1[s1452];-  const SWord8  s1464 = table2[s1455];-  const SWord8  s1465 = table3[s1457];-  const SWord8  s1466 = s1464 ^ s1465;-  const SWord8  s1467 = s1463 ^ s1466;-  const SWord8  s1468 = s1462 ^ s1467;-  const SWord16 s1469 = (((SWord16) s1461) << 8) | ((SWord16) s1468);-  const SWord8  s1470 = table3[s1450];-  const SWord8  s1471 = table4[s1452];-  const SWord8  s1472 = table1[s1455];-  const SWord8  s1473 = table2[s1457];-  const SWord8  s1474 = s1472 ^ s1473;-  const SWord8  s1475 = s1471 ^ s1474;-  const SWord8  s1476 = s1470 ^ s1475;-  const SWord8  s1477 = table2[s1450];-  const SWord8  s1478 = table3[s1452];-  const SWord8  s1479 = table4[s1455];-  const SWord8  s1480 = table1[s1457];-  const SWord8  s1481 = s1479 ^ s1480;-  const SWord8  s1482 = s1478 ^ s1481;-  const SWord8  s1483 = s1477 ^ s1482;-  const SWord16 s1484 = (((SWord16) s1476) << 8) | ((SWord16) s1483);-  const SWord32 s1485 = (((SWord32) s1469) << 16) | ((SWord32) s1484);-  const SWord16 s1486 = (SWord16) (s294 >> 16);-  const SWord8  s1487 = (SWord8) (s1486 >> 8);-  const SWord8  s1488 = table1[s1487];-  const SWord8  s1489 = (SWord8) s1486;-  const SWord8  s1490 = table2[s1489];-  const SWord16 s1491 = (SWord16) s294;-  const SWord8  s1492 = (SWord8) (s1491 >> 8);-  const SWord8  s1493 = table3[s1492];-  const SWord8  s1494 = (SWord8) s1491;-  const SWord8  s1495 = table4[s1494];-  const SWord8  s1496 = s1493 ^ s1495;-  const SWord8  s1497 = s1490 ^ s1496;-  const SWord8  s1498 = s1488 ^ s1497;-  const SWord8  s1499 = table4[s1487];-  const SWord8  s1500 = table1[s1489];-  const SWord8  s1501 = table2[s1492];-  const SWord8  s1502 = table3[s1494];-  const SWord8  s1503 = s1501 ^ s1502;-  const SWord8  s1504 = s1500 ^ s1503;-  const SWord8  s1505 = s1499 ^ s1504;-  const SWord16 s1506 = (((SWord16) s1498) << 8) | ((SWord16) s1505);-  const SWord8  s1507 = table3[s1487];-  const SWord8  s1508 = table4[s1489];-  const SWord8  s1509 = table1[s1492];-  const SWord8  s1510 = table2[s1494];-  const SWord8  s1511 = s1509 ^ s1510;-  const SWord8  s1512 = s1508 ^ s1511;-  const SWord8  s1513 = s1507 ^ s1512;-  const SWord8  s1514 = table2[s1487];-  const SWord8  s1515 = table3[s1489];-  const SWord8  s1516 = table4[s1492];-  const SWord8  s1517 = table1[s1494];-  const SWord8  s1518 = s1516 ^ s1517;-  const SWord8  s1519 = s1515 ^ s1518;-  const SWord8  s1520 = s1514 ^ s1519;-  const SWord16 s1521 = (((SWord16) s1513) << 8) | ((SWord16) s1520);-  const SWord32 s1522 = (((SWord32) s1506) << 16) | ((SWord32) s1521);-  const SWord16 s1523 = (SWord16) (s295 >> 16);-  const SWord8  s1524 = (SWord8) (s1523 >> 8);-  const SWord8  s1525 = table1[s1524];-  const SWord8  s1526 = (SWord8) s1523;-  const SWord8  s1527 = table2[s1526];-  const SWord16 s1528 = (SWord16) s295;-  const SWord8  s1529 = (SWord8) (s1528 >> 8);-  const SWord8  s1530 = table3[s1529];-  const SWord8  s1531 = (SWord8) s1528;-  const SWord8  s1532 = table4[s1531];-  const SWord8  s1533 = s1530 ^ s1532;-  const SWord8  s1534 = s1527 ^ s1533;-  const SWord8  s1535 = s1525 ^ s1534;-  const SWord8  s1536 = table4[s1524];-  const SWord8  s1537 = table1[s1526];-  const SWord8  s1538 = table2[s1529];-  const SWord8  s1539 = table3[s1531];-  const SWord8  s1540 = s1538 ^ s1539;-  const SWord8  s1541 = s1537 ^ s1540;-  const SWord8  s1542 = s1536 ^ s1541;-  const SWord16 s1543 = (((SWord16) s1535) << 8) | ((SWord16) s1542);-  const SWord8  s1544 = table3[s1524];-  const SWord8  s1545 = table4[s1526];-  const SWord8  s1546 = table1[s1529];-  const SWord8  s1547 = table2[s1531];-  const SWord8  s1548 = s1546 ^ s1547;-  const SWord8  s1549 = s1545 ^ s1548;-  const SWord8  s1550 = s1544 ^ s1549;-  const SWord8  s1551 = table2[s1524];-  const SWord8  s1552 = table3[s1526];-  const SWord8  s1553 = table4[s1529];-  const SWord8  s1554 = table1[s1531];-  const SWord8  s1555 = s1553 ^ s1554;-  const SWord8  s1556 = s1552 ^ s1555;-  const SWord8  s1557 = s1551 ^ s1556;-  const SWord16 s1558 = (((SWord16) s1550) << 8) | ((SWord16) s1557);-  const SWord32 s1559 = (((SWord32) s1543) << 16) | ((SWord32) s1558);-  const SWord16 s1560 = (SWord16) (s296 >> 16);-  const SWord8  s1561 = (SWord8) (s1560 >> 8);-  const SWord8  s1562 = table1[s1561];-  const SWord8  s1563 = (SWord8) s1560;-  const SWord8  s1564 = table2[s1563];-  const SWord16 s1565 = (SWord16) s296;-  const SWord8  s1566 = (SWord8) (s1565 >> 8);-  const SWord8  s1567 = table3[s1566];-  const SWord8  s1568 = (SWord8) s1565;-  const SWord8  s1569 = table4[s1568];-  const SWord8  s1570 = s1567 ^ s1569;-  const SWord8  s1571 = s1564 ^ s1570;-  const SWord8  s1572 = s1562 ^ s1571;-  const SWord8  s1573 = table4[s1561];-  const SWord8  s1574 = table1[s1563];-  const SWord8  s1575 = table2[s1566];-  const SWord8  s1576 = table3[s1568];-  const SWord8  s1577 = s1575 ^ s1576;-  const SWord8  s1578 = s1574 ^ s1577;-  const SWord8  s1579 = s1573 ^ s1578;-  const SWord16 s1580 = (((SWord16) s1572) << 8) | ((SWord16) s1579);-  const SWord8  s1581 = table3[s1561];-  const SWord8  s1582 = table4[s1563];-  const SWord8  s1583 = table1[s1566];-  const SWord8  s1584 = table2[s1568];-  const SWord8  s1585 = s1583 ^ s1584;-  const SWord8  s1586 = s1582 ^ s1585;-  const SWord8  s1587 = s1581 ^ s1586;-  const SWord8  s1588 = table2[s1561];-  const SWord8  s1589 = table3[s1563];-  const SWord8  s1590 = table4[s1566];-  const SWord8  s1591 = table1[s1568];-  const SWord8  s1592 = s1590 ^ s1591;-  const SWord8  s1593 = s1589 ^ s1592;-  const SWord8  s1594 = s1588 ^ s1593;-  const SWord16 s1595 = (((SWord16) s1587) << 8) | ((SWord16) s1594);-  const SWord32 s1596 = (((SWord32) s1580) << 16) | ((SWord32) s1595);-  const SWord16 s1597 = (SWord16) (s297 >> 16);-  const SWord8  s1598 = (SWord8) (s1597 >> 8);-  const SWord8  s1599 = table1[s1598];-  const SWord8  s1600 = (SWord8) s1597;-  const SWord8  s1601 = table2[s1600];-  const SWord16 s1602 = (SWord16) s297;-  const SWord8  s1603 = (SWord8) (s1602 >> 8);-  const SWord8  s1604 = table3[s1603];-  const SWord8  s1605 = (SWord8) s1602;-  const SWord8  s1606 = table4[s1605];-  const SWord8  s1607 = s1604 ^ s1606;-  const SWord8  s1608 = s1601 ^ s1607;-  const SWord8  s1609 = s1599 ^ s1608;-  const SWord8  s1610 = table4[s1598];-  const SWord8  s1611 = table1[s1600];-  const SWord8  s1612 = table2[s1603];-  const SWord8  s1613 = table3[s1605];-  const SWord8  s1614 = s1612 ^ s1613;-  const SWord8  s1615 = s1611 ^ s1614;-  const SWord8  s1616 = s1610 ^ s1615;-  const SWord16 s1617 = (((SWord16) s1609) << 8) | ((SWord16) s1616);-  const SWord8  s1618 = table3[s1598];-  const SWord8  s1619 = table4[s1600];-  const SWord8  s1620 = table1[s1603];-  const SWord8  s1621 = table2[s1605];-  const SWord8  s1622 = s1620 ^ s1621;-  const SWord8  s1623 = s1619 ^ s1622;-  const SWord8  s1624 = s1618 ^ s1623;-  const SWord8  s1625 = table2[s1598];-  const SWord8  s1626 = table3[s1600];-  const SWord8  s1627 = table4[s1603];-  const SWord8  s1628 = table1[s1605];-  const SWord8  s1629 = s1627 ^ s1628;-  const SWord8  s1630 = s1626 ^ s1629;-  const SWord8  s1631 = s1625 ^ s1630;-  const SWord16 s1632 = (((SWord16) s1624) << 8) | ((SWord16) s1631);-  const SWord32 s1633 = (((SWord32) s1617) << 16) | ((SWord32) s1632);-  const SWord16 s1634 = (SWord16) (s275 >> 16);-  const SWord8  s1635 = (SWord8) (s1634 >> 8);-  const SWord8  s1636 = table1[s1635];-  const SWord8  s1637 = (SWord8) s1634;-  const SWord8  s1638 = table2[s1637];-  const SWord16 s1639 = (SWord16) s275;-  const SWord8  s1640 = (SWord8) (s1639 >> 8);-  const SWord8  s1641 = table3[s1640];-  const SWord8  s1642 = (SWord8) s1639;-  const SWord8  s1643 = table4[s1642];-  const SWord8  s1644 = s1641 ^ s1643;-  const SWord8  s1645 = s1638 ^ s1644;-  const SWord8  s1646 = s1636 ^ s1645;-  const SWord8  s1647 = table4[s1635];-  const SWord8  s1648 = table1[s1637];-  const SWord8  s1649 = table2[s1640];-  const SWord8  s1650 = table3[s1642];-  const SWord8  s1651 = s1649 ^ s1650;-  const SWord8  s1652 = s1648 ^ s1651;-  const SWord8  s1653 = s1647 ^ s1652;-  const SWord16 s1654 = (((SWord16) s1646) << 8) | ((SWord16) s1653);-  const SWord8  s1655 = table3[s1635];-  const SWord8  s1656 = table4[s1637];-  const SWord8  s1657 = table1[s1640];-  const SWord8  s1658 = table2[s1642];-  const SWord8  s1659 = s1657 ^ s1658;-  const SWord8  s1660 = s1656 ^ s1659;-  const SWord8  s1661 = s1655 ^ s1660;-  const SWord8  s1662 = table2[s1635];-  const SWord8  s1663 = table3[s1637];-  const SWord8  s1664 = table4[s1640];-  const SWord8  s1665 = table1[s1642];-  const SWord8  s1666 = s1664 ^ s1665;-  const SWord8  s1667 = s1663 ^ s1666;-  const SWord8  s1668 = s1662 ^ s1667;-  const SWord16 s1669 = (((SWord16) s1661) << 8) | ((SWord16) s1668);-  const SWord32 s1670 = (((SWord32) s1654) << 16) | ((SWord32) s1669);-  const SWord16 s1671 = (SWord16) (s276 >> 16);-  const SWord8  s1672 = (SWord8) (s1671 >> 8);-  const SWord8  s1673 = table1[s1672];-  const SWord8  s1674 = (SWord8) s1671;-  const SWord8  s1675 = table2[s1674];-  const SWord16 s1676 = (SWord16) s276;-  const SWord8  s1677 = (SWord8) (s1676 >> 8);-  const SWord8  s1678 = table3[s1677];-  const SWord8  s1679 = (SWord8) s1676;-  const SWord8  s1680 = table4[s1679];-  const SWord8  s1681 = s1678 ^ s1680;-  const SWord8  s1682 = s1675 ^ s1681;-  const SWord8  s1683 = s1673 ^ s1682;-  const SWord8  s1684 = table4[s1672];-  const SWord8  s1685 = table1[s1674];-  const SWord8  s1686 = table2[s1677];-  const SWord8  s1687 = table3[s1679];-  const SWord8  s1688 = s1686 ^ s1687;-  const SWord8  s1689 = s1685 ^ s1688;-  const SWord8  s1690 = s1684 ^ s1689;-  const SWord16 s1691 = (((SWord16) s1683) << 8) | ((SWord16) s1690);-  const SWord8  s1692 = table3[s1672];-  const SWord8  s1693 = table4[s1674];-  const SWord8  s1694 = table1[s1677];-  const SWord8  s1695 = table2[s1679];-  const SWord8  s1696 = s1694 ^ s1695;-  const SWord8  s1697 = s1693 ^ s1696;-  const SWord8  s1698 = s1692 ^ s1697;-  const SWord8  s1699 = table2[s1672];-  const SWord8  s1700 = table3[s1674];-  const SWord8  s1701 = table4[s1677];-  const SWord8  s1702 = table1[s1679];-  const SWord8  s1703 = s1701 ^ s1702;-  const SWord8  s1704 = s1700 ^ s1703;-  const SWord8  s1705 = s1699 ^ s1704;-  const SWord16 s1706 = (((SWord16) s1698) << 8) | ((SWord16) s1705);-  const SWord32 s1707 = (((SWord32) s1691) << 16) | ((SWord32) s1706);-  const SWord16 s1708 = (SWord16) (s277 >> 16);-  const SWord8  s1709 = (SWord8) (s1708 >> 8);-  const SWord8  s1710 = table1[s1709];-  const SWord8  s1711 = (SWord8) s1708;-  const SWord8  s1712 = table2[s1711];-  const SWord16 s1713 = (SWord16) s277;-  const SWord8  s1714 = (SWord8) (s1713 >> 8);-  const SWord8  s1715 = table3[s1714];-  const SWord8  s1716 = (SWord8) s1713;-  const SWord8  s1717 = table4[s1716];-  const SWord8  s1718 = s1715 ^ s1717;-  const SWord8  s1719 = s1712 ^ s1718;-  const SWord8  s1720 = s1710 ^ s1719;-  const SWord8  s1721 = table4[s1709];-  const SWord8  s1722 = table1[s1711];-  const SWord8  s1723 = table2[s1714];-  const SWord8  s1724 = table3[s1716];-  const SWord8  s1725 = s1723 ^ s1724;-  const SWord8  s1726 = s1722 ^ s1725;-  const SWord8  s1727 = s1721 ^ s1726;-  const SWord16 s1728 = (((SWord16) s1720) << 8) | ((SWord16) s1727);-  const SWord8  s1729 = table3[s1709];-  const SWord8  s1730 = table4[s1711];-  const SWord8  s1731 = table1[s1714];-  const SWord8  s1732 = table2[s1716];-  const SWord8  s1733 = s1731 ^ s1732;-  const SWord8  s1734 = s1730 ^ s1733;-  const SWord8  s1735 = s1729 ^ s1734;-  const SWord8  s1736 = table2[s1709];-  const SWord8  s1737 = table3[s1711];-  const SWord8  s1738 = table4[s1714];-  const SWord8  s1739 = table1[s1716];-  const SWord8  s1740 = s1738 ^ s1739;-  const SWord8  s1741 = s1737 ^ s1740;-  const SWord8  s1742 = s1736 ^ s1741;-  const SWord16 s1743 = (((SWord16) s1735) << 8) | ((SWord16) s1742);-  const SWord32 s1744 = (((SWord32) s1728) << 16) | ((SWord32) s1743);-  const SWord16 s1745 = (SWord16) (s278 >> 16);-  const SWord8  s1746 = (SWord8) (s1745 >> 8);-  const SWord8  s1747 = table1[s1746];-  const SWord8  s1748 = (SWord8) s1745;-  const SWord8  s1749 = table2[s1748];-  const SWord16 s1750 = (SWord16) s278;-  const SWord8  s1751 = (SWord8) (s1750 >> 8);-  const SWord8  s1752 = table3[s1751];-  const SWord8  s1753 = (SWord8) s1750;-  const SWord8  s1754 = table4[s1753];-  const SWord8  s1755 = s1752 ^ s1754;-  const SWord8  s1756 = s1749 ^ s1755;-  const SWord8  s1757 = s1747 ^ s1756;-  const SWord8  s1758 = table4[s1746];-  const SWord8  s1759 = table1[s1748];-  const SWord8  s1760 = table2[s1751];-  const SWord8  s1761 = table3[s1753];-  const SWord8  s1762 = s1760 ^ s1761;-  const SWord8  s1763 = s1759 ^ s1762;-  const SWord8  s1764 = s1758 ^ s1763;-  const SWord16 s1765 = (((SWord16) s1757) << 8) | ((SWord16) s1764);-  const SWord8  s1766 = table3[s1746];-  const SWord8  s1767 = table4[s1748];-  const SWord8  s1768 = table1[s1751];-  const SWord8  s1769 = table2[s1753];-  const SWord8  s1770 = s1768 ^ s1769;-  const SWord8  s1771 = s1767 ^ s1770;-  const SWord8  s1772 = s1766 ^ s1771;-  const SWord8  s1773 = table2[s1746];-  const SWord8  s1774 = table3[s1748];-  const SWord8  s1775 = table4[s1751];-  const SWord8  s1776 = table1[s1753];-  const SWord8  s1777 = s1775 ^ s1776;-  const SWord8  s1778 = s1774 ^ s1777;-  const SWord8  s1779 = s1773 ^ s1778;-  const SWord16 s1780 = (((SWord16) s1772) << 8) | ((SWord16) s1779);-  const SWord32 s1781 = (((SWord32) s1765) << 16) | ((SWord32) s1780);--  encKS[0] = s0;-  encKS[1] = s1;-  encKS[2] = s2;-  encKS[3] = s3;-  encKS[4] = s275;-  encKS[5] = s276;-  encKS[6] = s277;-  encKS[7] = s278;-  encKS[8] = s294;-  encKS[9] = s295;-  encKS[10] = s296;-  encKS[11] = s297;-  encKS[12] = s313;-  encKS[13] = s314;-  encKS[14] = s315;-  encKS[15] = s316;-  encKS[16] = s332;-  encKS[17] = s333;-  encKS[18] = s334;-  encKS[19] = s335;-  encKS[20] = s351;-  encKS[21] = s352;-  encKS[22] = s353;-  encKS[23] = s354;-  encKS[24] = s370;-  encKS[25] = s371;-  encKS[26] = s372;-  encKS[27] = s373;-  encKS[28] = s389;-  encKS[29] = s390;-  encKS[30] = s391;-  encKS[31] = s392;-  encKS[32] = s408;-  encKS[33] = s409;-  encKS[34] = s410;-  encKS[35] = s411;-  encKS[36] = s427;-  encKS[37] = s428;-  encKS[38] = s429;-  encKS[39] = s430;-  encKS[40] = s446;-  encKS[41] = s447;-  encKS[42] = s448;-  encKS[43] = s449;-  decKS[0] = s446;-  decKS[1] = s447;-  decKS[2] = s448;-  decKS[3] = s449;-  decKS[4] = s486;-  decKS[5] = s523;-  decKS[6] = s560;-  decKS[7] = s597;-  decKS[8] = s634;-  decKS[9] = s671;-  decKS[10] = s708;-  decKS[11] = s745;-  decKS[12] = s782;-  decKS[13] = s819;-  decKS[14] = s856;-  decKS[15] = s893;-  decKS[16] = s930;-  decKS[17] = s967;-  decKS[18] = s1004;-  decKS[19] = s1041;-  decKS[20] = s1078;-  decKS[21] = s1115;-  decKS[22] = s1152;-  decKS[23] = s1189;-  decKS[24] = s1226;-  decKS[25] = s1263;-  decKS[26] = s1300;-  decKS[27] = s1337;-  decKS[28] = s1374;-  decKS[29] = s1411;-  decKS[30] = s1448;-  decKS[31] = s1485;-  decKS[32] = s1522;-  decKS[33] = s1559;-  decKS[34] = s1596;-  decKS[35] = s1633;-  decKS[36] = s1670;-  decKS[37] = s1707;-  decKS[38] = s1744;-  decKS[39] = s1781;-  decKS[40] = s0;-  decKS[41] = s1;-  decKS[42] = s2;-  decKS[43] = s3;-}-== END: "aes128KeySchedule.c" ==================-== BEGIN: "aes128BlockEncrypt.c" ================-/* File: "aes128BlockEncrypt.c". Automatically generated by SBV. Do not edit! */--#include "aes128Lib.h"--void aes128BlockEncrypt(const SWord32 *pt, const SWord32 *xkey,-                        SWord32 *ct)-{-  const SWord32 s0 = pt[0];-  const SWord32 s1 = pt[1];-  const SWord32 s2 = pt[2];-  const SWord32 s3 = pt[3];-  const SWord32 s4 = xkey[0];-  const SWord32 s5 = xkey[1];-  const SWord32 s6 = xkey[2];-  const SWord32 s7 = xkey[3];-  const SWord32 s8 = xkey[4];-  const SWord32 s9 = xkey[5];-  const SWord32 s10 = xkey[6];-  const SWord32 s11 = xkey[7];-  const SWord32 s12 = xkey[8];-  const SWord32 s13 = xkey[9];-  const SWord32 s14 = xkey[10];-  const SWord32 s15 = xkey[11];-  const SWord32 s16 = xkey[12];-  const SWord32 s17 = xkey[13];-  const SWord32 s18 = xkey[14];-  const SWord32 s19 = xkey[15];-  const SWord32 s20 = xkey[16];-  const SWord32 s21 = xkey[17];-  const SWord32 s22 = xkey[18];-  const SWord32 s23 = xkey[19];-  const SWord32 s24 = xkey[20];-  const SWord32 s25 = xkey[21];-  const SWord32 s26 = xkey[22];-  const SWord32 s27 = xkey[23];-  const SWord32 s28 = xkey[24];-  const SWord32 s29 = xkey[25];-  const SWord32 s30 = xkey[26];-  const SWord32 s31 = xkey[27];-  const SWord32 s32 = xkey[28];-  const SWord32 s33 = xkey[29];-  const SWord32 s34 = xkey[30];-  const SWord32 s35 = xkey[31];-  const SWord32 s36 = xkey[32];-  const SWord32 s37 = xkey[33];-  const SWord32 s38 = xkey[34];-  const SWord32 s39 = xkey[35];-  const SWord32 s40 = xkey[36];-  const SWord32 s41 = xkey[37];-  const SWord32 s42 = xkey[38];-  const SWord32 s43 = xkey[39];-  const SWord32 s44 = xkey[40];-  const SWord32 s45 = xkey[41];-  const SWord32 s46 = xkey[42];-  const SWord32 s47 = xkey[43];-  static const SWord8 table0[] = {-       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,-      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,-      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,-      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,-       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,-      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,-       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,-       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,-       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,-      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,-       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,-      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,-      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,-      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,-       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,-       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,-      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,-      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,-      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,-      104,  65, 153,  45,  15, 176,  84, 187,  22-  };-  static const SWord32 table1[] = {-      0xc66363a5UL, 0xf87c7c84UL, 0xee777799UL, 0xf67b7b8dUL,-      0xfff2f20dUL, 0xd66b6bbdUL, 0xde6f6fb1UL, 0x91c5c554UL,-      0x60303050UL, 0x02010103UL, 0xce6767a9UL, 0x562b2b7dUL,-      0xe7fefe19UL, 0xb5d7d762UL, 0x4dababe6UL, 0xec76769aUL,-      0x8fcaca45UL, 0x1f82829dUL, 0x89c9c940UL, 0xfa7d7d87UL,-      0xeffafa15UL, 0xb25959ebUL, 0x8e4747c9UL, 0xfbf0f00bUL,-      0x41adadecUL, 0xb3d4d467UL, 0x5fa2a2fdUL, 0x45afafeaUL,-      0x239c9cbfUL, 0x53a4a4f7UL, 0xe4727296UL, 0x9bc0c05bUL,-      0x75b7b7c2UL, 0xe1fdfd1cUL, 0x3d9393aeUL, 0x4c26266aUL,-      0x6c36365aUL, 0x7e3f3f41UL, 0xf5f7f702UL, 0x83cccc4fUL,-      0x6834345cUL, 0x51a5a5f4UL, 0xd1e5e534UL, 0xf9f1f108UL,-      0xe2717193UL, 0xabd8d873UL, 0x62313153UL, 0x2a15153fUL,-      0x0804040cUL, 0x95c7c752UL, 0x46232365UL, 0x9dc3c35eUL,-      0x30181828UL, 0x379696a1UL, 0x0a05050fUL, 0x2f9a9ab5UL,-      0x0e070709UL, 0x24121236UL, 0x1b80809bUL, 0xdfe2e23dUL,-      0xcdebeb26UL, 0x4e272769UL, 0x7fb2b2cdUL, 0xea75759fUL,-      0x1209091bUL, 0x1d83839eUL, 0x582c2c74UL, 0x341a1a2eUL,-      0x361b1b2dUL, 0xdc6e6eb2UL, 0xb45a5aeeUL, 0x5ba0a0fbUL,-      0xa45252f6UL, 0x763b3b4dUL, 0xb7d6d661UL, 0x7db3b3ceUL,-      0x5229297bUL, 0xdde3e33eUL, 0x5e2f2f71UL, 0x13848497UL,-      0xa65353f5UL, 0xb9d1d168UL, 0x00000000UL, 0xc1eded2cUL,-      0x40202060UL, 0xe3fcfc1fUL, 0x79b1b1c8UL, 0xb65b5bedUL,-      0xd46a6abeUL, 0x8dcbcb46UL, 0x67bebed9UL, 0x7239394bUL,-      0x944a4adeUL, 0x984c4cd4UL, 0xb05858e8UL, 0x85cfcf4aUL,-      0xbbd0d06bUL, 0xc5efef2aUL, 0x4faaaae5UL, 0xedfbfb16UL,-      0x864343c5UL, 0x9a4d4dd7UL, 0x66333355UL, 0x11858594UL,-      0x8a4545cfUL, 0xe9f9f910UL, 0x04020206UL, 0xfe7f7f81UL,-      0xa05050f0UL, 0x783c3c44UL, 0x259f9fbaUL, 0x4ba8a8e3UL,-      0xa25151f3UL, 0x5da3a3feUL, 0x804040c0UL, 0x058f8f8aUL,-      0x3f9292adUL, 0x219d9dbcUL, 0x70383848UL, 0xf1f5f504UL,-      0x63bcbcdfUL, 0x77b6b6c1UL, 0xafdada75UL, 0x42212163UL,-      0x20101030UL, 0xe5ffff1aUL, 0xfdf3f30eUL, 0xbfd2d26dUL,-      0x81cdcd4cUL, 0x180c0c14UL, 0x26131335UL, 0xc3ecec2fUL,-      0xbe5f5fe1UL, 0x359797a2UL, 0x884444ccUL, 0x2e171739UL,-      0x93c4c457UL, 0x55a7a7f2UL, 0xfc7e7e82UL, 0x7a3d3d47UL,-      0xc86464acUL, 0xba5d5de7UL, 0x3219192bUL, 0xe6737395UL,-      0xc06060a0UL, 0x19818198UL, 0x9e4f4fd1UL, 0xa3dcdc7fUL,-      0x44222266UL, 0x542a2a7eUL, 0x3b9090abUL, 0x0b888883UL,-      0x8c4646caUL, 0xc7eeee29UL, 0x6bb8b8d3UL, 0x2814143cUL,-      0xa7dede79UL, 0xbc5e5ee2UL, 0x160b0b1dUL, 0xaddbdb76UL,-      0xdbe0e03bUL, 0x64323256UL, 0x743a3a4eUL, 0x140a0a1eUL,-      0x924949dbUL, 0x0c06060aUL, 0x4824246cUL, 0xb85c5ce4UL,-      0x9fc2c25dUL, 0xbdd3d36eUL, 0x43acacefUL, 0xc46262a6UL,-      0x399191a8UL, 0x319595a4UL, 0xd3e4e437UL, 0xf279798bUL,-      0xd5e7e732UL, 0x8bc8c843UL, 0x6e373759UL, 0xda6d6db7UL,-      0x018d8d8cUL, 0xb1d5d564UL, 0x9c4e4ed2UL, 0x49a9a9e0UL,-      0xd86c6cb4UL, 0xac5656faUL, 0xf3f4f407UL, 0xcfeaea25UL,-      0xca6565afUL, 0xf47a7a8eUL, 0x47aeaee9UL, 0x10080818UL,-      0x6fbabad5UL, 0xf0787888UL, 0x4a25256fUL, 0x5c2e2e72UL,-      0x381c1c24UL, 0x57a6a6f1UL, 0x73b4b4c7UL, 0x97c6c651UL,-      0xcbe8e823UL, 0xa1dddd7cUL, 0xe874749cUL, 0x3e1f1f21UL,-      0x964b4bddUL, 0x61bdbddcUL, 0x0d8b8b86UL, 0x0f8a8a85UL,-      0xe0707090UL, 0x7c3e3e42UL, 0x71b5b5c4UL, 0xcc6666aaUL,-      0x904848d8UL, 0x06030305UL, 0xf7f6f601UL, 0x1c0e0e12UL,-      0xc26161a3UL, 0x6a35355fUL, 0xae5757f9UL, 0x69b9b9d0UL,-      0x17868691UL, 0x99c1c158UL, 0x3a1d1d27UL, 0x279e9eb9UL,-      0xd9e1e138UL, 0xebf8f813UL, 0x2b9898b3UL, 0x22111133UL,-      0xd26969bbUL, 0xa9d9d970UL, 0x078e8e89UL, 0x339494a7UL,-      0x2d9b9bb6UL, 0x3c1e1e22UL, 0x15878792UL, 0xc9e9e920UL,-      0x87cece49UL, 0xaa5555ffUL, 0x50282878UL, 0xa5dfdf7aUL,-      0x038c8c8fUL, 0x59a1a1f8UL, 0x09898980UL, 0x1a0d0d17UL,-      0x65bfbfdaUL, 0xd7e6e631UL, 0x844242c6UL, 0xd06868b8UL,-      0x824141c3UL, 0x299999b0UL, 0x5a2d2d77UL, 0x1e0f0f11UL,-      0x7bb0b0cbUL, 0xa85454fcUL, 0x6dbbbbd6UL, 0x2c16163aUL-  };-  static const SWord32 table2[] = {-      0xa5c66363UL, 0x84f87c7cUL, 0x99ee7777UL, 0x8df67b7bUL,-      0x0dfff2f2UL, 0xbdd66b6bUL, 0xb1de6f6fUL, 0x5491c5c5UL,-      0x50603030UL, 0x03020101UL, 0xa9ce6767UL, 0x7d562b2bUL,-      0x19e7fefeUL, 0x62b5d7d7UL, 0xe64dababUL, 0x9aec7676UL,-      0x458fcacaUL, 0x9d1f8282UL, 0x4089c9c9UL, 0x87fa7d7dUL,-      0x15effafaUL, 0xebb25959UL, 0xc98e4747UL, 0x0bfbf0f0UL,-      0xec41adadUL, 0x67b3d4d4UL, 0xfd5fa2a2UL, 0xea45afafUL,-      0xbf239c9cUL, 0xf753a4a4UL, 0x96e47272UL, 0x5b9bc0c0UL,-      0xc275b7b7UL, 0x1ce1fdfdUL, 0xae3d9393UL, 0x6a4c2626UL,-      0x5a6c3636UL, 0x417e3f3fUL, 0x02f5f7f7UL, 0x4f83ccccUL,-      0x5c683434UL, 0xf451a5a5UL, 0x34d1e5e5UL, 0x08f9f1f1UL,-      0x93e27171UL, 0x73abd8d8UL, 0x53623131UL, 0x3f2a1515UL,-      0x0c080404UL, 0x5295c7c7UL, 0x65462323UL, 0x5e9dc3c3UL,-      0x28301818UL, 0xa1379696UL, 0x0f0a0505UL, 0xb52f9a9aUL,-      0x090e0707UL, 0x36241212UL, 0x9b1b8080UL, 0x3ddfe2e2UL,-      0x26cdebebUL, 0x694e2727UL, 0xcd7fb2b2UL, 0x9fea7575UL,-      0x1b120909UL, 0x9e1d8383UL, 0x74582c2cUL, 0x2e341a1aUL,-      0x2d361b1bUL, 0xb2dc6e6eUL, 0xeeb45a5aUL, 0xfb5ba0a0UL,-      0xf6a45252UL, 0x4d763b3bUL, 0x61b7d6d6UL, 0xce7db3b3UL,-      0x7b522929UL, 0x3edde3e3UL, 0x715e2f2fUL, 0x97138484UL,-      0xf5a65353UL, 0x68b9d1d1UL, 0x00000000UL, 0x2cc1ededUL,-      0x60402020UL, 0x1fe3fcfcUL, 0xc879b1b1UL, 0xedb65b5bUL,-      0xbed46a6aUL, 0x468dcbcbUL, 0xd967bebeUL, 0x4b723939UL,-      0xde944a4aUL, 0xd4984c4cUL, 0xe8b05858UL, 0x4a85cfcfUL,-      0x6bbbd0d0UL, 0x2ac5efefUL, 0xe54faaaaUL, 0x16edfbfbUL,-      0xc5864343UL, 0xd79a4d4dUL, 0x55663333UL, 0x94118585UL,-      0xcf8a4545UL, 0x10e9f9f9UL, 0x06040202UL, 0x81fe7f7fUL,-      0xf0a05050UL, 0x44783c3cUL, 0xba259f9fUL, 0xe34ba8a8UL,-      0xf3a25151UL, 0xfe5da3a3UL, 0xc0804040UL, 0x8a058f8fUL,-      0xad3f9292UL, 0xbc219d9dUL, 0x48703838UL, 0x04f1f5f5UL,-      0xdf63bcbcUL, 0xc177b6b6UL, 0x75afdadaUL, 0x63422121UL,-      0x30201010UL, 0x1ae5ffffUL, 0x0efdf3f3UL, 0x6dbfd2d2UL,-      0x4c81cdcdUL, 0x14180c0cUL, 0x35261313UL, 0x2fc3ececUL,-      0xe1be5f5fUL, 0xa2359797UL, 0xcc884444UL, 0x392e1717UL,-      0x5793c4c4UL, 0xf255a7a7UL, 0x82fc7e7eUL, 0x477a3d3dUL,-      0xacc86464UL, 0xe7ba5d5dUL, 0x2b321919UL, 0x95e67373UL,-      0xa0c06060UL, 0x98198181UL, 0xd19e4f4fUL, 0x7fa3dcdcUL,-      0x66442222UL, 0x7e542a2aUL, 0xab3b9090UL, 0x830b8888UL,-      0xca8c4646UL, 0x29c7eeeeUL, 0xd36bb8b8UL, 0x3c281414UL,-      0x79a7dedeUL, 0xe2bc5e5eUL, 0x1d160b0bUL, 0x76addbdbUL,-      0x3bdbe0e0UL, 0x56643232UL, 0x4e743a3aUL, 0x1e140a0aUL,-      0xdb924949UL, 0x0a0c0606UL, 0x6c482424UL, 0xe4b85c5cUL,-      0x5d9fc2c2UL, 0x6ebdd3d3UL, 0xef43acacUL, 0xa6c46262UL,-      0xa8399191UL, 0xa4319595UL, 0x37d3e4e4UL, 0x8bf27979UL,-      0x32d5e7e7UL, 0x438bc8c8UL, 0x596e3737UL, 0xb7da6d6dUL,-      0x8c018d8dUL, 0x64b1d5d5UL, 0xd29c4e4eUL, 0xe049a9a9UL,-      0xb4d86c6cUL, 0xfaac5656UL, 0x07f3f4f4UL, 0x25cfeaeaUL,-      0xafca6565UL, 0x8ef47a7aUL, 0xe947aeaeUL, 0x18100808UL,-      0xd56fbabaUL, 0x88f07878UL, 0x6f4a2525UL, 0x725c2e2eUL,-      0x24381c1cUL, 0xf157a6a6UL, 0xc773b4b4UL, 0x5197c6c6UL,-      0x23cbe8e8UL, 0x7ca1ddddUL, 0x9ce87474UL, 0x213e1f1fUL,-      0xdd964b4bUL, 0xdc61bdbdUL, 0x860d8b8bUL, 0x850f8a8aUL,-      0x90e07070UL, 0x427c3e3eUL, 0xc471b5b5UL, 0xaacc6666UL,-      0xd8904848UL, 0x05060303UL, 0x01f7f6f6UL, 0x121c0e0eUL,-      0xa3c26161UL, 0x5f6a3535UL, 0xf9ae5757UL, 0xd069b9b9UL,-      0x91178686UL, 0x5899c1c1UL, 0x273a1d1dUL, 0xb9279e9eUL,-      0x38d9e1e1UL, 0x13ebf8f8UL, 0xb32b9898UL, 0x33221111UL,-      0xbbd26969UL, 0x70a9d9d9UL, 0x89078e8eUL, 0xa7339494UL,-      0xb62d9b9bUL, 0x223c1e1eUL, 0x92158787UL, 0x20c9e9e9UL,-      0x4987ceceUL, 0xffaa5555UL, 0x78502828UL, 0x7aa5dfdfUL,-      0x8f038c8cUL, 0xf859a1a1UL, 0x80098989UL, 0x171a0d0dUL,-      0xda65bfbfUL, 0x31d7e6e6UL, 0xc6844242UL, 0xb8d06868UL,-      0xc3824141UL, 0xb0299999UL, 0x775a2d2dUL, 0x111e0f0fUL,-      0xcb7bb0b0UL, 0xfca85454UL, 0xd66dbbbbUL, 0x3a2c1616UL-  };-  static const SWord32 table3[] = {-      0x63a5c663UL, 0x7c84f87cUL, 0x7799ee77UL, 0x7b8df67bUL,-      0xf20dfff2UL, 0x6bbdd66bUL, 0x6fb1de6fUL, 0xc55491c5UL,-      0x30506030UL, 0x01030201UL, 0x67a9ce67UL, 0x2b7d562bUL,-      0xfe19e7feUL, 0xd762b5d7UL, 0xabe64dabUL, 0x769aec76UL,-      0xca458fcaUL, 0x829d1f82UL, 0xc94089c9UL, 0x7d87fa7dUL,-      0xfa15effaUL, 0x59ebb259UL, 0x47c98e47UL, 0xf00bfbf0UL,-      0xadec41adUL, 0xd467b3d4UL, 0xa2fd5fa2UL, 0xafea45afUL,-      0x9cbf239cUL, 0xa4f753a4UL, 0x7296e472UL, 0xc05b9bc0UL,-      0xb7c275b7UL, 0xfd1ce1fdUL, 0x93ae3d93UL, 0x266a4c26UL,-      0x365a6c36UL, 0x3f417e3fUL, 0xf702f5f7UL, 0xcc4f83ccUL,-      0x345c6834UL, 0xa5f451a5UL, 0xe534d1e5UL, 0xf108f9f1UL,-      0x7193e271UL, 0xd873abd8UL, 0x31536231UL, 0x153f2a15UL,-      0x040c0804UL, 0xc75295c7UL, 0x23654623UL, 0xc35e9dc3UL,-      0x18283018UL, 0x96a13796UL, 0x050f0a05UL, 0x9ab52f9aUL,-      0x07090e07UL, 0x12362412UL, 0x809b1b80UL, 0xe23ddfe2UL,-      0xeb26cdebUL, 0x27694e27UL, 0xb2cd7fb2UL, 0x759fea75UL,-      0x091b1209UL, 0x839e1d83UL, 0x2c74582cUL, 0x1a2e341aUL,-      0x1b2d361bUL, 0x6eb2dc6eUL, 0x5aeeb45aUL, 0xa0fb5ba0UL,-      0x52f6a452UL, 0x3b4d763bUL, 0xd661b7d6UL, 0xb3ce7db3UL,-      0x297b5229UL, 0xe33edde3UL, 0x2f715e2fUL, 0x84971384UL,-      0x53f5a653UL, 0xd168b9d1UL, 0x00000000UL, 0xed2cc1edUL,-      0x20604020UL, 0xfc1fe3fcUL, 0xb1c879b1UL, 0x5bedb65bUL,-      0x6abed46aUL, 0xcb468dcbUL, 0xbed967beUL, 0x394b7239UL,-      0x4ade944aUL, 0x4cd4984cUL, 0x58e8b058UL, 0xcf4a85cfUL,-      0xd06bbbd0UL, 0xef2ac5efUL, 0xaae54faaUL, 0xfb16edfbUL,-      0x43c58643UL, 0x4dd79a4dUL, 0x33556633UL, 0x85941185UL,-      0x45cf8a45UL, 0xf910e9f9UL, 0x02060402UL, 0x7f81fe7fUL,-      0x50f0a050UL, 0x3c44783cUL, 0x9fba259fUL, 0xa8e34ba8UL,-      0x51f3a251UL, 0xa3fe5da3UL, 0x40c08040UL, 0x8f8a058fUL,-      0x92ad3f92UL, 0x9dbc219dUL, 0x38487038UL, 0xf504f1f5UL,-      0xbcdf63bcUL, 0xb6c177b6UL, 0xda75afdaUL, 0x21634221UL,-      0x10302010UL, 0xff1ae5ffUL, 0xf30efdf3UL, 0xd26dbfd2UL,-      0xcd4c81cdUL, 0x0c14180cUL, 0x13352613UL, 0xec2fc3ecUL,-      0x5fe1be5fUL, 0x97a23597UL, 0x44cc8844UL, 0x17392e17UL,-      0xc45793c4UL, 0xa7f255a7UL, 0x7e82fc7eUL, 0x3d477a3dUL,-      0x64acc864UL, 0x5de7ba5dUL, 0x192b3219UL, 0x7395e673UL,-      0x60a0c060UL, 0x81981981UL, 0x4fd19e4fUL, 0xdc7fa3dcUL,-      0x22664422UL, 0x2a7e542aUL, 0x90ab3b90UL, 0x88830b88UL,-      0x46ca8c46UL, 0xee29c7eeUL, 0xb8d36bb8UL, 0x143c2814UL,-      0xde79a7deUL, 0x5ee2bc5eUL, 0x0b1d160bUL, 0xdb76addbUL,-      0xe03bdbe0UL, 0x32566432UL, 0x3a4e743aUL, 0x0a1e140aUL,-      0x49db9249UL, 0x060a0c06UL, 0x246c4824UL, 0x5ce4b85cUL,-      0xc25d9fc2UL, 0xd36ebdd3UL, 0xacef43acUL, 0x62a6c462UL,-      0x91a83991UL, 0x95a43195UL, 0xe437d3e4UL, 0x798bf279UL,-      0xe732d5e7UL, 0xc8438bc8UL, 0x37596e37UL, 0x6db7da6dUL,-      0x8d8c018dUL, 0xd564b1d5UL, 0x4ed29c4eUL, 0xa9e049a9UL,-      0x6cb4d86cUL, 0x56faac56UL, 0xf407f3f4UL, 0xea25cfeaUL,-      0x65afca65UL, 0x7a8ef47aUL, 0xaee947aeUL, 0x08181008UL,-      0xbad56fbaUL, 0x7888f078UL, 0x256f4a25UL, 0x2e725c2eUL,-      0x1c24381cUL, 0xa6f157a6UL, 0xb4c773b4UL, 0xc65197c6UL,-      0xe823cbe8UL, 0xdd7ca1ddUL, 0x749ce874UL, 0x1f213e1fUL,-      0x4bdd964bUL, 0xbddc61bdUL, 0x8b860d8bUL, 0x8a850f8aUL,-      0x7090e070UL, 0x3e427c3eUL, 0xb5c471b5UL, 0x66aacc66UL,-      0x48d89048UL, 0x03050603UL, 0xf601f7f6UL, 0x0e121c0eUL,-      0x61a3c261UL, 0x355f6a35UL, 0x57f9ae57UL, 0xb9d069b9UL,-      0x86911786UL, 0xc15899c1UL, 0x1d273a1dUL, 0x9eb9279eUL,-      0xe138d9e1UL, 0xf813ebf8UL, 0x98b32b98UL, 0x11332211UL,-      0x69bbd269UL, 0xd970a9d9UL, 0x8e89078eUL, 0x94a73394UL,-      0x9bb62d9bUL, 0x1e223c1eUL, 0x87921587UL, 0xe920c9e9UL,-      0xce4987ceUL, 0x55ffaa55UL, 0x28785028UL, 0xdf7aa5dfUL,-      0x8c8f038cUL, 0xa1f859a1UL, 0x89800989UL, 0x0d171a0dUL,-      0xbfda65bfUL, 0xe631d7e6UL, 0x42c68442UL, 0x68b8d068UL,-      0x41c38241UL, 0x99b02999UL, 0x2d775a2dUL, 0x0f111e0fUL,-      0xb0cb7bb0UL, 0x54fca854UL, 0xbbd66dbbUL, 0x163a2c16UL-  };-  static const SWord32 table4[] = {-      0x6363a5c6UL, 0x7c7c84f8UL, 0x777799eeUL, 0x7b7b8df6UL,-      0xf2f20dffUL, 0x6b6bbdd6UL, 0x6f6fb1deUL, 0xc5c55491UL,-      0x30305060UL, 0x01010302UL, 0x6767a9ceUL, 0x2b2b7d56UL,-      0xfefe19e7UL, 0xd7d762b5UL, 0xababe64dUL, 0x76769aecUL,-      0xcaca458fUL, 0x82829d1fUL, 0xc9c94089UL, 0x7d7d87faUL,-      0xfafa15efUL, 0x5959ebb2UL, 0x4747c98eUL, 0xf0f00bfbUL,-      0xadadec41UL, 0xd4d467b3UL, 0xa2a2fd5fUL, 0xafafea45UL,-      0x9c9cbf23UL, 0xa4a4f753UL, 0x727296e4UL, 0xc0c05b9bUL,-      0xb7b7c275UL, 0xfdfd1ce1UL, 0x9393ae3dUL, 0x26266a4cUL,-      0x36365a6cUL, 0x3f3f417eUL, 0xf7f702f5UL, 0xcccc4f83UL,-      0x34345c68UL, 0xa5a5f451UL, 0xe5e534d1UL, 0xf1f108f9UL,-      0x717193e2UL, 0xd8d873abUL, 0x31315362UL, 0x15153f2aUL,-      0x04040c08UL, 0xc7c75295UL, 0x23236546UL, 0xc3c35e9dUL,-      0x18182830UL, 0x9696a137UL, 0x05050f0aUL, 0x9a9ab52fUL,-      0x0707090eUL, 0x12123624UL, 0x80809b1bUL, 0xe2e23ddfUL,-      0xebeb26cdUL, 0x2727694eUL, 0xb2b2cd7fUL, 0x75759feaUL,-      0x09091b12UL, 0x83839e1dUL, 0x2c2c7458UL, 0x1a1a2e34UL,-      0x1b1b2d36UL, 0x6e6eb2dcUL, 0x5a5aeeb4UL, 0xa0a0fb5bUL,-      0x5252f6a4UL, 0x3b3b4d76UL, 0xd6d661b7UL, 0xb3b3ce7dUL,-      0x29297b52UL, 0xe3e33eddUL, 0x2f2f715eUL, 0x84849713UL,-      0x5353f5a6UL, 0xd1d168b9UL, 0x00000000UL, 0xeded2cc1UL,-      0x20206040UL, 0xfcfc1fe3UL, 0xb1b1c879UL, 0x5b5bedb6UL,-      0x6a6abed4UL, 0xcbcb468dUL, 0xbebed967UL, 0x39394b72UL,-      0x4a4ade94UL, 0x4c4cd498UL, 0x5858e8b0UL, 0xcfcf4a85UL,-      0xd0d06bbbUL, 0xefef2ac5UL, 0xaaaae54fUL, 0xfbfb16edUL,-      0x4343c586UL, 0x4d4dd79aUL, 0x33335566UL, 0x85859411UL,-      0x4545cf8aUL, 0xf9f910e9UL, 0x02020604UL, 0x7f7f81feUL,-      0x5050f0a0UL, 0x3c3c4478UL, 0x9f9fba25UL, 0xa8a8e34bUL,-      0x5151f3a2UL, 0xa3a3fe5dUL, 0x4040c080UL, 0x8f8f8a05UL,-      0x9292ad3fUL, 0x9d9dbc21UL, 0x38384870UL, 0xf5f504f1UL,-      0xbcbcdf63UL, 0xb6b6c177UL, 0xdada75afUL, 0x21216342UL,-      0x10103020UL, 0xffff1ae5UL, 0xf3f30efdUL, 0xd2d26dbfUL,-      0xcdcd4c81UL, 0x0c0c1418UL, 0x13133526UL, 0xecec2fc3UL,-      0x5f5fe1beUL, 0x9797a235UL, 0x4444cc88UL, 0x1717392eUL,-      0xc4c45793UL, 0xa7a7f255UL, 0x7e7e82fcUL, 0x3d3d477aUL,-      0x6464acc8UL, 0x5d5de7baUL, 0x19192b32UL, 0x737395e6UL,-      0x6060a0c0UL, 0x81819819UL, 0x4f4fd19eUL, 0xdcdc7fa3UL,-      0x22226644UL, 0x2a2a7e54UL, 0x9090ab3bUL, 0x8888830bUL,-      0x4646ca8cUL, 0xeeee29c7UL, 0xb8b8d36bUL, 0x14143c28UL,-      0xdede79a7UL, 0x5e5ee2bcUL, 0x0b0b1d16UL, 0xdbdb76adUL,-      0xe0e03bdbUL, 0x32325664UL, 0x3a3a4e74UL, 0x0a0a1e14UL,-      0x4949db92UL, 0x06060a0cUL, 0x24246c48UL, 0x5c5ce4b8UL,-      0xc2c25d9fUL, 0xd3d36ebdUL, 0xacacef43UL, 0x6262a6c4UL,-      0x9191a839UL, 0x9595a431UL, 0xe4e437d3UL, 0x79798bf2UL,-      0xe7e732d5UL, 0xc8c8438bUL, 0x3737596eUL, 0x6d6db7daUL,-      0x8d8d8c01UL, 0xd5d564b1UL, 0x4e4ed29cUL, 0xa9a9e049UL,-      0x6c6cb4d8UL, 0x5656faacUL, 0xf4f407f3UL, 0xeaea25cfUL,-      0x6565afcaUL, 0x7a7a8ef4UL, 0xaeaee947UL, 0x08081810UL,-      0xbabad56fUL, 0x787888f0UL, 0x25256f4aUL, 0x2e2e725cUL,-      0x1c1c2438UL, 0xa6a6f157UL, 0xb4b4c773UL, 0xc6c65197UL,-      0xe8e823cbUL, 0xdddd7ca1UL, 0x74749ce8UL, 0x1f1f213eUL,-      0x4b4bdd96UL, 0xbdbddc61UL, 0x8b8b860dUL, 0x8a8a850fUL,-      0x707090e0UL, 0x3e3e427cUL, 0xb5b5c471UL, 0x6666aaccUL,-      0x4848d890UL, 0x03030506UL, 0xf6f601f7UL, 0x0e0e121cUL,-      0x6161a3c2UL, 0x35355f6aUL, 0x5757f9aeUL, 0xb9b9d069UL,-      0x86869117UL, 0xc1c15899UL, 0x1d1d273aUL, 0x9e9eb927UL,-      0xe1e138d9UL, 0xf8f813ebUL, 0x9898b32bUL, 0x11113322UL,-      0x6969bbd2UL, 0xd9d970a9UL, 0x8e8e8907UL, 0x9494a733UL,-      0x9b9bb62dUL, 0x1e1e223cUL, 0x87879215UL, 0xe9e920c9UL,-      0xcece4987UL, 0x5555ffaaUL, 0x28287850UL, 0xdfdf7aa5UL,-      0x8c8c8f03UL, 0xa1a1f859UL, 0x89898009UL, 0x0d0d171aUL,-      0xbfbfda65UL, 0xe6e631d7UL, 0x4242c684UL, 0x6868b8d0UL,-      0x4141c382UL, 0x9999b029UL, 0x2d2d775aUL, 0x0f0f111eUL,-      0xb0b0cb7bUL, 0x5454fca8UL, 0xbbbbd66dUL, 0x16163a2cUL-  };-  const SWord32 s560 = s0 ^ s4;-  const SWord16 s561 = (SWord16) (s560 >> 16);-  const SWord8  s562 = (SWord8) (s561 >> 8);-  const SWord32 s563 = table1[s562];-  const SWord32 s819 = s1 ^ s5;-  const SWord16 s820 = (SWord16) (s819 >> 16);-  const SWord8  s821 = (SWord8) s820;-  const SWord32 s822 = table2[s821];-  const SWord32 s823 = s563 ^ s822;-  const SWord32 s1079 = s2 ^ s6;-  const SWord16 s1080 = (SWord16) s1079;-  const SWord8  s1081 = (SWord8) (s1080 >> 8);-  const SWord32 s1082 = table3[s1081];-  const SWord32 s1083 = s823 ^ s1082;-  const SWord32 s1339 = s3 ^ s7;-  const SWord16 s1340 = (SWord16) s1339;-  const SWord8  s1341 = (SWord8) s1340;-  const SWord32 s1342 = table4[s1341];-  const SWord32 s1343 = s1083 ^ s1342;-  const SWord32 s1344 = s8 ^ s1343;-  const SWord16 s1345 = (SWord16) (s1344 >> 16);-  const SWord8  s1346 = (SWord8) (s1345 >> 8);-  const SWord32 s1347 = table1[s1346];-  const SWord8  s1348 = (SWord8) (s820 >> 8);-  const SWord32 s1349 = table1[s1348];-  const SWord16 s1350 = (SWord16) (s1079 >> 16);-  const SWord8  s1351 = (SWord8) s1350;-  const SWord32 s1352 = table2[s1351];-  const SWord32 s1353 = s1349 ^ s1352;-  const SWord8  s1354 = (SWord8) (s1340 >> 8);-  const SWord32 s1355 = table3[s1354];-  const SWord32 s1356 = s1353 ^ s1355;-  const SWord16 s1357 = (SWord16) s560;-  const SWord8  s1358 = (SWord8) s1357;-  const SWord32 s1359 = table4[s1358];-  const SWord32 s1360 = s1356 ^ s1359;-  const SWord32 s1361 = s9 ^ s1360;-  const SWord16 s1362 = (SWord16) (s1361 >> 16);-  const SWord8  s1363 = (SWord8) s1362;-  const SWord32 s1364 = table2[s1363];-  const SWord32 s1365 = s1347 ^ s1364;-  const SWord8  s1366 = (SWord8) (s1350 >> 8);-  const SWord32 s1367 = table1[s1366];-  const SWord16 s1368 = (SWord16) (s1339 >> 16);-  const SWord8  s1369 = (SWord8) s1368;-  const SWord32 s1370 = table2[s1369];-  const SWord32 s1371 = s1367 ^ s1370;-  const SWord8  s1372 = (SWord8) (s1357 >> 8);-  const SWord32 s1373 = table3[s1372];-  const SWord32 s1374 = s1371 ^ s1373;-  const SWord16 s1375 = (SWord16) s819;-  const SWord8  s1376 = (SWord8) s1375;-  const SWord32 s1377 = table4[s1376];-  const SWord32 s1378 = s1374 ^ s1377;-  const SWord32 s1379 = s10 ^ s1378;-  const SWord16 s1380 = (SWord16) s1379;-  const SWord8  s1381 = (SWord8) (s1380 >> 8);-  const SWord32 s1382 = table3[s1381];-  const SWord32 s1383 = s1365 ^ s1382;-  const SWord8  s1384 = (SWord8) (s1368 >> 8);-  const SWord32 s1385 = table1[s1384];-  const SWord8  s1386 = (SWord8) s561;-  const SWord32 s1387 = table2[s1386];-  const SWord32 s1388 = s1385 ^ s1387;-  const SWord8  s1389 = (SWord8) (s1375 >> 8);-  const SWord32 s1390 = table3[s1389];-  const SWord32 s1391 = s1388 ^ s1390;-  const SWord8  s1392 = (SWord8) s1080;-  const SWord32 s1393 = table4[s1392];-  const SWord32 s1394 = s1391 ^ s1393;-  const SWord32 s1395 = s11 ^ s1394;-  const SWord16 s1396 = (SWord16) s1395;-  const SWord8  s1397 = (SWord8) s1396;-  const SWord32 s1398 = table4[s1397];-  const SWord32 s1399 = s1383 ^ s1398;-  const SWord32 s1400 = s12 ^ s1399;-  const SWord16 s1401 = (SWord16) (s1400 >> 16);-  const SWord8  s1402 = (SWord8) (s1401 >> 8);-  const SWord32 s1403 = table1[s1402];-  const SWord8  s1404 = (SWord8) (s1362 >> 8);-  const SWord32 s1405 = table1[s1404];-  const SWord16 s1406 = (SWord16) (s1379 >> 16);-  const SWord8  s1407 = (SWord8) s1406;-  const SWord32 s1408 = table2[s1407];-  const SWord32 s1409 = s1405 ^ s1408;-  const SWord8  s1410 = (SWord8) (s1396 >> 8);-  const SWord32 s1411 = table3[s1410];-  const SWord32 s1412 = s1409 ^ s1411;-  const SWord16 s1413 = (SWord16) s1344;-  const SWord8  s1414 = (SWord8) s1413;-  const SWord32 s1415 = table4[s1414];-  const SWord32 s1416 = s1412 ^ s1415;-  const SWord32 s1417 = s13 ^ s1416;-  const SWord16 s1418 = (SWord16) (s1417 >> 16);-  const SWord8  s1419 = (SWord8) s1418;-  const SWord32 s1420 = table2[s1419];-  const SWord32 s1421 = s1403 ^ s1420;-  const SWord8  s1422 = (SWord8) (s1406 >> 8);-  const SWord32 s1423 = table1[s1422];-  const SWord16 s1424 = (SWord16) (s1395 >> 16);-  const SWord8  s1425 = (SWord8) s1424;-  const SWord32 s1426 = table2[s1425];-  const SWord32 s1427 = s1423 ^ s1426;-  const SWord8  s1428 = (SWord8) (s1413 >> 8);-  const SWord32 s1429 = table3[s1428];-  const SWord32 s1430 = s1427 ^ s1429;-  const SWord16 s1431 = (SWord16) s1361;-  const SWord8  s1432 = (SWord8) s1431;-  const SWord32 s1433 = table4[s1432];-  const SWord32 s1434 = s1430 ^ s1433;-  const SWord32 s1435 = s14 ^ s1434;-  const SWord16 s1436 = (SWord16) s1435;-  const SWord8  s1437 = (SWord8) (s1436 >> 8);-  const SWord32 s1438 = table3[s1437];-  const SWord32 s1439 = s1421 ^ s1438;-  const SWord8  s1440 = (SWord8) (s1424 >> 8);-  const SWord32 s1441 = table1[s1440];-  const SWord8  s1442 = (SWord8) s1345;-  const SWord32 s1443 = table2[s1442];-  const SWord32 s1444 = s1441 ^ s1443;-  const SWord8  s1445 = (SWord8) (s1431 >> 8);-  const SWord32 s1446 = table3[s1445];-  const SWord32 s1447 = s1444 ^ s1446;-  const SWord8  s1448 = (SWord8) s1380;-  const SWord32 s1449 = table4[s1448];-  const SWord32 s1450 = s1447 ^ s1449;-  const SWord32 s1451 = s15 ^ s1450;-  const SWord16 s1452 = (SWord16) s1451;-  const SWord8  s1453 = (SWord8) s1452;-  const SWord32 s1454 = table4[s1453];-  const SWord32 s1455 = s1439 ^ s1454;-  const SWord32 s1456 = s16 ^ s1455;-  const SWord16 s1457 = (SWord16) (s1456 >> 16);-  const SWord8  s1458 = (SWord8) (s1457 >> 8);-  const SWord32 s1459 = table1[s1458];-  const SWord8  s1460 = (SWord8) (s1418 >> 8);-  const SWord32 s1461 = table1[s1460];-  const SWord16 s1462 = (SWord16) (s1435 >> 16);-  const SWord8  s1463 = (SWord8) s1462;-  const SWord32 s1464 = table2[s1463];-  const SWord32 s1465 = s1461 ^ s1464;-  const SWord8  s1466 = (SWord8) (s1452 >> 8);-  const SWord32 s1467 = table3[s1466];-  const SWord32 s1468 = s1465 ^ s1467;-  const SWord16 s1469 = (SWord16) s1400;-  const SWord8  s1470 = (SWord8) s1469;-  const SWord32 s1471 = table4[s1470];-  const SWord32 s1472 = s1468 ^ s1471;-  const SWord32 s1473 = s17 ^ s1472;-  const SWord16 s1474 = (SWord16) (s1473 >> 16);-  const SWord8  s1475 = (SWord8) s1474;-  const SWord32 s1476 = table2[s1475];-  const SWord32 s1477 = s1459 ^ s1476;-  const SWord8  s1478 = (SWord8) (s1462 >> 8);-  const SWord32 s1479 = table1[s1478];-  const SWord16 s1480 = (SWord16) (s1451 >> 16);-  const SWord8  s1481 = (SWord8) s1480;-  const SWord32 s1482 = table2[s1481];-  const SWord32 s1483 = s1479 ^ s1482;-  const SWord8  s1484 = (SWord8) (s1469 >> 8);-  const SWord32 s1485 = table3[s1484];-  const SWord32 s1486 = s1483 ^ s1485;-  const SWord16 s1487 = (SWord16) s1417;-  const SWord8  s1488 = (SWord8) s1487;-  const SWord32 s1489 = table4[s1488];-  const SWord32 s1490 = s1486 ^ s1489;-  const SWord32 s1491 = s18 ^ s1490;-  const SWord16 s1492 = (SWord16) s1491;-  const SWord8  s1493 = (SWord8) (s1492 >> 8);-  const SWord32 s1494 = table3[s1493];-  const SWord32 s1495 = s1477 ^ s1494;-  const SWord8  s1496 = (SWord8) (s1480 >> 8);-  const SWord32 s1497 = table1[s1496];-  const SWord8  s1498 = (SWord8) s1401;-  const SWord32 s1499 = table2[s1498];-  const SWord32 s1500 = s1497 ^ s1499;-  const SWord8  s1501 = (SWord8) (s1487 >> 8);-  const SWord32 s1502 = table3[s1501];-  const SWord32 s1503 = s1500 ^ s1502;-  const SWord8  s1504 = (SWord8) s1436;-  const SWord32 s1505 = table4[s1504];-  const SWord32 s1506 = s1503 ^ s1505;-  const SWord32 s1507 = s19 ^ s1506;-  const SWord16 s1508 = (SWord16) s1507;-  const SWord8  s1509 = (SWord8) s1508;-  const SWord32 s1510 = table4[s1509];-  const SWord32 s1511 = s1495 ^ s1510;-  const SWord32 s1512 = s20 ^ s1511;-  const SWord16 s1513 = (SWord16) (s1512 >> 16);-  const SWord8  s1514 = (SWord8) (s1513 >> 8);-  const SWord32 s1515 = table1[s1514];-  const SWord8  s1516 = (SWord8) (s1474 >> 8);-  const SWord32 s1517 = table1[s1516];-  const SWord16 s1518 = (SWord16) (s1491 >> 16);-  const SWord8  s1519 = (SWord8) s1518;-  const SWord32 s1520 = table2[s1519];-  const SWord32 s1521 = s1517 ^ s1520;-  const SWord8  s1522 = (SWord8) (s1508 >> 8);-  const SWord32 s1523 = table3[s1522];-  const SWord32 s1524 = s1521 ^ s1523;-  const SWord16 s1525 = (SWord16) s1456;-  const SWord8  s1526 = (SWord8) s1525;-  const SWord32 s1527 = table4[s1526];-  const SWord32 s1528 = s1524 ^ s1527;-  const SWord32 s1529 = s21 ^ s1528;-  const SWord16 s1530 = (SWord16) (s1529 >> 16);-  const SWord8  s1531 = (SWord8) s1530;-  const SWord32 s1532 = table2[s1531];-  const SWord32 s1533 = s1515 ^ s1532;-  const SWord8  s1534 = (SWord8) (s1518 >> 8);-  const SWord32 s1535 = table1[s1534];-  const SWord16 s1536 = (SWord16) (s1507 >> 16);-  const SWord8  s1537 = (SWord8) s1536;-  const SWord32 s1538 = table2[s1537];-  const SWord32 s1539 = s1535 ^ s1538;-  const SWord8  s1540 = (SWord8) (s1525 >> 8);-  const SWord32 s1541 = table3[s1540];-  const SWord32 s1542 = s1539 ^ s1541;-  const SWord16 s1543 = (SWord16) s1473;-  const SWord8  s1544 = (SWord8) s1543;-  const SWord32 s1545 = table4[s1544];-  const SWord32 s1546 = s1542 ^ s1545;-  const SWord32 s1547 = s22 ^ s1546;-  const SWord16 s1548 = (SWord16) s1547;-  const SWord8  s1549 = (SWord8) (s1548 >> 8);-  const SWord32 s1550 = table3[s1549];-  const SWord32 s1551 = s1533 ^ s1550;-  const SWord8  s1552 = (SWord8) (s1536 >> 8);-  const SWord32 s1553 = table1[s1552];-  const SWord8  s1554 = (SWord8) s1457;-  const SWord32 s1555 = table2[s1554];-  const SWord32 s1556 = s1553 ^ s1555;-  const SWord8  s1557 = (SWord8) (s1543 >> 8);-  const SWord32 s1558 = table3[s1557];-  const SWord32 s1559 = s1556 ^ s1558;-  const SWord8  s1560 = (SWord8) s1492;-  const SWord32 s1561 = table4[s1560];-  const SWord32 s1562 = s1559 ^ s1561;-  const SWord32 s1563 = s23 ^ s1562;-  const SWord16 s1564 = (SWord16) s1563;-  const SWord8  s1565 = (SWord8) s1564;-  const SWord32 s1566 = table4[s1565];-  const SWord32 s1567 = s1551 ^ s1566;-  const SWord32 s1568 = s24 ^ s1567;-  const SWord16 s1569 = (SWord16) (s1568 >> 16);-  const SWord8  s1570 = (SWord8) (s1569 >> 8);-  const SWord32 s1571 = table1[s1570];-  const SWord8  s1572 = (SWord8) (s1530 >> 8);-  const SWord32 s1573 = table1[s1572];-  const SWord16 s1574 = (SWord16) (s1547 >> 16);-  const SWord8  s1575 = (SWord8) s1574;-  const SWord32 s1576 = table2[s1575];-  const SWord32 s1577 = s1573 ^ s1576;-  const SWord8  s1578 = (SWord8) (s1564 >> 8);-  const SWord32 s1579 = table3[s1578];-  const SWord32 s1580 = s1577 ^ s1579;-  const SWord16 s1581 = (SWord16) s1512;-  const SWord8  s1582 = (SWord8) s1581;-  const SWord32 s1583 = table4[s1582];-  const SWord32 s1584 = s1580 ^ s1583;-  const SWord32 s1585 = s25 ^ s1584;-  const SWord16 s1586 = (SWord16) (s1585 >> 16);-  const SWord8  s1587 = (SWord8) s1586;-  const SWord32 s1588 = table2[s1587];-  const SWord32 s1589 = s1571 ^ s1588;-  const SWord8  s1590 = (SWord8) (s1574 >> 8);-  const SWord32 s1591 = table1[s1590];-  const SWord16 s1592 = (SWord16) (s1563 >> 16);-  const SWord8  s1593 = (SWord8) s1592;-  const SWord32 s1594 = table2[s1593];-  const SWord32 s1595 = s1591 ^ s1594;-  const SWord8  s1596 = (SWord8) (s1581 >> 8);-  const SWord32 s1597 = table3[s1596];-  const SWord32 s1598 = s1595 ^ s1597;-  const SWord16 s1599 = (SWord16) s1529;-  const SWord8  s1600 = (SWord8) s1599;-  const SWord32 s1601 = table4[s1600];-  const SWord32 s1602 = s1598 ^ s1601;-  const SWord32 s1603 = s26 ^ s1602;-  const SWord16 s1604 = (SWord16) s1603;-  const SWord8  s1605 = (SWord8) (s1604 >> 8);-  const SWord32 s1606 = table3[s1605];-  const SWord32 s1607 = s1589 ^ s1606;-  const SWord8  s1608 = (SWord8) (s1592 >> 8);-  const SWord32 s1609 = table1[s1608];-  const SWord8  s1610 = (SWord8) s1513;-  const SWord32 s1611 = table2[s1610];-  const SWord32 s1612 = s1609 ^ s1611;-  const SWord8  s1613 = (SWord8) (s1599 >> 8);-  const SWord32 s1614 = table3[s1613];-  const SWord32 s1615 = s1612 ^ s1614;-  const SWord8  s1616 = (SWord8) s1548;-  const SWord32 s1617 = table4[s1616];-  const SWord32 s1618 = s1615 ^ s1617;-  const SWord32 s1619 = s27 ^ s1618;-  const SWord16 s1620 = (SWord16) s1619;-  const SWord8  s1621 = (SWord8) s1620;-  const SWord32 s1622 = table4[s1621];-  const SWord32 s1623 = s1607 ^ s1622;-  const SWord32 s1624 = s28 ^ s1623;-  const SWord16 s1625 = (SWord16) (s1624 >> 16);-  const SWord8  s1626 = (SWord8) (s1625 >> 8);-  const SWord32 s1627 = table1[s1626];-  const SWord8  s1628 = (SWord8) (s1586 >> 8);-  const SWord32 s1629 = table1[s1628];-  const SWord16 s1630 = (SWord16) (s1603 >> 16);-  const SWord8  s1631 = (SWord8) s1630;-  const SWord32 s1632 = table2[s1631];-  const SWord32 s1633 = s1629 ^ s1632;-  const SWord8  s1634 = (SWord8) (s1620 >> 8);-  const SWord32 s1635 = table3[s1634];-  const SWord32 s1636 = s1633 ^ s1635;-  const SWord16 s1637 = (SWord16) s1568;-  const SWord8  s1638 = (SWord8) s1637;-  const SWord32 s1639 = table4[s1638];-  const SWord32 s1640 = s1636 ^ s1639;-  const SWord32 s1641 = s29 ^ s1640;-  const SWord16 s1642 = (SWord16) (s1641 >> 16);-  const SWord8  s1643 = (SWord8) s1642;-  const SWord32 s1644 = table2[s1643];-  const SWord32 s1645 = s1627 ^ s1644;-  const SWord8  s1646 = (SWord8) (s1630 >> 8);-  const SWord32 s1647 = table1[s1646];-  const SWord16 s1648 = (SWord16) (s1619 >> 16);-  const SWord8  s1649 = (SWord8) s1648;-  const SWord32 s1650 = table2[s1649];-  const SWord32 s1651 = s1647 ^ s1650;-  const SWord8  s1652 = (SWord8) (s1637 >> 8);-  const SWord32 s1653 = table3[s1652];-  const SWord32 s1654 = s1651 ^ s1653;-  const SWord16 s1655 = (SWord16) s1585;-  const SWord8  s1656 = (SWord8) s1655;-  const SWord32 s1657 = table4[s1656];-  const SWord32 s1658 = s1654 ^ s1657;-  const SWord32 s1659 = s30 ^ s1658;-  const SWord16 s1660 = (SWord16) s1659;-  const SWord8  s1661 = (SWord8) (s1660 >> 8);-  const SWord32 s1662 = table3[s1661];-  const SWord32 s1663 = s1645 ^ s1662;-  const SWord8  s1664 = (SWord8) (s1648 >> 8);-  const SWord32 s1665 = table1[s1664];-  const SWord8  s1666 = (SWord8) s1569;-  const SWord32 s1667 = table2[s1666];-  const SWord32 s1668 = s1665 ^ s1667;-  const SWord8  s1669 = (SWord8) (s1655 >> 8);-  const SWord32 s1670 = table3[s1669];-  const SWord32 s1671 = s1668 ^ s1670;-  const SWord8  s1672 = (SWord8) s1604;-  const SWord32 s1673 = table4[s1672];-  const SWord32 s1674 = s1671 ^ s1673;-  const SWord32 s1675 = s31 ^ s1674;-  const SWord16 s1676 = (SWord16) s1675;-  const SWord8  s1677 = (SWord8) s1676;-  const SWord32 s1678 = table4[s1677];-  const SWord32 s1679 = s1663 ^ s1678;-  const SWord32 s1680 = s32 ^ s1679;-  const SWord16 s1681 = (SWord16) (s1680 >> 16);-  const SWord8  s1682 = (SWord8) (s1681 >> 8);-  const SWord32 s1683 = table1[s1682];-  const SWord8  s1684 = (SWord8) (s1642 >> 8);-  const SWord32 s1685 = table1[s1684];-  const SWord16 s1686 = (SWord16) (s1659 >> 16);-  const SWord8  s1687 = (SWord8) s1686;-  const SWord32 s1688 = table2[s1687];-  const SWord32 s1689 = s1685 ^ s1688;-  const SWord8  s1690 = (SWord8) (s1676 >> 8);-  const SWord32 s1691 = table3[s1690];-  const SWord32 s1692 = s1689 ^ s1691;-  const SWord16 s1693 = (SWord16) s1624;-  const SWord8  s1694 = (SWord8) s1693;-  const SWord32 s1695 = table4[s1694];-  const SWord32 s1696 = s1692 ^ s1695;-  const SWord32 s1697 = s33 ^ s1696;-  const SWord16 s1698 = (SWord16) (s1697 >> 16);-  const SWord8  s1699 = (SWord8) s1698;-  const SWord32 s1700 = table2[s1699];-  const SWord32 s1701 = s1683 ^ s1700;-  const SWord8  s1702 = (SWord8) (s1686 >> 8);-  const SWord32 s1703 = table1[s1702];-  const SWord16 s1704 = (SWord16) (s1675 >> 16);-  const SWord8  s1705 = (SWord8) s1704;-  const SWord32 s1706 = table2[s1705];-  const SWord32 s1707 = s1703 ^ s1706;-  const SWord8  s1708 = (SWord8) (s1693 >> 8);-  const SWord32 s1709 = table3[s1708];-  const SWord32 s1710 = s1707 ^ s1709;-  const SWord16 s1711 = (SWord16) s1641;-  const SWord8  s1712 = (SWord8) s1711;-  const SWord32 s1713 = table4[s1712];-  const SWord32 s1714 = s1710 ^ s1713;-  const SWord32 s1715 = s34 ^ s1714;-  const SWord16 s1716 = (SWord16) s1715;-  const SWord8  s1717 = (SWord8) (s1716 >> 8);-  const SWord32 s1718 = table3[s1717];-  const SWord32 s1719 = s1701 ^ s1718;-  const SWord8  s1720 = (SWord8) (s1704 >> 8);-  const SWord32 s1721 = table1[s1720];-  const SWord8  s1722 = (SWord8) s1625;-  const SWord32 s1723 = table2[s1722];-  const SWord32 s1724 = s1721 ^ s1723;-  const SWord8  s1725 = (SWord8) (s1711 >> 8);-  const SWord32 s1726 = table3[s1725];-  const SWord32 s1727 = s1724 ^ s1726;-  const SWord8  s1728 = (SWord8) s1660;-  const SWord32 s1729 = table4[s1728];-  const SWord32 s1730 = s1727 ^ s1729;-  const SWord32 s1731 = s35 ^ s1730;-  const SWord16 s1732 = (SWord16) s1731;-  const SWord8  s1733 = (SWord8) s1732;-  const SWord32 s1734 = table4[s1733];-  const SWord32 s1735 = s1719 ^ s1734;-  const SWord32 s1736 = s36 ^ s1735;-  const SWord16 s1737 = (SWord16) (s1736 >> 16);-  const SWord8  s1738 = (SWord8) (s1737 >> 8);-  const SWord32 s1739 = table1[s1738];-  const SWord8  s1740 = (SWord8) (s1698 >> 8);-  const SWord32 s1741 = table1[s1740];-  const SWord16 s1742 = (SWord16) (s1715 >> 16);-  const SWord8  s1743 = (SWord8) s1742;-  const SWord32 s1744 = table2[s1743];-  const SWord32 s1745 = s1741 ^ s1744;-  const SWord8  s1746 = (SWord8) (s1732 >> 8);-  const SWord32 s1747 = table3[s1746];-  const SWord32 s1748 = s1745 ^ s1747;-  const SWord16 s1749 = (SWord16) s1680;-  const SWord8  s1750 = (SWord8) s1749;-  const SWord32 s1751 = table4[s1750];-  const SWord32 s1752 = s1748 ^ s1751;-  const SWord32 s1753 = s37 ^ s1752;-  const SWord16 s1754 = (SWord16) (s1753 >> 16);-  const SWord8  s1755 = (SWord8) s1754;-  const SWord32 s1756 = table2[s1755];-  const SWord32 s1757 = s1739 ^ s1756;-  const SWord8  s1758 = (SWord8) (s1742 >> 8);-  const SWord32 s1759 = table1[s1758];-  const SWord16 s1760 = (SWord16) (s1731 >> 16);-  const SWord8  s1761 = (SWord8) s1760;-  const SWord32 s1762 = table2[s1761];-  const SWord32 s1763 = s1759 ^ s1762;-  const SWord8  s1764 = (SWord8) (s1749 >> 8);-  const SWord32 s1765 = table3[s1764];-  const SWord32 s1766 = s1763 ^ s1765;-  const SWord16 s1767 = (SWord16) s1697;-  const SWord8  s1768 = (SWord8) s1767;-  const SWord32 s1769 = table4[s1768];-  const SWord32 s1770 = s1766 ^ s1769;-  const SWord32 s1771 = s38 ^ s1770;-  const SWord16 s1772 = (SWord16) s1771;-  const SWord8  s1773 = (SWord8) (s1772 >> 8);-  const SWord32 s1774 = table3[s1773];-  const SWord32 s1775 = s1757 ^ s1774;-  const SWord8  s1776 = (SWord8) (s1760 >> 8);-  const SWord32 s1777 = table1[s1776];-  const SWord8  s1778 = (SWord8) s1681;-  const SWord32 s1779 = table2[s1778];-  const SWord32 s1780 = s1777 ^ s1779;-  const SWord8  s1781 = (SWord8) (s1767 >> 8);-  const SWord32 s1782 = table3[s1781];-  const SWord32 s1783 = s1780 ^ s1782;-  const SWord8  s1784 = (SWord8) s1716;-  const SWord32 s1785 = table4[s1784];-  const SWord32 s1786 = s1783 ^ s1785;-  const SWord32 s1787 = s39 ^ s1786;-  const SWord16 s1788 = (SWord16) s1787;-  const SWord8  s1789 = (SWord8) s1788;-  const SWord32 s1790 = table4[s1789];-  const SWord32 s1791 = s1775 ^ s1790;-  const SWord32 s1792 = s40 ^ s1791;-  const SWord16 s1793 = (SWord16) (s1792 >> 16);-  const SWord8  s1794 = (SWord8) (s1793 >> 8);-  const SWord8  s1795 = table0[s1794];-  const SWord8  s1796 = (SWord8) (s1754 >> 8);-  const SWord32 s1797 = table1[s1796];-  const SWord16 s1798 = (SWord16) (s1771 >> 16);-  const SWord8  s1799 = (SWord8) s1798;-  const SWord32 s1800 = table2[s1799];-  const SWord32 s1801 = s1797 ^ s1800;-  const SWord8  s1802 = (SWord8) (s1788 >> 8);-  const SWord32 s1803 = table3[s1802];-  const SWord32 s1804 = s1801 ^ s1803;-  const SWord16 s1805 = (SWord16) s1736;-  const SWord8  s1806 = (SWord8) s1805;-  const SWord32 s1807 = table4[s1806];-  const SWord32 s1808 = s1804 ^ s1807;-  const SWord32 s1809 = s41 ^ s1808;-  const SWord16 s1810 = (SWord16) (s1809 >> 16);-  const SWord8  s1811 = (SWord8) s1810;-  const SWord8  s1812 = table0[s1811];-  const SWord16 s1813 = (((SWord16) s1795) << 8) | ((SWord16) s1812);-  const SWord8  s1814 = (SWord8) (s1798 >> 8);-  const SWord32 s1815 = table1[s1814];-  const SWord16 s1816 = (SWord16) (s1787 >> 16);-  const SWord8  s1817 = (SWord8) s1816;-  const SWord32 s1818 = table2[s1817];-  const SWord32 s1819 = s1815 ^ s1818;-  const SWord8  s1820 = (SWord8) (s1805 >> 8);-  const SWord32 s1821 = table3[s1820];-  const SWord32 s1822 = s1819 ^ s1821;-  const SWord16 s1823 = (SWord16) s1753;-  const SWord8  s1824 = (SWord8) s1823;-  const SWord32 s1825 = table4[s1824];-  const SWord32 s1826 = s1822 ^ s1825;-  const SWord32 s1827 = s42 ^ s1826;-  const SWord16 s1828 = (SWord16) s1827;-  const SWord8  s1829 = (SWord8) (s1828 >> 8);-  const SWord8  s1830 = table0[s1829];-  const SWord8  s1831 = (SWord8) (s1816 >> 8);-  const SWord32 s1832 = table1[s1831];-  const SWord8  s1833 = (SWord8) s1737;-  const SWord32 s1834 = table2[s1833];-  const SWord32 s1835 = s1832 ^ s1834;-  const SWord8  s1836 = (SWord8) (s1823 >> 8);-  const SWord32 s1837 = table3[s1836];-  const SWord32 s1838 = s1835 ^ s1837;-  const SWord8  s1839 = (SWord8) s1772;-  const SWord32 s1840 = table4[s1839];-  const SWord32 s1841 = s1838 ^ s1840;-  const SWord32 s1842 = s43 ^ s1841;-  const SWord16 s1843 = (SWord16) s1842;-  const SWord8  s1844 = (SWord8) s1843;-  const SWord8  s1845 = table0[s1844];-  const SWord16 s1846 = (((SWord16) s1830) << 8) | ((SWord16) s1845);-  const SWord32 s1847 = (((SWord32) s1813) << 16) | ((SWord32) s1846);-  const SWord32 s1848 = s44 ^ s1847;-  const SWord8  s1849 = (SWord8) (s1810 >> 8);-  const SWord8  s1850 = table0[s1849];-  const SWord16 s1851 = (SWord16) (s1827 >> 16);-  const SWord8  s1852 = (SWord8) s1851;-  const SWord8  s1853 = table0[s1852];-  const SWord16 s1854 = (((SWord16) s1850) << 8) | ((SWord16) s1853);-  const SWord8  s1855 = (SWord8) (s1843 >> 8);-  const SWord8  s1856 = table0[s1855];-  const SWord16 s1857 = (SWord16) s1792;-  const SWord8  s1858 = (SWord8) s1857;-  const SWord8  s1859 = table0[s1858];-  const SWord16 s1860 = (((SWord16) s1856) << 8) | ((SWord16) s1859);-  const SWord32 s1861 = (((SWord32) s1854) << 16) | ((SWord32) s1860);-  const SWord32 s1862 = s45 ^ s1861;-  const SWord8  s1863 = (SWord8) (s1851 >> 8);-  const SWord8  s1864 = table0[s1863];-  const SWord16 s1865 = (SWord16) (s1842 >> 16);-  const SWord8  s1866 = (SWord8) s1865;-  const SWord8  s1867 = table0[s1866];-  const SWord16 s1868 = (((SWord16) s1864) << 8) | ((SWord16) s1867);-  const SWord8  s1869 = (SWord8) (s1857 >> 8);-  const SWord8  s1870 = table0[s1869];-  const SWord16 s1871 = (SWord16) s1809;-  const SWord8  s1872 = (SWord8) s1871;-  const SWord8  s1873 = table0[s1872];-  const SWord16 s1874 = (((SWord16) s1870) << 8) | ((SWord16) s1873);-  const SWord32 s1875 = (((SWord32) s1868) << 16) | ((SWord32) s1874);-  const SWord32 s1876 = s46 ^ s1875;-  const SWord8  s1877 = (SWord8) (s1865 >> 8);-  const SWord8  s1878 = table0[s1877];-  const SWord8  s1879 = (SWord8) s1793;-  const SWord8  s1880 = table0[s1879];-  const SWord16 s1881 = (((SWord16) s1878) << 8) | ((SWord16) s1880);-  const SWord8  s1882 = (SWord8) (s1871 >> 8);-  const SWord8  s1883 = table0[s1882];-  const SWord8  s1884 = (SWord8) s1828;-  const SWord8  s1885 = table0[s1884];-  const SWord16 s1886 = (((SWord16) s1883) << 8) | ((SWord16) s1885);-  const SWord32 s1887 = (((SWord32) s1881) << 16) | ((SWord32) s1886);-  const SWord32 s1888 = s47 ^ s1887;--  ct[0] = s1848;-  ct[1] = s1862;-  ct[2] = s1876;-  ct[3] = s1888;-}-== END: "aes128BlockEncrypt.c" ==================-== BEGIN: "aes128BlockDecrypt.c" ================-/* File: "aes128BlockDecrypt.c". Automatically generated by SBV. Do not edit! */--#include "aes128Lib.h"--void aes128BlockDecrypt(const SWord32 *ct, const SWord32 *xkey,-                        SWord32 *pt)-{-  const SWord32 s0 = ct[0];-  const SWord32 s1 = ct[1];-  const SWord32 s2 = ct[2];-  const SWord32 s3 = ct[3];-  const SWord32 s4 = xkey[0];-  const SWord32 s5 = xkey[1];-  const SWord32 s6 = xkey[2];-  const SWord32 s7 = xkey[3];-  const SWord32 s8 = xkey[4];-  const SWord32 s9 = xkey[5];-  const SWord32 s10 = xkey[6];-  const SWord32 s11 = xkey[7];-  const SWord32 s12 = xkey[8];-  const SWord32 s13 = xkey[9];-  const SWord32 s14 = xkey[10];-  const SWord32 s15 = xkey[11];-  const SWord32 s16 = xkey[12];-  const SWord32 s17 = xkey[13];-  const SWord32 s18 = xkey[14];-  const SWord32 s19 = xkey[15];-  const SWord32 s20 = xkey[16];-  const SWord32 s21 = xkey[17];-  const SWord32 s22 = xkey[18];-  const SWord32 s23 = xkey[19];-  const SWord32 s24 = xkey[20];-  const SWord32 s25 = xkey[21];-  const SWord32 s26 = xkey[22];-  const SWord32 s27 = xkey[23];-  const SWord32 s28 = xkey[24];-  const SWord32 s29 = xkey[25];-  const SWord32 s30 = xkey[26];-  const SWord32 s31 = xkey[27];-  const SWord32 s32 = xkey[28];-  const SWord32 s33 = xkey[29];-  const SWord32 s34 = xkey[30];-  const SWord32 s35 = xkey[31];-  const SWord32 s36 = xkey[32];-  const SWord32 s37 = xkey[33];-  const SWord32 s38 = xkey[34];-  const SWord32 s39 = xkey[35];-  const SWord32 s40 = xkey[36];-  const SWord32 s41 = xkey[37];-  const SWord32 s42 = xkey[38];-  const SWord32 s43 = xkey[39];-  const SWord32 s44 = xkey[40];-  const SWord32 s45 = xkey[41];-  const SWord32 s46 = xkey[42];-  const SWord32 s47 = xkey[43];-  static const SWord8 table0[] = {-       82,   9, 106, 213,  48,  54, 165,  56, 191,  64, 163, 158, 129,-      243, 215, 251, 124, 227,  57, 130, 155,  47, 255, 135,  52, 142,-       67,  68, 196, 222, 233, 203,  84, 123, 148,  50, 166, 194,  35,-       61, 238,  76, 149,  11,  66, 250, 195,  78,   8,  46, 161, 102,-       40, 217,  36, 178, 118,  91, 162,  73, 109, 139, 209,  37, 114,-      248, 246, 100, 134, 104, 152,  22, 212, 164,  92, 204,  93, 101,-      182, 146, 108, 112,  72,  80, 253, 237, 185, 218,  94,  21,  70,-       87, 167, 141, 157, 132, 144, 216, 171,   0, 140, 188, 211,  10,-      247, 228,  88,   5, 184, 179,  69,   6, 208,  44,  30, 143, 202,-       63,  15,   2, 193, 175, 189,   3,   1,  19, 138, 107,  58, 145,-       17,  65,  79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230,-      115, 150, 172, 116,  34, 231, 173,  53, 133, 226, 249,  55, 232,-       28, 117, 223, 110,  71, 241,  26, 113,  29,  41, 197, 137, 111,-      183,  98,  14, 170,  24, 190,  27, 252,  86,  62,  75, 198, 210,-      121,  32, 154, 219, 192, 254, 120, 205,  90, 244,  31, 221, 168,-       51, 136,   7, 199,  49, 177,  18,  16,  89,  39, 128, 236,  95,-       96,  81, 127, 169,  25, 181,  74,  13,  45, 229, 122, 159, 147,-      201, 156, 239, 160, 224,  59,  77, 174,  42, 245, 176, 200, 235,-      187,  60, 131,  83, 153,  97,  23,  43,   4, 126, 186, 119, 214,-       38, 225, 105,  20,  99,  85,  33,  12, 125-  };-  static const SWord32 table1[] = {-      0x51f4a750UL, 0x7e416553UL, 0x1a17a4c3UL, 0x3a275e96UL,-      0x3bab6bcbUL, 0x1f9d45f1UL, 0xacfa58abUL, 0x4be30393UL,-      0x2030fa55UL, 0xad766df6UL, 0x88cc7691UL, 0xf5024c25UL,-      0x4fe5d7fcUL, 0xc52acbd7UL, 0x26354480UL, 0xb562a38fUL,-      0xdeb15a49UL, 0x25ba1b67UL, 0x45ea0e98UL, 0x5dfec0e1UL,-      0xc32f7502UL, 0x814cf012UL, 0x8d4697a3UL, 0x6bd3f9c6UL,-      0x038f5fe7UL, 0x15929c95UL, 0xbf6d7aebUL, 0x955259daUL,-      0xd4be832dUL, 0x587421d3UL, 0x49e06929UL, 0x8ec9c844UL,-      0x75c2896aUL, 0xf48e7978UL, 0x99583e6bUL, 0x27b971ddUL,-      0xbee14fb6UL, 0xf088ad17UL, 0xc920ac66UL, 0x7dce3ab4UL,-      0x63df4a18UL, 0xe51a3182UL, 0x97513360UL, 0x62537f45UL,-      0xb16477e0UL, 0xbb6bae84UL, 0xfe81a01cUL, 0xf9082b94UL,-      0x70486858UL, 0x8f45fd19UL, 0x94de6c87UL, 0x527bf8b7UL,-      0xab73d323UL, 0x724b02e2UL, 0xe31f8f57UL, 0x6655ab2aUL,-      0xb2eb2807UL, 0x2fb5c203UL, 0x86c57b9aUL, 0xd33708a5UL,-      0x302887f2UL, 0x23bfa5b2UL, 0x02036abaUL, 0xed16825cUL,-      0x8acf1c2bUL, 0xa779b492UL, 0xf307f2f0UL, 0x4e69e2a1UL,-      0x65daf4cdUL, 0x0605bed5UL, 0xd134621fUL, 0xc4a6fe8aUL,-      0x342e539dUL, 0xa2f355a0UL, 0x058ae132UL, 0xa4f6eb75UL,-      0x0b83ec39UL, 0x4060efaaUL, 0x5e719f06UL, 0xbd6e1051UL,-      0x3e218af9UL, 0x96dd063dUL, 0xdd3e05aeUL, 0x4de6bd46UL,-      0x91548db5UL, 0x71c45d05UL, 0x0406d46fUL, 0x605015ffUL,-      0x1998fb24UL, 0xd6bde997UL, 0x894043ccUL, 0x67d99e77UL,-      0xb0e842bdUL, 0x07898b88UL, 0xe7195b38UL, 0x79c8eedbUL,-      0xa17c0a47UL, 0x7c420fe9UL, 0xf8841ec9UL, 0x00000000UL,-      0x09808683UL, 0x322bed48UL, 0x1e1170acUL, 0x6c5a724eUL,-      0xfd0efffbUL, 0x0f853856UL, 0x3daed51eUL, 0x362d3927UL,-      0x0a0fd964UL, 0x685ca621UL, 0x9b5b54d1UL, 0x24362e3aUL,-      0x0c0a67b1UL, 0x9357e70fUL, 0xb4ee96d2UL, 0x1b9b919eUL,-      0x80c0c54fUL, 0x61dc20a2UL, 0x5a774b69UL, 0x1c121a16UL,-      0xe293ba0aUL, 0xc0a02ae5UL, 0x3c22e043UL, 0x121b171dUL,-      0x0e090d0bUL, 0xf28bc7adUL, 0x2db6a8b9UL, 0x141ea9c8UL,-      0x57f11985UL, 0xaf75074cUL, 0xee99ddbbUL, 0xa37f60fdUL,-      0xf701269fUL, 0x5c72f5bcUL, 0x44663bc5UL, 0x5bfb7e34UL,-      0x8b432976UL, 0xcb23c6dcUL, 0xb6edfc68UL, 0xb8e4f163UL,-      0xd731dccaUL, 0x42638510UL, 0x13972240UL, 0x84c61120UL,-      0x854a247dUL, 0xd2bb3df8UL, 0xaef93211UL, 0xc729a16dUL,-      0x1d9e2f4bUL, 0xdcb230f3UL, 0x0d8652ecUL, 0x77c1e3d0UL,-      0x2bb3166cUL, 0xa970b999UL, 0x119448faUL, 0x47e96422UL,-      0xa8fc8cc4UL, 0xa0f03f1aUL, 0x567d2cd8UL, 0x223390efUL,-      0x87494ec7UL, 0xd938d1c1UL, 0x8ccaa2feUL, 0x98d40b36UL,-      0xa6f581cfUL, 0xa57ade28UL, 0xdab78e26UL, 0x3fadbfa4UL,-      0x2c3a9de4UL, 0x5078920dUL, 0x6a5fcc9bUL, 0x547e4662UL,-      0xf68d13c2UL, 0x90d8b8e8UL, 0x2e39f75eUL, 0x82c3aff5UL,-      0x9f5d80beUL, 0x69d0937cUL, 0x6fd52da9UL, 0xcf2512b3UL,-      0xc8ac993bUL, 0x10187da7UL, 0xe89c636eUL, 0xdb3bbb7bUL,-      0xcd267809UL, 0x6e5918f4UL, 0xec9ab701UL, 0x834f9aa8UL,-      0xe6956e65UL, 0xaaffe67eUL, 0x21bccf08UL, 0xef15e8e6UL,-      0xbae79bd9UL, 0x4a6f36ceUL, 0xea9f09d4UL, 0x29b07cd6UL,-      0x31a4b2afUL, 0x2a3f2331UL, 0xc6a59430UL, 0x35a266c0UL,-      0x744ebc37UL, 0xfc82caa6UL, 0xe090d0b0UL, 0x33a7d815UL,-      0xf104984aUL, 0x41ecdaf7UL, 0x7fcd500eUL, 0x1791f62fUL,-      0x764dd68dUL, 0x43efb04dUL, 0xccaa4d54UL, 0xe49604dfUL,-      0x9ed1b5e3UL, 0x4c6a881bUL, 0xc12c1fb8UL, 0x4665517fUL,-      0x9d5eea04UL, 0x018c355dUL, 0xfa877473UL, 0xfb0b412eUL,-      0xb3671d5aUL, 0x92dbd252UL, 0xe9105633UL, 0x6dd64713UL,-      0x9ad7618cUL, 0x37a10c7aUL, 0x59f8148eUL, 0xeb133c89UL,-      0xcea927eeUL, 0xb761c935UL, 0xe11ce5edUL, 0x7a47b13cUL,-      0x9cd2df59UL, 0x55f2733fUL, 0x1814ce79UL, 0x73c737bfUL,-      0x53f7cdeaUL, 0x5ffdaa5bUL, 0xdf3d6f14UL, 0x7844db86UL,-      0xcaaff381UL, 0xb968c43eUL, 0x3824342cUL, 0xc2a3405fUL,-      0x161dc372UL, 0xbce2250cUL, 0x283c498bUL, 0xff0d9541UL,-      0x39a80171UL, 0x080cb3deUL, 0xd8b4e49cUL, 0x6456c190UL,-      0x7bcb8461UL, 0xd532b670UL, 0x486c5c74UL, 0xd0b85742UL-  };-  static const SWord32 table2[] = {-      0x5051f4a7UL, 0x537e4165UL, 0xc31a17a4UL, 0x963a275eUL,-      0xcb3bab6bUL, 0xf11f9d45UL, 0xabacfa58UL, 0x934be303UL,-      0x552030faUL, 0xf6ad766dUL, 0x9188cc76UL, 0x25f5024cUL,-      0xfc4fe5d7UL, 0xd7c52acbUL, 0x80263544UL, 0x8fb562a3UL,-      0x49deb15aUL, 0x6725ba1bUL, 0x9845ea0eUL, 0xe15dfec0UL,-      0x02c32f75UL, 0x12814cf0UL, 0xa38d4697UL, 0xc66bd3f9UL,-      0xe7038f5fUL, 0x9515929cUL, 0xebbf6d7aUL, 0xda955259UL,-      0x2dd4be83UL, 0xd3587421UL, 0x2949e069UL, 0x448ec9c8UL,-      0x6a75c289UL, 0x78f48e79UL, 0x6b99583eUL, 0xdd27b971UL,-      0xb6bee14fUL, 0x17f088adUL, 0x66c920acUL, 0xb47dce3aUL,-      0x1863df4aUL, 0x82e51a31UL, 0x60975133UL, 0x4562537fUL,-      0xe0b16477UL, 0x84bb6baeUL, 0x1cfe81a0UL, 0x94f9082bUL,-      0x58704868UL, 0x198f45fdUL, 0x8794de6cUL, 0xb7527bf8UL,-      0x23ab73d3UL, 0xe2724b02UL, 0x57e31f8fUL, 0x2a6655abUL,-      0x07b2eb28UL, 0x032fb5c2UL, 0x9a86c57bUL, 0xa5d33708UL,-      0xf2302887UL, 0xb223bfa5UL, 0xba02036aUL, 0x5ced1682UL,-      0x2b8acf1cUL, 0x92a779b4UL, 0xf0f307f2UL, 0xa14e69e2UL,-      0xcd65daf4UL, 0xd50605beUL, 0x1fd13462UL, 0x8ac4a6feUL,-      0x9d342e53UL, 0xa0a2f355UL, 0x32058ae1UL, 0x75a4f6ebUL,-      0x390b83ecUL, 0xaa4060efUL, 0x065e719fUL, 0x51bd6e10UL,-      0xf93e218aUL, 0x3d96dd06UL, 0xaedd3e05UL, 0x464de6bdUL,-      0xb591548dUL, 0x0571c45dUL, 0x6f0406d4UL, 0xff605015UL,-      0x241998fbUL, 0x97d6bde9UL, 0xcc894043UL, 0x7767d99eUL,-      0xbdb0e842UL, 0x8807898bUL, 0x38e7195bUL, 0xdb79c8eeUL,-      0x47a17c0aUL, 0xe97c420fUL, 0xc9f8841eUL, 0x00000000UL,-      0x83098086UL, 0x48322bedUL, 0xac1e1170UL, 0x4e6c5a72UL,-      0xfbfd0effUL, 0x560f8538UL, 0x1e3daed5UL, 0x27362d39UL,-      0x640a0fd9UL, 0x21685ca6UL, 0xd19b5b54UL, 0x3a24362eUL,-      0xb10c0a67UL, 0x0f9357e7UL, 0xd2b4ee96UL, 0x9e1b9b91UL,-      0x4f80c0c5UL, 0xa261dc20UL, 0x695a774bUL, 0x161c121aUL,-      0x0ae293baUL, 0xe5c0a02aUL, 0x433c22e0UL, 0x1d121b17UL,-      0x0b0e090dUL, 0xadf28bc7UL, 0xb92db6a8UL, 0xc8141ea9UL,-      0x8557f119UL, 0x4caf7507UL, 0xbbee99ddUL, 0xfda37f60UL,-      0x9ff70126UL, 0xbc5c72f5UL, 0xc544663bUL, 0x345bfb7eUL,-      0x768b4329UL, 0xdccb23c6UL, 0x68b6edfcUL, 0x63b8e4f1UL,-      0xcad731dcUL, 0x10426385UL, 0x40139722UL, 0x2084c611UL,-      0x7d854a24UL, 0xf8d2bb3dUL, 0x11aef932UL, 0x6dc729a1UL,-      0x4b1d9e2fUL, 0xf3dcb230UL, 0xec0d8652UL, 0xd077c1e3UL,-      0x6c2bb316UL, 0x99a970b9UL, 0xfa119448UL, 0x2247e964UL,-      0xc4a8fc8cUL, 0x1aa0f03fUL, 0xd8567d2cUL, 0xef223390UL,-      0xc787494eUL, 0xc1d938d1UL, 0xfe8ccaa2UL, 0x3698d40bUL,-      0xcfa6f581UL, 0x28a57adeUL, 0x26dab78eUL, 0xa43fadbfUL,-      0xe42c3a9dUL, 0x0d507892UL, 0x9b6a5fccUL, 0x62547e46UL,-      0xc2f68d13UL, 0xe890d8b8UL, 0x5e2e39f7UL, 0xf582c3afUL,-      0xbe9f5d80UL, 0x7c69d093UL, 0xa96fd52dUL, 0xb3cf2512UL,-      0x3bc8ac99UL, 0xa710187dUL, 0x6ee89c63UL, 0x7bdb3bbbUL,-      0x09cd2678UL, 0xf46e5918UL, 0x01ec9ab7UL, 0xa8834f9aUL,-      0x65e6956eUL, 0x7eaaffe6UL, 0x0821bccfUL, 0xe6ef15e8UL,-      0xd9bae79bUL, 0xce4a6f36UL, 0xd4ea9f09UL, 0xd629b07cUL,-      0xaf31a4b2UL, 0x312a3f23UL, 0x30c6a594UL, 0xc035a266UL,-      0x37744ebcUL, 0xa6fc82caUL, 0xb0e090d0UL, 0x1533a7d8UL,-      0x4af10498UL, 0xf741ecdaUL, 0x0e7fcd50UL, 0x2f1791f6UL,-      0x8d764dd6UL, 0x4d43efb0UL, 0x54ccaa4dUL, 0xdfe49604UL,-      0xe39ed1b5UL, 0x1b4c6a88UL, 0xb8c12c1fUL, 0x7f466551UL,-      0x049d5eeaUL, 0x5d018c35UL, 0x73fa8774UL, 0x2efb0b41UL,-      0x5ab3671dUL, 0x5292dbd2UL, 0x33e91056UL, 0x136dd647UL,-      0x8c9ad761UL, 0x7a37a10cUL, 0x8e59f814UL, 0x89eb133cUL,-      0xeecea927UL, 0x35b761c9UL, 0xede11ce5UL, 0x3c7a47b1UL,-      0x599cd2dfUL, 0x3f55f273UL, 0x791814ceUL, 0xbf73c737UL,-      0xea53f7cdUL, 0x5b5ffdaaUL, 0x14df3d6fUL, 0x867844dbUL,-      0x81caaff3UL, 0x3eb968c4UL, 0x2c382434UL, 0x5fc2a340UL,-      0x72161dc3UL, 0x0cbce225UL, 0x8b283c49UL, 0x41ff0d95UL,-      0x7139a801UL, 0xde080cb3UL, 0x9cd8b4e4UL, 0x906456c1UL,-      0x617bcb84UL, 0x70d532b6UL, 0x74486c5cUL, 0x42d0b857UL-  };-  static const SWord32 table3[] = {-      0xa75051f4UL, 0x65537e41UL, 0xa4c31a17UL, 0x5e963a27UL,-      0x6bcb3babUL, 0x45f11f9dUL, 0x58abacfaUL, 0x03934be3UL,-      0xfa552030UL, 0x6df6ad76UL, 0x769188ccUL, 0x4c25f502UL,-      0xd7fc4fe5UL, 0xcbd7c52aUL, 0x44802635UL, 0xa38fb562UL,-      0x5a49deb1UL, 0x1b6725baUL, 0x0e9845eaUL, 0xc0e15dfeUL,-      0x7502c32fUL, 0xf012814cUL, 0x97a38d46UL, 0xf9c66bd3UL,-      0x5fe7038fUL, 0x9c951592UL, 0x7aebbf6dUL, 0x59da9552UL,-      0x832dd4beUL, 0x21d35874UL, 0x692949e0UL, 0xc8448ec9UL,-      0x896a75c2UL, 0x7978f48eUL, 0x3e6b9958UL, 0x71dd27b9UL,-      0x4fb6bee1UL, 0xad17f088UL, 0xac66c920UL, 0x3ab47dceUL,-      0x4a1863dfUL, 0x3182e51aUL, 0x33609751UL, 0x7f456253UL,-      0x77e0b164UL, 0xae84bb6bUL, 0xa01cfe81UL, 0x2b94f908UL,-      0x68587048UL, 0xfd198f45UL, 0x6c8794deUL, 0xf8b7527bUL,-      0xd323ab73UL, 0x02e2724bUL, 0x8f57e31fUL, 0xab2a6655UL,-      0x2807b2ebUL, 0xc2032fb5UL, 0x7b9a86c5UL, 0x08a5d337UL,-      0x87f23028UL, 0xa5b223bfUL, 0x6aba0203UL, 0x825ced16UL,-      0x1c2b8acfUL, 0xb492a779UL, 0xf2f0f307UL, 0xe2a14e69UL,-      0xf4cd65daUL, 0xbed50605UL, 0x621fd134UL, 0xfe8ac4a6UL,-      0x539d342eUL, 0x55a0a2f3UL, 0xe132058aUL, 0xeb75a4f6UL,-      0xec390b83UL, 0xefaa4060UL, 0x9f065e71UL, 0x1051bd6eUL,-      0x8af93e21UL, 0x063d96ddUL, 0x05aedd3eUL, 0xbd464de6UL,-      0x8db59154UL, 0x5d0571c4UL, 0xd46f0406UL, 0x15ff6050UL,-      0xfb241998UL, 0xe997d6bdUL, 0x43cc8940UL, 0x9e7767d9UL,-      0x42bdb0e8UL, 0x8b880789UL, 0x5b38e719UL, 0xeedb79c8UL,-      0x0a47a17cUL, 0x0fe97c42UL, 0x1ec9f884UL, 0x00000000UL,-      0x86830980UL, 0xed48322bUL, 0x70ac1e11UL, 0x724e6c5aUL,-      0xfffbfd0eUL, 0x38560f85UL, 0xd51e3daeUL, 0x3927362dUL,-      0xd9640a0fUL, 0xa621685cUL, 0x54d19b5bUL, 0x2e3a2436UL,-      0x67b10c0aUL, 0xe70f9357UL, 0x96d2b4eeUL, 0x919e1b9bUL,-      0xc54f80c0UL, 0x20a261dcUL, 0x4b695a77UL, 0x1a161c12UL,-      0xba0ae293UL, 0x2ae5c0a0UL, 0xe0433c22UL, 0x171d121bUL,-      0x0d0b0e09UL, 0xc7adf28bUL, 0xa8b92db6UL, 0xa9c8141eUL,-      0x198557f1UL, 0x074caf75UL, 0xddbbee99UL, 0x60fda37fUL,-      0x269ff701UL, 0xf5bc5c72UL, 0x3bc54466UL, 0x7e345bfbUL,-      0x29768b43UL, 0xc6dccb23UL, 0xfc68b6edUL, 0xf163b8e4UL,-      0xdccad731UL, 0x85104263UL, 0x22401397UL, 0x112084c6UL,-      0x247d854aUL, 0x3df8d2bbUL, 0x3211aef9UL, 0xa16dc729UL,-      0x2f4b1d9eUL, 0x30f3dcb2UL, 0x52ec0d86UL, 0xe3d077c1UL,-      0x166c2bb3UL, 0xb999a970UL, 0x48fa1194UL, 0x642247e9UL,-      0x8cc4a8fcUL, 0x3f1aa0f0UL, 0x2cd8567dUL, 0x90ef2233UL,-      0x4ec78749UL, 0xd1c1d938UL, 0xa2fe8ccaUL, 0x0b3698d4UL,-      0x81cfa6f5UL, 0xde28a57aUL, 0x8e26dab7UL, 0xbfa43fadUL,-      0x9de42c3aUL, 0x920d5078UL, 0xcc9b6a5fUL, 0x4662547eUL,-      0x13c2f68dUL, 0xb8e890d8UL, 0xf75e2e39UL, 0xaff582c3UL,-      0x80be9f5dUL, 0x937c69d0UL, 0x2da96fd5UL, 0x12b3cf25UL,-      0x993bc8acUL, 0x7da71018UL, 0x636ee89cUL, 0xbb7bdb3bUL,-      0x7809cd26UL, 0x18f46e59UL, 0xb701ec9aUL, 0x9aa8834fUL,-      0x6e65e695UL, 0xe67eaaffUL, 0xcf0821bcUL, 0xe8e6ef15UL,-      0x9bd9bae7UL, 0x36ce4a6fUL, 0x09d4ea9fUL, 0x7cd629b0UL,-      0xb2af31a4UL, 0x23312a3fUL, 0x9430c6a5UL, 0x66c035a2UL,-      0xbc37744eUL, 0xcaa6fc82UL, 0xd0b0e090UL, 0xd81533a7UL,-      0x984af104UL, 0xdaf741ecUL, 0x500e7fcdUL, 0xf62f1791UL,-      0xd68d764dUL, 0xb04d43efUL, 0x4d54ccaaUL, 0x04dfe496UL,-      0xb5e39ed1UL, 0x881b4c6aUL, 0x1fb8c12cUL, 0x517f4665UL,-      0xea049d5eUL, 0x355d018cUL, 0x7473fa87UL, 0x412efb0bUL,-      0x1d5ab367UL, 0xd25292dbUL, 0x5633e910UL, 0x47136dd6UL,-      0x618c9ad7UL, 0x0c7a37a1UL, 0x148e59f8UL, 0x3c89eb13UL,-      0x27eecea9UL, 0xc935b761UL, 0xe5ede11cUL, 0xb13c7a47UL,-      0xdf599cd2UL, 0x733f55f2UL, 0xce791814UL, 0x37bf73c7UL,-      0xcdea53f7UL, 0xaa5b5ffdUL, 0x6f14df3dUL, 0xdb867844UL,-      0xf381caafUL, 0xc43eb968UL, 0x342c3824UL, 0x405fc2a3UL,-      0xc372161dUL, 0x250cbce2UL, 0x498b283cUL, 0x9541ff0dUL,-      0x017139a8UL, 0xb3de080cUL, 0xe49cd8b4UL, 0xc1906456UL,-      0x84617bcbUL, 0xb670d532UL, 0x5c74486cUL, 0x5742d0b8UL-  };-  static const SWord32 table4[] = {-      0xf4a75051UL, 0x4165537eUL, 0x17a4c31aUL, 0x275e963aUL,-      0xab6bcb3bUL, 0x9d45f11fUL, 0xfa58abacUL, 0xe303934bUL,-      0x30fa5520UL, 0x766df6adUL, 0xcc769188UL, 0x024c25f5UL,-      0xe5d7fc4fUL, 0x2acbd7c5UL, 0x35448026UL, 0x62a38fb5UL,-      0xb15a49deUL, 0xba1b6725UL, 0xea0e9845UL, 0xfec0e15dUL,-      0x2f7502c3UL, 0x4cf01281UL, 0x4697a38dUL, 0xd3f9c66bUL,-      0x8f5fe703UL, 0x929c9515UL, 0x6d7aebbfUL, 0x5259da95UL,-      0xbe832dd4UL, 0x7421d358UL, 0xe0692949UL, 0xc9c8448eUL,-      0xc2896a75UL, 0x8e7978f4UL, 0x583e6b99UL, 0xb971dd27UL,-      0xe14fb6beUL, 0x88ad17f0UL, 0x20ac66c9UL, 0xce3ab47dUL,-      0xdf4a1863UL, 0x1a3182e5UL, 0x51336097UL, 0x537f4562UL,-      0x6477e0b1UL, 0x6bae84bbUL, 0x81a01cfeUL, 0x082b94f9UL,-      0x48685870UL, 0x45fd198fUL, 0xde6c8794UL, 0x7bf8b752UL,-      0x73d323abUL, 0x4b02e272UL, 0x1f8f57e3UL, 0x55ab2a66UL,-      0xeb2807b2UL, 0xb5c2032fUL, 0xc57b9a86UL, 0x3708a5d3UL,-      0x2887f230UL, 0xbfa5b223UL, 0x036aba02UL, 0x16825cedUL,-      0xcf1c2b8aUL, 0x79b492a7UL, 0x07f2f0f3UL, 0x69e2a14eUL,-      0xdaf4cd65UL, 0x05bed506UL, 0x34621fd1UL, 0xa6fe8ac4UL,-      0x2e539d34UL, 0xf355a0a2UL, 0x8ae13205UL, 0xf6eb75a4UL,-      0x83ec390bUL, 0x60efaa40UL, 0x719f065eUL, 0x6e1051bdUL,-      0x218af93eUL, 0xdd063d96UL, 0x3e05aeddUL, 0xe6bd464dUL,-      0x548db591UL, 0xc45d0571UL, 0x06d46f04UL, 0x5015ff60UL,-      0x98fb2419UL, 0xbde997d6UL, 0x4043cc89UL, 0xd99e7767UL,-      0xe842bdb0UL, 0x898b8807UL, 0x195b38e7UL, 0xc8eedb79UL,-      0x7c0a47a1UL, 0x420fe97cUL, 0x841ec9f8UL, 0x00000000UL,-      0x80868309UL, 0x2bed4832UL, 0x1170ac1eUL, 0x5a724e6cUL,-      0x0efffbfdUL, 0x8538560fUL, 0xaed51e3dUL, 0x2d392736UL,-      0x0fd9640aUL, 0x5ca62168UL, 0x5b54d19bUL, 0x362e3a24UL,-      0x0a67b10cUL, 0x57e70f93UL, 0xee96d2b4UL, 0x9b919e1bUL,-      0xc0c54f80UL, 0xdc20a261UL, 0x774b695aUL, 0x121a161cUL,-      0x93ba0ae2UL, 0xa02ae5c0UL, 0x22e0433cUL, 0x1b171d12UL,-      0x090d0b0eUL, 0x8bc7adf2UL, 0xb6a8b92dUL, 0x1ea9c814UL,-      0xf1198557UL, 0x75074cafUL, 0x99ddbbeeUL, 0x7f60fda3UL,-      0x01269ff7UL, 0x72f5bc5cUL, 0x663bc544UL, 0xfb7e345bUL,-      0x4329768bUL, 0x23c6dccbUL, 0xedfc68b6UL, 0xe4f163b8UL,-      0x31dccad7UL, 0x63851042UL, 0x97224013UL, 0xc6112084UL,-      0x4a247d85UL, 0xbb3df8d2UL, 0xf93211aeUL, 0x29a16dc7UL,-      0x9e2f4b1dUL, 0xb230f3dcUL, 0x8652ec0dUL, 0xc1e3d077UL,-      0xb3166c2bUL, 0x70b999a9UL, 0x9448fa11UL, 0xe9642247UL,-      0xfc8cc4a8UL, 0xf03f1aa0UL, 0x7d2cd856UL, 0x3390ef22UL,-      0x494ec787UL, 0x38d1c1d9UL, 0xcaa2fe8cUL, 0xd40b3698UL,-      0xf581cfa6UL, 0x7ade28a5UL, 0xb78e26daUL, 0xadbfa43fUL,-      0x3a9de42cUL, 0x78920d50UL, 0x5fcc9b6aUL, 0x7e466254UL,-      0x8d13c2f6UL, 0xd8b8e890UL, 0x39f75e2eUL, 0xc3aff582UL,-      0x5d80be9fUL, 0xd0937c69UL, 0xd52da96fUL, 0x2512b3cfUL,-      0xac993bc8UL, 0x187da710UL, 0x9c636ee8UL, 0x3bbb7bdbUL,-      0x267809cdUL, 0x5918f46eUL, 0x9ab701ecUL, 0x4f9aa883UL,-      0x956e65e6UL, 0xffe67eaaUL, 0xbccf0821UL, 0x15e8e6efUL,-      0xe79bd9baUL, 0x6f36ce4aUL, 0x9f09d4eaUL, 0xb07cd629UL,-      0xa4b2af31UL, 0x3f23312aUL, 0xa59430c6UL, 0xa266c035UL,-      0x4ebc3774UL, 0x82caa6fcUL, 0x90d0b0e0UL, 0xa7d81533UL,-      0x04984af1UL, 0xecdaf741UL, 0xcd500e7fUL, 0x91f62f17UL,-      0x4dd68d76UL, 0xefb04d43UL, 0xaa4d54ccUL, 0x9604dfe4UL,-      0xd1b5e39eUL, 0x6a881b4cUL, 0x2c1fb8c1UL, 0x65517f46UL,-      0x5eea049dUL, 0x8c355d01UL, 0x877473faUL, 0x0b412efbUL,-      0x671d5ab3UL, 0xdbd25292UL, 0x105633e9UL, 0xd647136dUL,-      0xd7618c9aUL, 0xa10c7a37UL, 0xf8148e59UL, 0x133c89ebUL,-      0xa927eeceUL, 0x61c935b7UL, 0x1ce5ede1UL, 0x47b13c7aUL,-      0xd2df599cUL, 0xf2733f55UL, 0x14ce7918UL, 0xc737bf73UL,-      0xf7cdea53UL, 0xfdaa5b5fUL, 0x3d6f14dfUL, 0x44db8678UL,-      0xaff381caUL, 0x68c43eb9UL, 0x24342c38UL, 0xa3405fc2UL,-      0x1dc37216UL, 0xe2250cbcUL, 0x3c498b28UL, 0x0d9541ffUL,-      0xa8017139UL, 0x0cb3de08UL, 0xb4e49cd8UL, 0x56c19064UL,-      0xcb84617bUL, 0x32b670d5UL, 0x6c5c7448UL, 0xb85742d0UL-  };-  const SWord32 s560 = s0 ^ s4;-  const SWord16 s561 = (SWord16) (s560 >> 16);-  const SWord8  s562 = (SWord8) (s561 >> 8);-  const SWord32 s563 = table1[s562];-  const SWord32 s819 = s3 ^ s7;-  const SWord16 s820 = (SWord16) (s819 >> 16);-  const SWord8  s821 = (SWord8) s820;-  const SWord32 s822 = table2[s821];-  const SWord32 s823 = s563 ^ s822;-  const SWord32 s1079 = s2 ^ s6;-  const SWord16 s1080 = (SWord16) s1079;-  const SWord8  s1081 = (SWord8) (s1080 >> 8);-  const SWord32 s1082 = table3[s1081];-  const SWord32 s1083 = s823 ^ s1082;-  const SWord32 s1339 = s1 ^ s5;-  const SWord16 s1340 = (SWord16) s1339;-  const SWord8  s1341 = (SWord8) s1340;-  const SWord32 s1342 = table4[s1341];-  const SWord32 s1343 = s1083 ^ s1342;-  const SWord32 s1344 = s8 ^ s1343;-  const SWord16 s1345 = (SWord16) (s1344 >> 16);-  const SWord8  s1346 = (SWord8) (s1345 >> 8);-  const SWord32 s1347 = table1[s1346];-  const SWord8  s1348 = (SWord8) (s820 >> 8);-  const SWord32 s1349 = table1[s1348];-  const SWord16 s1350 = (SWord16) (s1079 >> 16);-  const SWord8  s1351 = (SWord8) s1350;-  const SWord32 s1352 = table2[s1351];-  const SWord32 s1353 = s1349 ^ s1352;-  const SWord8  s1354 = (SWord8) (s1340 >> 8);-  const SWord32 s1355 = table3[s1354];-  const SWord32 s1356 = s1353 ^ s1355;-  const SWord16 s1357 = (SWord16) s560;-  const SWord8  s1358 = (SWord8) s1357;-  const SWord32 s1359 = table4[s1358];-  const SWord32 s1360 = s1356 ^ s1359;-  const SWord32 s1361 = s11 ^ s1360;-  const SWord16 s1362 = (SWord16) (s1361 >> 16);-  const SWord8  s1363 = (SWord8) s1362;-  const SWord32 s1364 = table2[s1363];-  const SWord32 s1365 = s1347 ^ s1364;-  const SWord8  s1366 = (SWord8) (s1350 >> 8);-  const SWord32 s1367 = table1[s1366];-  const SWord16 s1368 = (SWord16) (s1339 >> 16);-  const SWord8  s1369 = (SWord8) s1368;-  const SWord32 s1370 = table2[s1369];-  const SWord32 s1371 = s1367 ^ s1370;-  const SWord8  s1372 = (SWord8) (s1357 >> 8);-  const SWord32 s1373 = table3[s1372];-  const SWord32 s1374 = s1371 ^ s1373;-  const SWord16 s1375 = (SWord16) s819;-  const SWord8  s1376 = (SWord8) s1375;-  const SWord32 s1377 = table4[s1376];-  const SWord32 s1378 = s1374 ^ s1377;-  const SWord32 s1379 = s10 ^ s1378;-  const SWord16 s1380 = (SWord16) s1379;-  const SWord8  s1381 = (SWord8) (s1380 >> 8);-  const SWord32 s1382 = table3[s1381];-  const SWord32 s1383 = s1365 ^ s1382;-  const SWord8  s1384 = (SWord8) (s1368 >> 8);-  const SWord32 s1385 = table1[s1384];-  const SWord8  s1386 = (SWord8) s561;-  const SWord32 s1387 = table2[s1386];-  const SWord32 s1388 = s1385 ^ s1387;-  const SWord8  s1389 = (SWord8) (s1375 >> 8);-  const SWord32 s1390 = table3[s1389];-  const SWord32 s1391 = s1388 ^ s1390;-  const SWord8  s1392 = (SWord8) s1080;-  const SWord32 s1393 = table4[s1392];-  const SWord32 s1394 = s1391 ^ s1393;-  const SWord32 s1395 = s9 ^ s1394;-  const SWord16 s1396 = (SWord16) s1395;-  const SWord8  s1397 = (SWord8) s1396;-  const SWord32 s1398 = table4[s1397];-  const SWord32 s1399 = s1383 ^ s1398;-  const SWord32 s1400 = s12 ^ s1399;-  const SWord16 s1401 = (SWord16) (s1400 >> 16);-  const SWord8  s1402 = (SWord8) (s1401 >> 8);-  const SWord32 s1403 = table1[s1402];-  const SWord8  s1404 = (SWord8) (s1362 >> 8);-  const SWord32 s1405 = table1[s1404];-  const SWord16 s1406 = (SWord16) (s1379 >> 16);-  const SWord8  s1407 = (SWord8) s1406;-  const SWord32 s1408 = table2[s1407];-  const SWord32 s1409 = s1405 ^ s1408;-  const SWord8  s1410 = (SWord8) (s1396 >> 8);-  const SWord32 s1411 = table3[s1410];-  const SWord32 s1412 = s1409 ^ s1411;-  const SWord16 s1413 = (SWord16) s1344;-  const SWord8  s1414 = (SWord8) s1413;-  const SWord32 s1415 = table4[s1414];-  const SWord32 s1416 = s1412 ^ s1415;-  const SWord32 s1417 = s15 ^ s1416;-  const SWord16 s1418 = (SWord16) (s1417 >> 16);-  const SWord8  s1419 = (SWord8) s1418;-  const SWord32 s1420 = table2[s1419];-  const SWord32 s1421 = s1403 ^ s1420;-  const SWord8  s1422 = (SWord8) (s1406 >> 8);-  const SWord32 s1423 = table1[s1422];-  const SWord16 s1424 = (SWord16) (s1395 >> 16);-  const SWord8  s1425 = (SWord8) s1424;-  const SWord32 s1426 = table2[s1425];-  const SWord32 s1427 = s1423 ^ s1426;-  const SWord8  s1428 = (SWord8) (s1413 >> 8);-  const SWord32 s1429 = table3[s1428];-  const SWord32 s1430 = s1427 ^ s1429;-  const SWord16 s1431 = (SWord16) s1361;-  const SWord8  s1432 = (SWord8) s1431;-  const SWord32 s1433 = table4[s1432];-  const SWord32 s1434 = s1430 ^ s1433;-  const SWord32 s1435 = s14 ^ s1434;-  const SWord16 s1436 = (SWord16) s1435;-  const SWord8  s1437 = (SWord8) (s1436 >> 8);-  const SWord32 s1438 = table3[s1437];-  const SWord32 s1439 = s1421 ^ s1438;-  const SWord8  s1440 = (SWord8) (s1424 >> 8);-  const SWord32 s1441 = table1[s1440];-  const SWord8  s1442 = (SWord8) s1345;-  const SWord32 s1443 = table2[s1442];-  const SWord32 s1444 = s1441 ^ s1443;-  const SWord8  s1445 = (SWord8) (s1431 >> 8);-  const SWord32 s1446 = table3[s1445];-  const SWord32 s1447 = s1444 ^ s1446;-  const SWord8  s1448 = (SWord8) s1380;-  const SWord32 s1449 = table4[s1448];-  const SWord32 s1450 = s1447 ^ s1449;-  const SWord32 s1451 = s13 ^ s1450;-  const SWord16 s1452 = (SWord16) s1451;-  const SWord8  s1453 = (SWord8) s1452;-  const SWord32 s1454 = table4[s1453];-  const SWord32 s1455 = s1439 ^ s1454;-  const SWord32 s1456 = s16 ^ s1455;-  const SWord16 s1457 = (SWord16) (s1456 >> 16);-  const SWord8  s1458 = (SWord8) (s1457 >> 8);-  const SWord32 s1459 = table1[s1458];-  const SWord8  s1460 = (SWord8) (s1418 >> 8);-  const SWord32 s1461 = table1[s1460];-  const SWord16 s1462 = (SWord16) (s1435 >> 16);-  const SWord8  s1463 = (SWord8) s1462;-  const SWord32 s1464 = table2[s1463];-  const SWord32 s1465 = s1461 ^ s1464;-  const SWord8  s1466 = (SWord8) (s1452 >> 8);-  const SWord32 s1467 = table3[s1466];-  const SWord32 s1468 = s1465 ^ s1467;-  const SWord16 s1469 = (SWord16) s1400;-  const SWord8  s1470 = (SWord8) s1469;-  const SWord32 s1471 = table4[s1470];-  const SWord32 s1472 = s1468 ^ s1471;-  const SWord32 s1473 = s19 ^ s1472;-  const SWord16 s1474 = (SWord16) (s1473 >> 16);-  const SWord8  s1475 = (SWord8) s1474;-  const SWord32 s1476 = table2[s1475];-  const SWord32 s1477 = s1459 ^ s1476;-  const SWord8  s1478 = (SWord8) (s1462 >> 8);-  const SWord32 s1479 = table1[s1478];-  const SWord16 s1480 = (SWord16) (s1451 >> 16);-  const SWord8  s1481 = (SWord8) s1480;-  const SWord32 s1482 = table2[s1481];-  const SWord32 s1483 = s1479 ^ s1482;-  const SWord8  s1484 = (SWord8) (s1469 >> 8);-  const SWord32 s1485 = table3[s1484];-  const SWord32 s1486 = s1483 ^ s1485;-  const SWord16 s1487 = (SWord16) s1417;-  const SWord8  s1488 = (SWord8) s1487;-  const SWord32 s1489 = table4[s1488];-  const SWord32 s1490 = s1486 ^ s1489;-  const SWord32 s1491 = s18 ^ s1490;-  const SWord16 s1492 = (SWord16) s1491;-  const SWord8  s1493 = (SWord8) (s1492 >> 8);-  const SWord32 s1494 = table3[s1493];-  const SWord32 s1495 = s1477 ^ s1494;-  const SWord8  s1496 = (SWord8) (s1480 >> 8);-  const SWord32 s1497 = table1[s1496];-  const SWord8  s1498 = (SWord8) s1401;-  const SWord32 s1499 = table2[s1498];-  const SWord32 s1500 = s1497 ^ s1499;-  const SWord8  s1501 = (SWord8) (s1487 >> 8);-  const SWord32 s1502 = table3[s1501];-  const SWord32 s1503 = s1500 ^ s1502;-  const SWord8  s1504 = (SWord8) s1436;-  const SWord32 s1505 = table4[s1504];-  const SWord32 s1506 = s1503 ^ s1505;-  const SWord32 s1507 = s17 ^ s1506;-  const SWord16 s1508 = (SWord16) s1507;-  const SWord8  s1509 = (SWord8) s1508;-  const SWord32 s1510 = table4[s1509];-  const SWord32 s1511 = s1495 ^ s1510;-  const SWord32 s1512 = s20 ^ s1511;-  const SWord16 s1513 = (SWord16) (s1512 >> 16);-  const SWord8  s1514 = (SWord8) (s1513 >> 8);-  const SWord32 s1515 = table1[s1514];-  const SWord8  s1516 = (SWord8) (s1474 >> 8);-  const SWord32 s1517 = table1[s1516];-  const SWord16 s1518 = (SWord16) (s1491 >> 16);-  const SWord8  s1519 = (SWord8) s1518;-  const SWord32 s1520 = table2[s1519];-  const SWord32 s1521 = s1517 ^ s1520;-  const SWord8  s1522 = (SWord8) (s1508 >> 8);-  const SWord32 s1523 = table3[s1522];-  const SWord32 s1524 = s1521 ^ s1523;-  const SWord16 s1525 = (SWord16) s1456;-  const SWord8  s1526 = (SWord8) s1525;-  const SWord32 s1527 = table4[s1526];-  const SWord32 s1528 = s1524 ^ s1527;-  const SWord32 s1529 = s23 ^ s1528;-  const SWord16 s1530 = (SWord16) (s1529 >> 16);-  const SWord8  s1531 = (SWord8) s1530;-  const SWord32 s1532 = table2[s1531];-  const SWord32 s1533 = s1515 ^ s1532;-  const SWord8  s1534 = (SWord8) (s1518 >> 8);-  const SWord32 s1535 = table1[s1534];-  const SWord16 s1536 = (SWord16) (s1507 >> 16);-  const SWord8  s1537 = (SWord8) s1536;-  const SWord32 s1538 = table2[s1537];-  const SWord32 s1539 = s1535 ^ s1538;-  const SWord8  s1540 = (SWord8) (s1525 >> 8);-  const SWord32 s1541 = table3[s1540];-  const SWord32 s1542 = s1539 ^ s1541;-  const SWord16 s1543 = (SWord16) s1473;-  const SWord8  s1544 = (SWord8) s1543;-  const SWord32 s1545 = table4[s1544];-  const SWord32 s1546 = s1542 ^ s1545;-  const SWord32 s1547 = s22 ^ s1546;-  const SWord16 s1548 = (SWord16) s1547;-  const SWord8  s1549 = (SWord8) (s1548 >> 8);-  const SWord32 s1550 = table3[s1549];-  const SWord32 s1551 = s1533 ^ s1550;-  const SWord8  s1552 = (SWord8) (s1536 >> 8);-  const SWord32 s1553 = table1[s1552];-  const SWord8  s1554 = (SWord8) s1457;-  const SWord32 s1555 = table2[s1554];-  const SWord32 s1556 = s1553 ^ s1555;-  const SWord8  s1557 = (SWord8) (s1543 >> 8);-  const SWord32 s1558 = table3[s1557];-  const SWord32 s1559 = s1556 ^ s1558;-  const SWord8  s1560 = (SWord8) s1492;-  const SWord32 s1561 = table4[s1560];-  const SWord32 s1562 = s1559 ^ s1561;-  const SWord32 s1563 = s21 ^ s1562;-  const SWord16 s1564 = (SWord16) s1563;-  const SWord8  s1565 = (SWord8) s1564;-  const SWord32 s1566 = table4[s1565];-  const SWord32 s1567 = s1551 ^ s1566;-  const SWord32 s1568 = s24 ^ s1567;-  const SWord16 s1569 = (SWord16) (s1568 >> 16);-  const SWord8  s1570 = (SWord8) (s1569 >> 8);-  const SWord32 s1571 = table1[s1570];-  const SWord8  s1572 = (SWord8) (s1530 >> 8);-  const SWord32 s1573 = table1[s1572];-  const SWord16 s1574 = (SWord16) (s1547 >> 16);-  const SWord8  s1575 = (SWord8) s1574;-  const SWord32 s1576 = table2[s1575];-  const SWord32 s1577 = s1573 ^ s1576;-  const SWord8  s1578 = (SWord8) (s1564 >> 8);-  const SWord32 s1579 = table3[s1578];-  const SWord32 s1580 = s1577 ^ s1579;-  const SWord16 s1581 = (SWord16) s1512;-  const SWord8  s1582 = (SWord8) s1581;-  const SWord32 s1583 = table4[s1582];-  const SWord32 s1584 = s1580 ^ s1583;-  const SWord32 s1585 = s27 ^ s1584;-  const SWord16 s1586 = (SWord16) (s1585 >> 16);-  const SWord8  s1587 = (SWord8) s1586;-  const SWord32 s1588 = table2[s1587];-  const SWord32 s1589 = s1571 ^ s1588;-  const SWord8  s1590 = (SWord8) (s1574 >> 8);-  const SWord32 s1591 = table1[s1590];-  const SWord16 s1592 = (SWord16) (s1563 >> 16);-  const SWord8  s1593 = (SWord8) s1592;-  const SWord32 s1594 = table2[s1593];-  const SWord32 s1595 = s1591 ^ s1594;-  const SWord8  s1596 = (SWord8) (s1581 >> 8);-  const SWord32 s1597 = table3[s1596];-  const SWord32 s1598 = s1595 ^ s1597;-  const SWord16 s1599 = (SWord16) s1529;-  const SWord8  s1600 = (SWord8) s1599;-  const SWord32 s1601 = table4[s1600];-  const SWord32 s1602 = s1598 ^ s1601;-  const SWord32 s1603 = s26 ^ s1602;-  const SWord16 s1604 = (SWord16) s1603;-  const SWord8  s1605 = (SWord8) (s1604 >> 8);-  const SWord32 s1606 = table3[s1605];-  const SWord32 s1607 = s1589 ^ s1606;-  const SWord8  s1608 = (SWord8) (s1592 >> 8);-  const SWord32 s1609 = table1[s1608];-  const SWord8  s1610 = (SWord8) s1513;-  const SWord32 s1611 = table2[s1610];-  const SWord32 s1612 = s1609 ^ s1611;-  const SWord8  s1613 = (SWord8) (s1599 >> 8);-  const SWord32 s1614 = table3[s1613];-  const SWord32 s1615 = s1612 ^ s1614;-  const SWord8  s1616 = (SWord8) s1548;-  const SWord32 s1617 = table4[s1616];-  const SWord32 s1618 = s1615 ^ s1617;-  const SWord32 s1619 = s25 ^ s1618;-  const SWord16 s1620 = (SWord16) s1619;-  const SWord8  s1621 = (SWord8) s1620;-  const SWord32 s1622 = table4[s1621];-  const SWord32 s1623 = s1607 ^ s1622;-  const SWord32 s1624 = s28 ^ s1623;-  const SWord16 s1625 = (SWord16) (s1624 >> 16);-  const SWord8  s1626 = (SWord8) (s1625 >> 8);-  const SWord32 s1627 = table1[s1626];-  const SWord8  s1628 = (SWord8) (s1586 >> 8);-  const SWord32 s1629 = table1[s1628];-  const SWord16 s1630 = (SWord16) (s1603 >> 16);-  const SWord8  s1631 = (SWord8) s1630;-  const SWord32 s1632 = table2[s1631];-  const SWord32 s1633 = s1629 ^ s1632;-  const SWord8  s1634 = (SWord8) (s1620 >> 8);-  const SWord32 s1635 = table3[s1634];-  const SWord32 s1636 = s1633 ^ s1635;-  const SWord16 s1637 = (SWord16) s1568;-  const SWord8  s1638 = (SWord8) s1637;-  const SWord32 s1639 = table4[s1638];-  const SWord32 s1640 = s1636 ^ s1639;-  const SWord32 s1641 = s31 ^ s1640;-  const SWord16 s1642 = (SWord16) (s1641 >> 16);-  const SWord8  s1643 = (SWord8) s1642;-  const SWord32 s1644 = table2[s1643];-  const SWord32 s1645 = s1627 ^ s1644;-  const SWord8  s1646 = (SWord8) (s1630 >> 8);-  const SWord32 s1647 = table1[s1646];-  const SWord16 s1648 = (SWord16) (s1619 >> 16);-  const SWord8  s1649 = (SWord8) s1648;-  const SWord32 s1650 = table2[s1649];-  const SWord32 s1651 = s1647 ^ s1650;-  const SWord8  s1652 = (SWord8) (s1637 >> 8);-  const SWord32 s1653 = table3[s1652];-  const SWord32 s1654 = s1651 ^ s1653;-  const SWord16 s1655 = (SWord16) s1585;-  const SWord8  s1656 = (SWord8) s1655;-  const SWord32 s1657 = table4[s1656];-  const SWord32 s1658 = s1654 ^ s1657;-  const SWord32 s1659 = s30 ^ s1658;-  const SWord16 s1660 = (SWord16) s1659;-  const SWord8  s1661 = (SWord8) (s1660 >> 8);-  const SWord32 s1662 = table3[s1661];-  const SWord32 s1663 = s1645 ^ s1662;-  const SWord8  s1664 = (SWord8) (s1648 >> 8);-  const SWord32 s1665 = table1[s1664];-  const SWord8  s1666 = (SWord8) s1569;-  const SWord32 s1667 = table2[s1666];-  const SWord32 s1668 = s1665 ^ s1667;-  const SWord8  s1669 = (SWord8) (s1655 >> 8);-  const SWord32 s1670 = table3[s1669];-  const SWord32 s1671 = s1668 ^ s1670;-  const SWord8  s1672 = (SWord8) s1604;-  const SWord32 s1673 = table4[s1672];-  const SWord32 s1674 = s1671 ^ s1673;-  const SWord32 s1675 = s29 ^ s1674;-  const SWord16 s1676 = (SWord16) s1675;-  const SWord8  s1677 = (SWord8) s1676;-  const SWord32 s1678 = table4[s1677];-  const SWord32 s1679 = s1663 ^ s1678;-  const SWord32 s1680 = s32 ^ s1679;-  const SWord16 s1681 = (SWord16) (s1680 >> 16);-  const SWord8  s1682 = (SWord8) (s1681 >> 8);-  const SWord32 s1683 = table1[s1682];-  const SWord8  s1684 = (SWord8) (s1642 >> 8);-  const SWord32 s1685 = table1[s1684];-  const SWord16 s1686 = (SWord16) (s1659 >> 16);-  const SWord8  s1687 = (SWord8) s1686;-  const SWord32 s1688 = table2[s1687];-  const SWord32 s1689 = s1685 ^ s1688;-  const SWord8  s1690 = (SWord8) (s1676 >> 8);-  const SWord32 s1691 = table3[s1690];-  const SWord32 s1692 = s1689 ^ s1691;-  const SWord16 s1693 = (SWord16) s1624;-  const SWord8  s1694 = (SWord8) s1693;-  const SWord32 s1695 = table4[s1694];-  const SWord32 s1696 = s1692 ^ s1695;-  const SWord32 s1697 = s35 ^ s1696;-  const SWord16 s1698 = (SWord16) (s1697 >> 16);-  const SWord8  s1699 = (SWord8) s1698;-  const SWord32 s1700 = table2[s1699];-  const SWord32 s1701 = s1683 ^ s1700;-  const SWord8  s1702 = (SWord8) (s1686 >> 8);-  const SWord32 s1703 = table1[s1702];-  const SWord16 s1704 = (SWord16) (s1675 >> 16);-  const SWord8  s1705 = (SWord8) s1704;-  const SWord32 s1706 = table2[s1705];-  const SWord32 s1707 = s1703 ^ s1706;-  const SWord8  s1708 = (SWord8) (s1693 >> 8);-  const SWord32 s1709 = table3[s1708];-  const SWord32 s1710 = s1707 ^ s1709;-  const SWord16 s1711 = (SWord16) s1641;-  const SWord8  s1712 = (SWord8) s1711;-  const SWord32 s1713 = table4[s1712];-  const SWord32 s1714 = s1710 ^ s1713;-  const SWord32 s1715 = s34 ^ s1714;-  const SWord16 s1716 = (SWord16) s1715;-  const SWord8  s1717 = (SWord8) (s1716 >> 8);-  const SWord32 s1718 = table3[s1717];-  const SWord32 s1719 = s1701 ^ s1718;-  const SWord8  s1720 = (SWord8) (s1704 >> 8);-  const SWord32 s1721 = table1[s1720];-  const SWord8  s1722 = (SWord8) s1625;-  const SWord32 s1723 = table2[s1722];-  const SWord32 s1724 = s1721 ^ s1723;-  const SWord8  s1725 = (SWord8) (s1711 >> 8);-  const SWord32 s1726 = table3[s1725];-  const SWord32 s1727 = s1724 ^ s1726;-  const SWord8  s1728 = (SWord8) s1660;-  const SWord32 s1729 = table4[s1728];-  const SWord32 s1730 = s1727 ^ s1729;-  const SWord32 s1731 = s33 ^ s1730;-  const SWord16 s1732 = (SWord16) s1731;-  const SWord8  s1733 = (SWord8) s1732;-  const SWord32 s1734 = table4[s1733];-  const SWord32 s1735 = s1719 ^ s1734;-  const SWord32 s1736 = s36 ^ s1735;-  const SWord16 s1737 = (SWord16) (s1736 >> 16);-  const SWord8  s1738 = (SWord8) (s1737 >> 8);-  const SWord32 s1739 = table1[s1738];-  const SWord8  s1740 = (SWord8) (s1698 >> 8);-  const SWord32 s1741 = table1[s1740];-  const SWord16 s1742 = (SWord16) (s1715 >> 16);-  const SWord8  s1743 = (SWord8) s1742;-  const SWord32 s1744 = table2[s1743];-  const SWord32 s1745 = s1741 ^ s1744;-  const SWord8  s1746 = (SWord8) (s1732 >> 8);-  const SWord32 s1747 = table3[s1746];-  const SWord32 s1748 = s1745 ^ s1747;-  const SWord16 s1749 = (SWord16) s1680;-  const SWord8  s1750 = (SWord8) s1749;-  const SWord32 s1751 = table4[s1750];-  const SWord32 s1752 = s1748 ^ s1751;-  const SWord32 s1753 = s39 ^ s1752;-  const SWord16 s1754 = (SWord16) (s1753 >> 16);-  const SWord8  s1755 = (SWord8) s1754;-  const SWord32 s1756 = table2[s1755];-  const SWord32 s1757 = s1739 ^ s1756;-  const SWord8  s1758 = (SWord8) (s1742 >> 8);-  const SWord32 s1759 = table1[s1758];-  const SWord16 s1760 = (SWord16) (s1731 >> 16);-  const SWord8  s1761 = (SWord8) s1760;-  const SWord32 s1762 = table2[s1761];-  const SWord32 s1763 = s1759 ^ s1762;-  const SWord8  s1764 = (SWord8) (s1749 >> 8);-  const SWord32 s1765 = table3[s1764];-  const SWord32 s1766 = s1763 ^ s1765;-  const SWord16 s1767 = (SWord16) s1697;-  const SWord8  s1768 = (SWord8) s1767;-  const SWord32 s1769 = table4[s1768];-  const SWord32 s1770 = s1766 ^ s1769;-  const SWord32 s1771 = s38 ^ s1770;-  const SWord16 s1772 = (SWord16) s1771;-  const SWord8  s1773 = (SWord8) (s1772 >> 8);-  const SWord32 s1774 = table3[s1773];-  const SWord32 s1775 = s1757 ^ s1774;-  const SWord8  s1776 = (SWord8) (s1760 >> 8);-  const SWord32 s1777 = table1[s1776];-  const SWord8  s1778 = (SWord8) s1681;-  const SWord32 s1779 = table2[s1778];-  const SWord32 s1780 = s1777 ^ s1779;-  const SWord8  s1781 = (SWord8) (s1767 >> 8);-  const SWord32 s1782 = table3[s1781];-  const SWord32 s1783 = s1780 ^ s1782;-  const SWord8  s1784 = (SWord8) s1716;-  const SWord32 s1785 = table4[s1784];-  const SWord32 s1786 = s1783 ^ s1785;-  const SWord32 s1787 = s37 ^ s1786;-  const SWord16 s1788 = (SWord16) s1787;-  const SWord8  s1789 = (SWord8) s1788;-  const SWord32 s1790 = table4[s1789];-  const SWord32 s1791 = s1775 ^ s1790;-  const SWord32 s1792 = s40 ^ s1791;-  const SWord16 s1793 = (SWord16) (s1792 >> 16);-  const SWord8  s1794 = (SWord8) (s1793 >> 8);-  const SWord8  s1795 = table0[s1794];-  const SWord8  s1796 = (SWord8) (s1754 >> 8);-  const SWord32 s1797 = table1[s1796];-  const SWord16 s1798 = (SWord16) (s1771 >> 16);-  const SWord8  s1799 = (SWord8) s1798;-  const SWord32 s1800 = table2[s1799];-  const SWord32 s1801 = s1797 ^ s1800;-  const SWord8  s1802 = (SWord8) (s1788 >> 8);-  const SWord32 s1803 = table3[s1802];-  const SWord32 s1804 = s1801 ^ s1803;-  const SWord16 s1805 = (SWord16) s1736;-  const SWord8  s1806 = (SWord8) s1805;-  const SWord32 s1807 = table4[s1806];-  const SWord32 s1808 = s1804 ^ s1807;-  const SWord32 s1809 = s43 ^ s1808;-  const SWord16 s1810 = (SWord16) (s1809 >> 16);-  const SWord8  s1811 = (SWord8) s1810;-  const SWord8  s1812 = table0[s1811];-  const SWord16 s1813 = (((SWord16) s1795) << 8) | ((SWord16) s1812);-  const SWord8  s1814 = (SWord8) (s1798 >> 8);-  const SWord32 s1815 = table1[s1814];-  const SWord16 s1816 = (SWord16) (s1787 >> 16);-  const SWord8  s1817 = (SWord8) s1816;-  const SWord32 s1818 = table2[s1817];-  const SWord32 s1819 = s1815 ^ s1818;-  const SWord8  s1820 = (SWord8) (s1805 >> 8);-  const SWord32 s1821 = table3[s1820];-  const SWord32 s1822 = s1819 ^ s1821;-  const SWord16 s1823 = (SWord16) s1753;-  const SWord8  s1824 = (SWord8) s1823;-  const SWord32 s1825 = table4[s1824];-  const SWord32 s1826 = s1822 ^ s1825;-  const SWord32 s1827 = s42 ^ s1826;-  const SWord16 s1828 = (SWord16) s1827;-  const SWord8  s1829 = (SWord8) (s1828 >> 8);-  const SWord8  s1830 = table0[s1829];-  const SWord8  s1831 = (SWord8) (s1816 >> 8);-  const SWord32 s1832 = table1[s1831];-  const SWord8  s1833 = (SWord8) s1737;-  const SWord32 s1834 = table2[s1833];-  const SWord32 s1835 = s1832 ^ s1834;-  const SWord8  s1836 = (SWord8) (s1823 >> 8);-  const SWord32 s1837 = table3[s1836];-  const SWord32 s1838 = s1835 ^ s1837;-  const SWord8  s1839 = (SWord8) s1772;-  const SWord32 s1840 = table4[s1839];-  const SWord32 s1841 = s1838 ^ s1840;-  const SWord32 s1842 = s41 ^ s1841;-  const SWord16 s1843 = (SWord16) s1842;-  const SWord8  s1844 = (SWord8) s1843;-  const SWord8  s1845 = table0[s1844];-  const SWord16 s1846 = (((SWord16) s1830) << 8) | ((SWord16) s1845);-  const SWord32 s1847 = (((SWord32) s1813) << 16) | ((SWord32) s1846);-  const SWord32 s1848 = s44 ^ s1847;-  const SWord16 s1849 = (SWord16) (s1842 >> 16);-  const SWord8  s1850 = (SWord8) (s1849 >> 8);-  const SWord8  s1851 = table0[s1850];-  const SWord8  s1852 = (SWord8) s1793;-  const SWord8  s1853 = table0[s1852];-  const SWord16 s1854 = (((SWord16) s1851) << 8) | ((SWord16) s1853);-  const SWord16 s1855 = (SWord16) s1809;-  const SWord8  s1856 = (SWord8) (s1855 >> 8);-  const SWord8  s1857 = table0[s1856];-  const SWord8  s1858 = (SWord8) s1828;-  const SWord8  s1859 = table0[s1858];-  const SWord16 s1860 = (((SWord16) s1857) << 8) | ((SWord16) s1859);-  const SWord32 s1861 = (((SWord32) s1854) << 16) | ((SWord32) s1860);-  const SWord32 s1862 = s45 ^ s1861;-  const SWord16 s1863 = (SWord16) (s1827 >> 16);-  const SWord8  s1864 = (SWord8) (s1863 >> 8);-  const SWord8  s1865 = table0[s1864];-  const SWord8  s1866 = (SWord8) s1849;-  const SWord8  s1867 = table0[s1866];-  const SWord16 s1868 = (((SWord16) s1865) << 8) | ((SWord16) s1867);-  const SWord16 s1869 = (SWord16) s1792;-  const SWord8  s1870 = (SWord8) (s1869 >> 8);-  const SWord8  s1871 = table0[s1870];-  const SWord8  s1872 = (SWord8) s1855;-  const SWord8  s1873 = table0[s1872];-  const SWord16 s1874 = (((SWord16) s1871) << 8) | ((SWord16) s1873);-  const SWord32 s1875 = (((SWord32) s1868) << 16) | ((SWord32) s1874);-  const SWord32 s1876 = s46 ^ s1875;-  const SWord8  s1877 = (SWord8) (s1810 >> 8);-  const SWord8  s1878 = table0[s1877];-  const SWord8  s1879 = (SWord8) s1863;-  const SWord8  s1880 = table0[s1879];-  const SWord16 s1881 = (((SWord16) s1878) << 8) | ((SWord16) s1880);-  const SWord8  s1882 = (SWord8) (s1843 >> 8);-  const SWord8  s1883 = table0[s1882];-  const SWord8  s1884 = (SWord8) s1869;-  const SWord8  s1885 = table0[s1884];-  const SWord16 s1886 = (((SWord16) s1883) << 8) | ((SWord16) s1885);-  const SWord32 s1887 = (((SWord32) s1881) << 16) | ((SWord32) s1886);-  const SWord32 s1888 = s47 ^ s1887;--  pt[0] = s1848;-  pt[1] = s1862;-  pt[2] = s1876;-  pt[3] = s1888;-}-== END: "aes128BlockDecrypt.c" ==================-== BEGIN: "aes128Lib.h" ================-/* Header file for aes128Lib. Automatically generated by SBV. Do not edit! */--#ifndef __aes128Lib__HEADER_INCLUDED__-#define __aes128Lib__HEADER_INCLUDED__--#include <stdio.h>-#include <stdlib.h>-#include <inttypes.h>-#include <stdint.h>-#include <stdbool.h>-#include <string.h>-#include <math.h>--/* The boolean type */-typedef bool SBool;--/* The float type */-typedef float SFloat;--/* The double type */-typedef double SDouble;--/* Unsigned bit-vectors */-typedef uint8_t  SWord8;-typedef uint16_t SWord16;-typedef uint32_t SWord32;-typedef uint64_t SWord64;--/* Signed bit-vectors */-typedef int8_t  SInt8;-typedef int16_t SInt16;-typedef int32_t SInt32;-typedef int64_t SInt64;--/* Entry point prototypes: */-void aes128KeySchedule(const SWord32 *key, SWord32 *encKS,-                       SWord32 *decKS);-void aes128BlockEncrypt(const SWord32 *pt, const SWord32 *xkey,-                        SWord32 *ct);-void aes128BlockDecrypt(const SWord32 *ct, const SWord32 *xkey,-                        SWord32 *pt);--#endif /* __aes128Lib__HEADER_INCLUDED__ */-== END: "aes128Lib.h" ==================-== BEGIN: "aes128Lib_driver.c" ================-/* Example driver program for aes128Lib. */-/* Automatically generated by SBV. Edit as you see fit! */--#include <stdio.h>-#include "aes128Lib.h"--void aes128KeySchedule_driver(void)-{-  const SWord32 key[4] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array key:\n");-  int key_ctr;-  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)-    printf("  key[%d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);--  SWord32 encKS[44];-  SWord32 decKS[44];--  aes128KeySchedule(key, encKS, decKS);--  printf("aes128KeySchedule(key, encKS, decKS) ->\n");-  int encKS_ctr;-  for(encKS_ctr = 0; encKS_ctr < 44 ; ++encKS_ctr)-    printf("  encKS[%d] = 0x%08"PRIx32"UL\n", encKS_ctr ,encKS[encKS_ctr]);-  int decKS_ctr;-  for(decKS_ctr = 0; decKS_ctr < 44 ; ++decKS_ctr)-    printf("  decKS[%d] = 0x%08"PRIx32"UL\n", decKS_ctr ,decKS[decKS_ctr]);-}--void aes128BlockEncrypt_driver(void)-{-  const SWord32 pt[4] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array pt:\n");-  int pt_ctr;-  for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)-    printf("  pt[%d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);--  const SWord32 xkey[44] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array xkey:\n");-  int xkey_ctr;-  for(xkey_ctr = 0; xkey_ctr < 44 ; ++xkey_ctr)-    printf("  xkey[%d] = 0x%08"PRIx32"UL\n", xkey_ctr ,xkey[xkey_ctr]);--  SWord32 ct[4];--  aes128BlockEncrypt(pt, xkey, ct);--  printf("aes128BlockEncrypt(pt, xkey, ct) ->\n");-  int ct_ctr;-  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)-    printf("  ct[%d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);-}--void aes128BlockDecrypt_driver(void)-{-  const SWord32 ct[4] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array ct:\n");-  int ct_ctr;-  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)-    printf("  ct[%d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);--  const SWord32 xkey[44] = {-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,-      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL-  };--  printf("Contents of input array xkey:\n");-  int xkey_ctr;-  for(xkey_ctr = 0; xkey_ctr < 44 ; ++xkey_ctr)-    printf("  xkey[%d] = 0x%08"PRIx32"UL\n", xkey_ctr ,xkey[xkey_ctr]);--  SWord32 pt[4];--  aes128BlockDecrypt(ct, xkey, pt);--  printf("aes128BlockDecrypt(ct, xkey, pt) ->\n");-  int pt_ctr;-  for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)-    printf("  pt[%d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);+  const SWord8  s261 = (SWord8) (s260 >> 24);+  const SWord8  s262 = table0[s261];+  const SWord8  s263 = 1 ^ s262;+  const SWord8  s264 = (SWord8) (s260 >> 16);+  const SWord8  s265 = table0[s264];+  const SWord16 s266 = (((SWord16) s263) << 8) | ((SWord16) s265);+  const SWord8  s267 = (SWord8) (s260 >> 8);+  const SWord8  s268 = table0[s267];+  const SWord8  s269 = (SWord8) s260;+  const SWord8  s270 = table0[s269];+  const SWord16 s271 = (((SWord16) s268) << 8) | ((SWord16) s270);+  const SWord32 s272 = (((SWord32) s266) << 16) | ((SWord32) s271);+  const SWord32 s273 = s0 ^ s272;+  const SWord32 s274 = s1 ^ s273;+  const SWord32 s275 = s2 ^ s274;+  const SWord32 s276 = s3 ^ s275;+  const SWord32 s277 = (s276 << 8) | (s276 >> 24);+  const SWord8  s278 = (SWord8) (s277 >> 24);+  const SWord8  s279 = table0[s278];+  const SWord8  s280 = 2 ^ s279;+  const SWord8  s281 = (SWord8) (s277 >> 16);+  const SWord8  s282 = table0[s281];+  const SWord16 s283 = (((SWord16) s280) << 8) | ((SWord16) s282);+  const SWord8  s284 = (SWord8) (s277 >> 8);+  const SWord8  s285 = table0[s284];+  const SWord8  s286 = (SWord8) s277;+  const SWord8  s287 = table0[s286];+  const SWord16 s288 = (((SWord16) s285) << 8) | ((SWord16) s287);+  const SWord32 s289 = (((SWord32) s283) << 16) | ((SWord32) s288);+  const SWord32 s290 = s273 ^ s289;+  const SWord32 s291 = s274 ^ s290;+  const SWord32 s292 = s275 ^ s291;+  const SWord32 s293 = s276 ^ s292;+  const SWord32 s294 = (s293 << 8) | (s293 >> 24);+  const SWord8  s295 = (SWord8) (s294 >> 24);+  const SWord8  s296 = table0[s295];+  const SWord8  s297 = 4 ^ s296;+  const SWord8  s298 = (SWord8) (s294 >> 16);+  const SWord8  s299 = table0[s298];+  const SWord16 s300 = (((SWord16) s297) << 8) | ((SWord16) s299);+  const SWord8  s301 = (SWord8) (s294 >> 8);+  const SWord8  s302 = table0[s301];+  const SWord8  s303 = (SWord8) s294;+  const SWord8  s304 = table0[s303];+  const SWord16 s305 = (((SWord16) s302) << 8) | ((SWord16) s304);+  const SWord32 s306 = (((SWord32) s300) << 16) | ((SWord32) s305);+  const SWord32 s307 = s290 ^ s306;+  const SWord32 s308 = s291 ^ s307;+  const SWord32 s309 = s292 ^ s308;+  const SWord32 s310 = s293 ^ s309;+  const SWord32 s311 = (s310 << 8) | (s310 >> 24);+  const SWord8  s312 = (SWord8) (s311 >> 24);+  const SWord8  s313 = table0[s312];+  const SWord8  s314 = 8 ^ s313;+  const SWord8  s315 = (SWord8) (s311 >> 16);+  const SWord8  s316 = table0[s315];+  const SWord16 s317 = (((SWord16) s314) << 8) | ((SWord16) s316);+  const SWord8  s318 = (SWord8) (s311 >> 8);+  const SWord8  s319 = table0[s318];+  const SWord8  s320 = (SWord8) s311;+  const SWord8  s321 = table0[s320];+  const SWord16 s322 = (((SWord16) s319) << 8) | ((SWord16) s321);+  const SWord32 s323 = (((SWord32) s317) << 16) | ((SWord32) s322);+  const SWord32 s324 = s307 ^ s323;+  const SWord32 s325 = s308 ^ s324;+  const SWord32 s326 = s309 ^ s325;+  const SWord32 s327 = s310 ^ s326;+  const SWord32 s328 = (s327 << 8) | (s327 >> 24);+  const SWord8  s329 = (SWord8) (s328 >> 24);+  const SWord8  s330 = table0[s329];+  const SWord8  s331 = 16 ^ s330;+  const SWord8  s332 = (SWord8) (s328 >> 16);+  const SWord8  s333 = table0[s332];+  const SWord16 s334 = (((SWord16) s331) << 8) | ((SWord16) s333);+  const SWord8  s335 = (SWord8) (s328 >> 8);+  const SWord8  s336 = table0[s335];+  const SWord8  s337 = (SWord8) s328;+  const SWord8  s338 = table0[s337];+  const SWord16 s339 = (((SWord16) s336) << 8) | ((SWord16) s338);+  const SWord32 s340 = (((SWord32) s334) << 16) | ((SWord32) s339);+  const SWord32 s341 = s324 ^ s340;+  const SWord32 s342 = s325 ^ s341;+  const SWord32 s343 = s326 ^ s342;+  const SWord32 s344 = s327 ^ s343;+  const SWord32 s345 = (s344 << 8) | (s344 >> 24);+  const SWord8  s346 = (SWord8) (s345 >> 24);+  const SWord8  s347 = table0[s346];+  const SWord8  s348 = 32 ^ s347;+  const SWord8  s349 = (SWord8) (s345 >> 16);+  const SWord8  s350 = table0[s349];+  const SWord16 s351 = (((SWord16) s348) << 8) | ((SWord16) s350);+  const SWord8  s352 = (SWord8) (s345 >> 8);+  const SWord8  s353 = table0[s352];+  const SWord8  s354 = (SWord8) s345;+  const SWord8  s355 = table0[s354];+  const SWord16 s356 = (((SWord16) s353) << 8) | ((SWord16) s355);+  const SWord32 s357 = (((SWord32) s351) << 16) | ((SWord32) s356);+  const SWord32 s358 = s341 ^ s357;+  const SWord32 s359 = s342 ^ s358;+  const SWord32 s360 = s343 ^ s359;+  const SWord32 s361 = s344 ^ s360;+  const SWord32 s362 = (s361 << 8) | (s361 >> 24);+  const SWord8  s363 = (SWord8) (s362 >> 24);+  const SWord8  s364 = table0[s363];+  const SWord8  s365 = 64 ^ s364;+  const SWord8  s366 = (SWord8) (s362 >> 16);+  const SWord8  s367 = table0[s366];+  const SWord16 s368 = (((SWord16) s365) << 8) | ((SWord16) s367);+  const SWord8  s369 = (SWord8) (s362 >> 8);+  const SWord8  s370 = table0[s369];+  const SWord8  s371 = (SWord8) s362;+  const SWord8  s372 = table0[s371];+  const SWord16 s373 = (((SWord16) s370) << 8) | ((SWord16) s372);+  const SWord32 s374 = (((SWord32) s368) << 16) | ((SWord32) s373);+  const SWord32 s375 = s358 ^ s374;+  const SWord32 s376 = s359 ^ s375;+  const SWord32 s377 = s360 ^ s376;+  const SWord32 s378 = s361 ^ s377;+  const SWord32 s379 = (s378 << 8) | (s378 >> 24);+  const SWord8  s380 = (SWord8) (s379 >> 24);+  const SWord8  s381 = table0[s380];+  const SWord8  s382 = 128 ^ s381;+  const SWord8  s383 = (SWord8) (s379 >> 16);+  const SWord8  s384 = table0[s383];+  const SWord16 s385 = (((SWord16) s382) << 8) | ((SWord16) s384);+  const SWord8  s386 = (SWord8) (s379 >> 8);+  const SWord8  s387 = table0[s386];+  const SWord8  s388 = (SWord8) s379;+  const SWord8  s389 = table0[s388];+  const SWord16 s390 = (((SWord16) s387) << 8) | ((SWord16) s389);+  const SWord32 s391 = (((SWord32) s385) << 16) | ((SWord32) s390);+  const SWord32 s392 = s375 ^ s391;+  const SWord32 s393 = s376 ^ s392;+  const SWord32 s394 = s377 ^ s393;+  const SWord32 s395 = s378 ^ s394;+  const SWord32 s396 = (s395 << 8) | (s395 >> 24);+  const SWord8  s397 = (SWord8) (s396 >> 24);+  const SWord8  s398 = table0[s397];+  const SWord8  s399 = 27 ^ s398;+  const SWord8  s400 = (SWord8) (s396 >> 16);+  const SWord8  s401 = table0[s400];+  const SWord16 s402 = (((SWord16) s399) << 8) | ((SWord16) s401);+  const SWord8  s403 = (SWord8) (s396 >> 8);+  const SWord8  s404 = table0[s403];+  const SWord8  s405 = (SWord8) s396;+  const SWord8  s406 = table0[s405];+  const SWord16 s407 = (((SWord16) s404) << 8) | ((SWord16) s406);+  const SWord32 s408 = (((SWord32) s402) << 16) | ((SWord32) s407);+  const SWord32 s409 = s392 ^ s408;+  const SWord32 s410 = s393 ^ s409;+  const SWord32 s411 = s394 ^ s410;+  const SWord32 s412 = s395 ^ s411;+  const SWord32 s413 = (s412 << 8) | (s412 >> 24);+  const SWord8  s414 = (SWord8) (s413 >> 24);+  const SWord8  s415 = table0[s414];+  const SWord8  s416 = 54 ^ s415;+  const SWord8  s417 = (SWord8) (s413 >> 16);+  const SWord8  s418 = table0[s417];+  const SWord16 s419 = (((SWord16) s416) << 8) | ((SWord16) s418);+  const SWord8  s420 = (SWord8) (s413 >> 8);+  const SWord8  s421 = table0[s420];+  const SWord8  s422 = (SWord8) s413;+  const SWord8  s423 = table0[s422];+  const SWord16 s424 = (((SWord16) s421) << 8) | ((SWord16) s423);+  const SWord32 s425 = (((SWord32) s419) << 16) | ((SWord32) s424);+  const SWord32 s426 = s409 ^ s425;+  const SWord32 s427 = s410 ^ s426;+  const SWord32 s428 = s411 ^ s427;+  const SWord32 s429 = s412 ^ s428;+  const SWord8  s430 = (SWord8) (s409 >> 24);+  const SWord8  s431 = table1[s430];+  const SWord8  s432 = (SWord8) (s409 >> 16);+  const SWord8  s433 = table2[s432];+  const SWord8  s434 = (SWord8) (s409 >> 8);+  const SWord8  s435 = table3[s434];+  const SWord8  s436 = (SWord8) s409;+  const SWord8  s437 = table4[s436];+  const SWord8  s438 = s435 ^ s437;+  const SWord8  s439 = s433 ^ s438;+  const SWord8  s440 = s431 ^ s439;+  const SWord8  s441 = table4[s430];+  const SWord8  s442 = table1[s432];+  const SWord8  s443 = table2[s434];+  const SWord8  s444 = table3[s436];+  const SWord8  s445 = s443 ^ s444;+  const SWord8  s446 = s442 ^ s445;+  const SWord8  s447 = s441 ^ s446;+  const SWord16 s448 = (((SWord16) s440) << 8) | ((SWord16) s447);+  const SWord8  s449 = table3[s430];+  const SWord8  s450 = table4[s432];+  const SWord8  s451 = table1[s434];+  const SWord8  s452 = table2[s436];+  const SWord8  s453 = s451 ^ s452;+  const SWord8  s454 = s450 ^ s453;+  const SWord8  s455 = s449 ^ s454;+  const SWord8  s456 = table2[s430];+  const SWord8  s457 = table3[s432];+  const SWord8  s458 = table4[s434];+  const SWord8  s459 = table1[s436];+  const SWord8  s460 = s458 ^ s459;+  const SWord8  s461 = s457 ^ s460;+  const SWord8  s462 = s456 ^ s461;+  const SWord16 s463 = (((SWord16) s455) << 8) | ((SWord16) s462);+  const SWord32 s464 = (((SWord32) s448) << 16) | ((SWord32) s463);+  const SWord8  s465 = (SWord8) (s410 >> 24);+  const SWord8  s466 = table1[s465];+  const SWord8  s467 = (SWord8) (s410 >> 16);+  const SWord8  s468 = table2[s467];+  const SWord8  s469 = (SWord8) (s410 >> 8);+  const SWord8  s470 = table3[s469];+  const SWord8  s471 = (SWord8) s410;+  const SWord8  s472 = table4[s471];+  const SWord8  s473 = s470 ^ s472;+  const SWord8  s474 = s468 ^ s473;+  const SWord8  s475 = s466 ^ s474;+  const SWord8  s476 = table4[s465];+  const SWord8  s477 = table1[s467];+  const SWord8  s478 = table2[s469];+  const SWord8  s479 = table3[s471];+  const SWord8  s480 = s478 ^ s479;+  const SWord8  s481 = s477 ^ s480;+  const SWord8  s482 = s476 ^ s481;+  const SWord16 s483 = (((SWord16) s475) << 8) | ((SWord16) s482);+  const SWord8  s484 = table3[s465];+  const SWord8  s485 = table4[s467];+  const SWord8  s486 = table1[s469];+  const SWord8  s487 = table2[s471];+  const SWord8  s488 = s486 ^ s487;+  const SWord8  s489 = s485 ^ s488;+  const SWord8  s490 = s484 ^ s489;+  const SWord8  s491 = table2[s465];+  const SWord8  s492 = table3[s467];+  const SWord8  s493 = table4[s469];+  const SWord8  s494 = table1[s471];+  const SWord8  s495 = s493 ^ s494;+  const SWord8  s496 = s492 ^ s495;+  const SWord8  s497 = s491 ^ s496;+  const SWord16 s498 = (((SWord16) s490) << 8) | ((SWord16) s497);+  const SWord32 s499 = (((SWord32) s483) << 16) | ((SWord32) s498);+  const SWord8  s500 = (SWord8) (s411 >> 24);+  const SWord8  s501 = table1[s500];+  const SWord8  s502 = (SWord8) (s411 >> 16);+  const SWord8  s503 = table2[s502];+  const SWord8  s504 = (SWord8) (s411 >> 8);+  const SWord8  s505 = table3[s504];+  const SWord8  s506 = (SWord8) s411;+  const SWord8  s507 = table4[s506];+  const SWord8  s508 = s505 ^ s507;+  const SWord8  s509 = s503 ^ s508;+  const SWord8  s510 = s501 ^ s509;+  const SWord8  s511 = table4[s500];+  const SWord8  s512 = table1[s502];+  const SWord8  s513 = table2[s504];+  const SWord8  s514 = table3[s506];+  const SWord8  s515 = s513 ^ s514;+  const SWord8  s516 = s512 ^ s515;+  const SWord8  s517 = s511 ^ s516;+  const SWord16 s518 = (((SWord16) s510) << 8) | ((SWord16) s517);+  const SWord8  s519 = table3[s500];+  const SWord8  s520 = table4[s502];+  const SWord8  s521 = table1[s504];+  const SWord8  s522 = table2[s506];+  const SWord8  s523 = s521 ^ s522;+  const SWord8  s524 = s520 ^ s523;+  const SWord8  s525 = s519 ^ s524;+  const SWord8  s526 = table2[s500];+  const SWord8  s527 = table3[s502];+  const SWord8  s528 = table4[s504];+  const SWord8  s529 = table1[s506];+  const SWord8  s530 = s528 ^ s529;+  const SWord8  s531 = s527 ^ s530;+  const SWord8  s532 = s526 ^ s531;+  const SWord16 s533 = (((SWord16) s525) << 8) | ((SWord16) s532);+  const SWord32 s534 = (((SWord32) s518) << 16) | ((SWord32) s533);+  const SWord8  s535 = (SWord8) (s412 >> 24);+  const SWord8  s536 = table1[s535];+  const SWord8  s537 = (SWord8) (s412 >> 16);+  const SWord8  s538 = table2[s537];+  const SWord8  s539 = (SWord8) (s412 >> 8);+  const SWord8  s540 = table3[s539];+  const SWord8  s541 = (SWord8) s412;+  const SWord8  s542 = table4[s541];+  const SWord8  s543 = s540 ^ s542;+  const SWord8  s544 = s538 ^ s543;+  const SWord8  s545 = s536 ^ s544;+  const SWord8  s546 = table4[s535];+  const SWord8  s547 = table1[s537];+  const SWord8  s548 = table2[s539];+  const SWord8  s549 = table3[s541];+  const SWord8  s550 = s548 ^ s549;+  const SWord8  s551 = s547 ^ s550;+  const SWord8  s552 = s546 ^ s551;+  const SWord16 s553 = (((SWord16) s545) << 8) | ((SWord16) s552);+  const SWord8  s554 = table3[s535];+  const SWord8  s555 = table4[s537];+  const SWord8  s556 = table1[s539];+  const SWord8  s557 = table2[s541];+  const SWord8  s558 = s556 ^ s557;+  const SWord8  s559 = s555 ^ s558;+  const SWord8  s560 = s554 ^ s559;+  const SWord8  s561 = table2[s535];+  const SWord8  s562 = table3[s537];+  const SWord8  s563 = table4[s539];+  const SWord8  s564 = table1[s541];+  const SWord8  s565 = s563 ^ s564;+  const SWord8  s566 = s562 ^ s565;+  const SWord8  s567 = s561 ^ s566;+  const SWord16 s568 = (((SWord16) s560) << 8) | ((SWord16) s567);+  const SWord32 s569 = (((SWord32) s553) << 16) | ((SWord32) s568);+  const SWord8  s570 = (SWord8) (s392 >> 24);+  const SWord8  s571 = table1[s570];+  const SWord8  s572 = (SWord8) (s392 >> 16);+  const SWord8  s573 = table2[s572];+  const SWord8  s574 = (SWord8) (s392 >> 8);+  const SWord8  s575 = table3[s574];+  const SWord8  s576 = (SWord8) s392;+  const SWord8  s577 = table4[s576];+  const SWord8  s578 = s575 ^ s577;+  const SWord8  s579 = s573 ^ s578;+  const SWord8  s580 = s571 ^ s579;+  const SWord8  s581 = table4[s570];+  const SWord8  s582 = table1[s572];+  const SWord8  s583 = table2[s574];+  const SWord8  s584 = table3[s576];+  const SWord8  s585 = s583 ^ s584;+  const SWord8  s586 = s582 ^ s585;+  const SWord8  s587 = s581 ^ s586;+  const SWord16 s588 = (((SWord16) s580) << 8) | ((SWord16) s587);+  const SWord8  s589 = table3[s570];+  const SWord8  s590 = table4[s572];+  const SWord8  s591 = table1[s574];+  const SWord8  s592 = table2[s576];+  const SWord8  s593 = s591 ^ s592;+  const SWord8  s594 = s590 ^ s593;+  const SWord8  s595 = s589 ^ s594;+  const SWord8  s596 = table2[s570];+  const SWord8  s597 = table3[s572];+  const SWord8  s598 = table4[s574];+  const SWord8  s599 = table1[s576];+  const SWord8  s600 = s598 ^ s599;+  const SWord8  s601 = s597 ^ s600;+  const SWord8  s602 = s596 ^ s601;+  const SWord16 s603 = (((SWord16) s595) << 8) | ((SWord16) s602);+  const SWord32 s604 = (((SWord32) s588) << 16) | ((SWord32) s603);+  const SWord8  s605 = (SWord8) (s393 >> 24);+  const SWord8  s606 = table1[s605];+  const SWord8  s607 = (SWord8) (s393 >> 16);+  const SWord8  s608 = table2[s607];+  const SWord8  s609 = (SWord8) (s393 >> 8);+  const SWord8  s610 = table3[s609];+  const SWord8  s611 = (SWord8) s393;+  const SWord8  s612 = table4[s611];+  const SWord8  s613 = s610 ^ s612;+  const SWord8  s614 = s608 ^ s613;+  const SWord8  s615 = s606 ^ s614;+  const SWord8  s616 = table4[s605];+  const SWord8  s617 = table1[s607];+  const SWord8  s618 = table2[s609];+  const SWord8  s619 = table3[s611];+  const SWord8  s620 = s618 ^ s619;+  const SWord8  s621 = s617 ^ s620;+  const SWord8  s622 = s616 ^ s621;+  const SWord16 s623 = (((SWord16) s615) << 8) | ((SWord16) s622);+  const SWord8  s624 = table3[s605];+  const SWord8  s625 = table4[s607];+  const SWord8  s626 = table1[s609];+  const SWord8  s627 = table2[s611];+  const SWord8  s628 = s626 ^ s627;+  const SWord8  s629 = s625 ^ s628;+  const SWord8  s630 = s624 ^ s629;+  const SWord8  s631 = table2[s605];+  const SWord8  s632 = table3[s607];+  const SWord8  s633 = table4[s609];+  const SWord8  s634 = table1[s611];+  const SWord8  s635 = s633 ^ s634;+  const SWord8  s636 = s632 ^ s635;+  const SWord8  s637 = s631 ^ s636;+  const SWord16 s638 = (((SWord16) s630) << 8) | ((SWord16) s637);+  const SWord32 s639 = (((SWord32) s623) << 16) | ((SWord32) s638);+  const SWord8  s640 = (SWord8) (s394 >> 24);+  const SWord8  s641 = table1[s640];+  const SWord8  s642 = (SWord8) (s394 >> 16);+  const SWord8  s643 = table2[s642];+  const SWord8  s644 = (SWord8) (s394 >> 8);+  const SWord8  s645 = table3[s644];+  const SWord8  s646 = (SWord8) s394;+  const SWord8  s647 = table4[s646];+  const SWord8  s648 = s645 ^ s647;+  const SWord8  s649 = s643 ^ s648;+  const SWord8  s650 = s641 ^ s649;+  const SWord8  s651 = table4[s640];+  const SWord8  s652 = table1[s642];+  const SWord8  s653 = table2[s644];+  const SWord8  s654 = table3[s646];+  const SWord8  s655 = s653 ^ s654;+  const SWord8  s656 = s652 ^ s655;+  const SWord8  s657 = s651 ^ s656;+  const SWord16 s658 = (((SWord16) s650) << 8) | ((SWord16) s657);+  const SWord8  s659 = table3[s640];+  const SWord8  s660 = table4[s642];+  const SWord8  s661 = table1[s644];+  const SWord8  s662 = table2[s646];+  const SWord8  s663 = s661 ^ s662;+  const SWord8  s664 = s660 ^ s663;+  const SWord8  s665 = s659 ^ s664;+  const SWord8  s666 = table2[s640];+  const SWord8  s667 = table3[s642];+  const SWord8  s668 = table4[s644];+  const SWord8  s669 = table1[s646];+  const SWord8  s670 = s668 ^ s669;+  const SWord8  s671 = s667 ^ s670;+  const SWord8  s672 = s666 ^ s671;+  const SWord16 s673 = (((SWord16) s665) << 8) | ((SWord16) s672);+  const SWord32 s674 = (((SWord32) s658) << 16) | ((SWord32) s673);+  const SWord8  s675 = (SWord8) (s395 >> 24);+  const SWord8  s676 = table1[s675];+  const SWord8  s677 = (SWord8) (s395 >> 16);+  const SWord8  s678 = table2[s677];+  const SWord8  s679 = (SWord8) (s395 >> 8);+  const SWord8  s680 = table3[s679];+  const SWord8  s681 = (SWord8) s395;+  const SWord8  s682 = table4[s681];+  const SWord8  s683 = s680 ^ s682;+  const SWord8  s684 = s678 ^ s683;+  const SWord8  s685 = s676 ^ s684;+  const SWord8  s686 = table4[s675];+  const SWord8  s687 = table1[s677];+  const SWord8  s688 = table2[s679];+  const SWord8  s689 = table3[s681];+  const SWord8  s690 = s688 ^ s689;+  const SWord8  s691 = s687 ^ s690;+  const SWord8  s692 = s686 ^ s691;+  const SWord16 s693 = (((SWord16) s685) << 8) | ((SWord16) s692);+  const SWord8  s694 = table3[s675];+  const SWord8  s695 = table4[s677];+  const SWord8  s696 = table1[s679];+  const SWord8  s697 = table2[s681];+  const SWord8  s698 = s696 ^ s697;+  const SWord8  s699 = s695 ^ s698;+  const SWord8  s700 = s694 ^ s699;+  const SWord8  s701 = table2[s675];+  const SWord8  s702 = table3[s677];+  const SWord8  s703 = table4[s679];+  const SWord8  s704 = table1[s681];+  const SWord8  s705 = s703 ^ s704;+  const SWord8  s706 = s702 ^ s705;+  const SWord8  s707 = s701 ^ s706;+  const SWord16 s708 = (((SWord16) s700) << 8) | ((SWord16) s707);+  const SWord32 s709 = (((SWord32) s693) << 16) | ((SWord32) s708);+  const SWord8  s710 = (SWord8) (s375 >> 24);+  const SWord8  s711 = table1[s710];+  const SWord8  s712 = (SWord8) (s375 >> 16);+  const SWord8  s713 = table2[s712];+  const SWord8  s714 = (SWord8) (s375 >> 8);+  const SWord8  s715 = table3[s714];+  const SWord8  s716 = (SWord8) s375;+  const SWord8  s717 = table4[s716];+  const SWord8  s718 = s715 ^ s717;+  const SWord8  s719 = s713 ^ s718;+  const SWord8  s720 = s711 ^ s719;+  const SWord8  s721 = table4[s710];+  const SWord8  s722 = table1[s712];+  const SWord8  s723 = table2[s714];+  const SWord8  s724 = table3[s716];+  const SWord8  s725 = s723 ^ s724;+  const SWord8  s726 = s722 ^ s725;+  const SWord8  s727 = s721 ^ s726;+  const SWord16 s728 = (((SWord16) s720) << 8) | ((SWord16) s727);+  const SWord8  s729 = table3[s710];+  const SWord8  s730 = table4[s712];+  const SWord8  s731 = table1[s714];+  const SWord8  s732 = table2[s716];+  const SWord8  s733 = s731 ^ s732;+  const SWord8  s734 = s730 ^ s733;+  const SWord8  s735 = s729 ^ s734;+  const SWord8  s736 = table2[s710];+  const SWord8  s737 = table3[s712];+  const SWord8  s738 = table4[s714];+  const SWord8  s739 = table1[s716];+  const SWord8  s740 = s738 ^ s739;+  const SWord8  s741 = s737 ^ s740;+  const SWord8  s742 = s736 ^ s741;+  const SWord16 s743 = (((SWord16) s735) << 8) | ((SWord16) s742);+  const SWord32 s744 = (((SWord32) s728) << 16) | ((SWord32) s743);+  const SWord8  s745 = (SWord8) (s376 >> 24);+  const SWord8  s746 = table1[s745];+  const SWord8  s747 = (SWord8) (s376 >> 16);+  const SWord8  s748 = table2[s747];+  const SWord8  s749 = (SWord8) (s376 >> 8);+  const SWord8  s750 = table3[s749];+  const SWord8  s751 = (SWord8) s376;+  const SWord8  s752 = table4[s751];+  const SWord8  s753 = s750 ^ s752;+  const SWord8  s754 = s748 ^ s753;+  const SWord8  s755 = s746 ^ s754;+  const SWord8  s756 = table4[s745];+  const SWord8  s757 = table1[s747];+  const SWord8  s758 = table2[s749];+  const SWord8  s759 = table3[s751];+  const SWord8  s760 = s758 ^ s759;+  const SWord8  s761 = s757 ^ s760;+  const SWord8  s762 = s756 ^ s761;+  const SWord16 s763 = (((SWord16) s755) << 8) | ((SWord16) s762);+  const SWord8  s764 = table3[s745];+  const SWord8  s765 = table4[s747];+  const SWord8  s766 = table1[s749];+  const SWord8  s767 = table2[s751];+  const SWord8  s768 = s766 ^ s767;+  const SWord8  s769 = s765 ^ s768;+  const SWord8  s770 = s764 ^ s769;+  const SWord8  s771 = table2[s745];+  const SWord8  s772 = table3[s747];+  const SWord8  s773 = table4[s749];+  const SWord8  s774 = table1[s751];+  const SWord8  s775 = s773 ^ s774;+  const SWord8  s776 = s772 ^ s775;+  const SWord8  s777 = s771 ^ s776;+  const SWord16 s778 = (((SWord16) s770) << 8) | ((SWord16) s777);+  const SWord32 s779 = (((SWord32) s763) << 16) | ((SWord32) s778);+  const SWord8  s780 = (SWord8) (s377 >> 24);+  const SWord8  s781 = table1[s780];+  const SWord8  s782 = (SWord8) (s377 >> 16);+  const SWord8  s783 = table2[s782];+  const SWord8  s784 = (SWord8) (s377 >> 8);+  const SWord8  s785 = table3[s784];+  const SWord8  s786 = (SWord8) s377;+  const SWord8  s787 = table4[s786];+  const SWord8  s788 = s785 ^ s787;+  const SWord8  s789 = s783 ^ s788;+  const SWord8  s790 = s781 ^ s789;+  const SWord8  s791 = table4[s780];+  const SWord8  s792 = table1[s782];+  const SWord8  s793 = table2[s784];+  const SWord8  s794 = table3[s786];+  const SWord8  s795 = s793 ^ s794;+  const SWord8  s796 = s792 ^ s795;+  const SWord8  s797 = s791 ^ s796;+  const SWord16 s798 = (((SWord16) s790) << 8) | ((SWord16) s797);+  const SWord8  s799 = table3[s780];+  const SWord8  s800 = table4[s782];+  const SWord8  s801 = table1[s784];+  const SWord8  s802 = table2[s786];+  const SWord8  s803 = s801 ^ s802;+  const SWord8  s804 = s800 ^ s803;+  const SWord8  s805 = s799 ^ s804;+  const SWord8  s806 = table2[s780];+  const SWord8  s807 = table3[s782];+  const SWord8  s808 = table4[s784];+  const SWord8  s809 = table1[s786];+  const SWord8  s810 = s808 ^ s809;+  const SWord8  s811 = s807 ^ s810;+  const SWord8  s812 = s806 ^ s811;+  const SWord16 s813 = (((SWord16) s805) << 8) | ((SWord16) s812);+  const SWord32 s814 = (((SWord32) s798) << 16) | ((SWord32) s813);+  const SWord8  s815 = (SWord8) (s378 >> 24);+  const SWord8  s816 = table1[s815];+  const SWord8  s817 = (SWord8) (s378 >> 16);+  const SWord8  s818 = table2[s817];+  const SWord8  s819 = (SWord8) (s378 >> 8);+  const SWord8  s820 = table3[s819];+  const SWord8  s821 = (SWord8) s378;+  const SWord8  s822 = table4[s821];+  const SWord8  s823 = s820 ^ s822;+  const SWord8  s824 = s818 ^ s823;+  const SWord8  s825 = s816 ^ s824;+  const SWord8  s826 = table4[s815];+  const SWord8  s827 = table1[s817];+  const SWord8  s828 = table2[s819];+  const SWord8  s829 = table3[s821];+  const SWord8  s830 = s828 ^ s829;+  const SWord8  s831 = s827 ^ s830;+  const SWord8  s832 = s826 ^ s831;+  const SWord16 s833 = (((SWord16) s825) << 8) | ((SWord16) s832);+  const SWord8  s834 = table3[s815];+  const SWord8  s835 = table4[s817];+  const SWord8  s836 = table1[s819];+  const SWord8  s837 = table2[s821];+  const SWord8  s838 = s836 ^ s837;+  const SWord8  s839 = s835 ^ s838;+  const SWord8  s840 = s834 ^ s839;+  const SWord8  s841 = table2[s815];+  const SWord8  s842 = table3[s817];+  const SWord8  s843 = table4[s819];+  const SWord8  s844 = table1[s821];+  const SWord8  s845 = s843 ^ s844;+  const SWord8  s846 = s842 ^ s845;+  const SWord8  s847 = s841 ^ s846;+  const SWord16 s848 = (((SWord16) s840) << 8) | ((SWord16) s847);+  const SWord32 s849 = (((SWord32) s833) << 16) | ((SWord32) s848);+  const SWord8  s850 = (SWord8) (s358 >> 24);+  const SWord8  s851 = table1[s850];+  const SWord8  s852 = (SWord8) (s358 >> 16);+  const SWord8  s853 = table2[s852];+  const SWord8  s854 = (SWord8) (s358 >> 8);+  const SWord8  s855 = table3[s854];+  const SWord8  s856 = (SWord8) s358;+  const SWord8  s857 = table4[s856];+  const SWord8  s858 = s855 ^ s857;+  const SWord8  s859 = s853 ^ s858;+  const SWord8  s860 = s851 ^ s859;+  const SWord8  s861 = table4[s850];+  const SWord8  s862 = table1[s852];+  const SWord8  s863 = table2[s854];+  const SWord8  s864 = table3[s856];+  const SWord8  s865 = s863 ^ s864;+  const SWord8  s866 = s862 ^ s865;+  const SWord8  s867 = s861 ^ s866;+  const SWord16 s868 = (((SWord16) s860) << 8) | ((SWord16) s867);+  const SWord8  s869 = table3[s850];+  const SWord8  s870 = table4[s852];+  const SWord8  s871 = table1[s854];+  const SWord8  s872 = table2[s856];+  const SWord8  s873 = s871 ^ s872;+  const SWord8  s874 = s870 ^ s873;+  const SWord8  s875 = s869 ^ s874;+  const SWord8  s876 = table2[s850];+  const SWord8  s877 = table3[s852];+  const SWord8  s878 = table4[s854];+  const SWord8  s879 = table1[s856];+  const SWord8  s880 = s878 ^ s879;+  const SWord8  s881 = s877 ^ s880;+  const SWord8  s882 = s876 ^ s881;+  const SWord16 s883 = (((SWord16) s875) << 8) | ((SWord16) s882);+  const SWord32 s884 = (((SWord32) s868) << 16) | ((SWord32) s883);+  const SWord8  s885 = (SWord8) (s359 >> 24);+  const SWord8  s886 = table1[s885];+  const SWord8  s887 = (SWord8) (s359 >> 16);+  const SWord8  s888 = table2[s887];+  const SWord8  s889 = (SWord8) (s359 >> 8);+  const SWord8  s890 = table3[s889];+  const SWord8  s891 = (SWord8) s359;+  const SWord8  s892 = table4[s891];+  const SWord8  s893 = s890 ^ s892;+  const SWord8  s894 = s888 ^ s893;+  const SWord8  s895 = s886 ^ s894;+  const SWord8  s896 = table4[s885];+  const SWord8  s897 = table1[s887];+  const SWord8  s898 = table2[s889];+  const SWord8  s899 = table3[s891];+  const SWord8  s900 = s898 ^ s899;+  const SWord8  s901 = s897 ^ s900;+  const SWord8  s902 = s896 ^ s901;+  const SWord16 s903 = (((SWord16) s895) << 8) | ((SWord16) s902);+  const SWord8  s904 = table3[s885];+  const SWord8  s905 = table4[s887];+  const SWord8  s906 = table1[s889];+  const SWord8  s907 = table2[s891];+  const SWord8  s908 = s906 ^ s907;+  const SWord8  s909 = s905 ^ s908;+  const SWord8  s910 = s904 ^ s909;+  const SWord8  s911 = table2[s885];+  const SWord8  s912 = table3[s887];+  const SWord8  s913 = table4[s889];+  const SWord8  s914 = table1[s891];+  const SWord8  s915 = s913 ^ s914;+  const SWord8  s916 = s912 ^ s915;+  const SWord8  s917 = s911 ^ s916;+  const SWord16 s918 = (((SWord16) s910) << 8) | ((SWord16) s917);+  const SWord32 s919 = (((SWord32) s903) << 16) | ((SWord32) s918);+  const SWord8  s920 = (SWord8) (s360 >> 24);+  const SWord8  s921 = table1[s920];+  const SWord8  s922 = (SWord8) (s360 >> 16);+  const SWord8  s923 = table2[s922];+  const SWord8  s924 = (SWord8) (s360 >> 8);+  const SWord8  s925 = table3[s924];+  const SWord8  s926 = (SWord8) s360;+  const SWord8  s927 = table4[s926];+  const SWord8  s928 = s925 ^ s927;+  const SWord8  s929 = s923 ^ s928;+  const SWord8  s930 = s921 ^ s929;+  const SWord8  s931 = table4[s920];+  const SWord8  s932 = table1[s922];+  const SWord8  s933 = table2[s924];+  const SWord8  s934 = table3[s926];+  const SWord8  s935 = s933 ^ s934;+  const SWord8  s936 = s932 ^ s935;+  const SWord8  s937 = s931 ^ s936;+  const SWord16 s938 = (((SWord16) s930) << 8) | ((SWord16) s937);+  const SWord8  s939 = table3[s920];+  const SWord8  s940 = table4[s922];+  const SWord8  s941 = table1[s924];+  const SWord8  s942 = table2[s926];+  const SWord8  s943 = s941 ^ s942;+  const SWord8  s944 = s940 ^ s943;+  const SWord8  s945 = s939 ^ s944;+  const SWord8  s946 = table2[s920];+  const SWord8  s947 = table3[s922];+  const SWord8  s948 = table4[s924];+  const SWord8  s949 = table1[s926];+  const SWord8  s950 = s948 ^ s949;+  const SWord8  s951 = s947 ^ s950;+  const SWord8  s952 = s946 ^ s951;+  const SWord16 s953 = (((SWord16) s945) << 8) | ((SWord16) s952);+  const SWord32 s954 = (((SWord32) s938) << 16) | ((SWord32) s953);+  const SWord8  s955 = (SWord8) (s361 >> 24);+  const SWord8  s956 = table1[s955];+  const SWord8  s957 = (SWord8) (s361 >> 16);+  const SWord8  s958 = table2[s957];+  const SWord8  s959 = (SWord8) (s361 >> 8);+  const SWord8  s960 = table3[s959];+  const SWord8  s961 = (SWord8) s361;+  const SWord8  s962 = table4[s961];+  const SWord8  s963 = s960 ^ s962;+  const SWord8  s964 = s958 ^ s963;+  const SWord8  s965 = s956 ^ s964;+  const SWord8  s966 = table4[s955];+  const SWord8  s967 = table1[s957];+  const SWord8  s968 = table2[s959];+  const SWord8  s969 = table3[s961];+  const SWord8  s970 = s968 ^ s969;+  const SWord8  s971 = s967 ^ s970;+  const SWord8  s972 = s966 ^ s971;+  const SWord16 s973 = (((SWord16) s965) << 8) | ((SWord16) s972);+  const SWord8  s974 = table3[s955];+  const SWord8  s975 = table4[s957];+  const SWord8  s976 = table1[s959];+  const SWord8  s977 = table2[s961];+  const SWord8  s978 = s976 ^ s977;+  const SWord8  s979 = s975 ^ s978;+  const SWord8  s980 = s974 ^ s979;+  const SWord8  s981 = table2[s955];+  const SWord8  s982 = table3[s957];+  const SWord8  s983 = table4[s959];+  const SWord8  s984 = table1[s961];+  const SWord8  s985 = s983 ^ s984;+  const SWord8  s986 = s982 ^ s985;+  const SWord8  s987 = s981 ^ s986;+  const SWord16 s988 = (((SWord16) s980) << 8) | ((SWord16) s987);+  const SWord32 s989 = (((SWord32) s973) << 16) | ((SWord32) s988);+  const SWord8  s990 = (SWord8) (s341 >> 24);+  const SWord8  s991 = table1[s990];+  const SWord8  s992 = (SWord8) (s341 >> 16);+  const SWord8  s993 = table2[s992];+  const SWord8  s994 = (SWord8) (s341 >> 8);+  const SWord8  s995 = table3[s994];+  const SWord8  s996 = (SWord8) s341;+  const SWord8  s997 = table4[s996];+  const SWord8  s998 = s995 ^ s997;+  const SWord8  s999 = s993 ^ s998;+  const SWord8  s1000 = s991 ^ s999;+  const SWord8  s1001 = table4[s990];+  const SWord8  s1002 = table1[s992];+  const SWord8  s1003 = table2[s994];+  const SWord8  s1004 = table3[s996];+  const SWord8  s1005 = s1003 ^ s1004;+  const SWord8  s1006 = s1002 ^ s1005;+  const SWord8  s1007 = s1001 ^ s1006;+  const SWord16 s1008 = (((SWord16) s1000) << 8) | ((SWord16) s1007);+  const SWord8  s1009 = table3[s990];+  const SWord8  s1010 = table4[s992];+  const SWord8  s1011 = table1[s994];+  const SWord8  s1012 = table2[s996];+  const SWord8  s1013 = s1011 ^ s1012;+  const SWord8  s1014 = s1010 ^ s1013;+  const SWord8  s1015 = s1009 ^ s1014;+  const SWord8  s1016 = table2[s990];+  const SWord8  s1017 = table3[s992];+  const SWord8  s1018 = table4[s994];+  const SWord8  s1019 = table1[s996];+  const SWord8  s1020 = s1018 ^ s1019;+  const SWord8  s1021 = s1017 ^ s1020;+  const SWord8  s1022 = s1016 ^ s1021;+  const SWord16 s1023 = (((SWord16) s1015) << 8) | ((SWord16) s1022);+  const SWord32 s1024 = (((SWord32) s1008) << 16) | ((SWord32) s1023);+  const SWord8  s1025 = (SWord8) (s342 >> 24);+  const SWord8  s1026 = table1[s1025];+  const SWord8  s1027 = (SWord8) (s342 >> 16);+  const SWord8  s1028 = table2[s1027];+  const SWord8  s1029 = (SWord8) (s342 >> 8);+  const SWord8  s1030 = table3[s1029];+  const SWord8  s1031 = (SWord8) s342;+  const SWord8  s1032 = table4[s1031];+  const SWord8  s1033 = s1030 ^ s1032;+  const SWord8  s1034 = s1028 ^ s1033;+  const SWord8  s1035 = s1026 ^ s1034;+  const SWord8  s1036 = table4[s1025];+  const SWord8  s1037 = table1[s1027];+  const SWord8  s1038 = table2[s1029];+  const SWord8  s1039 = table3[s1031];+  const SWord8  s1040 = s1038 ^ s1039;+  const SWord8  s1041 = s1037 ^ s1040;+  const SWord8  s1042 = s1036 ^ s1041;+  const SWord16 s1043 = (((SWord16) s1035) << 8) | ((SWord16) s1042);+  const SWord8  s1044 = table3[s1025];+  const SWord8  s1045 = table4[s1027];+  const SWord8  s1046 = table1[s1029];+  const SWord8  s1047 = table2[s1031];+  const SWord8  s1048 = s1046 ^ s1047;+  const SWord8  s1049 = s1045 ^ s1048;+  const SWord8  s1050 = s1044 ^ s1049;+  const SWord8  s1051 = table2[s1025];+  const SWord8  s1052 = table3[s1027];+  const SWord8  s1053 = table4[s1029];+  const SWord8  s1054 = table1[s1031];+  const SWord8  s1055 = s1053 ^ s1054;+  const SWord8  s1056 = s1052 ^ s1055;+  const SWord8  s1057 = s1051 ^ s1056;+  const SWord16 s1058 = (((SWord16) s1050) << 8) | ((SWord16) s1057);+  const SWord32 s1059 = (((SWord32) s1043) << 16) | ((SWord32) s1058);+  const SWord8  s1060 = (SWord8) (s343 >> 24);+  const SWord8  s1061 = table1[s1060];+  const SWord8  s1062 = (SWord8) (s343 >> 16);+  const SWord8  s1063 = table2[s1062];+  const SWord8  s1064 = (SWord8) (s343 >> 8);+  const SWord8  s1065 = table3[s1064];+  const SWord8  s1066 = (SWord8) s343;+  const SWord8  s1067 = table4[s1066];+  const SWord8  s1068 = s1065 ^ s1067;+  const SWord8  s1069 = s1063 ^ s1068;+  const SWord8  s1070 = s1061 ^ s1069;+  const SWord8  s1071 = table4[s1060];+  const SWord8  s1072 = table1[s1062];+  const SWord8  s1073 = table2[s1064];+  const SWord8  s1074 = table3[s1066];+  const SWord8  s1075 = s1073 ^ s1074;+  const SWord8  s1076 = s1072 ^ s1075;+  const SWord8  s1077 = s1071 ^ s1076;+  const SWord16 s1078 = (((SWord16) s1070) << 8) | ((SWord16) s1077);+  const SWord8  s1079 = table3[s1060];+  const SWord8  s1080 = table4[s1062];+  const SWord8  s1081 = table1[s1064];+  const SWord8  s1082 = table2[s1066];+  const SWord8  s1083 = s1081 ^ s1082;+  const SWord8  s1084 = s1080 ^ s1083;+  const SWord8  s1085 = s1079 ^ s1084;+  const SWord8  s1086 = table2[s1060];+  const SWord8  s1087 = table3[s1062];+  const SWord8  s1088 = table4[s1064];+  const SWord8  s1089 = table1[s1066];+  const SWord8  s1090 = s1088 ^ s1089;+  const SWord8  s1091 = s1087 ^ s1090;+  const SWord8  s1092 = s1086 ^ s1091;+  const SWord16 s1093 = (((SWord16) s1085) << 8) | ((SWord16) s1092);+  const SWord32 s1094 = (((SWord32) s1078) << 16) | ((SWord32) s1093);+  const SWord8  s1095 = (SWord8) (s344 >> 24);+  const SWord8  s1096 = table1[s1095];+  const SWord8  s1097 = (SWord8) (s344 >> 16);+  const SWord8  s1098 = table2[s1097];+  const SWord8  s1099 = (SWord8) (s344 >> 8);+  const SWord8  s1100 = table3[s1099];+  const SWord8  s1101 = (SWord8) s344;+  const SWord8  s1102 = table4[s1101];+  const SWord8  s1103 = s1100 ^ s1102;+  const SWord8  s1104 = s1098 ^ s1103;+  const SWord8  s1105 = s1096 ^ s1104;+  const SWord8  s1106 = table4[s1095];+  const SWord8  s1107 = table1[s1097];+  const SWord8  s1108 = table2[s1099];+  const SWord8  s1109 = table3[s1101];+  const SWord8  s1110 = s1108 ^ s1109;+  const SWord8  s1111 = s1107 ^ s1110;+  const SWord8  s1112 = s1106 ^ s1111;+  const SWord16 s1113 = (((SWord16) s1105) << 8) | ((SWord16) s1112);+  const SWord8  s1114 = table3[s1095];+  const SWord8  s1115 = table4[s1097];+  const SWord8  s1116 = table1[s1099];+  const SWord8  s1117 = table2[s1101];+  const SWord8  s1118 = s1116 ^ s1117;+  const SWord8  s1119 = s1115 ^ s1118;+  const SWord8  s1120 = s1114 ^ s1119;+  const SWord8  s1121 = table2[s1095];+  const SWord8  s1122 = table3[s1097];+  const SWord8  s1123 = table4[s1099];+  const SWord8  s1124 = table1[s1101];+  const SWord8  s1125 = s1123 ^ s1124;+  const SWord8  s1126 = s1122 ^ s1125;+  const SWord8  s1127 = s1121 ^ s1126;+  const SWord16 s1128 = (((SWord16) s1120) << 8) | ((SWord16) s1127);+  const SWord32 s1129 = (((SWord32) s1113) << 16) | ((SWord32) s1128);+  const SWord8  s1130 = (SWord8) (s324 >> 24);+  const SWord8  s1131 = table1[s1130];+  const SWord8  s1132 = (SWord8) (s324 >> 16);+  const SWord8  s1133 = table2[s1132];+  const SWord8  s1134 = (SWord8) (s324 >> 8);+  const SWord8  s1135 = table3[s1134];+  const SWord8  s1136 = (SWord8) s324;+  const SWord8  s1137 = table4[s1136];+  const SWord8  s1138 = s1135 ^ s1137;+  const SWord8  s1139 = s1133 ^ s1138;+  const SWord8  s1140 = s1131 ^ s1139;+  const SWord8  s1141 = table4[s1130];+  const SWord8  s1142 = table1[s1132];+  const SWord8  s1143 = table2[s1134];+  const SWord8  s1144 = table3[s1136];+  const SWord8  s1145 = s1143 ^ s1144;+  const SWord8  s1146 = s1142 ^ s1145;+  const SWord8  s1147 = s1141 ^ s1146;+  const SWord16 s1148 = (((SWord16) s1140) << 8) | ((SWord16) s1147);+  const SWord8  s1149 = table3[s1130];+  const SWord8  s1150 = table4[s1132];+  const SWord8  s1151 = table1[s1134];+  const SWord8  s1152 = table2[s1136];+  const SWord8  s1153 = s1151 ^ s1152;+  const SWord8  s1154 = s1150 ^ s1153;+  const SWord8  s1155 = s1149 ^ s1154;+  const SWord8  s1156 = table2[s1130];+  const SWord8  s1157 = table3[s1132];+  const SWord8  s1158 = table4[s1134];+  const SWord8  s1159 = table1[s1136];+  const SWord8  s1160 = s1158 ^ s1159;+  const SWord8  s1161 = s1157 ^ s1160;+  const SWord8  s1162 = s1156 ^ s1161;+  const SWord16 s1163 = (((SWord16) s1155) << 8) | ((SWord16) s1162);+  const SWord32 s1164 = (((SWord32) s1148) << 16) | ((SWord32) s1163);+  const SWord8  s1165 = (SWord8) (s325 >> 24);+  const SWord8  s1166 = table1[s1165];+  const SWord8  s1167 = (SWord8) (s325 >> 16);+  const SWord8  s1168 = table2[s1167];+  const SWord8  s1169 = (SWord8) (s325 >> 8);+  const SWord8  s1170 = table3[s1169];+  const SWord8  s1171 = (SWord8) s325;+  const SWord8  s1172 = table4[s1171];+  const SWord8  s1173 = s1170 ^ s1172;+  const SWord8  s1174 = s1168 ^ s1173;+  const SWord8  s1175 = s1166 ^ s1174;+  const SWord8  s1176 = table4[s1165];+  const SWord8  s1177 = table1[s1167];+  const SWord8  s1178 = table2[s1169];+  const SWord8  s1179 = table3[s1171];+  const SWord8  s1180 = s1178 ^ s1179;+  const SWord8  s1181 = s1177 ^ s1180;+  const SWord8  s1182 = s1176 ^ s1181;+  const SWord16 s1183 = (((SWord16) s1175) << 8) | ((SWord16) s1182);+  const SWord8  s1184 = table3[s1165];+  const SWord8  s1185 = table4[s1167];+  const SWord8  s1186 = table1[s1169];+  const SWord8  s1187 = table2[s1171];+  const SWord8  s1188 = s1186 ^ s1187;+  const SWord8  s1189 = s1185 ^ s1188;+  const SWord8  s1190 = s1184 ^ s1189;+  const SWord8  s1191 = table2[s1165];+  const SWord8  s1192 = table3[s1167];+  const SWord8  s1193 = table4[s1169];+  const SWord8  s1194 = table1[s1171];+  const SWord8  s1195 = s1193 ^ s1194;+  const SWord8  s1196 = s1192 ^ s1195;+  const SWord8  s1197 = s1191 ^ s1196;+  const SWord16 s1198 = (((SWord16) s1190) << 8) | ((SWord16) s1197);+  const SWord32 s1199 = (((SWord32) s1183) << 16) | ((SWord32) s1198);+  const SWord8  s1200 = (SWord8) (s326 >> 24);+  const SWord8  s1201 = table1[s1200];+  const SWord8  s1202 = (SWord8) (s326 >> 16);+  const SWord8  s1203 = table2[s1202];+  const SWord8  s1204 = (SWord8) (s326 >> 8);+  const SWord8  s1205 = table3[s1204];+  const SWord8  s1206 = (SWord8) s326;+  const SWord8  s1207 = table4[s1206];+  const SWord8  s1208 = s1205 ^ s1207;+  const SWord8  s1209 = s1203 ^ s1208;+  const SWord8  s1210 = s1201 ^ s1209;+  const SWord8  s1211 = table4[s1200];+  const SWord8  s1212 = table1[s1202];+  const SWord8  s1213 = table2[s1204];+  const SWord8  s1214 = table3[s1206];+  const SWord8  s1215 = s1213 ^ s1214;+  const SWord8  s1216 = s1212 ^ s1215;+  const SWord8  s1217 = s1211 ^ s1216;+  const SWord16 s1218 = (((SWord16) s1210) << 8) | ((SWord16) s1217);+  const SWord8  s1219 = table3[s1200];+  const SWord8  s1220 = table4[s1202];+  const SWord8  s1221 = table1[s1204];+  const SWord8  s1222 = table2[s1206];+  const SWord8  s1223 = s1221 ^ s1222;+  const SWord8  s1224 = s1220 ^ s1223;+  const SWord8  s1225 = s1219 ^ s1224;+  const SWord8  s1226 = table2[s1200];+  const SWord8  s1227 = table3[s1202];+  const SWord8  s1228 = table4[s1204];+  const SWord8  s1229 = table1[s1206];+  const SWord8  s1230 = s1228 ^ s1229;+  const SWord8  s1231 = s1227 ^ s1230;+  const SWord8  s1232 = s1226 ^ s1231;+  const SWord16 s1233 = (((SWord16) s1225) << 8) | ((SWord16) s1232);+  const SWord32 s1234 = (((SWord32) s1218) << 16) | ((SWord32) s1233);+  const SWord8  s1235 = (SWord8) (s327 >> 24);+  const SWord8  s1236 = table1[s1235];+  const SWord8  s1237 = (SWord8) (s327 >> 16);+  const SWord8  s1238 = table2[s1237];+  const SWord8  s1239 = (SWord8) (s327 >> 8);+  const SWord8  s1240 = table3[s1239];+  const SWord8  s1241 = (SWord8) s327;+  const SWord8  s1242 = table4[s1241];+  const SWord8  s1243 = s1240 ^ s1242;+  const SWord8  s1244 = s1238 ^ s1243;+  const SWord8  s1245 = s1236 ^ s1244;+  const SWord8  s1246 = table4[s1235];+  const SWord8  s1247 = table1[s1237];+  const SWord8  s1248 = table2[s1239];+  const SWord8  s1249 = table3[s1241];+  const SWord8  s1250 = s1248 ^ s1249;+  const SWord8  s1251 = s1247 ^ s1250;+  const SWord8  s1252 = s1246 ^ s1251;+  const SWord16 s1253 = (((SWord16) s1245) << 8) | ((SWord16) s1252);+  const SWord8  s1254 = table3[s1235];+  const SWord8  s1255 = table4[s1237];+  const SWord8  s1256 = table1[s1239];+  const SWord8  s1257 = table2[s1241];+  const SWord8  s1258 = s1256 ^ s1257;+  const SWord8  s1259 = s1255 ^ s1258;+  const SWord8  s1260 = s1254 ^ s1259;+  const SWord8  s1261 = table2[s1235];+  const SWord8  s1262 = table3[s1237];+  const SWord8  s1263 = table4[s1239];+  const SWord8  s1264 = table1[s1241];+  const SWord8  s1265 = s1263 ^ s1264;+  const SWord8  s1266 = s1262 ^ s1265;+  const SWord8  s1267 = s1261 ^ s1266;+  const SWord16 s1268 = (((SWord16) s1260) << 8) | ((SWord16) s1267);+  const SWord32 s1269 = (((SWord32) s1253) << 16) | ((SWord32) s1268);+  const SWord8  s1270 = (SWord8) (s307 >> 24);+  const SWord8  s1271 = table1[s1270];+  const SWord8  s1272 = (SWord8) (s307 >> 16);+  const SWord8  s1273 = table2[s1272];+  const SWord8  s1274 = (SWord8) (s307 >> 8);+  const SWord8  s1275 = table3[s1274];+  const SWord8  s1276 = (SWord8) s307;+  const SWord8  s1277 = table4[s1276];+  const SWord8  s1278 = s1275 ^ s1277;+  const SWord8  s1279 = s1273 ^ s1278;+  const SWord8  s1280 = s1271 ^ s1279;+  const SWord8  s1281 = table4[s1270];+  const SWord8  s1282 = table1[s1272];+  const SWord8  s1283 = table2[s1274];+  const SWord8  s1284 = table3[s1276];+  const SWord8  s1285 = s1283 ^ s1284;+  const SWord8  s1286 = s1282 ^ s1285;+  const SWord8  s1287 = s1281 ^ s1286;+  const SWord16 s1288 = (((SWord16) s1280) << 8) | ((SWord16) s1287);+  const SWord8  s1289 = table3[s1270];+  const SWord8  s1290 = table4[s1272];+  const SWord8  s1291 = table1[s1274];+  const SWord8  s1292 = table2[s1276];+  const SWord8  s1293 = s1291 ^ s1292;+  const SWord8  s1294 = s1290 ^ s1293;+  const SWord8  s1295 = s1289 ^ s1294;+  const SWord8  s1296 = table2[s1270];+  const SWord8  s1297 = table3[s1272];+  const SWord8  s1298 = table4[s1274];+  const SWord8  s1299 = table1[s1276];+  const SWord8  s1300 = s1298 ^ s1299;+  const SWord8  s1301 = s1297 ^ s1300;+  const SWord8  s1302 = s1296 ^ s1301;+  const SWord16 s1303 = (((SWord16) s1295) << 8) | ((SWord16) s1302);+  const SWord32 s1304 = (((SWord32) s1288) << 16) | ((SWord32) s1303);+  const SWord8  s1305 = (SWord8) (s308 >> 24);+  const SWord8  s1306 = table1[s1305];+  const SWord8  s1307 = (SWord8) (s308 >> 16);+  const SWord8  s1308 = table2[s1307];+  const SWord8  s1309 = (SWord8) (s308 >> 8);+  const SWord8  s1310 = table3[s1309];+  const SWord8  s1311 = (SWord8) s308;+  const SWord8  s1312 = table4[s1311];+  const SWord8  s1313 = s1310 ^ s1312;+  const SWord8  s1314 = s1308 ^ s1313;+  const SWord8  s1315 = s1306 ^ s1314;+  const SWord8  s1316 = table4[s1305];+  const SWord8  s1317 = table1[s1307];+  const SWord8  s1318 = table2[s1309];+  const SWord8  s1319 = table3[s1311];+  const SWord8  s1320 = s1318 ^ s1319;+  const SWord8  s1321 = s1317 ^ s1320;+  const SWord8  s1322 = s1316 ^ s1321;+  const SWord16 s1323 = (((SWord16) s1315) << 8) | ((SWord16) s1322);+  const SWord8  s1324 = table3[s1305];+  const SWord8  s1325 = table4[s1307];+  const SWord8  s1326 = table1[s1309];+  const SWord8  s1327 = table2[s1311];+  const SWord8  s1328 = s1326 ^ s1327;+  const SWord8  s1329 = s1325 ^ s1328;+  const SWord8  s1330 = s1324 ^ s1329;+  const SWord8  s1331 = table2[s1305];+  const SWord8  s1332 = table3[s1307];+  const SWord8  s1333 = table4[s1309];+  const SWord8  s1334 = table1[s1311];+  const SWord8  s1335 = s1333 ^ s1334;+  const SWord8  s1336 = s1332 ^ s1335;+  const SWord8  s1337 = s1331 ^ s1336;+  const SWord16 s1338 = (((SWord16) s1330) << 8) | ((SWord16) s1337);+  const SWord32 s1339 = (((SWord32) s1323) << 16) | ((SWord32) s1338);+  const SWord8  s1340 = (SWord8) (s309 >> 24);+  const SWord8  s1341 = table1[s1340];+  const SWord8  s1342 = (SWord8) (s309 >> 16);+  const SWord8  s1343 = table2[s1342];+  const SWord8  s1344 = (SWord8) (s309 >> 8);+  const SWord8  s1345 = table3[s1344];+  const SWord8  s1346 = (SWord8) s309;+  const SWord8  s1347 = table4[s1346];+  const SWord8  s1348 = s1345 ^ s1347;+  const SWord8  s1349 = s1343 ^ s1348;+  const SWord8  s1350 = s1341 ^ s1349;+  const SWord8  s1351 = table4[s1340];+  const SWord8  s1352 = table1[s1342];+  const SWord8  s1353 = table2[s1344];+  const SWord8  s1354 = table3[s1346];+  const SWord8  s1355 = s1353 ^ s1354;+  const SWord8  s1356 = s1352 ^ s1355;+  const SWord8  s1357 = s1351 ^ s1356;+  const SWord16 s1358 = (((SWord16) s1350) << 8) | ((SWord16) s1357);+  const SWord8  s1359 = table3[s1340];+  const SWord8  s1360 = table4[s1342];+  const SWord8  s1361 = table1[s1344];+  const SWord8  s1362 = table2[s1346];+  const SWord8  s1363 = s1361 ^ s1362;+  const SWord8  s1364 = s1360 ^ s1363;+  const SWord8  s1365 = s1359 ^ s1364;+  const SWord8  s1366 = table2[s1340];+  const SWord8  s1367 = table3[s1342];+  const SWord8  s1368 = table4[s1344];+  const SWord8  s1369 = table1[s1346];+  const SWord8  s1370 = s1368 ^ s1369;+  const SWord8  s1371 = s1367 ^ s1370;+  const SWord8  s1372 = s1366 ^ s1371;+  const SWord16 s1373 = (((SWord16) s1365) << 8) | ((SWord16) s1372);+  const SWord32 s1374 = (((SWord32) s1358) << 16) | ((SWord32) s1373);+  const SWord8  s1375 = (SWord8) (s310 >> 24);+  const SWord8  s1376 = table1[s1375];+  const SWord8  s1377 = (SWord8) (s310 >> 16);+  const SWord8  s1378 = table2[s1377];+  const SWord8  s1379 = (SWord8) (s310 >> 8);+  const SWord8  s1380 = table3[s1379];+  const SWord8  s1381 = (SWord8) s310;+  const SWord8  s1382 = table4[s1381];+  const SWord8  s1383 = s1380 ^ s1382;+  const SWord8  s1384 = s1378 ^ s1383;+  const SWord8  s1385 = s1376 ^ s1384;+  const SWord8  s1386 = table4[s1375];+  const SWord8  s1387 = table1[s1377];+  const SWord8  s1388 = table2[s1379];+  const SWord8  s1389 = table3[s1381];+  const SWord8  s1390 = s1388 ^ s1389;+  const SWord8  s1391 = s1387 ^ s1390;+  const SWord8  s1392 = s1386 ^ s1391;+  const SWord16 s1393 = (((SWord16) s1385) << 8) | ((SWord16) s1392);+  const SWord8  s1394 = table3[s1375];+  const SWord8  s1395 = table4[s1377];+  const SWord8  s1396 = table1[s1379];+  const SWord8  s1397 = table2[s1381];+  const SWord8  s1398 = s1396 ^ s1397;+  const SWord8  s1399 = s1395 ^ s1398;+  const SWord8  s1400 = s1394 ^ s1399;+  const SWord8  s1401 = table2[s1375];+  const SWord8  s1402 = table3[s1377];+  const SWord8  s1403 = table4[s1379];+  const SWord8  s1404 = table1[s1381];+  const SWord8  s1405 = s1403 ^ s1404;+  const SWord8  s1406 = s1402 ^ s1405;+  const SWord8  s1407 = s1401 ^ s1406;+  const SWord16 s1408 = (((SWord16) s1400) << 8) | ((SWord16) s1407);+  const SWord32 s1409 = (((SWord32) s1393) << 16) | ((SWord32) s1408);+  const SWord8  s1410 = (SWord8) (s290 >> 24);+  const SWord8  s1411 = table1[s1410];+  const SWord8  s1412 = (SWord8) (s290 >> 16);+  const SWord8  s1413 = table2[s1412];+  const SWord8  s1414 = (SWord8) (s290 >> 8);+  const SWord8  s1415 = table3[s1414];+  const SWord8  s1416 = (SWord8) s290;+  const SWord8  s1417 = table4[s1416];+  const SWord8  s1418 = s1415 ^ s1417;+  const SWord8  s1419 = s1413 ^ s1418;+  const SWord8  s1420 = s1411 ^ s1419;+  const SWord8  s1421 = table4[s1410];+  const SWord8  s1422 = table1[s1412];+  const SWord8  s1423 = table2[s1414];+  const SWord8  s1424 = table3[s1416];+  const SWord8  s1425 = s1423 ^ s1424;+  const SWord8  s1426 = s1422 ^ s1425;+  const SWord8  s1427 = s1421 ^ s1426;+  const SWord16 s1428 = (((SWord16) s1420) << 8) | ((SWord16) s1427);+  const SWord8  s1429 = table3[s1410];+  const SWord8  s1430 = table4[s1412];+  const SWord8  s1431 = table1[s1414];+  const SWord8  s1432 = table2[s1416];+  const SWord8  s1433 = s1431 ^ s1432;+  const SWord8  s1434 = s1430 ^ s1433;+  const SWord8  s1435 = s1429 ^ s1434;+  const SWord8  s1436 = table2[s1410];+  const SWord8  s1437 = table3[s1412];+  const SWord8  s1438 = table4[s1414];+  const SWord8  s1439 = table1[s1416];+  const SWord8  s1440 = s1438 ^ s1439;+  const SWord8  s1441 = s1437 ^ s1440;+  const SWord8  s1442 = s1436 ^ s1441;+  const SWord16 s1443 = (((SWord16) s1435) << 8) | ((SWord16) s1442);+  const SWord32 s1444 = (((SWord32) s1428) << 16) | ((SWord32) s1443);+  const SWord8  s1445 = (SWord8) (s291 >> 24);+  const SWord8  s1446 = table1[s1445];+  const SWord8  s1447 = (SWord8) (s291 >> 16);+  const SWord8  s1448 = table2[s1447];+  const SWord8  s1449 = (SWord8) (s291 >> 8);+  const SWord8  s1450 = table3[s1449];+  const SWord8  s1451 = (SWord8) s291;+  const SWord8  s1452 = table4[s1451];+  const SWord8  s1453 = s1450 ^ s1452;+  const SWord8  s1454 = s1448 ^ s1453;+  const SWord8  s1455 = s1446 ^ s1454;+  const SWord8  s1456 = table4[s1445];+  const SWord8  s1457 = table1[s1447];+  const SWord8  s1458 = table2[s1449];+  const SWord8  s1459 = table3[s1451];+  const SWord8  s1460 = s1458 ^ s1459;+  const SWord8  s1461 = s1457 ^ s1460;+  const SWord8  s1462 = s1456 ^ s1461;+  const SWord16 s1463 = (((SWord16) s1455) << 8) | ((SWord16) s1462);+  const SWord8  s1464 = table3[s1445];+  const SWord8  s1465 = table4[s1447];+  const SWord8  s1466 = table1[s1449];+  const SWord8  s1467 = table2[s1451];+  const SWord8  s1468 = s1466 ^ s1467;+  const SWord8  s1469 = s1465 ^ s1468;+  const SWord8  s1470 = s1464 ^ s1469;+  const SWord8  s1471 = table2[s1445];+  const SWord8  s1472 = table3[s1447];+  const SWord8  s1473 = table4[s1449];+  const SWord8  s1474 = table1[s1451];+  const SWord8  s1475 = s1473 ^ s1474;+  const SWord8  s1476 = s1472 ^ s1475;+  const SWord8  s1477 = s1471 ^ s1476;+  const SWord16 s1478 = (((SWord16) s1470) << 8) | ((SWord16) s1477);+  const SWord32 s1479 = (((SWord32) s1463) << 16) | ((SWord32) s1478);+  const SWord8  s1480 = (SWord8) (s292 >> 24);+  const SWord8  s1481 = table1[s1480];+  const SWord8  s1482 = (SWord8) (s292 >> 16);+  const SWord8  s1483 = table2[s1482];+  const SWord8  s1484 = (SWord8) (s292 >> 8);+  const SWord8  s1485 = table3[s1484];+  const SWord8  s1486 = (SWord8) s292;+  const SWord8  s1487 = table4[s1486];+  const SWord8  s1488 = s1485 ^ s1487;+  const SWord8  s1489 = s1483 ^ s1488;+  const SWord8  s1490 = s1481 ^ s1489;+  const SWord8  s1491 = table4[s1480];+  const SWord8  s1492 = table1[s1482];+  const SWord8  s1493 = table2[s1484];+  const SWord8  s1494 = table3[s1486];+  const SWord8  s1495 = s1493 ^ s1494;+  const SWord8  s1496 = s1492 ^ s1495;+  const SWord8  s1497 = s1491 ^ s1496;+  const SWord16 s1498 = (((SWord16) s1490) << 8) | ((SWord16) s1497);+  const SWord8  s1499 = table3[s1480];+  const SWord8  s1500 = table4[s1482];+  const SWord8  s1501 = table1[s1484];+  const SWord8  s1502 = table2[s1486];+  const SWord8  s1503 = s1501 ^ s1502;+  const SWord8  s1504 = s1500 ^ s1503;+  const SWord8  s1505 = s1499 ^ s1504;+  const SWord8  s1506 = table2[s1480];+  const SWord8  s1507 = table3[s1482];+  const SWord8  s1508 = table4[s1484];+  const SWord8  s1509 = table1[s1486];+  const SWord8  s1510 = s1508 ^ s1509;+  const SWord8  s1511 = s1507 ^ s1510;+  const SWord8  s1512 = s1506 ^ s1511;+  const SWord16 s1513 = (((SWord16) s1505) << 8) | ((SWord16) s1512);+  const SWord32 s1514 = (((SWord32) s1498) << 16) | ((SWord32) s1513);+  const SWord8  s1515 = (SWord8) (s293 >> 24);+  const SWord8  s1516 = table1[s1515];+  const SWord8  s1517 = (SWord8) (s293 >> 16);+  const SWord8  s1518 = table2[s1517];+  const SWord8  s1519 = (SWord8) (s293 >> 8);+  const SWord8  s1520 = table3[s1519];+  const SWord8  s1521 = (SWord8) s293;+  const SWord8  s1522 = table4[s1521];+  const SWord8  s1523 = s1520 ^ s1522;+  const SWord8  s1524 = s1518 ^ s1523;+  const SWord8  s1525 = s1516 ^ s1524;+  const SWord8  s1526 = table4[s1515];+  const SWord8  s1527 = table1[s1517];+  const SWord8  s1528 = table2[s1519];+  const SWord8  s1529 = table3[s1521];+  const SWord8  s1530 = s1528 ^ s1529;+  const SWord8  s1531 = s1527 ^ s1530;+  const SWord8  s1532 = s1526 ^ s1531;+  const SWord16 s1533 = (((SWord16) s1525) << 8) | ((SWord16) s1532);+  const SWord8  s1534 = table3[s1515];+  const SWord8  s1535 = table4[s1517];+  const SWord8  s1536 = table1[s1519];+  const SWord8  s1537 = table2[s1521];+  const SWord8  s1538 = s1536 ^ s1537;+  const SWord8  s1539 = s1535 ^ s1538;+  const SWord8  s1540 = s1534 ^ s1539;+  const SWord8  s1541 = table2[s1515];+  const SWord8  s1542 = table3[s1517];+  const SWord8  s1543 = table4[s1519];+  const SWord8  s1544 = table1[s1521];+  const SWord8  s1545 = s1543 ^ s1544;+  const SWord8  s1546 = s1542 ^ s1545;+  const SWord8  s1547 = s1541 ^ s1546;+  const SWord16 s1548 = (((SWord16) s1540) << 8) | ((SWord16) s1547);+  const SWord32 s1549 = (((SWord32) s1533) << 16) | ((SWord32) s1548);+  const SWord8  s1550 = (SWord8) (s273 >> 24);+  const SWord8  s1551 = table1[s1550];+  const SWord8  s1552 = (SWord8) (s273 >> 16);+  const SWord8  s1553 = table2[s1552];+  const SWord8  s1554 = (SWord8) (s273 >> 8);+  const SWord8  s1555 = table3[s1554];+  const SWord8  s1556 = (SWord8) s273;+  const SWord8  s1557 = table4[s1556];+  const SWord8  s1558 = s1555 ^ s1557;+  const SWord8  s1559 = s1553 ^ s1558;+  const SWord8  s1560 = s1551 ^ s1559;+  const SWord8  s1561 = table4[s1550];+  const SWord8  s1562 = table1[s1552];+  const SWord8  s1563 = table2[s1554];+  const SWord8  s1564 = table3[s1556];+  const SWord8  s1565 = s1563 ^ s1564;+  const SWord8  s1566 = s1562 ^ s1565;+  const SWord8  s1567 = s1561 ^ s1566;+  const SWord16 s1568 = (((SWord16) s1560) << 8) | ((SWord16) s1567);+  const SWord8  s1569 = table3[s1550];+  const SWord8  s1570 = table4[s1552];+  const SWord8  s1571 = table1[s1554];+  const SWord8  s1572 = table2[s1556];+  const SWord8  s1573 = s1571 ^ s1572;+  const SWord8  s1574 = s1570 ^ s1573;+  const SWord8  s1575 = s1569 ^ s1574;+  const SWord8  s1576 = table2[s1550];+  const SWord8  s1577 = table3[s1552];+  const SWord8  s1578 = table4[s1554];+  const SWord8  s1579 = table1[s1556];+  const SWord8  s1580 = s1578 ^ s1579;+  const SWord8  s1581 = s1577 ^ s1580;+  const SWord8  s1582 = s1576 ^ s1581;+  const SWord16 s1583 = (((SWord16) s1575) << 8) | ((SWord16) s1582);+  const SWord32 s1584 = (((SWord32) s1568) << 16) | ((SWord32) s1583);+  const SWord8  s1585 = (SWord8) (s274 >> 24);+  const SWord8  s1586 = table1[s1585];+  const SWord8  s1587 = (SWord8) (s274 >> 16);+  const SWord8  s1588 = table2[s1587];+  const SWord8  s1589 = (SWord8) (s274 >> 8);+  const SWord8  s1590 = table3[s1589];+  const SWord8  s1591 = (SWord8) s274;+  const SWord8  s1592 = table4[s1591];+  const SWord8  s1593 = s1590 ^ s1592;+  const SWord8  s1594 = s1588 ^ s1593;+  const SWord8  s1595 = s1586 ^ s1594;+  const SWord8  s1596 = table4[s1585];+  const SWord8  s1597 = table1[s1587];+  const SWord8  s1598 = table2[s1589];+  const SWord8  s1599 = table3[s1591];+  const SWord8  s1600 = s1598 ^ s1599;+  const SWord8  s1601 = s1597 ^ s1600;+  const SWord8  s1602 = s1596 ^ s1601;+  const SWord16 s1603 = (((SWord16) s1595) << 8) | ((SWord16) s1602);+  const SWord8  s1604 = table3[s1585];+  const SWord8  s1605 = table4[s1587];+  const SWord8  s1606 = table1[s1589];+  const SWord8  s1607 = table2[s1591];+  const SWord8  s1608 = s1606 ^ s1607;+  const SWord8  s1609 = s1605 ^ s1608;+  const SWord8  s1610 = s1604 ^ s1609;+  const SWord8  s1611 = table2[s1585];+  const SWord8  s1612 = table3[s1587];+  const SWord8  s1613 = table4[s1589];+  const SWord8  s1614 = table1[s1591];+  const SWord8  s1615 = s1613 ^ s1614;+  const SWord8  s1616 = s1612 ^ s1615;+  const SWord8  s1617 = s1611 ^ s1616;+  const SWord16 s1618 = (((SWord16) s1610) << 8) | ((SWord16) s1617);+  const SWord32 s1619 = (((SWord32) s1603) << 16) | ((SWord32) s1618);+  const SWord8  s1620 = (SWord8) (s275 >> 24);+  const SWord8  s1621 = table1[s1620];+  const SWord8  s1622 = (SWord8) (s275 >> 16);+  const SWord8  s1623 = table2[s1622];+  const SWord8  s1624 = (SWord8) (s275 >> 8);+  const SWord8  s1625 = table3[s1624];+  const SWord8  s1626 = (SWord8) s275;+  const SWord8  s1627 = table4[s1626];+  const SWord8  s1628 = s1625 ^ s1627;+  const SWord8  s1629 = s1623 ^ s1628;+  const SWord8  s1630 = s1621 ^ s1629;+  const SWord8  s1631 = table4[s1620];+  const SWord8  s1632 = table1[s1622];+  const SWord8  s1633 = table2[s1624];+  const SWord8  s1634 = table3[s1626];+  const SWord8  s1635 = s1633 ^ s1634;+  const SWord8  s1636 = s1632 ^ s1635;+  const SWord8  s1637 = s1631 ^ s1636;+  const SWord16 s1638 = (((SWord16) s1630) << 8) | ((SWord16) s1637);+  const SWord8  s1639 = table3[s1620];+  const SWord8  s1640 = table4[s1622];+  const SWord8  s1641 = table1[s1624];+  const SWord8  s1642 = table2[s1626];+  const SWord8  s1643 = s1641 ^ s1642;+  const SWord8  s1644 = s1640 ^ s1643;+  const SWord8  s1645 = s1639 ^ s1644;+  const SWord8  s1646 = table2[s1620];+  const SWord8  s1647 = table3[s1622];+  const SWord8  s1648 = table4[s1624];+  const SWord8  s1649 = table1[s1626];+  const SWord8  s1650 = s1648 ^ s1649;+  const SWord8  s1651 = s1647 ^ s1650;+  const SWord8  s1652 = s1646 ^ s1651;+  const SWord16 s1653 = (((SWord16) s1645) << 8) | ((SWord16) s1652);+  const SWord32 s1654 = (((SWord32) s1638) << 16) | ((SWord32) s1653);+  const SWord8  s1655 = (SWord8) (s276 >> 24);+  const SWord8  s1656 = table1[s1655];+  const SWord8  s1657 = (SWord8) (s276 >> 16);+  const SWord8  s1658 = table2[s1657];+  const SWord8  s1659 = (SWord8) (s276 >> 8);+  const SWord8  s1660 = table3[s1659];+  const SWord8  s1661 = (SWord8) s276;+  const SWord8  s1662 = table4[s1661];+  const SWord8  s1663 = s1660 ^ s1662;+  const SWord8  s1664 = s1658 ^ s1663;+  const SWord8  s1665 = s1656 ^ s1664;+  const SWord8  s1666 = table4[s1655];+  const SWord8  s1667 = table1[s1657];+  const SWord8  s1668 = table2[s1659];+  const SWord8  s1669 = table3[s1661];+  const SWord8  s1670 = s1668 ^ s1669;+  const SWord8  s1671 = s1667 ^ s1670;+  const SWord8  s1672 = s1666 ^ s1671;+  const SWord16 s1673 = (((SWord16) s1665) << 8) | ((SWord16) s1672);+  const SWord8  s1674 = table3[s1655];+  const SWord8  s1675 = table4[s1657];+  const SWord8  s1676 = table1[s1659];+  const SWord8  s1677 = table2[s1661];+  const SWord8  s1678 = s1676 ^ s1677;+  const SWord8  s1679 = s1675 ^ s1678;+  const SWord8  s1680 = s1674 ^ s1679;+  const SWord8  s1681 = table2[s1655];+  const SWord8  s1682 = table3[s1657];+  const SWord8  s1683 = table4[s1659];+  const SWord8  s1684 = table1[s1661];+  const SWord8  s1685 = s1683 ^ s1684;+  const SWord8  s1686 = s1682 ^ s1685;+  const SWord8  s1687 = s1681 ^ s1686;+  const SWord16 s1688 = (((SWord16) s1680) << 8) | ((SWord16) s1687);+  const SWord32 s1689 = (((SWord32) s1673) << 16) | ((SWord32) s1688);++  encKS[0] = s0;+  encKS[1] = s1;+  encKS[2] = s2;+  encKS[3] = s3;+  encKS[4] = s273;+  encKS[5] = s274;+  encKS[6] = s275;+  encKS[7] = s276;+  encKS[8] = s290;+  encKS[9] = s291;+  encKS[10] = s292;+  encKS[11] = s293;+  encKS[12] = s307;+  encKS[13] = s308;+  encKS[14] = s309;+  encKS[15] = s310;+  encKS[16] = s324;+  encKS[17] = s325;+  encKS[18] = s326;+  encKS[19] = s327;+  encKS[20] = s341;+  encKS[21] = s342;+  encKS[22] = s343;+  encKS[23] = s344;+  encKS[24] = s358;+  encKS[25] = s359;+  encKS[26] = s360;+  encKS[27] = s361;+  encKS[28] = s375;+  encKS[29] = s376;+  encKS[30] = s377;+  encKS[31] = s378;+  encKS[32] = s392;+  encKS[33] = s393;+  encKS[34] = s394;+  encKS[35] = s395;+  encKS[36] = s409;+  encKS[37] = s410;+  encKS[38] = s411;+  encKS[39] = s412;+  encKS[40] = s426;+  encKS[41] = s427;+  encKS[42] = s428;+  encKS[43] = s429;+  decKS[0] = s426;+  decKS[1] = s427;+  decKS[2] = s428;+  decKS[3] = s429;+  decKS[4] = s464;+  decKS[5] = s499;+  decKS[6] = s534;+  decKS[7] = s569;+  decKS[8] = s604;+  decKS[9] = s639;+  decKS[10] = s674;+  decKS[11] = s709;+  decKS[12] = s744;+  decKS[13] = s779;+  decKS[14] = s814;+  decKS[15] = s849;+  decKS[16] = s884;+  decKS[17] = s919;+  decKS[18] = s954;+  decKS[19] = s989;+  decKS[20] = s1024;+  decKS[21] = s1059;+  decKS[22] = s1094;+  decKS[23] = s1129;+  decKS[24] = s1164;+  decKS[25] = s1199;+  decKS[26] = s1234;+  decKS[27] = s1269;+  decKS[28] = s1304;+  decKS[29] = s1339;+  decKS[30] = s1374;+  decKS[31] = s1409;+  decKS[32] = s1444;+  decKS[33] = s1479;+  decKS[34] = s1514;+  decKS[35] = s1549;+  decKS[36] = s1584;+  decKS[37] = s1619;+  decKS[38] = s1654;+  decKS[39] = s1689;+  decKS[40] = s0;+  decKS[41] = s1;+  decKS[42] = s2;+  decKS[43] = s3;+}+== END: "aes128KeySchedule.c" ==================+== BEGIN: "aes128BlockEncrypt.c" ================+/* File: "aes128BlockEncrypt.c". Automatically generated by SBV. Do not edit! */++#include "aes128Lib.h"++void aes128BlockEncrypt(const SWord32 *pt, const SWord32 *xkey,+                        SWord32 *ct)+{+  const SWord32 s0 = pt[0];+  const SWord32 s1 = pt[1];+  const SWord32 s2 = pt[2];+  const SWord32 s3 = pt[3];+  const SWord32 s4 = xkey[0];+  const SWord32 s5 = xkey[1];+  const SWord32 s6 = xkey[2];+  const SWord32 s7 = xkey[3];+  const SWord32 s8 = xkey[4];+  const SWord32 s9 = xkey[5];+  const SWord32 s10 = xkey[6];+  const SWord32 s11 = xkey[7];+  const SWord32 s12 = xkey[8];+  const SWord32 s13 = xkey[9];+  const SWord32 s14 = xkey[10];+  const SWord32 s15 = xkey[11];+  const SWord32 s16 = xkey[12];+  const SWord32 s17 = xkey[13];+  const SWord32 s18 = xkey[14];+  const SWord32 s19 = xkey[15];+  const SWord32 s20 = xkey[16];+  const SWord32 s21 = xkey[17];+  const SWord32 s22 = xkey[18];+  const SWord32 s23 = xkey[19];+  const SWord32 s24 = xkey[20];+  const SWord32 s25 = xkey[21];+  const SWord32 s26 = xkey[22];+  const SWord32 s27 = xkey[23];+  const SWord32 s28 = xkey[24];+  const SWord32 s29 = xkey[25];+  const SWord32 s30 = xkey[26];+  const SWord32 s31 = xkey[27];+  const SWord32 s32 = xkey[28];+  const SWord32 s33 = xkey[29];+  const SWord32 s34 = xkey[30];+  const SWord32 s35 = xkey[31];+  const SWord32 s36 = xkey[32];+  const SWord32 s37 = xkey[33];+  const SWord32 s38 = xkey[34];+  const SWord32 s39 = xkey[35];+  const SWord32 s40 = xkey[36];+  const SWord32 s41 = xkey[37];+  const SWord32 s42 = xkey[38];+  const SWord32 s43 = xkey[39];+  const SWord32 s44 = xkey[40];+  const SWord32 s45 = xkey[41];+  const SWord32 s46 = xkey[42];+  const SWord32 s47 = xkey[43];+  static const SWord8 table0[] = {+       99, 124, 119, 123, 242, 107, 111, 197,  48,   1, 103,  43, 254,+      215, 171, 118, 202, 130, 201, 125, 250,  89,  71, 240, 173, 212,+      162, 175, 156, 164, 114, 192, 183, 253, 147,  38,  54,  63, 247,+      204,  52, 165, 229, 241, 113, 216,  49,  21,   4, 199,  35, 195,+       24, 150,   5, 154,   7,  18, 128, 226, 235,  39, 178, 117,   9,+      131,  44,  26,  27, 110,  90, 160,  82,  59, 214, 179,  41, 227,+       47, 132,  83, 209,   0, 237,  32, 252, 177,  91, 106, 203, 190,+       57,  74,  76,  88, 207, 208, 239, 170, 251,  67,  77,  51, 133,+       69, 249,   2, 127,  80,  60, 159, 168,  81, 163,  64, 143, 146,+      157,  56, 245, 188, 182, 218,  33,  16, 255, 243, 210, 205,  12,+       19, 236,  95, 151,  68,  23, 196, 167, 126,  61, 100,  93,  25,+      115,  96, 129,  79, 220,  34,  42, 144, 136,  70, 238, 184,  20,+      222,  94,  11, 219, 224,  50,  58,  10,  73,   6,  36,  92, 194,+      211, 172,  98, 145, 149, 228, 121, 231, 200,  55, 109, 141, 213,+       78, 169, 108,  86, 244, 234, 101, 122, 174,   8, 186, 120,  37,+       46,  28, 166, 180, 198, 232, 221, 116,  31,  75, 189, 139, 138,+      112,  62, 181, 102,  72,   3, 246,  14,  97,  53,  87, 185, 134,+      193,  29, 158, 225, 248, 152,  17, 105, 217, 142, 148, 155,  30,+      135, 233, 206,  85,  40, 223, 140, 161, 137,  13, 191, 230,  66,+      104,  65, 153,  45,  15, 176,  84, 187,  22+  };+  static const SWord32 table1[] = {+      0xc66363a5UL, 0xf87c7c84UL, 0xee777799UL, 0xf67b7b8dUL,+      0xfff2f20dUL, 0xd66b6bbdUL, 0xde6f6fb1UL, 0x91c5c554UL,+      0x60303050UL, 0x02010103UL, 0xce6767a9UL, 0x562b2b7dUL,+      0xe7fefe19UL, 0xb5d7d762UL, 0x4dababe6UL, 0xec76769aUL,+      0x8fcaca45UL, 0x1f82829dUL, 0x89c9c940UL, 0xfa7d7d87UL,+      0xeffafa15UL, 0xb25959ebUL, 0x8e4747c9UL, 0xfbf0f00bUL,+      0x41adadecUL, 0xb3d4d467UL, 0x5fa2a2fdUL, 0x45afafeaUL,+      0x239c9cbfUL, 0x53a4a4f7UL, 0xe4727296UL, 0x9bc0c05bUL,+      0x75b7b7c2UL, 0xe1fdfd1cUL, 0x3d9393aeUL, 0x4c26266aUL,+      0x6c36365aUL, 0x7e3f3f41UL, 0xf5f7f702UL, 0x83cccc4fUL,+      0x6834345cUL, 0x51a5a5f4UL, 0xd1e5e534UL, 0xf9f1f108UL,+      0xe2717193UL, 0xabd8d873UL, 0x62313153UL, 0x2a15153fUL,+      0x0804040cUL, 0x95c7c752UL, 0x46232365UL, 0x9dc3c35eUL,+      0x30181828UL, 0x379696a1UL, 0x0a05050fUL, 0x2f9a9ab5UL,+      0x0e070709UL, 0x24121236UL, 0x1b80809bUL, 0xdfe2e23dUL,+      0xcdebeb26UL, 0x4e272769UL, 0x7fb2b2cdUL, 0xea75759fUL,+      0x1209091bUL, 0x1d83839eUL, 0x582c2c74UL, 0x341a1a2eUL,+      0x361b1b2dUL, 0xdc6e6eb2UL, 0xb45a5aeeUL, 0x5ba0a0fbUL,+      0xa45252f6UL, 0x763b3b4dUL, 0xb7d6d661UL, 0x7db3b3ceUL,+      0x5229297bUL, 0xdde3e33eUL, 0x5e2f2f71UL, 0x13848497UL,+      0xa65353f5UL, 0xb9d1d168UL, 0x00000000UL, 0xc1eded2cUL,+      0x40202060UL, 0xe3fcfc1fUL, 0x79b1b1c8UL, 0xb65b5bedUL,+      0xd46a6abeUL, 0x8dcbcb46UL, 0x67bebed9UL, 0x7239394bUL,+      0x944a4adeUL, 0x984c4cd4UL, 0xb05858e8UL, 0x85cfcf4aUL,+      0xbbd0d06bUL, 0xc5efef2aUL, 0x4faaaae5UL, 0xedfbfb16UL,+      0x864343c5UL, 0x9a4d4dd7UL, 0x66333355UL, 0x11858594UL,+      0x8a4545cfUL, 0xe9f9f910UL, 0x04020206UL, 0xfe7f7f81UL,+      0xa05050f0UL, 0x783c3c44UL, 0x259f9fbaUL, 0x4ba8a8e3UL,+      0xa25151f3UL, 0x5da3a3feUL, 0x804040c0UL, 0x058f8f8aUL,+      0x3f9292adUL, 0x219d9dbcUL, 0x70383848UL, 0xf1f5f504UL,+      0x63bcbcdfUL, 0x77b6b6c1UL, 0xafdada75UL, 0x42212163UL,+      0x20101030UL, 0xe5ffff1aUL, 0xfdf3f30eUL, 0xbfd2d26dUL,+      0x81cdcd4cUL, 0x180c0c14UL, 0x26131335UL, 0xc3ecec2fUL,+      0xbe5f5fe1UL, 0x359797a2UL, 0x884444ccUL, 0x2e171739UL,+      0x93c4c457UL, 0x55a7a7f2UL, 0xfc7e7e82UL, 0x7a3d3d47UL,+      0xc86464acUL, 0xba5d5de7UL, 0x3219192bUL, 0xe6737395UL,+      0xc06060a0UL, 0x19818198UL, 0x9e4f4fd1UL, 0xa3dcdc7fUL,+      0x44222266UL, 0x542a2a7eUL, 0x3b9090abUL, 0x0b888883UL,+      0x8c4646caUL, 0xc7eeee29UL, 0x6bb8b8d3UL, 0x2814143cUL,+      0xa7dede79UL, 0xbc5e5ee2UL, 0x160b0b1dUL, 0xaddbdb76UL,+      0xdbe0e03bUL, 0x64323256UL, 0x743a3a4eUL, 0x140a0a1eUL,+      0x924949dbUL, 0x0c06060aUL, 0x4824246cUL, 0xb85c5ce4UL,+      0x9fc2c25dUL, 0xbdd3d36eUL, 0x43acacefUL, 0xc46262a6UL,+      0x399191a8UL, 0x319595a4UL, 0xd3e4e437UL, 0xf279798bUL,+      0xd5e7e732UL, 0x8bc8c843UL, 0x6e373759UL, 0xda6d6db7UL,+      0x018d8d8cUL, 0xb1d5d564UL, 0x9c4e4ed2UL, 0x49a9a9e0UL,+      0xd86c6cb4UL, 0xac5656faUL, 0xf3f4f407UL, 0xcfeaea25UL,+      0xca6565afUL, 0xf47a7a8eUL, 0x47aeaee9UL, 0x10080818UL,+      0x6fbabad5UL, 0xf0787888UL, 0x4a25256fUL, 0x5c2e2e72UL,+      0x381c1c24UL, 0x57a6a6f1UL, 0x73b4b4c7UL, 0x97c6c651UL,+      0xcbe8e823UL, 0xa1dddd7cUL, 0xe874749cUL, 0x3e1f1f21UL,+      0x964b4bddUL, 0x61bdbddcUL, 0x0d8b8b86UL, 0x0f8a8a85UL,+      0xe0707090UL, 0x7c3e3e42UL, 0x71b5b5c4UL, 0xcc6666aaUL,+      0x904848d8UL, 0x06030305UL, 0xf7f6f601UL, 0x1c0e0e12UL,+      0xc26161a3UL, 0x6a35355fUL, 0xae5757f9UL, 0x69b9b9d0UL,+      0x17868691UL, 0x99c1c158UL, 0x3a1d1d27UL, 0x279e9eb9UL,+      0xd9e1e138UL, 0xebf8f813UL, 0x2b9898b3UL, 0x22111133UL,+      0xd26969bbUL, 0xa9d9d970UL, 0x078e8e89UL, 0x339494a7UL,+      0x2d9b9bb6UL, 0x3c1e1e22UL, 0x15878792UL, 0xc9e9e920UL,+      0x87cece49UL, 0xaa5555ffUL, 0x50282878UL, 0xa5dfdf7aUL,+      0x038c8c8fUL, 0x59a1a1f8UL, 0x09898980UL, 0x1a0d0d17UL,+      0x65bfbfdaUL, 0xd7e6e631UL, 0x844242c6UL, 0xd06868b8UL,+      0x824141c3UL, 0x299999b0UL, 0x5a2d2d77UL, 0x1e0f0f11UL,+      0x7bb0b0cbUL, 0xa85454fcUL, 0x6dbbbbd6UL, 0x2c16163aUL+  };+  static const SWord32 table2[] = {+      0xa5c66363UL, 0x84f87c7cUL, 0x99ee7777UL, 0x8df67b7bUL,+      0x0dfff2f2UL, 0xbdd66b6bUL, 0xb1de6f6fUL, 0x5491c5c5UL,+      0x50603030UL, 0x03020101UL, 0xa9ce6767UL, 0x7d562b2bUL,+      0x19e7fefeUL, 0x62b5d7d7UL, 0xe64dababUL, 0x9aec7676UL,+      0x458fcacaUL, 0x9d1f8282UL, 0x4089c9c9UL, 0x87fa7d7dUL,+      0x15effafaUL, 0xebb25959UL, 0xc98e4747UL, 0x0bfbf0f0UL,+      0xec41adadUL, 0x67b3d4d4UL, 0xfd5fa2a2UL, 0xea45afafUL,+      0xbf239c9cUL, 0xf753a4a4UL, 0x96e47272UL, 0x5b9bc0c0UL,+      0xc275b7b7UL, 0x1ce1fdfdUL, 0xae3d9393UL, 0x6a4c2626UL,+      0x5a6c3636UL, 0x417e3f3fUL, 0x02f5f7f7UL, 0x4f83ccccUL,+      0x5c683434UL, 0xf451a5a5UL, 0x34d1e5e5UL, 0x08f9f1f1UL,+      0x93e27171UL, 0x73abd8d8UL, 0x53623131UL, 0x3f2a1515UL,+      0x0c080404UL, 0x5295c7c7UL, 0x65462323UL, 0x5e9dc3c3UL,+      0x28301818UL, 0xa1379696UL, 0x0f0a0505UL, 0xb52f9a9aUL,+      0x090e0707UL, 0x36241212UL, 0x9b1b8080UL, 0x3ddfe2e2UL,+      0x26cdebebUL, 0x694e2727UL, 0xcd7fb2b2UL, 0x9fea7575UL,+      0x1b120909UL, 0x9e1d8383UL, 0x74582c2cUL, 0x2e341a1aUL,+      0x2d361b1bUL, 0xb2dc6e6eUL, 0xeeb45a5aUL, 0xfb5ba0a0UL,+      0xf6a45252UL, 0x4d763b3bUL, 0x61b7d6d6UL, 0xce7db3b3UL,+      0x7b522929UL, 0x3edde3e3UL, 0x715e2f2fUL, 0x97138484UL,+      0xf5a65353UL, 0x68b9d1d1UL, 0x00000000UL, 0x2cc1ededUL,+      0x60402020UL, 0x1fe3fcfcUL, 0xc879b1b1UL, 0xedb65b5bUL,+      0xbed46a6aUL, 0x468dcbcbUL, 0xd967bebeUL, 0x4b723939UL,+      0xde944a4aUL, 0xd4984c4cUL, 0xe8b05858UL, 0x4a85cfcfUL,+      0x6bbbd0d0UL, 0x2ac5efefUL, 0xe54faaaaUL, 0x16edfbfbUL,+      0xc5864343UL, 0xd79a4d4dUL, 0x55663333UL, 0x94118585UL,+      0xcf8a4545UL, 0x10e9f9f9UL, 0x06040202UL, 0x81fe7f7fUL,+      0xf0a05050UL, 0x44783c3cUL, 0xba259f9fUL, 0xe34ba8a8UL,+      0xf3a25151UL, 0xfe5da3a3UL, 0xc0804040UL, 0x8a058f8fUL,+      0xad3f9292UL, 0xbc219d9dUL, 0x48703838UL, 0x04f1f5f5UL,+      0xdf63bcbcUL, 0xc177b6b6UL, 0x75afdadaUL, 0x63422121UL,+      0x30201010UL, 0x1ae5ffffUL, 0x0efdf3f3UL, 0x6dbfd2d2UL,+      0x4c81cdcdUL, 0x14180c0cUL, 0x35261313UL, 0x2fc3ececUL,+      0xe1be5f5fUL, 0xa2359797UL, 0xcc884444UL, 0x392e1717UL,+      0x5793c4c4UL, 0xf255a7a7UL, 0x82fc7e7eUL, 0x477a3d3dUL,+      0xacc86464UL, 0xe7ba5d5dUL, 0x2b321919UL, 0x95e67373UL,+      0xa0c06060UL, 0x98198181UL, 0xd19e4f4fUL, 0x7fa3dcdcUL,+      0x66442222UL, 0x7e542a2aUL, 0xab3b9090UL, 0x830b8888UL,+      0xca8c4646UL, 0x29c7eeeeUL, 0xd36bb8b8UL, 0x3c281414UL,+      0x79a7dedeUL, 0xe2bc5e5eUL, 0x1d160b0bUL, 0x76addbdbUL,+      0x3bdbe0e0UL, 0x56643232UL, 0x4e743a3aUL, 0x1e140a0aUL,+      0xdb924949UL, 0x0a0c0606UL, 0x6c482424UL, 0xe4b85c5cUL,+      0x5d9fc2c2UL, 0x6ebdd3d3UL, 0xef43acacUL, 0xa6c46262UL,+      0xa8399191UL, 0xa4319595UL, 0x37d3e4e4UL, 0x8bf27979UL,+      0x32d5e7e7UL, 0x438bc8c8UL, 0x596e3737UL, 0xb7da6d6dUL,+      0x8c018d8dUL, 0x64b1d5d5UL, 0xd29c4e4eUL, 0xe049a9a9UL,+      0xb4d86c6cUL, 0xfaac5656UL, 0x07f3f4f4UL, 0x25cfeaeaUL,+      0xafca6565UL, 0x8ef47a7aUL, 0xe947aeaeUL, 0x18100808UL,+      0xd56fbabaUL, 0x88f07878UL, 0x6f4a2525UL, 0x725c2e2eUL,+      0x24381c1cUL, 0xf157a6a6UL, 0xc773b4b4UL, 0x5197c6c6UL,+      0x23cbe8e8UL, 0x7ca1ddddUL, 0x9ce87474UL, 0x213e1f1fUL,+      0xdd964b4bUL, 0xdc61bdbdUL, 0x860d8b8bUL, 0x850f8a8aUL,+      0x90e07070UL, 0x427c3e3eUL, 0xc471b5b5UL, 0xaacc6666UL,+      0xd8904848UL, 0x05060303UL, 0x01f7f6f6UL, 0x121c0e0eUL,+      0xa3c26161UL, 0x5f6a3535UL, 0xf9ae5757UL, 0xd069b9b9UL,+      0x91178686UL, 0x5899c1c1UL, 0x273a1d1dUL, 0xb9279e9eUL,+      0x38d9e1e1UL, 0x13ebf8f8UL, 0xb32b9898UL, 0x33221111UL,+      0xbbd26969UL, 0x70a9d9d9UL, 0x89078e8eUL, 0xa7339494UL,+      0xb62d9b9bUL, 0x223c1e1eUL, 0x92158787UL, 0x20c9e9e9UL,+      0x4987ceceUL, 0xffaa5555UL, 0x78502828UL, 0x7aa5dfdfUL,+      0x8f038c8cUL, 0xf859a1a1UL, 0x80098989UL, 0x171a0d0dUL,+      0xda65bfbfUL, 0x31d7e6e6UL, 0xc6844242UL, 0xb8d06868UL,+      0xc3824141UL, 0xb0299999UL, 0x775a2d2dUL, 0x111e0f0fUL,+      0xcb7bb0b0UL, 0xfca85454UL, 0xd66dbbbbUL, 0x3a2c1616UL+  };+  static const SWord32 table3[] = {+      0x63a5c663UL, 0x7c84f87cUL, 0x7799ee77UL, 0x7b8df67bUL,+      0xf20dfff2UL, 0x6bbdd66bUL, 0x6fb1de6fUL, 0xc55491c5UL,+      0x30506030UL, 0x01030201UL, 0x67a9ce67UL, 0x2b7d562bUL,+      0xfe19e7feUL, 0xd762b5d7UL, 0xabe64dabUL, 0x769aec76UL,+      0xca458fcaUL, 0x829d1f82UL, 0xc94089c9UL, 0x7d87fa7dUL,+      0xfa15effaUL, 0x59ebb259UL, 0x47c98e47UL, 0xf00bfbf0UL,+      0xadec41adUL, 0xd467b3d4UL, 0xa2fd5fa2UL, 0xafea45afUL,+      0x9cbf239cUL, 0xa4f753a4UL, 0x7296e472UL, 0xc05b9bc0UL,+      0xb7c275b7UL, 0xfd1ce1fdUL, 0x93ae3d93UL, 0x266a4c26UL,+      0x365a6c36UL, 0x3f417e3fUL, 0xf702f5f7UL, 0xcc4f83ccUL,+      0x345c6834UL, 0xa5f451a5UL, 0xe534d1e5UL, 0xf108f9f1UL,+      0x7193e271UL, 0xd873abd8UL, 0x31536231UL, 0x153f2a15UL,+      0x040c0804UL, 0xc75295c7UL, 0x23654623UL, 0xc35e9dc3UL,+      0x18283018UL, 0x96a13796UL, 0x050f0a05UL, 0x9ab52f9aUL,+      0x07090e07UL, 0x12362412UL, 0x809b1b80UL, 0xe23ddfe2UL,+      0xeb26cdebUL, 0x27694e27UL, 0xb2cd7fb2UL, 0x759fea75UL,+      0x091b1209UL, 0x839e1d83UL, 0x2c74582cUL, 0x1a2e341aUL,+      0x1b2d361bUL, 0x6eb2dc6eUL, 0x5aeeb45aUL, 0xa0fb5ba0UL,+      0x52f6a452UL, 0x3b4d763bUL, 0xd661b7d6UL, 0xb3ce7db3UL,+      0x297b5229UL, 0xe33edde3UL, 0x2f715e2fUL, 0x84971384UL,+      0x53f5a653UL, 0xd168b9d1UL, 0x00000000UL, 0xed2cc1edUL,+      0x20604020UL, 0xfc1fe3fcUL, 0xb1c879b1UL, 0x5bedb65bUL,+      0x6abed46aUL, 0xcb468dcbUL, 0xbed967beUL, 0x394b7239UL,+      0x4ade944aUL, 0x4cd4984cUL, 0x58e8b058UL, 0xcf4a85cfUL,+      0xd06bbbd0UL, 0xef2ac5efUL, 0xaae54faaUL, 0xfb16edfbUL,+      0x43c58643UL, 0x4dd79a4dUL, 0x33556633UL, 0x85941185UL,+      0x45cf8a45UL, 0xf910e9f9UL, 0x02060402UL, 0x7f81fe7fUL,+      0x50f0a050UL, 0x3c44783cUL, 0x9fba259fUL, 0xa8e34ba8UL,+      0x51f3a251UL, 0xa3fe5da3UL, 0x40c08040UL, 0x8f8a058fUL,+      0x92ad3f92UL, 0x9dbc219dUL, 0x38487038UL, 0xf504f1f5UL,+      0xbcdf63bcUL, 0xb6c177b6UL, 0xda75afdaUL, 0x21634221UL,+      0x10302010UL, 0xff1ae5ffUL, 0xf30efdf3UL, 0xd26dbfd2UL,+      0xcd4c81cdUL, 0x0c14180cUL, 0x13352613UL, 0xec2fc3ecUL,+      0x5fe1be5fUL, 0x97a23597UL, 0x44cc8844UL, 0x17392e17UL,+      0xc45793c4UL, 0xa7f255a7UL, 0x7e82fc7eUL, 0x3d477a3dUL,+      0x64acc864UL, 0x5de7ba5dUL, 0x192b3219UL, 0x7395e673UL,+      0x60a0c060UL, 0x81981981UL, 0x4fd19e4fUL, 0xdc7fa3dcUL,+      0x22664422UL, 0x2a7e542aUL, 0x90ab3b90UL, 0x88830b88UL,+      0x46ca8c46UL, 0xee29c7eeUL, 0xb8d36bb8UL, 0x143c2814UL,+      0xde79a7deUL, 0x5ee2bc5eUL, 0x0b1d160bUL, 0xdb76addbUL,+      0xe03bdbe0UL, 0x32566432UL, 0x3a4e743aUL, 0x0a1e140aUL,+      0x49db9249UL, 0x060a0c06UL, 0x246c4824UL, 0x5ce4b85cUL,+      0xc25d9fc2UL, 0xd36ebdd3UL, 0xacef43acUL, 0x62a6c462UL,+      0x91a83991UL, 0x95a43195UL, 0xe437d3e4UL, 0x798bf279UL,+      0xe732d5e7UL, 0xc8438bc8UL, 0x37596e37UL, 0x6db7da6dUL,+      0x8d8c018dUL, 0xd564b1d5UL, 0x4ed29c4eUL, 0xa9e049a9UL,+      0x6cb4d86cUL, 0x56faac56UL, 0xf407f3f4UL, 0xea25cfeaUL,+      0x65afca65UL, 0x7a8ef47aUL, 0xaee947aeUL, 0x08181008UL,+      0xbad56fbaUL, 0x7888f078UL, 0x256f4a25UL, 0x2e725c2eUL,+      0x1c24381cUL, 0xa6f157a6UL, 0xb4c773b4UL, 0xc65197c6UL,+      0xe823cbe8UL, 0xdd7ca1ddUL, 0x749ce874UL, 0x1f213e1fUL,+      0x4bdd964bUL, 0xbddc61bdUL, 0x8b860d8bUL, 0x8a850f8aUL,+      0x7090e070UL, 0x3e427c3eUL, 0xb5c471b5UL, 0x66aacc66UL,+      0x48d89048UL, 0x03050603UL, 0xf601f7f6UL, 0x0e121c0eUL,+      0x61a3c261UL, 0x355f6a35UL, 0x57f9ae57UL, 0xb9d069b9UL,+      0x86911786UL, 0xc15899c1UL, 0x1d273a1dUL, 0x9eb9279eUL,+      0xe138d9e1UL, 0xf813ebf8UL, 0x98b32b98UL, 0x11332211UL,+      0x69bbd269UL, 0xd970a9d9UL, 0x8e89078eUL, 0x94a73394UL,+      0x9bb62d9bUL, 0x1e223c1eUL, 0x87921587UL, 0xe920c9e9UL,+      0xce4987ceUL, 0x55ffaa55UL, 0x28785028UL, 0xdf7aa5dfUL,+      0x8c8f038cUL, 0xa1f859a1UL, 0x89800989UL, 0x0d171a0dUL,+      0xbfda65bfUL, 0xe631d7e6UL, 0x42c68442UL, 0x68b8d068UL,+      0x41c38241UL, 0x99b02999UL, 0x2d775a2dUL, 0x0f111e0fUL,+      0xb0cb7bb0UL, 0x54fca854UL, 0xbbd66dbbUL, 0x163a2c16UL+  };+  static const SWord32 table4[] = {+      0x6363a5c6UL, 0x7c7c84f8UL, 0x777799eeUL, 0x7b7b8df6UL,+      0xf2f20dffUL, 0x6b6bbdd6UL, 0x6f6fb1deUL, 0xc5c55491UL,+      0x30305060UL, 0x01010302UL, 0x6767a9ceUL, 0x2b2b7d56UL,+      0xfefe19e7UL, 0xd7d762b5UL, 0xababe64dUL, 0x76769aecUL,+      0xcaca458fUL, 0x82829d1fUL, 0xc9c94089UL, 0x7d7d87faUL,+      0xfafa15efUL, 0x5959ebb2UL, 0x4747c98eUL, 0xf0f00bfbUL,+      0xadadec41UL, 0xd4d467b3UL, 0xa2a2fd5fUL, 0xafafea45UL,+      0x9c9cbf23UL, 0xa4a4f753UL, 0x727296e4UL, 0xc0c05b9bUL,+      0xb7b7c275UL, 0xfdfd1ce1UL, 0x9393ae3dUL, 0x26266a4cUL,+      0x36365a6cUL, 0x3f3f417eUL, 0xf7f702f5UL, 0xcccc4f83UL,+      0x34345c68UL, 0xa5a5f451UL, 0xe5e534d1UL, 0xf1f108f9UL,+      0x717193e2UL, 0xd8d873abUL, 0x31315362UL, 0x15153f2aUL,+      0x04040c08UL, 0xc7c75295UL, 0x23236546UL, 0xc3c35e9dUL,+      0x18182830UL, 0x9696a137UL, 0x05050f0aUL, 0x9a9ab52fUL,+      0x0707090eUL, 0x12123624UL, 0x80809b1bUL, 0xe2e23ddfUL,+      0xebeb26cdUL, 0x2727694eUL, 0xb2b2cd7fUL, 0x75759feaUL,+      0x09091b12UL, 0x83839e1dUL, 0x2c2c7458UL, 0x1a1a2e34UL,+      0x1b1b2d36UL, 0x6e6eb2dcUL, 0x5a5aeeb4UL, 0xa0a0fb5bUL,+      0x5252f6a4UL, 0x3b3b4d76UL, 0xd6d661b7UL, 0xb3b3ce7dUL,+      0x29297b52UL, 0xe3e33eddUL, 0x2f2f715eUL, 0x84849713UL,+      0x5353f5a6UL, 0xd1d168b9UL, 0x00000000UL, 0xeded2cc1UL,+      0x20206040UL, 0xfcfc1fe3UL, 0xb1b1c879UL, 0x5b5bedb6UL,+      0x6a6abed4UL, 0xcbcb468dUL, 0xbebed967UL, 0x39394b72UL,+      0x4a4ade94UL, 0x4c4cd498UL, 0x5858e8b0UL, 0xcfcf4a85UL,+      0xd0d06bbbUL, 0xefef2ac5UL, 0xaaaae54fUL, 0xfbfb16edUL,+      0x4343c586UL, 0x4d4dd79aUL, 0x33335566UL, 0x85859411UL,+      0x4545cf8aUL, 0xf9f910e9UL, 0x02020604UL, 0x7f7f81feUL,+      0x5050f0a0UL, 0x3c3c4478UL, 0x9f9fba25UL, 0xa8a8e34bUL,+      0x5151f3a2UL, 0xa3a3fe5dUL, 0x4040c080UL, 0x8f8f8a05UL,+      0x9292ad3fUL, 0x9d9dbc21UL, 0x38384870UL, 0xf5f504f1UL,+      0xbcbcdf63UL, 0xb6b6c177UL, 0xdada75afUL, 0x21216342UL,+      0x10103020UL, 0xffff1ae5UL, 0xf3f30efdUL, 0xd2d26dbfUL,+      0xcdcd4c81UL, 0x0c0c1418UL, 0x13133526UL, 0xecec2fc3UL,+      0x5f5fe1beUL, 0x9797a235UL, 0x4444cc88UL, 0x1717392eUL,+      0xc4c45793UL, 0xa7a7f255UL, 0x7e7e82fcUL, 0x3d3d477aUL,+      0x6464acc8UL, 0x5d5de7baUL, 0x19192b32UL, 0x737395e6UL,+      0x6060a0c0UL, 0x81819819UL, 0x4f4fd19eUL, 0xdcdc7fa3UL,+      0x22226644UL, 0x2a2a7e54UL, 0x9090ab3bUL, 0x8888830bUL,+      0x4646ca8cUL, 0xeeee29c7UL, 0xb8b8d36bUL, 0x14143c28UL,+      0xdede79a7UL, 0x5e5ee2bcUL, 0x0b0b1d16UL, 0xdbdb76adUL,+      0xe0e03bdbUL, 0x32325664UL, 0x3a3a4e74UL, 0x0a0a1e14UL,+      0x4949db92UL, 0x06060a0cUL, 0x24246c48UL, 0x5c5ce4b8UL,+      0xc2c25d9fUL, 0xd3d36ebdUL, 0xacacef43UL, 0x6262a6c4UL,+      0x9191a839UL, 0x9595a431UL, 0xe4e437d3UL, 0x79798bf2UL,+      0xe7e732d5UL, 0xc8c8438bUL, 0x3737596eUL, 0x6d6db7daUL,+      0x8d8d8c01UL, 0xd5d564b1UL, 0x4e4ed29cUL, 0xa9a9e049UL,+      0x6c6cb4d8UL, 0x5656faacUL, 0xf4f407f3UL, 0xeaea25cfUL,+      0x6565afcaUL, 0x7a7a8ef4UL, 0xaeaee947UL, 0x08081810UL,+      0xbabad56fUL, 0x787888f0UL, 0x25256f4aUL, 0x2e2e725cUL,+      0x1c1c2438UL, 0xa6a6f157UL, 0xb4b4c773UL, 0xc6c65197UL,+      0xe8e823cbUL, 0xdddd7ca1UL, 0x74749ce8UL, 0x1f1f213eUL,+      0x4b4bdd96UL, 0xbdbddc61UL, 0x8b8b860dUL, 0x8a8a850fUL,+      0x707090e0UL, 0x3e3e427cUL, 0xb5b5c471UL, 0x6666aaccUL,+      0x4848d890UL, 0x03030506UL, 0xf6f601f7UL, 0x0e0e121cUL,+      0x6161a3c2UL, 0x35355f6aUL, 0x5757f9aeUL, 0xb9b9d069UL,+      0x86869117UL, 0xc1c15899UL, 0x1d1d273aUL, 0x9e9eb927UL,+      0xe1e138d9UL, 0xf8f813ebUL, 0x9898b32bUL, 0x11113322UL,+      0x6969bbd2UL, 0xd9d970a9UL, 0x8e8e8907UL, 0x9494a733UL,+      0x9b9bb62dUL, 0x1e1e223cUL, 0x87879215UL, 0xe9e920c9UL,+      0xcece4987UL, 0x5555ffaaUL, 0x28287850UL, 0xdfdf7aa5UL,+      0x8c8c8f03UL, 0xa1a1f859UL, 0x89898009UL, 0x0d0d171aUL,+      0xbfbfda65UL, 0xe6e631d7UL, 0x4242c684UL, 0x6868b8d0UL,+      0x4141c382UL, 0x9999b029UL, 0x2d2d775aUL, 0x0f0f111eUL,+      0xb0b0cb7bUL, 0x5454fca8UL, 0xbbbbd66dUL, 0x16163a2cUL+  };+  const SWord32 s560 = s0 ^ s4;+  const SWord8  s561 = (SWord8) (s560 >> 24);+  const SWord32 s562 = table1[s561];+  const SWord32 s818 = s1 ^ s5;+  const SWord8  s819 = (SWord8) (s818 >> 16);+  const SWord32 s820 = table2[s819];+  const SWord32 s821 = s562 ^ s820;+  const SWord32 s1077 = s2 ^ s6;+  const SWord8  s1078 = (SWord8) (s1077 >> 8);+  const SWord32 s1079 = table3[s1078];+  const SWord32 s1080 = s821 ^ s1079;+  const SWord32 s1336 = s3 ^ s7;+  const SWord8  s1337 = (SWord8) s1336;+  const SWord32 s1338 = table4[s1337];+  const SWord32 s1339 = s1080 ^ s1338;+  const SWord32 s1340 = s8 ^ s1339;+  const SWord8  s1341 = (SWord8) (s1340 >> 24);+  const SWord32 s1342 = table1[s1341];+  const SWord8  s1343 = (SWord8) (s818 >> 24);+  const SWord32 s1344 = table1[s1343];+  const SWord8  s1345 = (SWord8) (s1077 >> 16);+  const SWord32 s1346 = table2[s1345];+  const SWord32 s1347 = s1344 ^ s1346;+  const SWord8  s1348 = (SWord8) (s1336 >> 8);+  const SWord32 s1349 = table3[s1348];+  const SWord32 s1350 = s1347 ^ s1349;+  const SWord8  s1351 = (SWord8) s560;+  const SWord32 s1352 = table4[s1351];+  const SWord32 s1353 = s1350 ^ s1352;+  const SWord32 s1354 = s9 ^ s1353;+  const SWord8  s1355 = (SWord8) (s1354 >> 16);+  const SWord32 s1356 = table2[s1355];+  const SWord32 s1357 = s1342 ^ s1356;+  const SWord8  s1358 = (SWord8) (s1077 >> 24);+  const SWord32 s1359 = table1[s1358];+  const SWord8  s1360 = (SWord8) (s1336 >> 16);+  const SWord32 s1361 = table2[s1360];+  const SWord32 s1362 = s1359 ^ s1361;+  const SWord8  s1363 = (SWord8) (s560 >> 8);+  const SWord32 s1364 = table3[s1363];+  const SWord32 s1365 = s1362 ^ s1364;+  const SWord8  s1366 = (SWord8) s818;+  const SWord32 s1367 = table4[s1366];+  const SWord32 s1368 = s1365 ^ s1367;+  const SWord32 s1369 = s10 ^ s1368;+  const SWord8  s1370 = (SWord8) (s1369 >> 8);+  const SWord32 s1371 = table3[s1370];+  const SWord32 s1372 = s1357 ^ s1371;+  const SWord8  s1373 = (SWord8) (s1336 >> 24);+  const SWord32 s1374 = table1[s1373];+  const SWord8  s1375 = (SWord8) (s560 >> 16);+  const SWord32 s1376 = table2[s1375];+  const SWord32 s1377 = s1374 ^ s1376;+  const SWord8  s1378 = (SWord8) (s818 >> 8);+  const SWord32 s1379 = table3[s1378];+  const SWord32 s1380 = s1377 ^ s1379;+  const SWord8  s1381 = (SWord8) s1077;+  const SWord32 s1382 = table4[s1381];+  const SWord32 s1383 = s1380 ^ s1382;+  const SWord32 s1384 = s11 ^ s1383;+  const SWord8  s1385 = (SWord8) s1384;+  const SWord32 s1386 = table4[s1385];+  const SWord32 s1387 = s1372 ^ s1386;+  const SWord32 s1388 = s12 ^ s1387;+  const SWord8  s1389 = (SWord8) (s1388 >> 24);+  const SWord32 s1390 = table1[s1389];+  const SWord8  s1391 = (SWord8) (s1354 >> 24);+  const SWord32 s1392 = table1[s1391];+  const SWord8  s1393 = (SWord8) (s1369 >> 16);+  const SWord32 s1394 = table2[s1393];+  const SWord32 s1395 = s1392 ^ s1394;+  const SWord8  s1396 = (SWord8) (s1384 >> 8);+  const SWord32 s1397 = table3[s1396];+  const SWord32 s1398 = s1395 ^ s1397;+  const SWord8  s1399 = (SWord8) s1340;+  const SWord32 s1400 = table4[s1399];+  const SWord32 s1401 = s1398 ^ s1400;+  const SWord32 s1402 = s13 ^ s1401;+  const SWord8  s1403 = (SWord8) (s1402 >> 16);+  const SWord32 s1404 = table2[s1403];+  const SWord32 s1405 = s1390 ^ s1404;+  const SWord8  s1406 = (SWord8) (s1369 >> 24);+  const SWord32 s1407 = table1[s1406];+  const SWord8  s1408 = (SWord8) (s1384 >> 16);+  const SWord32 s1409 = table2[s1408];+  const SWord32 s1410 = s1407 ^ s1409;+  const SWord8  s1411 = (SWord8) (s1340 >> 8);+  const SWord32 s1412 = table3[s1411];+  const SWord32 s1413 = s1410 ^ s1412;+  const SWord8  s1414 = (SWord8) s1354;+  const SWord32 s1415 = table4[s1414];+  const SWord32 s1416 = s1413 ^ s1415;+  const SWord32 s1417 = s14 ^ s1416;+  const SWord8  s1418 = (SWord8) (s1417 >> 8);+  const SWord32 s1419 = table3[s1418];+  const SWord32 s1420 = s1405 ^ s1419;+  const SWord8  s1421 = (SWord8) (s1384 >> 24);+  const SWord32 s1422 = table1[s1421];+  const SWord8  s1423 = (SWord8) (s1340 >> 16);+  const SWord32 s1424 = table2[s1423];+  const SWord32 s1425 = s1422 ^ s1424;+  const SWord8  s1426 = (SWord8) (s1354 >> 8);+  const SWord32 s1427 = table3[s1426];+  const SWord32 s1428 = s1425 ^ s1427;+  const SWord8  s1429 = (SWord8) s1369;+  const SWord32 s1430 = table4[s1429];+  const SWord32 s1431 = s1428 ^ s1430;+  const SWord32 s1432 = s15 ^ s1431;+  const SWord8  s1433 = (SWord8) s1432;+  const SWord32 s1434 = table4[s1433];+  const SWord32 s1435 = s1420 ^ s1434;+  const SWord32 s1436 = s16 ^ s1435;+  const SWord8  s1437 = (SWord8) (s1436 >> 24);+  const SWord32 s1438 = table1[s1437];+  const SWord8  s1439 = (SWord8) (s1402 >> 24);+  const SWord32 s1440 = table1[s1439];+  const SWord8  s1441 = (SWord8) (s1417 >> 16);+  const SWord32 s1442 = table2[s1441];+  const SWord32 s1443 = s1440 ^ s1442;+  const SWord8  s1444 = (SWord8) (s1432 >> 8);+  const SWord32 s1445 = table3[s1444];+  const SWord32 s1446 = s1443 ^ s1445;+  const SWord8  s1447 = (SWord8) s1388;+  const SWord32 s1448 = table4[s1447];+  const SWord32 s1449 = s1446 ^ s1448;+  const SWord32 s1450 = s17 ^ s1449;+  const SWord8  s1451 = (SWord8) (s1450 >> 16);+  const SWord32 s1452 = table2[s1451];+  const SWord32 s1453 = s1438 ^ s1452;+  const SWord8  s1454 = (SWord8) (s1417 >> 24);+  const SWord32 s1455 = table1[s1454];+  const SWord8  s1456 = (SWord8) (s1432 >> 16);+  const SWord32 s1457 = table2[s1456];+  const SWord32 s1458 = s1455 ^ s1457;+  const SWord8  s1459 = (SWord8) (s1388 >> 8);+  const SWord32 s1460 = table3[s1459];+  const SWord32 s1461 = s1458 ^ s1460;+  const SWord8  s1462 = (SWord8) s1402;+  const SWord32 s1463 = table4[s1462];+  const SWord32 s1464 = s1461 ^ s1463;+  const SWord32 s1465 = s18 ^ s1464;+  const SWord8  s1466 = (SWord8) (s1465 >> 8);+  const SWord32 s1467 = table3[s1466];+  const SWord32 s1468 = s1453 ^ s1467;+  const SWord8  s1469 = (SWord8) (s1432 >> 24);+  const SWord32 s1470 = table1[s1469];+  const SWord8  s1471 = (SWord8) (s1388 >> 16);+  const SWord32 s1472 = table2[s1471];+  const SWord32 s1473 = s1470 ^ s1472;+  const SWord8  s1474 = (SWord8) (s1402 >> 8);+  const SWord32 s1475 = table3[s1474];+  const SWord32 s1476 = s1473 ^ s1475;+  const SWord8  s1477 = (SWord8) s1417;+  const SWord32 s1478 = table4[s1477];+  const SWord32 s1479 = s1476 ^ s1478;+  const SWord32 s1480 = s19 ^ s1479;+  const SWord8  s1481 = (SWord8) s1480;+  const SWord32 s1482 = table4[s1481];+  const SWord32 s1483 = s1468 ^ s1482;+  const SWord32 s1484 = s20 ^ s1483;+  const SWord8  s1485 = (SWord8) (s1484 >> 24);+  const SWord32 s1486 = table1[s1485];+  const SWord8  s1487 = (SWord8) (s1450 >> 24);+  const SWord32 s1488 = table1[s1487];+  const SWord8  s1489 = (SWord8) (s1465 >> 16);+  const SWord32 s1490 = table2[s1489];+  const SWord32 s1491 = s1488 ^ s1490;+  const SWord8  s1492 = (SWord8) (s1480 >> 8);+  const SWord32 s1493 = table3[s1492];+  const SWord32 s1494 = s1491 ^ s1493;+  const SWord8  s1495 = (SWord8) s1436;+  const SWord32 s1496 = table4[s1495];+  const SWord32 s1497 = s1494 ^ s1496;+  const SWord32 s1498 = s21 ^ s1497;+  const SWord8  s1499 = (SWord8) (s1498 >> 16);+  const SWord32 s1500 = table2[s1499];+  const SWord32 s1501 = s1486 ^ s1500;+  const SWord8  s1502 = (SWord8) (s1465 >> 24);+  const SWord32 s1503 = table1[s1502];+  const SWord8  s1504 = (SWord8) (s1480 >> 16);+  const SWord32 s1505 = table2[s1504];+  const SWord32 s1506 = s1503 ^ s1505;+  const SWord8  s1507 = (SWord8) (s1436 >> 8);+  const SWord32 s1508 = table3[s1507];+  const SWord32 s1509 = s1506 ^ s1508;+  const SWord8  s1510 = (SWord8) s1450;+  const SWord32 s1511 = table4[s1510];+  const SWord32 s1512 = s1509 ^ s1511;+  const SWord32 s1513 = s22 ^ s1512;+  const SWord8  s1514 = (SWord8) (s1513 >> 8);+  const SWord32 s1515 = table3[s1514];+  const SWord32 s1516 = s1501 ^ s1515;+  const SWord8  s1517 = (SWord8) (s1480 >> 24);+  const SWord32 s1518 = table1[s1517];+  const SWord8  s1519 = (SWord8) (s1436 >> 16);+  const SWord32 s1520 = table2[s1519];+  const SWord32 s1521 = s1518 ^ s1520;+  const SWord8  s1522 = (SWord8) (s1450 >> 8);+  const SWord32 s1523 = table3[s1522];+  const SWord32 s1524 = s1521 ^ s1523;+  const SWord8  s1525 = (SWord8) s1465;+  const SWord32 s1526 = table4[s1525];+  const SWord32 s1527 = s1524 ^ s1526;+  const SWord32 s1528 = s23 ^ s1527;+  const SWord8  s1529 = (SWord8) s1528;+  const SWord32 s1530 = table4[s1529];+  const SWord32 s1531 = s1516 ^ s1530;+  const SWord32 s1532 = s24 ^ s1531;+  const SWord8  s1533 = (SWord8) (s1532 >> 24);+  const SWord32 s1534 = table1[s1533];+  const SWord8  s1535 = (SWord8) (s1498 >> 24);+  const SWord32 s1536 = table1[s1535];+  const SWord8  s1537 = (SWord8) (s1513 >> 16);+  const SWord32 s1538 = table2[s1537];+  const SWord32 s1539 = s1536 ^ s1538;+  const SWord8  s1540 = (SWord8) (s1528 >> 8);+  const SWord32 s1541 = table3[s1540];+  const SWord32 s1542 = s1539 ^ s1541;+  const SWord8  s1543 = (SWord8) s1484;+  const SWord32 s1544 = table4[s1543];+  const SWord32 s1545 = s1542 ^ s1544;+  const SWord32 s1546 = s25 ^ s1545;+  const SWord8  s1547 = (SWord8) (s1546 >> 16);+  const SWord32 s1548 = table2[s1547];+  const SWord32 s1549 = s1534 ^ s1548;+  const SWord8  s1550 = (SWord8) (s1513 >> 24);+  const SWord32 s1551 = table1[s1550];+  const SWord8  s1552 = (SWord8) (s1528 >> 16);+  const SWord32 s1553 = table2[s1552];+  const SWord32 s1554 = s1551 ^ s1553;+  const SWord8  s1555 = (SWord8) (s1484 >> 8);+  const SWord32 s1556 = table3[s1555];+  const SWord32 s1557 = s1554 ^ s1556;+  const SWord8  s1558 = (SWord8) s1498;+  const SWord32 s1559 = table4[s1558];+  const SWord32 s1560 = s1557 ^ s1559;+  const SWord32 s1561 = s26 ^ s1560;+  const SWord8  s1562 = (SWord8) (s1561 >> 8);+  const SWord32 s1563 = table3[s1562];+  const SWord32 s1564 = s1549 ^ s1563;+  const SWord8  s1565 = (SWord8) (s1528 >> 24);+  const SWord32 s1566 = table1[s1565];+  const SWord8  s1567 = (SWord8) (s1484 >> 16);+  const SWord32 s1568 = table2[s1567];+  const SWord32 s1569 = s1566 ^ s1568;+  const SWord8  s1570 = (SWord8) (s1498 >> 8);+  const SWord32 s1571 = table3[s1570];+  const SWord32 s1572 = s1569 ^ s1571;+  const SWord8  s1573 = (SWord8) s1513;+  const SWord32 s1574 = table4[s1573];+  const SWord32 s1575 = s1572 ^ s1574;+  const SWord32 s1576 = s27 ^ s1575;+  const SWord8  s1577 = (SWord8) s1576;+  const SWord32 s1578 = table4[s1577];+  const SWord32 s1579 = s1564 ^ s1578;+  const SWord32 s1580 = s28 ^ s1579;+  const SWord8  s1581 = (SWord8) (s1580 >> 24);+  const SWord32 s1582 = table1[s1581];+  const SWord8  s1583 = (SWord8) (s1546 >> 24);+  const SWord32 s1584 = table1[s1583];+  const SWord8  s1585 = (SWord8) (s1561 >> 16);+  const SWord32 s1586 = table2[s1585];+  const SWord32 s1587 = s1584 ^ s1586;+  const SWord8  s1588 = (SWord8) (s1576 >> 8);+  const SWord32 s1589 = table3[s1588];+  const SWord32 s1590 = s1587 ^ s1589;+  const SWord8  s1591 = (SWord8) s1532;+  const SWord32 s1592 = table4[s1591];+  const SWord32 s1593 = s1590 ^ s1592;+  const SWord32 s1594 = s29 ^ s1593;+  const SWord8  s1595 = (SWord8) (s1594 >> 16);+  const SWord32 s1596 = table2[s1595];+  const SWord32 s1597 = s1582 ^ s1596;+  const SWord8  s1598 = (SWord8) (s1561 >> 24);+  const SWord32 s1599 = table1[s1598];+  const SWord8  s1600 = (SWord8) (s1576 >> 16);+  const SWord32 s1601 = table2[s1600];+  const SWord32 s1602 = s1599 ^ s1601;+  const SWord8  s1603 = (SWord8) (s1532 >> 8);+  const SWord32 s1604 = table3[s1603];+  const SWord32 s1605 = s1602 ^ s1604;+  const SWord8  s1606 = (SWord8) s1546;+  const SWord32 s1607 = table4[s1606];+  const SWord32 s1608 = s1605 ^ s1607;+  const SWord32 s1609 = s30 ^ s1608;+  const SWord8  s1610 = (SWord8) (s1609 >> 8);+  const SWord32 s1611 = table3[s1610];+  const SWord32 s1612 = s1597 ^ s1611;+  const SWord8  s1613 = (SWord8) (s1576 >> 24);+  const SWord32 s1614 = table1[s1613];+  const SWord8  s1615 = (SWord8) (s1532 >> 16);+  const SWord32 s1616 = table2[s1615];+  const SWord32 s1617 = s1614 ^ s1616;+  const SWord8  s1618 = (SWord8) (s1546 >> 8);+  const SWord32 s1619 = table3[s1618];+  const SWord32 s1620 = s1617 ^ s1619;+  const SWord8  s1621 = (SWord8) s1561;+  const SWord32 s1622 = table4[s1621];+  const SWord32 s1623 = s1620 ^ s1622;+  const SWord32 s1624 = s31 ^ s1623;+  const SWord8  s1625 = (SWord8) s1624;+  const SWord32 s1626 = table4[s1625];+  const SWord32 s1627 = s1612 ^ s1626;+  const SWord32 s1628 = s32 ^ s1627;+  const SWord8  s1629 = (SWord8) (s1628 >> 24);+  const SWord32 s1630 = table1[s1629];+  const SWord8  s1631 = (SWord8) (s1594 >> 24);+  const SWord32 s1632 = table1[s1631];+  const SWord8  s1633 = (SWord8) (s1609 >> 16);+  const SWord32 s1634 = table2[s1633];+  const SWord32 s1635 = s1632 ^ s1634;+  const SWord8  s1636 = (SWord8) (s1624 >> 8);+  const SWord32 s1637 = table3[s1636];+  const SWord32 s1638 = s1635 ^ s1637;+  const SWord8  s1639 = (SWord8) s1580;+  const SWord32 s1640 = table4[s1639];+  const SWord32 s1641 = s1638 ^ s1640;+  const SWord32 s1642 = s33 ^ s1641;+  const SWord8  s1643 = (SWord8) (s1642 >> 16);+  const SWord32 s1644 = table2[s1643];+  const SWord32 s1645 = s1630 ^ s1644;+  const SWord8  s1646 = (SWord8) (s1609 >> 24);+  const SWord32 s1647 = table1[s1646];+  const SWord8  s1648 = (SWord8) (s1624 >> 16);+  const SWord32 s1649 = table2[s1648];+  const SWord32 s1650 = s1647 ^ s1649;+  const SWord8  s1651 = (SWord8) (s1580 >> 8);+  const SWord32 s1652 = table3[s1651];+  const SWord32 s1653 = s1650 ^ s1652;+  const SWord8  s1654 = (SWord8) s1594;+  const SWord32 s1655 = table4[s1654];+  const SWord32 s1656 = s1653 ^ s1655;+  const SWord32 s1657 = s34 ^ s1656;+  const SWord8  s1658 = (SWord8) (s1657 >> 8);+  const SWord32 s1659 = table3[s1658];+  const SWord32 s1660 = s1645 ^ s1659;+  const SWord8  s1661 = (SWord8) (s1624 >> 24);+  const SWord32 s1662 = table1[s1661];+  const SWord8  s1663 = (SWord8) (s1580 >> 16);+  const SWord32 s1664 = table2[s1663];+  const SWord32 s1665 = s1662 ^ s1664;+  const SWord8  s1666 = (SWord8) (s1594 >> 8);+  const SWord32 s1667 = table3[s1666];+  const SWord32 s1668 = s1665 ^ s1667;+  const SWord8  s1669 = (SWord8) s1609;+  const SWord32 s1670 = table4[s1669];+  const SWord32 s1671 = s1668 ^ s1670;+  const SWord32 s1672 = s35 ^ s1671;+  const SWord8  s1673 = (SWord8) s1672;+  const SWord32 s1674 = table4[s1673];+  const SWord32 s1675 = s1660 ^ s1674;+  const SWord32 s1676 = s36 ^ s1675;+  const SWord8  s1677 = (SWord8) (s1676 >> 24);+  const SWord32 s1678 = table1[s1677];+  const SWord8  s1679 = (SWord8) (s1642 >> 24);+  const SWord32 s1680 = table1[s1679];+  const SWord8  s1681 = (SWord8) (s1657 >> 16);+  const SWord32 s1682 = table2[s1681];+  const SWord32 s1683 = s1680 ^ s1682;+  const SWord8  s1684 = (SWord8) (s1672 >> 8);+  const SWord32 s1685 = table3[s1684];+  const SWord32 s1686 = s1683 ^ s1685;+  const SWord8  s1687 = (SWord8) s1628;+  const SWord32 s1688 = table4[s1687];+  const SWord32 s1689 = s1686 ^ s1688;+  const SWord32 s1690 = s37 ^ s1689;+  const SWord8  s1691 = (SWord8) (s1690 >> 16);+  const SWord32 s1692 = table2[s1691];+  const SWord32 s1693 = s1678 ^ s1692;+  const SWord8  s1694 = (SWord8) (s1657 >> 24);+  const SWord32 s1695 = table1[s1694];+  const SWord8  s1696 = (SWord8) (s1672 >> 16);+  const SWord32 s1697 = table2[s1696];+  const SWord32 s1698 = s1695 ^ s1697;+  const SWord8  s1699 = (SWord8) (s1628 >> 8);+  const SWord32 s1700 = table3[s1699];+  const SWord32 s1701 = s1698 ^ s1700;+  const SWord8  s1702 = (SWord8) s1642;+  const SWord32 s1703 = table4[s1702];+  const SWord32 s1704 = s1701 ^ s1703;+  const SWord32 s1705 = s38 ^ s1704;+  const SWord8  s1706 = (SWord8) (s1705 >> 8);+  const SWord32 s1707 = table3[s1706];+  const SWord32 s1708 = s1693 ^ s1707;+  const SWord8  s1709 = (SWord8) (s1672 >> 24);+  const SWord32 s1710 = table1[s1709];+  const SWord8  s1711 = (SWord8) (s1628 >> 16);+  const SWord32 s1712 = table2[s1711];+  const SWord32 s1713 = s1710 ^ s1712;+  const SWord8  s1714 = (SWord8) (s1642 >> 8);+  const SWord32 s1715 = table3[s1714];+  const SWord32 s1716 = s1713 ^ s1715;+  const SWord8  s1717 = (SWord8) s1657;+  const SWord32 s1718 = table4[s1717];+  const SWord32 s1719 = s1716 ^ s1718;+  const SWord32 s1720 = s39 ^ s1719;+  const SWord8  s1721 = (SWord8) s1720;+  const SWord32 s1722 = table4[s1721];+  const SWord32 s1723 = s1708 ^ s1722;+  const SWord32 s1724 = s40 ^ s1723;+  const SWord8  s1725 = (SWord8) (s1724 >> 24);+  const SWord8  s1726 = table0[s1725];+  const SWord8  s1727 = (SWord8) (s1690 >> 24);+  const SWord32 s1728 = table1[s1727];+  const SWord8  s1729 = (SWord8) (s1705 >> 16);+  const SWord32 s1730 = table2[s1729];+  const SWord32 s1731 = s1728 ^ s1730;+  const SWord8  s1732 = (SWord8) (s1720 >> 8);+  const SWord32 s1733 = table3[s1732];+  const SWord32 s1734 = s1731 ^ s1733;+  const SWord8  s1735 = (SWord8) s1676;+  const SWord32 s1736 = table4[s1735];+  const SWord32 s1737 = s1734 ^ s1736;+  const SWord32 s1738 = s41 ^ s1737;+  const SWord8  s1739 = (SWord8) (s1738 >> 16);+  const SWord8  s1740 = table0[s1739];+  const SWord16 s1741 = (((SWord16) s1726) << 8) | ((SWord16) s1740);+  const SWord8  s1742 = (SWord8) (s1705 >> 24);+  const SWord32 s1743 = table1[s1742];+  const SWord8  s1744 = (SWord8) (s1720 >> 16);+  const SWord32 s1745 = table2[s1744];+  const SWord32 s1746 = s1743 ^ s1745;+  const SWord8  s1747 = (SWord8) (s1676 >> 8);+  const SWord32 s1748 = table3[s1747];+  const SWord32 s1749 = s1746 ^ s1748;+  const SWord8  s1750 = (SWord8) s1690;+  const SWord32 s1751 = table4[s1750];+  const SWord32 s1752 = s1749 ^ s1751;+  const SWord32 s1753 = s42 ^ s1752;+  const SWord8  s1754 = (SWord8) (s1753 >> 8);+  const SWord8  s1755 = table0[s1754];+  const SWord8  s1756 = (SWord8) (s1720 >> 24);+  const SWord32 s1757 = table1[s1756];+  const SWord8  s1758 = (SWord8) (s1676 >> 16);+  const SWord32 s1759 = table2[s1758];+  const SWord32 s1760 = s1757 ^ s1759;+  const SWord8  s1761 = (SWord8) (s1690 >> 8);+  const SWord32 s1762 = table3[s1761];+  const SWord32 s1763 = s1760 ^ s1762;+  const SWord8  s1764 = (SWord8) s1705;+  const SWord32 s1765 = table4[s1764];+  const SWord32 s1766 = s1763 ^ s1765;+  const SWord32 s1767 = s43 ^ s1766;+  const SWord8  s1768 = (SWord8) s1767;+  const SWord8  s1769 = table0[s1768];+  const SWord16 s1770 = (((SWord16) s1755) << 8) | ((SWord16) s1769);+  const SWord32 s1771 = (((SWord32) s1741) << 16) | ((SWord32) s1770);+  const SWord32 s1772 = s44 ^ s1771;+  const SWord8  s1773 = (SWord8) (s1738 >> 24);+  const SWord8  s1774 = table0[s1773];+  const SWord8  s1775 = (SWord8) (s1753 >> 16);+  const SWord8  s1776 = table0[s1775];+  const SWord16 s1777 = (((SWord16) s1774) << 8) | ((SWord16) s1776);+  const SWord8  s1778 = (SWord8) (s1767 >> 8);+  const SWord8  s1779 = table0[s1778];+  const SWord8  s1780 = (SWord8) s1724;+  const SWord8  s1781 = table0[s1780];+  const SWord16 s1782 = (((SWord16) s1779) << 8) | ((SWord16) s1781);+  const SWord32 s1783 = (((SWord32) s1777) << 16) | ((SWord32) s1782);+  const SWord32 s1784 = s45 ^ s1783;+  const SWord8  s1785 = (SWord8) (s1753 >> 24);+  const SWord8  s1786 = table0[s1785];+  const SWord8  s1787 = (SWord8) (s1767 >> 16);+  const SWord8  s1788 = table0[s1787];+  const SWord16 s1789 = (((SWord16) s1786) << 8) | ((SWord16) s1788);+  const SWord8  s1790 = (SWord8) (s1724 >> 8);+  const SWord8  s1791 = table0[s1790];+  const SWord8  s1792 = (SWord8) s1738;+  const SWord8  s1793 = table0[s1792];+  const SWord16 s1794 = (((SWord16) s1791) << 8) | ((SWord16) s1793);+  const SWord32 s1795 = (((SWord32) s1789) << 16) | ((SWord32) s1794);+  const SWord32 s1796 = s46 ^ s1795;+  const SWord8  s1797 = (SWord8) (s1767 >> 24);+  const SWord8  s1798 = table0[s1797];+  const SWord8  s1799 = (SWord8) (s1724 >> 16);+  const SWord8  s1800 = table0[s1799];+  const SWord16 s1801 = (((SWord16) s1798) << 8) | ((SWord16) s1800);+  const SWord8  s1802 = (SWord8) (s1738 >> 8);+  const SWord8  s1803 = table0[s1802];+  const SWord8  s1804 = (SWord8) s1753;+  const SWord8  s1805 = table0[s1804];+  const SWord16 s1806 = (((SWord16) s1803) << 8) | ((SWord16) s1805);+  const SWord32 s1807 = (((SWord32) s1801) << 16) | ((SWord32) s1806);+  const SWord32 s1808 = s47 ^ s1807;++  ct[0] = s1772;+  ct[1] = s1784;+  ct[2] = s1796;+  ct[3] = s1808;+}+== END: "aes128BlockEncrypt.c" ==================+== BEGIN: "aes128BlockDecrypt.c" ================+/* File: "aes128BlockDecrypt.c". Automatically generated by SBV. Do not edit! */++#include "aes128Lib.h"++void aes128BlockDecrypt(const SWord32 *ct, const SWord32 *xkey,+                        SWord32 *pt)+{+  const SWord32 s0 = ct[0];+  const SWord32 s1 = ct[1];+  const SWord32 s2 = ct[2];+  const SWord32 s3 = ct[3];+  const SWord32 s4 = xkey[0];+  const SWord32 s5 = xkey[1];+  const SWord32 s6 = xkey[2];+  const SWord32 s7 = xkey[3];+  const SWord32 s8 = xkey[4];+  const SWord32 s9 = xkey[5];+  const SWord32 s10 = xkey[6];+  const SWord32 s11 = xkey[7];+  const SWord32 s12 = xkey[8];+  const SWord32 s13 = xkey[9];+  const SWord32 s14 = xkey[10];+  const SWord32 s15 = xkey[11];+  const SWord32 s16 = xkey[12];+  const SWord32 s17 = xkey[13];+  const SWord32 s18 = xkey[14];+  const SWord32 s19 = xkey[15];+  const SWord32 s20 = xkey[16];+  const SWord32 s21 = xkey[17];+  const SWord32 s22 = xkey[18];+  const SWord32 s23 = xkey[19];+  const SWord32 s24 = xkey[20];+  const SWord32 s25 = xkey[21];+  const SWord32 s26 = xkey[22];+  const SWord32 s27 = xkey[23];+  const SWord32 s28 = xkey[24];+  const SWord32 s29 = xkey[25];+  const SWord32 s30 = xkey[26];+  const SWord32 s31 = xkey[27];+  const SWord32 s32 = xkey[28];+  const SWord32 s33 = xkey[29];+  const SWord32 s34 = xkey[30];+  const SWord32 s35 = xkey[31];+  const SWord32 s36 = xkey[32];+  const SWord32 s37 = xkey[33];+  const SWord32 s38 = xkey[34];+  const SWord32 s39 = xkey[35];+  const SWord32 s40 = xkey[36];+  const SWord32 s41 = xkey[37];+  const SWord32 s42 = xkey[38];+  const SWord32 s43 = xkey[39];+  const SWord32 s44 = xkey[40];+  const SWord32 s45 = xkey[41];+  const SWord32 s46 = xkey[42];+  const SWord32 s47 = xkey[43];+  static const SWord8 table0[] = {+       82,   9, 106, 213,  48,  54, 165,  56, 191,  64, 163, 158, 129,+      243, 215, 251, 124, 227,  57, 130, 155,  47, 255, 135,  52, 142,+       67,  68, 196, 222, 233, 203,  84, 123, 148,  50, 166, 194,  35,+       61, 238,  76, 149,  11,  66, 250, 195,  78,   8,  46, 161, 102,+       40, 217,  36, 178, 118,  91, 162,  73, 109, 139, 209,  37, 114,+      248, 246, 100, 134, 104, 152,  22, 212, 164,  92, 204,  93, 101,+      182, 146, 108, 112,  72,  80, 253, 237, 185, 218,  94,  21,  70,+       87, 167, 141, 157, 132, 144, 216, 171,   0, 140, 188, 211,  10,+      247, 228,  88,   5, 184, 179,  69,   6, 208,  44,  30, 143, 202,+       63,  15,   2, 193, 175, 189,   3,   1,  19, 138, 107,  58, 145,+       17,  65,  79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230,+      115, 150, 172, 116,  34, 231, 173,  53, 133, 226, 249,  55, 232,+       28, 117, 223, 110,  71, 241,  26, 113,  29,  41, 197, 137, 111,+      183,  98,  14, 170,  24, 190,  27, 252,  86,  62,  75, 198, 210,+      121,  32, 154, 219, 192, 254, 120, 205,  90, 244,  31, 221, 168,+       51, 136,   7, 199,  49, 177,  18,  16,  89,  39, 128, 236,  95,+       96,  81, 127, 169,  25, 181,  74,  13,  45, 229, 122, 159, 147,+      201, 156, 239, 160, 224,  59,  77, 174,  42, 245, 176, 200, 235,+      187,  60, 131,  83, 153,  97,  23,  43,   4, 126, 186, 119, 214,+       38, 225, 105,  20,  99,  85,  33,  12, 125+  };+  static const SWord32 table1[] = {+      0x51f4a750UL, 0x7e416553UL, 0x1a17a4c3UL, 0x3a275e96UL,+      0x3bab6bcbUL, 0x1f9d45f1UL, 0xacfa58abUL, 0x4be30393UL,+      0x2030fa55UL, 0xad766df6UL, 0x88cc7691UL, 0xf5024c25UL,+      0x4fe5d7fcUL, 0xc52acbd7UL, 0x26354480UL, 0xb562a38fUL,+      0xdeb15a49UL, 0x25ba1b67UL, 0x45ea0e98UL, 0x5dfec0e1UL,+      0xc32f7502UL, 0x814cf012UL, 0x8d4697a3UL, 0x6bd3f9c6UL,+      0x038f5fe7UL, 0x15929c95UL, 0xbf6d7aebUL, 0x955259daUL,+      0xd4be832dUL, 0x587421d3UL, 0x49e06929UL, 0x8ec9c844UL,+      0x75c2896aUL, 0xf48e7978UL, 0x99583e6bUL, 0x27b971ddUL,+      0xbee14fb6UL, 0xf088ad17UL, 0xc920ac66UL, 0x7dce3ab4UL,+      0x63df4a18UL, 0xe51a3182UL, 0x97513360UL, 0x62537f45UL,+      0xb16477e0UL, 0xbb6bae84UL, 0xfe81a01cUL, 0xf9082b94UL,+      0x70486858UL, 0x8f45fd19UL, 0x94de6c87UL, 0x527bf8b7UL,+      0xab73d323UL, 0x724b02e2UL, 0xe31f8f57UL, 0x6655ab2aUL,+      0xb2eb2807UL, 0x2fb5c203UL, 0x86c57b9aUL, 0xd33708a5UL,+      0x302887f2UL, 0x23bfa5b2UL, 0x02036abaUL, 0xed16825cUL,+      0x8acf1c2bUL, 0xa779b492UL, 0xf307f2f0UL, 0x4e69e2a1UL,+      0x65daf4cdUL, 0x0605bed5UL, 0xd134621fUL, 0xc4a6fe8aUL,+      0x342e539dUL, 0xa2f355a0UL, 0x058ae132UL, 0xa4f6eb75UL,+      0x0b83ec39UL, 0x4060efaaUL, 0x5e719f06UL, 0xbd6e1051UL,+      0x3e218af9UL, 0x96dd063dUL, 0xdd3e05aeUL, 0x4de6bd46UL,+      0x91548db5UL, 0x71c45d05UL, 0x0406d46fUL, 0x605015ffUL,+      0x1998fb24UL, 0xd6bde997UL, 0x894043ccUL, 0x67d99e77UL,+      0xb0e842bdUL, 0x07898b88UL, 0xe7195b38UL, 0x79c8eedbUL,+      0xa17c0a47UL, 0x7c420fe9UL, 0xf8841ec9UL, 0x00000000UL,+      0x09808683UL, 0x322bed48UL, 0x1e1170acUL, 0x6c5a724eUL,+      0xfd0efffbUL, 0x0f853856UL, 0x3daed51eUL, 0x362d3927UL,+      0x0a0fd964UL, 0x685ca621UL, 0x9b5b54d1UL, 0x24362e3aUL,+      0x0c0a67b1UL, 0x9357e70fUL, 0xb4ee96d2UL, 0x1b9b919eUL,+      0x80c0c54fUL, 0x61dc20a2UL, 0x5a774b69UL, 0x1c121a16UL,+      0xe293ba0aUL, 0xc0a02ae5UL, 0x3c22e043UL, 0x121b171dUL,+      0x0e090d0bUL, 0xf28bc7adUL, 0x2db6a8b9UL, 0x141ea9c8UL,+      0x57f11985UL, 0xaf75074cUL, 0xee99ddbbUL, 0xa37f60fdUL,+      0xf701269fUL, 0x5c72f5bcUL, 0x44663bc5UL, 0x5bfb7e34UL,+      0x8b432976UL, 0xcb23c6dcUL, 0xb6edfc68UL, 0xb8e4f163UL,+      0xd731dccaUL, 0x42638510UL, 0x13972240UL, 0x84c61120UL,+      0x854a247dUL, 0xd2bb3df8UL, 0xaef93211UL, 0xc729a16dUL,+      0x1d9e2f4bUL, 0xdcb230f3UL, 0x0d8652ecUL, 0x77c1e3d0UL,+      0x2bb3166cUL, 0xa970b999UL, 0x119448faUL, 0x47e96422UL,+      0xa8fc8cc4UL, 0xa0f03f1aUL, 0x567d2cd8UL, 0x223390efUL,+      0x87494ec7UL, 0xd938d1c1UL, 0x8ccaa2feUL, 0x98d40b36UL,+      0xa6f581cfUL, 0xa57ade28UL, 0xdab78e26UL, 0x3fadbfa4UL,+      0x2c3a9de4UL, 0x5078920dUL, 0x6a5fcc9bUL, 0x547e4662UL,+      0xf68d13c2UL, 0x90d8b8e8UL, 0x2e39f75eUL, 0x82c3aff5UL,+      0x9f5d80beUL, 0x69d0937cUL, 0x6fd52da9UL, 0xcf2512b3UL,+      0xc8ac993bUL, 0x10187da7UL, 0xe89c636eUL, 0xdb3bbb7bUL,+      0xcd267809UL, 0x6e5918f4UL, 0xec9ab701UL, 0x834f9aa8UL,+      0xe6956e65UL, 0xaaffe67eUL, 0x21bccf08UL, 0xef15e8e6UL,+      0xbae79bd9UL, 0x4a6f36ceUL, 0xea9f09d4UL, 0x29b07cd6UL,+      0x31a4b2afUL, 0x2a3f2331UL, 0xc6a59430UL, 0x35a266c0UL,+      0x744ebc37UL, 0xfc82caa6UL, 0xe090d0b0UL, 0x33a7d815UL,+      0xf104984aUL, 0x41ecdaf7UL, 0x7fcd500eUL, 0x1791f62fUL,+      0x764dd68dUL, 0x43efb04dUL, 0xccaa4d54UL, 0xe49604dfUL,+      0x9ed1b5e3UL, 0x4c6a881bUL, 0xc12c1fb8UL, 0x4665517fUL,+      0x9d5eea04UL, 0x018c355dUL, 0xfa877473UL, 0xfb0b412eUL,+      0xb3671d5aUL, 0x92dbd252UL, 0xe9105633UL, 0x6dd64713UL,+      0x9ad7618cUL, 0x37a10c7aUL, 0x59f8148eUL, 0xeb133c89UL,+      0xcea927eeUL, 0xb761c935UL, 0xe11ce5edUL, 0x7a47b13cUL,+      0x9cd2df59UL, 0x55f2733fUL, 0x1814ce79UL, 0x73c737bfUL,+      0x53f7cdeaUL, 0x5ffdaa5bUL, 0xdf3d6f14UL, 0x7844db86UL,+      0xcaaff381UL, 0xb968c43eUL, 0x3824342cUL, 0xc2a3405fUL,+      0x161dc372UL, 0xbce2250cUL, 0x283c498bUL, 0xff0d9541UL,+      0x39a80171UL, 0x080cb3deUL, 0xd8b4e49cUL, 0x6456c190UL,+      0x7bcb8461UL, 0xd532b670UL, 0x486c5c74UL, 0xd0b85742UL+  };+  static const SWord32 table2[] = {+      0x5051f4a7UL, 0x537e4165UL, 0xc31a17a4UL, 0x963a275eUL,+      0xcb3bab6bUL, 0xf11f9d45UL, 0xabacfa58UL, 0x934be303UL,+      0x552030faUL, 0xf6ad766dUL, 0x9188cc76UL, 0x25f5024cUL,+      0xfc4fe5d7UL, 0xd7c52acbUL, 0x80263544UL, 0x8fb562a3UL,+      0x49deb15aUL, 0x6725ba1bUL, 0x9845ea0eUL, 0xe15dfec0UL,+      0x02c32f75UL, 0x12814cf0UL, 0xa38d4697UL, 0xc66bd3f9UL,+      0xe7038f5fUL, 0x9515929cUL, 0xebbf6d7aUL, 0xda955259UL,+      0x2dd4be83UL, 0xd3587421UL, 0x2949e069UL, 0x448ec9c8UL,+      0x6a75c289UL, 0x78f48e79UL, 0x6b99583eUL, 0xdd27b971UL,+      0xb6bee14fUL, 0x17f088adUL, 0x66c920acUL, 0xb47dce3aUL,+      0x1863df4aUL, 0x82e51a31UL, 0x60975133UL, 0x4562537fUL,+      0xe0b16477UL, 0x84bb6baeUL, 0x1cfe81a0UL, 0x94f9082bUL,+      0x58704868UL, 0x198f45fdUL, 0x8794de6cUL, 0xb7527bf8UL,+      0x23ab73d3UL, 0xe2724b02UL, 0x57e31f8fUL, 0x2a6655abUL,+      0x07b2eb28UL, 0x032fb5c2UL, 0x9a86c57bUL, 0xa5d33708UL,+      0xf2302887UL, 0xb223bfa5UL, 0xba02036aUL, 0x5ced1682UL,+      0x2b8acf1cUL, 0x92a779b4UL, 0xf0f307f2UL, 0xa14e69e2UL,+      0xcd65daf4UL, 0xd50605beUL, 0x1fd13462UL, 0x8ac4a6feUL,+      0x9d342e53UL, 0xa0a2f355UL, 0x32058ae1UL, 0x75a4f6ebUL,+      0x390b83ecUL, 0xaa4060efUL, 0x065e719fUL, 0x51bd6e10UL,+      0xf93e218aUL, 0x3d96dd06UL, 0xaedd3e05UL, 0x464de6bdUL,+      0xb591548dUL, 0x0571c45dUL, 0x6f0406d4UL, 0xff605015UL,+      0x241998fbUL, 0x97d6bde9UL, 0xcc894043UL, 0x7767d99eUL,+      0xbdb0e842UL, 0x8807898bUL, 0x38e7195bUL, 0xdb79c8eeUL,+      0x47a17c0aUL, 0xe97c420fUL, 0xc9f8841eUL, 0x00000000UL,+      0x83098086UL, 0x48322bedUL, 0xac1e1170UL, 0x4e6c5a72UL,+      0xfbfd0effUL, 0x560f8538UL, 0x1e3daed5UL, 0x27362d39UL,+      0x640a0fd9UL, 0x21685ca6UL, 0xd19b5b54UL, 0x3a24362eUL,+      0xb10c0a67UL, 0x0f9357e7UL, 0xd2b4ee96UL, 0x9e1b9b91UL,+      0x4f80c0c5UL, 0xa261dc20UL, 0x695a774bUL, 0x161c121aUL,+      0x0ae293baUL, 0xe5c0a02aUL, 0x433c22e0UL, 0x1d121b17UL,+      0x0b0e090dUL, 0xadf28bc7UL, 0xb92db6a8UL, 0xc8141ea9UL,+      0x8557f119UL, 0x4caf7507UL, 0xbbee99ddUL, 0xfda37f60UL,+      0x9ff70126UL, 0xbc5c72f5UL, 0xc544663bUL, 0x345bfb7eUL,+      0x768b4329UL, 0xdccb23c6UL, 0x68b6edfcUL, 0x63b8e4f1UL,+      0xcad731dcUL, 0x10426385UL, 0x40139722UL, 0x2084c611UL,+      0x7d854a24UL, 0xf8d2bb3dUL, 0x11aef932UL, 0x6dc729a1UL,+      0x4b1d9e2fUL, 0xf3dcb230UL, 0xec0d8652UL, 0xd077c1e3UL,+      0x6c2bb316UL, 0x99a970b9UL, 0xfa119448UL, 0x2247e964UL,+      0xc4a8fc8cUL, 0x1aa0f03fUL, 0xd8567d2cUL, 0xef223390UL,+      0xc787494eUL, 0xc1d938d1UL, 0xfe8ccaa2UL, 0x3698d40bUL,+      0xcfa6f581UL, 0x28a57adeUL, 0x26dab78eUL, 0xa43fadbfUL,+      0xe42c3a9dUL, 0x0d507892UL, 0x9b6a5fccUL, 0x62547e46UL,+      0xc2f68d13UL, 0xe890d8b8UL, 0x5e2e39f7UL, 0xf582c3afUL,+      0xbe9f5d80UL, 0x7c69d093UL, 0xa96fd52dUL, 0xb3cf2512UL,+      0x3bc8ac99UL, 0xa710187dUL, 0x6ee89c63UL, 0x7bdb3bbbUL,+      0x09cd2678UL, 0xf46e5918UL, 0x01ec9ab7UL, 0xa8834f9aUL,+      0x65e6956eUL, 0x7eaaffe6UL, 0x0821bccfUL, 0xe6ef15e8UL,+      0xd9bae79bUL, 0xce4a6f36UL, 0xd4ea9f09UL, 0xd629b07cUL,+      0xaf31a4b2UL, 0x312a3f23UL, 0x30c6a594UL, 0xc035a266UL,+      0x37744ebcUL, 0xa6fc82caUL, 0xb0e090d0UL, 0x1533a7d8UL,+      0x4af10498UL, 0xf741ecdaUL, 0x0e7fcd50UL, 0x2f1791f6UL,+      0x8d764dd6UL, 0x4d43efb0UL, 0x54ccaa4dUL, 0xdfe49604UL,+      0xe39ed1b5UL, 0x1b4c6a88UL, 0xb8c12c1fUL, 0x7f466551UL,+      0x049d5eeaUL, 0x5d018c35UL, 0x73fa8774UL, 0x2efb0b41UL,+      0x5ab3671dUL, 0x5292dbd2UL, 0x33e91056UL, 0x136dd647UL,+      0x8c9ad761UL, 0x7a37a10cUL, 0x8e59f814UL, 0x89eb133cUL,+      0xeecea927UL, 0x35b761c9UL, 0xede11ce5UL, 0x3c7a47b1UL,+      0x599cd2dfUL, 0x3f55f273UL, 0x791814ceUL, 0xbf73c737UL,+      0xea53f7cdUL, 0x5b5ffdaaUL, 0x14df3d6fUL, 0x867844dbUL,+      0x81caaff3UL, 0x3eb968c4UL, 0x2c382434UL, 0x5fc2a340UL,+      0x72161dc3UL, 0x0cbce225UL, 0x8b283c49UL, 0x41ff0d95UL,+      0x7139a801UL, 0xde080cb3UL, 0x9cd8b4e4UL, 0x906456c1UL,+      0x617bcb84UL, 0x70d532b6UL, 0x74486c5cUL, 0x42d0b857UL+  };+  static const SWord32 table3[] = {+      0xa75051f4UL, 0x65537e41UL, 0xa4c31a17UL, 0x5e963a27UL,+      0x6bcb3babUL, 0x45f11f9dUL, 0x58abacfaUL, 0x03934be3UL,+      0xfa552030UL, 0x6df6ad76UL, 0x769188ccUL, 0x4c25f502UL,+      0xd7fc4fe5UL, 0xcbd7c52aUL, 0x44802635UL, 0xa38fb562UL,+      0x5a49deb1UL, 0x1b6725baUL, 0x0e9845eaUL, 0xc0e15dfeUL,+      0x7502c32fUL, 0xf012814cUL, 0x97a38d46UL, 0xf9c66bd3UL,+      0x5fe7038fUL, 0x9c951592UL, 0x7aebbf6dUL, 0x59da9552UL,+      0x832dd4beUL, 0x21d35874UL, 0x692949e0UL, 0xc8448ec9UL,+      0x896a75c2UL, 0x7978f48eUL, 0x3e6b9958UL, 0x71dd27b9UL,+      0x4fb6bee1UL, 0xad17f088UL, 0xac66c920UL, 0x3ab47dceUL,+      0x4a1863dfUL, 0x3182e51aUL, 0x33609751UL, 0x7f456253UL,+      0x77e0b164UL, 0xae84bb6bUL, 0xa01cfe81UL, 0x2b94f908UL,+      0x68587048UL, 0xfd198f45UL, 0x6c8794deUL, 0xf8b7527bUL,+      0xd323ab73UL, 0x02e2724bUL, 0x8f57e31fUL, 0xab2a6655UL,+      0x2807b2ebUL, 0xc2032fb5UL, 0x7b9a86c5UL, 0x08a5d337UL,+      0x87f23028UL, 0xa5b223bfUL, 0x6aba0203UL, 0x825ced16UL,+      0x1c2b8acfUL, 0xb492a779UL, 0xf2f0f307UL, 0xe2a14e69UL,+      0xf4cd65daUL, 0xbed50605UL, 0x621fd134UL, 0xfe8ac4a6UL,+      0x539d342eUL, 0x55a0a2f3UL, 0xe132058aUL, 0xeb75a4f6UL,+      0xec390b83UL, 0xefaa4060UL, 0x9f065e71UL, 0x1051bd6eUL,+      0x8af93e21UL, 0x063d96ddUL, 0x05aedd3eUL, 0xbd464de6UL,+      0x8db59154UL, 0x5d0571c4UL, 0xd46f0406UL, 0x15ff6050UL,+      0xfb241998UL, 0xe997d6bdUL, 0x43cc8940UL, 0x9e7767d9UL,+      0x42bdb0e8UL, 0x8b880789UL, 0x5b38e719UL, 0xeedb79c8UL,+      0x0a47a17cUL, 0x0fe97c42UL, 0x1ec9f884UL, 0x00000000UL,+      0x86830980UL, 0xed48322bUL, 0x70ac1e11UL, 0x724e6c5aUL,+      0xfffbfd0eUL, 0x38560f85UL, 0xd51e3daeUL, 0x3927362dUL,+      0xd9640a0fUL, 0xa621685cUL, 0x54d19b5bUL, 0x2e3a2436UL,+      0x67b10c0aUL, 0xe70f9357UL, 0x96d2b4eeUL, 0x919e1b9bUL,+      0xc54f80c0UL, 0x20a261dcUL, 0x4b695a77UL, 0x1a161c12UL,+      0xba0ae293UL, 0x2ae5c0a0UL, 0xe0433c22UL, 0x171d121bUL,+      0x0d0b0e09UL, 0xc7adf28bUL, 0xa8b92db6UL, 0xa9c8141eUL,+      0x198557f1UL, 0x074caf75UL, 0xddbbee99UL, 0x60fda37fUL,+      0x269ff701UL, 0xf5bc5c72UL, 0x3bc54466UL, 0x7e345bfbUL,+      0x29768b43UL, 0xc6dccb23UL, 0xfc68b6edUL, 0xf163b8e4UL,+      0xdccad731UL, 0x85104263UL, 0x22401397UL, 0x112084c6UL,+      0x247d854aUL, 0x3df8d2bbUL, 0x3211aef9UL, 0xa16dc729UL,+      0x2f4b1d9eUL, 0x30f3dcb2UL, 0x52ec0d86UL, 0xe3d077c1UL,+      0x166c2bb3UL, 0xb999a970UL, 0x48fa1194UL, 0x642247e9UL,+      0x8cc4a8fcUL, 0x3f1aa0f0UL, 0x2cd8567dUL, 0x90ef2233UL,+      0x4ec78749UL, 0xd1c1d938UL, 0xa2fe8ccaUL, 0x0b3698d4UL,+      0x81cfa6f5UL, 0xde28a57aUL, 0x8e26dab7UL, 0xbfa43fadUL,+      0x9de42c3aUL, 0x920d5078UL, 0xcc9b6a5fUL, 0x4662547eUL,+      0x13c2f68dUL, 0xb8e890d8UL, 0xf75e2e39UL, 0xaff582c3UL,+      0x80be9f5dUL, 0x937c69d0UL, 0x2da96fd5UL, 0x12b3cf25UL,+      0x993bc8acUL, 0x7da71018UL, 0x636ee89cUL, 0xbb7bdb3bUL,+      0x7809cd26UL, 0x18f46e59UL, 0xb701ec9aUL, 0x9aa8834fUL,+      0x6e65e695UL, 0xe67eaaffUL, 0xcf0821bcUL, 0xe8e6ef15UL,+      0x9bd9bae7UL, 0x36ce4a6fUL, 0x09d4ea9fUL, 0x7cd629b0UL,+      0xb2af31a4UL, 0x23312a3fUL, 0x9430c6a5UL, 0x66c035a2UL,+      0xbc37744eUL, 0xcaa6fc82UL, 0xd0b0e090UL, 0xd81533a7UL,+      0x984af104UL, 0xdaf741ecUL, 0x500e7fcdUL, 0xf62f1791UL,+      0xd68d764dUL, 0xb04d43efUL, 0x4d54ccaaUL, 0x04dfe496UL,+      0xb5e39ed1UL, 0x881b4c6aUL, 0x1fb8c12cUL, 0x517f4665UL,+      0xea049d5eUL, 0x355d018cUL, 0x7473fa87UL, 0x412efb0bUL,+      0x1d5ab367UL, 0xd25292dbUL, 0x5633e910UL, 0x47136dd6UL,+      0x618c9ad7UL, 0x0c7a37a1UL, 0x148e59f8UL, 0x3c89eb13UL,+      0x27eecea9UL, 0xc935b761UL, 0xe5ede11cUL, 0xb13c7a47UL,+      0xdf599cd2UL, 0x733f55f2UL, 0xce791814UL, 0x37bf73c7UL,+      0xcdea53f7UL, 0xaa5b5ffdUL, 0x6f14df3dUL, 0xdb867844UL,+      0xf381caafUL, 0xc43eb968UL, 0x342c3824UL, 0x405fc2a3UL,+      0xc372161dUL, 0x250cbce2UL, 0x498b283cUL, 0x9541ff0dUL,+      0x017139a8UL, 0xb3de080cUL, 0xe49cd8b4UL, 0xc1906456UL,+      0x84617bcbUL, 0xb670d532UL, 0x5c74486cUL, 0x5742d0b8UL+  };+  static const SWord32 table4[] = {+      0xf4a75051UL, 0x4165537eUL, 0x17a4c31aUL, 0x275e963aUL,+      0xab6bcb3bUL, 0x9d45f11fUL, 0xfa58abacUL, 0xe303934bUL,+      0x30fa5520UL, 0x766df6adUL, 0xcc769188UL, 0x024c25f5UL,+      0xe5d7fc4fUL, 0x2acbd7c5UL, 0x35448026UL, 0x62a38fb5UL,+      0xb15a49deUL, 0xba1b6725UL, 0xea0e9845UL, 0xfec0e15dUL,+      0x2f7502c3UL, 0x4cf01281UL, 0x4697a38dUL, 0xd3f9c66bUL,+      0x8f5fe703UL, 0x929c9515UL, 0x6d7aebbfUL, 0x5259da95UL,+      0xbe832dd4UL, 0x7421d358UL, 0xe0692949UL, 0xc9c8448eUL,+      0xc2896a75UL, 0x8e7978f4UL, 0x583e6b99UL, 0xb971dd27UL,+      0xe14fb6beUL, 0x88ad17f0UL, 0x20ac66c9UL, 0xce3ab47dUL,+      0xdf4a1863UL, 0x1a3182e5UL, 0x51336097UL, 0x537f4562UL,+      0x6477e0b1UL, 0x6bae84bbUL, 0x81a01cfeUL, 0x082b94f9UL,+      0x48685870UL, 0x45fd198fUL, 0xde6c8794UL, 0x7bf8b752UL,+      0x73d323abUL, 0x4b02e272UL, 0x1f8f57e3UL, 0x55ab2a66UL,+      0xeb2807b2UL, 0xb5c2032fUL, 0xc57b9a86UL, 0x3708a5d3UL,+      0x2887f230UL, 0xbfa5b223UL, 0x036aba02UL, 0x16825cedUL,+      0xcf1c2b8aUL, 0x79b492a7UL, 0x07f2f0f3UL, 0x69e2a14eUL,+      0xdaf4cd65UL, 0x05bed506UL, 0x34621fd1UL, 0xa6fe8ac4UL,+      0x2e539d34UL, 0xf355a0a2UL, 0x8ae13205UL, 0xf6eb75a4UL,+      0x83ec390bUL, 0x60efaa40UL, 0x719f065eUL, 0x6e1051bdUL,+      0x218af93eUL, 0xdd063d96UL, 0x3e05aeddUL, 0xe6bd464dUL,+      0x548db591UL, 0xc45d0571UL, 0x06d46f04UL, 0x5015ff60UL,+      0x98fb2419UL, 0xbde997d6UL, 0x4043cc89UL, 0xd99e7767UL,+      0xe842bdb0UL, 0x898b8807UL, 0x195b38e7UL, 0xc8eedb79UL,+      0x7c0a47a1UL, 0x420fe97cUL, 0x841ec9f8UL, 0x00000000UL,+      0x80868309UL, 0x2bed4832UL, 0x1170ac1eUL, 0x5a724e6cUL,+      0x0efffbfdUL, 0x8538560fUL, 0xaed51e3dUL, 0x2d392736UL,+      0x0fd9640aUL, 0x5ca62168UL, 0x5b54d19bUL, 0x362e3a24UL,+      0x0a67b10cUL, 0x57e70f93UL, 0xee96d2b4UL, 0x9b919e1bUL,+      0xc0c54f80UL, 0xdc20a261UL, 0x774b695aUL, 0x121a161cUL,+      0x93ba0ae2UL, 0xa02ae5c0UL, 0x22e0433cUL, 0x1b171d12UL,+      0x090d0b0eUL, 0x8bc7adf2UL, 0xb6a8b92dUL, 0x1ea9c814UL,+      0xf1198557UL, 0x75074cafUL, 0x99ddbbeeUL, 0x7f60fda3UL,+      0x01269ff7UL, 0x72f5bc5cUL, 0x663bc544UL, 0xfb7e345bUL,+      0x4329768bUL, 0x23c6dccbUL, 0xedfc68b6UL, 0xe4f163b8UL,+      0x31dccad7UL, 0x63851042UL, 0x97224013UL, 0xc6112084UL,+      0x4a247d85UL, 0xbb3df8d2UL, 0xf93211aeUL, 0x29a16dc7UL,+      0x9e2f4b1dUL, 0xb230f3dcUL, 0x8652ec0dUL, 0xc1e3d077UL,+      0xb3166c2bUL, 0x70b999a9UL, 0x9448fa11UL, 0xe9642247UL,+      0xfc8cc4a8UL, 0xf03f1aa0UL, 0x7d2cd856UL, 0x3390ef22UL,+      0x494ec787UL, 0x38d1c1d9UL, 0xcaa2fe8cUL, 0xd40b3698UL,+      0xf581cfa6UL, 0x7ade28a5UL, 0xb78e26daUL, 0xadbfa43fUL,+      0x3a9de42cUL, 0x78920d50UL, 0x5fcc9b6aUL, 0x7e466254UL,+      0x8d13c2f6UL, 0xd8b8e890UL, 0x39f75e2eUL, 0xc3aff582UL,+      0x5d80be9fUL, 0xd0937c69UL, 0xd52da96fUL, 0x2512b3cfUL,+      0xac993bc8UL, 0x187da710UL, 0x9c636ee8UL, 0x3bbb7bdbUL,+      0x267809cdUL, 0x5918f46eUL, 0x9ab701ecUL, 0x4f9aa883UL,+      0x956e65e6UL, 0xffe67eaaUL, 0xbccf0821UL, 0x15e8e6efUL,+      0xe79bd9baUL, 0x6f36ce4aUL, 0x9f09d4eaUL, 0xb07cd629UL,+      0xa4b2af31UL, 0x3f23312aUL, 0xa59430c6UL, 0xa266c035UL,+      0x4ebc3774UL, 0x82caa6fcUL, 0x90d0b0e0UL, 0xa7d81533UL,+      0x04984af1UL, 0xecdaf741UL, 0xcd500e7fUL, 0x91f62f17UL,+      0x4dd68d76UL, 0xefb04d43UL, 0xaa4d54ccUL, 0x9604dfe4UL,+      0xd1b5e39eUL, 0x6a881b4cUL, 0x2c1fb8c1UL, 0x65517f46UL,+      0x5eea049dUL, 0x8c355d01UL, 0x877473faUL, 0x0b412efbUL,+      0x671d5ab3UL, 0xdbd25292UL, 0x105633e9UL, 0xd647136dUL,+      0xd7618c9aUL, 0xa10c7a37UL, 0xf8148e59UL, 0x133c89ebUL,+      0xa927eeceUL, 0x61c935b7UL, 0x1ce5ede1UL, 0x47b13c7aUL,+      0xd2df599cUL, 0xf2733f55UL, 0x14ce7918UL, 0xc737bf73UL,+      0xf7cdea53UL, 0xfdaa5b5fUL, 0x3d6f14dfUL, 0x44db8678UL,+      0xaff381caUL, 0x68c43eb9UL, 0x24342c38UL, 0xa3405fc2UL,+      0x1dc37216UL, 0xe2250cbcUL, 0x3c498b28UL, 0x0d9541ffUL,+      0xa8017139UL, 0x0cb3de08UL, 0xb4e49cd8UL, 0x56c19064UL,+      0xcb84617bUL, 0x32b670d5UL, 0x6c5c7448UL, 0xb85742d0UL+  };+  const SWord32 s560 = s0 ^ s4;+  const SWord8  s561 = (SWord8) (s560 >> 24);+  const SWord32 s562 = table1[s561];+  const SWord32 s818 = s3 ^ s7;+  const SWord8  s819 = (SWord8) (s818 >> 16);+  const SWord32 s820 = table2[s819];+  const SWord32 s821 = s562 ^ s820;+  const SWord32 s1077 = s2 ^ s6;+  const SWord8  s1078 = (SWord8) (s1077 >> 8);+  const SWord32 s1079 = table3[s1078];+  const SWord32 s1080 = s821 ^ s1079;+  const SWord32 s1336 = s1 ^ s5;+  const SWord8  s1337 = (SWord8) s1336;+  const SWord32 s1338 = table4[s1337];+  const SWord32 s1339 = s1080 ^ s1338;+  const SWord32 s1340 = s8 ^ s1339;+  const SWord8  s1341 = (SWord8) (s1340 >> 24);+  const SWord32 s1342 = table1[s1341];+  const SWord8  s1343 = (SWord8) (s818 >> 24);+  const SWord32 s1344 = table1[s1343];+  const SWord8  s1345 = (SWord8) (s1077 >> 16);+  const SWord32 s1346 = table2[s1345];+  const SWord32 s1347 = s1344 ^ s1346;+  const SWord8  s1348 = (SWord8) (s1336 >> 8);+  const SWord32 s1349 = table3[s1348];+  const SWord32 s1350 = s1347 ^ s1349;+  const SWord8  s1351 = (SWord8) s560;+  const SWord32 s1352 = table4[s1351];+  const SWord32 s1353 = s1350 ^ s1352;+  const SWord32 s1354 = s11 ^ s1353;+  const SWord8  s1355 = (SWord8) (s1354 >> 16);+  const SWord32 s1356 = table2[s1355];+  const SWord32 s1357 = s1342 ^ s1356;+  const SWord8  s1358 = (SWord8) (s1077 >> 24);+  const SWord32 s1359 = table1[s1358];+  const SWord8  s1360 = (SWord8) (s1336 >> 16);+  const SWord32 s1361 = table2[s1360];+  const SWord32 s1362 = s1359 ^ s1361;+  const SWord8  s1363 = (SWord8) (s560 >> 8);+  const SWord32 s1364 = table3[s1363];+  const SWord32 s1365 = s1362 ^ s1364;+  const SWord8  s1366 = (SWord8) s818;+  const SWord32 s1367 = table4[s1366];+  const SWord32 s1368 = s1365 ^ s1367;+  const SWord32 s1369 = s10 ^ s1368;+  const SWord8  s1370 = (SWord8) (s1369 >> 8);+  const SWord32 s1371 = table3[s1370];+  const SWord32 s1372 = s1357 ^ s1371;+  const SWord8  s1373 = (SWord8) (s1336 >> 24);+  const SWord32 s1374 = table1[s1373];+  const SWord8  s1375 = (SWord8) (s560 >> 16);+  const SWord32 s1376 = table2[s1375];+  const SWord32 s1377 = s1374 ^ s1376;+  const SWord8  s1378 = (SWord8) (s818 >> 8);+  const SWord32 s1379 = table3[s1378];+  const SWord32 s1380 = s1377 ^ s1379;+  const SWord8  s1381 = (SWord8) s1077;+  const SWord32 s1382 = table4[s1381];+  const SWord32 s1383 = s1380 ^ s1382;+  const SWord32 s1384 = s9 ^ s1383;+  const SWord8  s1385 = (SWord8) s1384;+  const SWord32 s1386 = table4[s1385];+  const SWord32 s1387 = s1372 ^ s1386;+  const SWord32 s1388 = s12 ^ s1387;+  const SWord8  s1389 = (SWord8) (s1388 >> 24);+  const SWord32 s1390 = table1[s1389];+  const SWord8  s1391 = (SWord8) (s1354 >> 24);+  const SWord32 s1392 = table1[s1391];+  const SWord8  s1393 = (SWord8) (s1369 >> 16);+  const SWord32 s1394 = table2[s1393];+  const SWord32 s1395 = s1392 ^ s1394;+  const SWord8  s1396 = (SWord8) (s1384 >> 8);+  const SWord32 s1397 = table3[s1396];+  const SWord32 s1398 = s1395 ^ s1397;+  const SWord8  s1399 = (SWord8) s1340;+  const SWord32 s1400 = table4[s1399];+  const SWord32 s1401 = s1398 ^ s1400;+  const SWord32 s1402 = s15 ^ s1401;+  const SWord8  s1403 = (SWord8) (s1402 >> 16);+  const SWord32 s1404 = table2[s1403];+  const SWord32 s1405 = s1390 ^ s1404;+  const SWord8  s1406 = (SWord8) (s1369 >> 24);+  const SWord32 s1407 = table1[s1406];+  const SWord8  s1408 = (SWord8) (s1384 >> 16);+  const SWord32 s1409 = table2[s1408];+  const SWord32 s1410 = s1407 ^ s1409;+  const SWord8  s1411 = (SWord8) (s1340 >> 8);+  const SWord32 s1412 = table3[s1411];+  const SWord32 s1413 = s1410 ^ s1412;+  const SWord8  s1414 = (SWord8) s1354;+  const SWord32 s1415 = table4[s1414];+  const SWord32 s1416 = s1413 ^ s1415;+  const SWord32 s1417 = s14 ^ s1416;+  const SWord8  s1418 = (SWord8) (s1417 >> 8);+  const SWord32 s1419 = table3[s1418];+  const SWord32 s1420 = s1405 ^ s1419;+  const SWord8  s1421 = (SWord8) (s1384 >> 24);+  const SWord32 s1422 = table1[s1421];+  const SWord8  s1423 = (SWord8) (s1340 >> 16);+  const SWord32 s1424 = table2[s1423];+  const SWord32 s1425 = s1422 ^ s1424;+  const SWord8  s1426 = (SWord8) (s1354 >> 8);+  const SWord32 s1427 = table3[s1426];+  const SWord32 s1428 = s1425 ^ s1427;+  const SWord8  s1429 = (SWord8) s1369;+  const SWord32 s1430 = table4[s1429];+  const SWord32 s1431 = s1428 ^ s1430;+  const SWord32 s1432 = s13 ^ s1431;+  const SWord8  s1433 = (SWord8) s1432;+  const SWord32 s1434 = table4[s1433];+  const SWord32 s1435 = s1420 ^ s1434;+  const SWord32 s1436 = s16 ^ s1435;+  const SWord8  s1437 = (SWord8) (s1436 >> 24);+  const SWord32 s1438 = table1[s1437];+  const SWord8  s1439 = (SWord8) (s1402 >> 24);+  const SWord32 s1440 = table1[s1439];+  const SWord8  s1441 = (SWord8) (s1417 >> 16);+  const SWord32 s1442 = table2[s1441];+  const SWord32 s1443 = s1440 ^ s1442;+  const SWord8  s1444 = (SWord8) (s1432 >> 8);+  const SWord32 s1445 = table3[s1444];+  const SWord32 s1446 = s1443 ^ s1445;+  const SWord8  s1447 = (SWord8) s1388;+  const SWord32 s1448 = table4[s1447];+  const SWord32 s1449 = s1446 ^ s1448;+  const SWord32 s1450 = s19 ^ s1449;+  const SWord8  s1451 = (SWord8) (s1450 >> 16);+  const SWord32 s1452 = table2[s1451];+  const SWord32 s1453 = s1438 ^ s1452;+  const SWord8  s1454 = (SWord8) (s1417 >> 24);+  const SWord32 s1455 = table1[s1454];+  const SWord8  s1456 = (SWord8) (s1432 >> 16);+  const SWord32 s1457 = table2[s1456];+  const SWord32 s1458 = s1455 ^ s1457;+  const SWord8  s1459 = (SWord8) (s1388 >> 8);+  const SWord32 s1460 = table3[s1459];+  const SWord32 s1461 = s1458 ^ s1460;+  const SWord8  s1462 = (SWord8) s1402;+  const SWord32 s1463 = table4[s1462];+  const SWord32 s1464 = s1461 ^ s1463;+  const SWord32 s1465 = s18 ^ s1464;+  const SWord8  s1466 = (SWord8) (s1465 >> 8);+  const SWord32 s1467 = table3[s1466];+  const SWord32 s1468 = s1453 ^ s1467;+  const SWord8  s1469 = (SWord8) (s1432 >> 24);+  const SWord32 s1470 = table1[s1469];+  const SWord8  s1471 = (SWord8) (s1388 >> 16);+  const SWord32 s1472 = table2[s1471];+  const SWord32 s1473 = s1470 ^ s1472;+  const SWord8  s1474 = (SWord8) (s1402 >> 8);+  const SWord32 s1475 = table3[s1474];+  const SWord32 s1476 = s1473 ^ s1475;+  const SWord8  s1477 = (SWord8) s1417;+  const SWord32 s1478 = table4[s1477];+  const SWord32 s1479 = s1476 ^ s1478;+  const SWord32 s1480 = s17 ^ s1479;+  const SWord8  s1481 = (SWord8) s1480;+  const SWord32 s1482 = table4[s1481];+  const SWord32 s1483 = s1468 ^ s1482;+  const SWord32 s1484 = s20 ^ s1483;+  const SWord8  s1485 = (SWord8) (s1484 >> 24);+  const SWord32 s1486 = table1[s1485];+  const SWord8  s1487 = (SWord8) (s1450 >> 24);+  const SWord32 s1488 = table1[s1487];+  const SWord8  s1489 = (SWord8) (s1465 >> 16);+  const SWord32 s1490 = table2[s1489];+  const SWord32 s1491 = s1488 ^ s1490;+  const SWord8  s1492 = (SWord8) (s1480 >> 8);+  const SWord32 s1493 = table3[s1492];+  const SWord32 s1494 = s1491 ^ s1493;+  const SWord8  s1495 = (SWord8) s1436;+  const SWord32 s1496 = table4[s1495];+  const SWord32 s1497 = s1494 ^ s1496;+  const SWord32 s1498 = s23 ^ s1497;+  const SWord8  s1499 = (SWord8) (s1498 >> 16);+  const SWord32 s1500 = table2[s1499];+  const SWord32 s1501 = s1486 ^ s1500;+  const SWord8  s1502 = (SWord8) (s1465 >> 24);+  const SWord32 s1503 = table1[s1502];+  const SWord8  s1504 = (SWord8) (s1480 >> 16);+  const SWord32 s1505 = table2[s1504];+  const SWord32 s1506 = s1503 ^ s1505;+  const SWord8  s1507 = (SWord8) (s1436 >> 8);+  const SWord32 s1508 = table3[s1507];+  const SWord32 s1509 = s1506 ^ s1508;+  const SWord8  s1510 = (SWord8) s1450;+  const SWord32 s1511 = table4[s1510];+  const SWord32 s1512 = s1509 ^ s1511;+  const SWord32 s1513 = s22 ^ s1512;+  const SWord8  s1514 = (SWord8) (s1513 >> 8);+  const SWord32 s1515 = table3[s1514];+  const SWord32 s1516 = s1501 ^ s1515;+  const SWord8  s1517 = (SWord8) (s1480 >> 24);+  const SWord32 s1518 = table1[s1517];+  const SWord8  s1519 = (SWord8) (s1436 >> 16);+  const SWord32 s1520 = table2[s1519];+  const SWord32 s1521 = s1518 ^ s1520;+  const SWord8  s1522 = (SWord8) (s1450 >> 8);+  const SWord32 s1523 = table3[s1522];+  const SWord32 s1524 = s1521 ^ s1523;+  const SWord8  s1525 = (SWord8) s1465;+  const SWord32 s1526 = table4[s1525];+  const SWord32 s1527 = s1524 ^ s1526;+  const SWord32 s1528 = s21 ^ s1527;+  const SWord8  s1529 = (SWord8) s1528;+  const SWord32 s1530 = table4[s1529];+  const SWord32 s1531 = s1516 ^ s1530;+  const SWord32 s1532 = s24 ^ s1531;+  const SWord8  s1533 = (SWord8) (s1532 >> 24);+  const SWord32 s1534 = table1[s1533];+  const SWord8  s1535 = (SWord8) (s1498 >> 24);+  const SWord32 s1536 = table1[s1535];+  const SWord8  s1537 = (SWord8) (s1513 >> 16);+  const SWord32 s1538 = table2[s1537];+  const SWord32 s1539 = s1536 ^ s1538;+  const SWord8  s1540 = (SWord8) (s1528 >> 8);+  const SWord32 s1541 = table3[s1540];+  const SWord32 s1542 = s1539 ^ s1541;+  const SWord8  s1543 = (SWord8) s1484;+  const SWord32 s1544 = table4[s1543];+  const SWord32 s1545 = s1542 ^ s1544;+  const SWord32 s1546 = s27 ^ s1545;+  const SWord8  s1547 = (SWord8) (s1546 >> 16);+  const SWord32 s1548 = table2[s1547];+  const SWord32 s1549 = s1534 ^ s1548;+  const SWord8  s1550 = (SWord8) (s1513 >> 24);+  const SWord32 s1551 = table1[s1550];+  const SWord8  s1552 = (SWord8) (s1528 >> 16);+  const SWord32 s1553 = table2[s1552];+  const SWord32 s1554 = s1551 ^ s1553;+  const SWord8  s1555 = (SWord8) (s1484 >> 8);+  const SWord32 s1556 = table3[s1555];+  const SWord32 s1557 = s1554 ^ s1556;+  const SWord8  s1558 = (SWord8) s1498;+  const SWord32 s1559 = table4[s1558];+  const SWord32 s1560 = s1557 ^ s1559;+  const SWord32 s1561 = s26 ^ s1560;+  const SWord8  s1562 = (SWord8) (s1561 >> 8);+  const SWord32 s1563 = table3[s1562];+  const SWord32 s1564 = s1549 ^ s1563;+  const SWord8  s1565 = (SWord8) (s1528 >> 24);+  const SWord32 s1566 = table1[s1565];+  const SWord8  s1567 = (SWord8) (s1484 >> 16);+  const SWord32 s1568 = table2[s1567];+  const SWord32 s1569 = s1566 ^ s1568;+  const SWord8  s1570 = (SWord8) (s1498 >> 8);+  const SWord32 s1571 = table3[s1570];+  const SWord32 s1572 = s1569 ^ s1571;+  const SWord8  s1573 = (SWord8) s1513;+  const SWord32 s1574 = table4[s1573];+  const SWord32 s1575 = s1572 ^ s1574;+  const SWord32 s1576 = s25 ^ s1575;+  const SWord8  s1577 = (SWord8) s1576;+  const SWord32 s1578 = table4[s1577];+  const SWord32 s1579 = s1564 ^ s1578;+  const SWord32 s1580 = s28 ^ s1579;+  const SWord8  s1581 = (SWord8) (s1580 >> 24);+  const SWord32 s1582 = table1[s1581];+  const SWord8  s1583 = (SWord8) (s1546 >> 24);+  const SWord32 s1584 = table1[s1583];+  const SWord8  s1585 = (SWord8) (s1561 >> 16);+  const SWord32 s1586 = table2[s1585];+  const SWord32 s1587 = s1584 ^ s1586;+  const SWord8  s1588 = (SWord8) (s1576 >> 8);+  const SWord32 s1589 = table3[s1588];+  const SWord32 s1590 = s1587 ^ s1589;+  const SWord8  s1591 = (SWord8) s1532;+  const SWord32 s1592 = table4[s1591];+  const SWord32 s1593 = s1590 ^ s1592;+  const SWord32 s1594 = s31 ^ s1593;+  const SWord8  s1595 = (SWord8) (s1594 >> 16);+  const SWord32 s1596 = table2[s1595];+  const SWord32 s1597 = s1582 ^ s1596;+  const SWord8  s1598 = (SWord8) (s1561 >> 24);+  const SWord32 s1599 = table1[s1598];+  const SWord8  s1600 = (SWord8) (s1576 >> 16);+  const SWord32 s1601 = table2[s1600];+  const SWord32 s1602 = s1599 ^ s1601;+  const SWord8  s1603 = (SWord8) (s1532 >> 8);+  const SWord32 s1604 = table3[s1603];+  const SWord32 s1605 = s1602 ^ s1604;+  const SWord8  s1606 = (SWord8) s1546;+  const SWord32 s1607 = table4[s1606];+  const SWord32 s1608 = s1605 ^ s1607;+  const SWord32 s1609 = s30 ^ s1608;+  const SWord8  s1610 = (SWord8) (s1609 >> 8);+  const SWord32 s1611 = table3[s1610];+  const SWord32 s1612 = s1597 ^ s1611;+  const SWord8  s1613 = (SWord8) (s1576 >> 24);+  const SWord32 s1614 = table1[s1613];+  const SWord8  s1615 = (SWord8) (s1532 >> 16);+  const SWord32 s1616 = table2[s1615];+  const SWord32 s1617 = s1614 ^ s1616;+  const SWord8  s1618 = (SWord8) (s1546 >> 8);+  const SWord32 s1619 = table3[s1618];+  const SWord32 s1620 = s1617 ^ s1619;+  const SWord8  s1621 = (SWord8) s1561;+  const SWord32 s1622 = table4[s1621];+  const SWord32 s1623 = s1620 ^ s1622;+  const SWord32 s1624 = s29 ^ s1623;+  const SWord8  s1625 = (SWord8) s1624;+  const SWord32 s1626 = table4[s1625];+  const SWord32 s1627 = s1612 ^ s1626;+  const SWord32 s1628 = s32 ^ s1627;+  const SWord8  s1629 = (SWord8) (s1628 >> 24);+  const SWord32 s1630 = table1[s1629];+  const SWord8  s1631 = (SWord8) (s1594 >> 24);+  const SWord32 s1632 = table1[s1631];+  const SWord8  s1633 = (SWord8) (s1609 >> 16);+  const SWord32 s1634 = table2[s1633];+  const SWord32 s1635 = s1632 ^ s1634;+  const SWord8  s1636 = (SWord8) (s1624 >> 8);+  const SWord32 s1637 = table3[s1636];+  const SWord32 s1638 = s1635 ^ s1637;+  const SWord8  s1639 = (SWord8) s1580;+  const SWord32 s1640 = table4[s1639];+  const SWord32 s1641 = s1638 ^ s1640;+  const SWord32 s1642 = s35 ^ s1641;+  const SWord8  s1643 = (SWord8) (s1642 >> 16);+  const SWord32 s1644 = table2[s1643];+  const SWord32 s1645 = s1630 ^ s1644;+  const SWord8  s1646 = (SWord8) (s1609 >> 24);+  const SWord32 s1647 = table1[s1646];+  const SWord8  s1648 = (SWord8) (s1624 >> 16);+  const SWord32 s1649 = table2[s1648];+  const SWord32 s1650 = s1647 ^ s1649;+  const SWord8  s1651 = (SWord8) (s1580 >> 8);+  const SWord32 s1652 = table3[s1651];+  const SWord32 s1653 = s1650 ^ s1652;+  const SWord8  s1654 = (SWord8) s1594;+  const SWord32 s1655 = table4[s1654];+  const SWord32 s1656 = s1653 ^ s1655;+  const SWord32 s1657 = s34 ^ s1656;+  const SWord8  s1658 = (SWord8) (s1657 >> 8);+  const SWord32 s1659 = table3[s1658];+  const SWord32 s1660 = s1645 ^ s1659;+  const SWord8  s1661 = (SWord8) (s1624 >> 24);+  const SWord32 s1662 = table1[s1661];+  const SWord8  s1663 = (SWord8) (s1580 >> 16);+  const SWord32 s1664 = table2[s1663];+  const SWord32 s1665 = s1662 ^ s1664;+  const SWord8  s1666 = (SWord8) (s1594 >> 8);+  const SWord32 s1667 = table3[s1666];+  const SWord32 s1668 = s1665 ^ s1667;+  const SWord8  s1669 = (SWord8) s1609;+  const SWord32 s1670 = table4[s1669];+  const SWord32 s1671 = s1668 ^ s1670;+  const SWord32 s1672 = s33 ^ s1671;+  const SWord8  s1673 = (SWord8) s1672;+  const SWord32 s1674 = table4[s1673];+  const SWord32 s1675 = s1660 ^ s1674;+  const SWord32 s1676 = s36 ^ s1675;+  const SWord8  s1677 = (SWord8) (s1676 >> 24);+  const SWord32 s1678 = table1[s1677];+  const SWord8  s1679 = (SWord8) (s1642 >> 24);+  const SWord32 s1680 = table1[s1679];+  const SWord8  s1681 = (SWord8) (s1657 >> 16);+  const SWord32 s1682 = table2[s1681];+  const SWord32 s1683 = s1680 ^ s1682;+  const SWord8  s1684 = (SWord8) (s1672 >> 8);+  const SWord32 s1685 = table3[s1684];+  const SWord32 s1686 = s1683 ^ s1685;+  const SWord8  s1687 = (SWord8) s1628;+  const SWord32 s1688 = table4[s1687];+  const SWord32 s1689 = s1686 ^ s1688;+  const SWord32 s1690 = s39 ^ s1689;+  const SWord8  s1691 = (SWord8) (s1690 >> 16);+  const SWord32 s1692 = table2[s1691];+  const SWord32 s1693 = s1678 ^ s1692;+  const SWord8  s1694 = (SWord8) (s1657 >> 24);+  const SWord32 s1695 = table1[s1694];+  const SWord8  s1696 = (SWord8) (s1672 >> 16);+  const SWord32 s1697 = table2[s1696];+  const SWord32 s1698 = s1695 ^ s1697;+  const SWord8  s1699 = (SWord8) (s1628 >> 8);+  const SWord32 s1700 = table3[s1699];+  const SWord32 s1701 = s1698 ^ s1700;+  const SWord8  s1702 = (SWord8) s1642;+  const SWord32 s1703 = table4[s1702];+  const SWord32 s1704 = s1701 ^ s1703;+  const SWord32 s1705 = s38 ^ s1704;+  const SWord8  s1706 = (SWord8) (s1705 >> 8);+  const SWord32 s1707 = table3[s1706];+  const SWord32 s1708 = s1693 ^ s1707;+  const SWord8  s1709 = (SWord8) (s1672 >> 24);+  const SWord32 s1710 = table1[s1709];+  const SWord8  s1711 = (SWord8) (s1628 >> 16);+  const SWord32 s1712 = table2[s1711];+  const SWord32 s1713 = s1710 ^ s1712;+  const SWord8  s1714 = (SWord8) (s1642 >> 8);+  const SWord32 s1715 = table3[s1714];+  const SWord32 s1716 = s1713 ^ s1715;+  const SWord8  s1717 = (SWord8) s1657;+  const SWord32 s1718 = table4[s1717];+  const SWord32 s1719 = s1716 ^ s1718;+  const SWord32 s1720 = s37 ^ s1719;+  const SWord8  s1721 = (SWord8) s1720;+  const SWord32 s1722 = table4[s1721];+  const SWord32 s1723 = s1708 ^ s1722;+  const SWord32 s1724 = s40 ^ s1723;+  const SWord8  s1725 = (SWord8) (s1724 >> 24);+  const SWord8  s1726 = table0[s1725];+  const SWord8  s1727 = (SWord8) (s1690 >> 24);+  const SWord32 s1728 = table1[s1727];+  const SWord8  s1729 = (SWord8) (s1705 >> 16);+  const SWord32 s1730 = table2[s1729];+  const SWord32 s1731 = s1728 ^ s1730;+  const SWord8  s1732 = (SWord8) (s1720 >> 8);+  const SWord32 s1733 = table3[s1732];+  const SWord32 s1734 = s1731 ^ s1733;+  const SWord8  s1735 = (SWord8) s1676;+  const SWord32 s1736 = table4[s1735];+  const SWord32 s1737 = s1734 ^ s1736;+  const SWord32 s1738 = s43 ^ s1737;+  const SWord8  s1739 = (SWord8) (s1738 >> 16);+  const SWord8  s1740 = table0[s1739];+  const SWord16 s1741 = (((SWord16) s1726) << 8) | ((SWord16) s1740);+  const SWord8  s1742 = (SWord8) (s1705 >> 24);+  const SWord32 s1743 = table1[s1742];+  const SWord8  s1744 = (SWord8) (s1720 >> 16);+  const SWord32 s1745 = table2[s1744];+  const SWord32 s1746 = s1743 ^ s1745;+  const SWord8  s1747 = (SWord8) (s1676 >> 8);+  const SWord32 s1748 = table3[s1747];+  const SWord32 s1749 = s1746 ^ s1748;+  const SWord8  s1750 = (SWord8) s1690;+  const SWord32 s1751 = table4[s1750];+  const SWord32 s1752 = s1749 ^ s1751;+  const SWord32 s1753 = s42 ^ s1752;+  const SWord8  s1754 = (SWord8) (s1753 >> 8);+  const SWord8  s1755 = table0[s1754];+  const SWord8  s1756 = (SWord8) (s1720 >> 24);+  const SWord32 s1757 = table1[s1756];+  const SWord8  s1758 = (SWord8) (s1676 >> 16);+  const SWord32 s1759 = table2[s1758];+  const SWord32 s1760 = s1757 ^ s1759;+  const SWord8  s1761 = (SWord8) (s1690 >> 8);+  const SWord32 s1762 = table3[s1761];+  const SWord32 s1763 = s1760 ^ s1762;+  const SWord8  s1764 = (SWord8) s1705;+  const SWord32 s1765 = table4[s1764];+  const SWord32 s1766 = s1763 ^ s1765;+  const SWord32 s1767 = s41 ^ s1766;+  const SWord8  s1768 = (SWord8) s1767;+  const SWord8  s1769 = table0[s1768];+  const SWord16 s1770 = (((SWord16) s1755) << 8) | ((SWord16) s1769);+  const SWord32 s1771 = (((SWord32) s1741) << 16) | ((SWord32) s1770);+  const SWord32 s1772 = s44 ^ s1771;+  const SWord8  s1773 = (SWord8) (s1767 >> 24);+  const SWord8  s1774 = table0[s1773];+  const SWord8  s1775 = (SWord8) (s1724 >> 16);+  const SWord8  s1776 = table0[s1775];+  const SWord16 s1777 = (((SWord16) s1774) << 8) | ((SWord16) s1776);+  const SWord8  s1778 = (SWord8) (s1738 >> 8);+  const SWord8  s1779 = table0[s1778];+  const SWord8  s1780 = (SWord8) s1753;+  const SWord8  s1781 = table0[s1780];+  const SWord16 s1782 = (((SWord16) s1779) << 8) | ((SWord16) s1781);+  const SWord32 s1783 = (((SWord32) s1777) << 16) | ((SWord32) s1782);+  const SWord32 s1784 = s45 ^ s1783;+  const SWord8  s1785 = (SWord8) (s1753 >> 24);+  const SWord8  s1786 = table0[s1785];+  const SWord8  s1787 = (SWord8) (s1767 >> 16);+  const SWord8  s1788 = table0[s1787];+  const SWord16 s1789 = (((SWord16) s1786) << 8) | ((SWord16) s1788);+  const SWord8  s1790 = (SWord8) (s1724 >> 8);+  const SWord8  s1791 = table0[s1790];+  const SWord8  s1792 = (SWord8) s1738;+  const SWord8  s1793 = table0[s1792];+  const SWord16 s1794 = (((SWord16) s1791) << 8) | ((SWord16) s1793);+  const SWord32 s1795 = (((SWord32) s1789) << 16) | ((SWord32) s1794);+  const SWord32 s1796 = s46 ^ s1795;+  const SWord8  s1797 = (SWord8) (s1738 >> 24);+  const SWord8  s1798 = table0[s1797];+  const SWord8  s1799 = (SWord8) (s1753 >> 16);+  const SWord8  s1800 = table0[s1799];+  const SWord16 s1801 = (((SWord16) s1798) << 8) | ((SWord16) s1800);+  const SWord8  s1802 = (SWord8) (s1767 >> 8);+  const SWord8  s1803 = table0[s1802];+  const SWord8  s1804 = (SWord8) s1724;+  const SWord8  s1805 = table0[s1804];+  const SWord16 s1806 = (((SWord16) s1803) << 8) | ((SWord16) s1805);+  const SWord32 s1807 = (((SWord32) s1801) << 16) | ((SWord32) s1806);+  const SWord32 s1808 = s47 ^ s1807;++  pt[0] = s1772;+  pt[1] = s1784;+  pt[2] = s1796;+  pt[3] = s1808;+}+== END: "aes128BlockDecrypt.c" ==================+== BEGIN: "aes128Lib.h" ================+/* Header file for aes128Lib. Automatically generated by SBV. Do not edit! */++#ifndef __aes128Lib__HEADER_INCLUDED__+#define __aes128Lib__HEADER_INCLUDED__++#include <stdio.h>+#include <stdlib.h>+#include <inttypes.h>+#include <stdint.h>+#include <stdbool.h>+#include <string.h>+#include <math.h>++/* The boolean type */+typedef bool SBool;++/* The float type */+typedef float SFloat;++/* The double type */+typedef double SDouble;++/* Unsigned bit-vectors */+typedef uint8_t  SWord8;+typedef uint16_t SWord16;+typedef uint32_t SWord32;+typedef uint64_t SWord64;++/* Signed bit-vectors */+typedef int8_t  SInt8;+typedef int16_t SInt16;+typedef int32_t SInt32;+typedef int64_t SInt64;++/* Entry point prototypes: */+void aes128KeySchedule(const SWord32 *key, SWord32 *encKS,+                       SWord32 *decKS);+void aes128BlockEncrypt(const SWord32 *pt, const SWord32 *xkey,+                        SWord32 *ct);+void aes128BlockDecrypt(const SWord32 *ct, const SWord32 *xkey,+                        SWord32 *pt);++#endif /* __aes128Lib__HEADER_INCLUDED__ */+== END: "aes128Lib.h" ==================+== BEGIN: "aes128Lib_driver.c" ================+/* Example driver program for aes128Lib. */+/* Automatically generated by SBV. Edit as you see fit! */++#include <stdio.h>+#include "aes128Lib.h"++void aes128KeySchedule_driver(void)+{+  const SWord32 key[4] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array key:\n");+  int key_ctr;+  for(key_ctr = 0; key_ctr < 4 ; ++key_ctr)+    printf("  key[%1d] = 0x%08"PRIx32"UL\n", key_ctr ,key[key_ctr]);++  SWord32 encKS[44];+  SWord32 decKS[44];++  aes128KeySchedule(key, encKS, decKS);++  printf("aes128KeySchedule(key, encKS, decKS) ->\n");+  int encKS_ctr;+  for(encKS_ctr = 0; encKS_ctr < 44 ; ++encKS_ctr)+    printf("  encKS[%2d] = 0x%08"PRIx32"UL\n", encKS_ctr ,encKS[encKS_ctr]);+  int decKS_ctr;+  for(decKS_ctr = 0; decKS_ctr < 44 ; ++decKS_ctr)+    printf("  decKS[%2d] = 0x%08"PRIx32"UL\n", decKS_ctr ,decKS[decKS_ctr]);+}++void aes128BlockEncrypt_driver(void)+{+  const SWord32 pt[4] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array pt:\n");+  int pt_ctr;+  for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)+    printf("  pt[%1d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]);++  const SWord32 xkey[44] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array xkey:\n");+  int xkey_ctr;+  for(xkey_ctr = 0; xkey_ctr < 44 ; ++xkey_ctr)+    printf("  xkey[%2d] = 0x%08"PRIx32"UL\n", xkey_ctr ,xkey[xkey_ctr]);++  SWord32 ct[4];++  aes128BlockEncrypt(pt, xkey, ct);++  printf("aes128BlockEncrypt(pt, xkey, ct) ->\n");+  int ct_ctr;+  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)+    printf("  ct[%1d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);+}++void aes128BlockDecrypt_driver(void)+{+  const SWord32 ct[4] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array ct:\n");+  int ct_ctr;+  for(ct_ctr = 0; ct_ctr < 4 ; ++ct_ctr)+    printf("  ct[%1d] = 0x%08"PRIx32"UL\n", ct_ctr ,ct[ct_ctr]);++  const SWord32 xkey[44] = {+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL,+      0x00000000UL, 0x00000000UL, 0x00000000UL, 0x00000000UL+  };++  printf("Contents of input array xkey:\n");+  int xkey_ctr;+  for(xkey_ctr = 0; xkey_ctr < 44 ; ++xkey_ctr)+    printf("  xkey[%2d] = 0x%08"PRIx32"UL\n", xkey_ctr ,xkey[xkey_ctr]);++  SWord32 pt[4];++  aes128BlockDecrypt(ct, xkey, pt);++  printf("aes128BlockDecrypt(ct, xkey, pt) ->\n");+  int pt_ctr;+  for(pt_ctr = 0; pt_ctr < 4 ; ++pt_ctr)+    printf("  pt[%1d] = 0x%08"PRIx32"UL\n", pt_ctr ,pt[pt_ctr]); }  int main(void)
SBVTestSuite/GoldFiles/ccitt.gold view
@@ -1,1830 +1,2198 @@ INPUTS-  s0 :: SWord32-  s1 :: SWord16-  s2 :: SWord32-  s3 :: SWord16-CONSTANTS-  s13 = 0 :: Word1-  s1686 = 0 :: Word8-  s1687 = 1 :: Word8-  s1815 = 3 :: Word8-  s9 = 0 :: Word16-  s525 = 1 :: Word64-  s526 = 0 :: Word64-  s528 = 2 :: Word64-  s531 = 4 :: Word64-  s534 = 8 :: Word64-  s537 = 16 :: Word64-  s540 = 32 :: Word64-  s543 = 64 :: Word64-  s546 = 128 :: Word64-  s549 = 256 :: Word64-  s552 = 512 :: Word64-  s555 = 1024 :: Word64-  s558 = 2048 :: Word64-  s561 = 4096 :: Word64-  s564 = 8192 :: Word64-  s567 = 16384 :: Word64-  s570 = 32768 :: Word64-  s573 = 65536 :: Word64-  s576 = 131072 :: Word64-  s579 = 262144 :: Word64-  s582 = 524288 :: Word64-  s585 = 1048576 :: Word64-  s588 = 2097152 :: Word64-  s591 = 4194304 :: Word64-  s594 = 8388608 :: Word64-  s597 = 16777216 :: Word64-  s600 = 33554432 :: Word64-  s603 = 67108864 :: Word64-  s606 = 134217728 :: Word64-  s609 = 268435456 :: Word64-  s612 = 536870912 :: Word64-  s615 = 1073741824 :: Word64-  s618 = 2147483648 :: Word64-  s621 = 4294967296 :: Word64-  s624 = 8589934592 :: Word64-  s627 = 17179869184 :: Word64-  s630 = 34359738368 :: Word64-  s633 = 68719476736 :: Word64-  s636 = 137438953472 :: Word64-  s639 = 274877906944 :: Word64-  s642 = 549755813888 :: Word64-  s645 = 1099511627776 :: Word64-  s648 = 2199023255552 :: Word64-  s651 = 4398046511104 :: Word64-  s654 = 8796093022208 :: Word64-  s657 = 17592186044416 :: Word64-  s660 = 35184372088832 :: Word64-  s663 = 70368744177664 :: Word64-  s666 = 140737488355328 :: Word64-  s669 = 281474976710656 :: Word64-  s672 = 562949953421312 :: Word64-  s675 = 1125899906842624 :: Word64-  s678 = 2251799813685248 :: Word64-  s681 = 4503599627370496 :: Word64-  s684 = 9007199254740992 :: Word64-  s687 = 18014398509481984 :: Word64-  s690 = 36028797018963968 :: Word64-  s693 = 72057594037927936 :: Word64-  s696 = 144115188075855872 :: Word64-  s699 = 288230376151711744 :: Word64-  s702 = 576460752303423488 :: Word64-  s705 = 1152921504606846976 :: Word64-  s708 = 2305843009213693952 :: Word64-  s711 = 4611686018427387904 :: Word64-  s714 = 9223372036854775808 :: Word64-TABLES-ARRAYS-UNINTERPRETED CONSTANTS-USER GIVEN CODE SEGMENTS-AXIOMS-DEFINE-  s4 :: SBool = s0 == s2-  s5 :: SBool = s1 == s3-  s6 :: SBool = s4 & s5-  s7 :: SBool = ~ s6-  s8 :: SBool = ~ s7-  s10 :: SWord32 = s1 # s9-  s11 :: SWord64 = s0 # s10-  s12 :: SWord1 = choose [63:63] s11-  s14 :: SBool = s12 /= s13-  s15 :: SWord1 = choose [62:62] s11-  s16 :: SBool = s13 /= s15-  s17 :: SWord1 = choose [61:61] s11-  s18 :: SBool = s13 /= s17-  s19 :: SWord1 = choose [60:60] s11-  s20 :: SBool = s13 /= s19-  s21 :: SWord1 = choose [59:59] s11-  s22 :: SBool = s13 /= s21-  s23 :: SBool = ~ s22-  s24 :: SBool = if s14 then s23 else s22-  s25 :: SWord1 = choose [58:58] s11-  s26 :: SBool = s13 /= s25-  s27 :: SBool = ~ s26-  s28 :: SBool = if s16 then s27 else s26-  s29 :: SWord1 = choose [57:57] s11-  s30 :: SBool = s13 /= s29-  s31 :: SBool = ~ s30-  s32 :: SBool = if s18 then s31 else s30-  s33 :: SWord1 = choose [56:56] s11-  s34 :: SBool = s13 /= s33-  s35 :: SBool = ~ s34-  s36 :: SBool = if s20 then s35 else s34-  s37 :: SWord1 = choose [55:55] s11-  s38 :: SBool = s13 /= s37-  s39 :: SBool = ~ s38-  s40 :: SBool = if s24 then s39 else s38-  s41 :: SWord1 = choose [54:54] s11-  s42 :: SBool = s13 /= s41-  s43 :: SBool = ~ s42-  s44 :: SBool = if s28 then s43 else s42-  s45 :: SWord1 = choose [53:53] s11-  s46 :: SBool = s13 /= s45-  s47 :: SBool = ~ s46-  s48 :: SBool = if s32 then s47 else s46-  s49 :: SWord1 = choose [52:52] s11-  s50 :: SBool = s13 /= s49-  s51 :: SBool = ~ s50-  s52 :: SBool = if s14 then s51 else s50-  s53 :: SBool = ~ s52-  s54 :: SBool = if s36 then s53 else s52-  s55 :: SWord1 = choose [51:51] s11-  s56 :: SBool = s13 /= s55-  s57 :: SBool = ~ s56-  s58 :: SBool = if s16 then s57 else s56-  s59 :: SBool = ~ s58-  s60 :: SBool = if s40 then s59 else s58-  s61 :: SWord1 = choose [50:50] s11-  s62 :: SBool = s13 /= s61-  s63 :: SBool = ~ s62-  s64 :: SBool = if s18 then s63 else s62-  s65 :: SBool = ~ s64-  s66 :: SBool = if s44 then s65 else s64-  s67 :: SWord1 = choose [49:49] s11-  s68 :: SBool = s13 /= s67-  s69 :: SBool = ~ s68-  s70 :: SBool = if s20 then s69 else s68-  s71 :: SBool = ~ s70-  s72 :: SBool = if s48 then s71 else s70-  s73 :: SWord1 = choose [48:48] s11-  s74 :: SBool = s13 /= s73-  s75 :: SBool = ~ s74-  s76 :: SBool = if s24 then s75 else s74-  s77 :: SBool = ~ s76-  s78 :: SBool = if s54 then s77 else s76-  s79 :: SWord1 = choose [47:47] s11-  s80 :: SBool = s13 /= s79-  s81 :: SBool = ~ s80-  s82 :: SBool = if s14 then s81 else s80-  s83 :: SBool = ~ s82-  s84 :: SBool = if s28 then s83 else s82-  s85 :: SBool = ~ s84-  s86 :: SBool = if s60 then s85 else s84-  s87 :: SWord1 = choose [46:46] s11-  s88 :: SBool = s13 /= s87-  s89 :: SBool = ~ s88-  s90 :: SBool = if s16 then s89 else s88-  s91 :: SBool = ~ s90-  s92 :: SBool = if s32 then s91 else s90-  s93 :: SBool = ~ s92-  s94 :: SBool = if s66 then s93 else s92-  s95 :: SWord1 = choose [45:45] s11-  s96 :: SBool = s13 /= s95-  s97 :: SBool = ~ s96-  s98 :: SBool = if s18 then s97 else s96-  s99 :: SBool = ~ s98-  s100 :: SBool = if s36 then s99 else s98-  s101 :: SBool = ~ s100-  s102 :: SBool = if s72 then s101 else s100-  s103 :: SWord1 = choose [44:44] s11-  s104 :: SBool = s13 /= s103-  s105 :: SBool = ~ s104-  s106 :: SBool = if s20 then s105 else s104-  s107 :: SBool = ~ s106-  s108 :: SBool = if s40 then s107 else s106-  s109 :: SBool = ~ s108-  s110 :: SBool = if s78 then s109 else s108-  s111 :: SWord1 = choose [43:43] s11-  s112 :: SBool = s13 /= s111-  s113 :: SBool = ~ s112-  s114 :: SBool = if s24 then s113 else s112-  s115 :: SBool = ~ s114-  s116 :: SBool = if s44 then s115 else s114-  s117 :: SBool = ~ s116-  s118 :: SBool = if s86 then s117 else s116-  s119 :: SWord1 = choose [42:42] s11-  s120 :: SBool = s13 /= s119-  s121 :: SBool = ~ s120-  s122 :: SBool = if s28 then s121 else s120-  s123 :: SBool = ~ s122-  s124 :: SBool = if s48 then s123 else s122-  s125 :: SBool = ~ s124-  s126 :: SBool = if s94 then s125 else s124-  s127 :: SWord1 = choose [41:41] s11-  s128 :: SBool = s13 /= s127-  s129 :: SBool = ~ s128-  s130 :: SBool = if s32 then s129 else s128-  s131 :: SBool = ~ s130-  s132 :: SBool = if s54 then s131 else s130-  s133 :: SBool = ~ s132-  s134 :: SBool = if s102 then s133 else s132-  s135 :: SWord1 = choose [40:40] s11-  s136 :: SBool = s13 /= s135-  s137 :: SBool = ~ s136-  s138 :: SBool = if s36 then s137 else s136-  s139 :: SBool = ~ s138-  s140 :: SBool = if s60 then s139 else s138-  s141 :: SBool = ~ s140-  s142 :: SBool = if s110 then s141 else s140-  s143 :: SWord1 = choose [39:39] s11-  s144 :: SBool = s13 /= s143-  s145 :: SBool = ~ s144-  s146 :: SBool = if s40 then s145 else s144-  s147 :: SBool = ~ s146-  s148 :: SBool = if s66 then s147 else s146-  s149 :: SBool = ~ s148-  s150 :: SBool = if s118 then s149 else s148-  s151 :: SWord1 = choose [38:38] s11-  s152 :: SBool = s13 /= s151-  s153 :: SBool = ~ s152-  s154 :: SBool = if s44 then s153 else s152-  s155 :: SBool = ~ s154-  s156 :: SBool = if s72 then s155 else s154-  s157 :: SBool = ~ s156-  s158 :: SBool = if s126 then s157 else s156-  s159 :: SWord1 = choose [37:37] s11-  s160 :: SBool = s13 /= s159-  s161 :: SBool = ~ s160-  s162 :: SBool = if s48 then s161 else s160-  s163 :: SBool = ~ s162-  s164 :: SBool = if s78 then s163 else s162-  s165 :: SBool = ~ s164-  s166 :: SBool = if s134 then s165 else s164-  s167 :: SWord1 = choose [36:36] s11-  s168 :: SBool = s13 /= s167-  s169 :: SBool = ~ s168-  s170 :: SBool = if s54 then s169 else s168-  s171 :: SBool = ~ s170-  s172 :: SBool = if s86 then s171 else s170-  s173 :: SBool = ~ s172-  s174 :: SBool = if s142 then s173 else s172-  s175 :: SWord1 = choose [35:35] s11-  s176 :: SBool = s13 /= s175-  s177 :: SBool = ~ s176-  s178 :: SBool = if s60 then s177 else s176-  s179 :: SBool = ~ s178-  s180 :: SBool = if s94 then s179 else s178-  s181 :: SBool = ~ s180-  s182 :: SBool = if s150 then s181 else s180-  s183 :: SWord1 = choose [34:34] s11-  s184 :: SBool = s13 /= s183-  s185 :: SBool = ~ s184-  s186 :: SBool = if s66 then s185 else s184-  s187 :: SBool = ~ s186-  s188 :: SBool = if s102 then s187 else s186-  s189 :: SBool = ~ s188-  s190 :: SBool = if s158 then s189 else s188-  s191 :: SWord1 = choose [33:33] s11-  s192 :: SBool = s13 /= s191-  s193 :: SBool = ~ s192-  s194 :: SBool = if s72 then s193 else s192-  s195 :: SBool = ~ s194-  s196 :: SBool = if s110 then s195 else s194-  s197 :: SBool = ~ s196-  s198 :: SBool = if s166 then s197 else s196-  s199 :: SWord1 = choose [32:32] s11-  s200 :: SBool = s13 /= s199-  s201 :: SBool = ~ s200-  s202 :: SBool = if s78 then s201 else s200-  s203 :: SBool = ~ s202-  s204 :: SBool = if s118 then s203 else s202-  s205 :: SBool = ~ s204-  s206 :: SBool = if s174 then s205 else s204-  s207 :: SWord1 = choose [31:31] s11-  s208 :: SBool = s13 /= s207-  s209 :: SBool = ~ s208-  s210 :: SBool = if s86 then s209 else s208-  s211 :: SBool = ~ s210-  s212 :: SBool = if s126 then s211 else s210-  s213 :: SBool = ~ s212-  s214 :: SBool = if s182 then s213 else s212-  s215 :: SWord1 = choose [30:30] s11-  s216 :: SBool = s13 /= s215-  s217 :: SBool = ~ s216-  s218 :: SBool = if s94 then s217 else s216-  s219 :: SBool = ~ s218-  s220 :: SBool = if s134 then s219 else s218-  s221 :: SBool = ~ s220-  s222 :: SBool = if s190 then s221 else s220-  s223 :: SWord1 = choose [29:29] s11-  s224 :: SBool = s13 /= s223-  s225 :: SBool = ~ s224-  s226 :: SBool = if s102 then s225 else s224-  s227 :: SBool = ~ s226-  s228 :: SBool = if s142 then s227 else s226-  s229 :: SBool = ~ s228-  s230 :: SBool = if s198 then s229 else s228-  s231 :: SWord1 = choose [28:28] s11-  s232 :: SBool = s13 /= s231-  s233 :: SBool = ~ s232-  s234 :: SBool = if s110 then s233 else s232-  s235 :: SBool = ~ s234-  s236 :: SBool = if s150 then s235 else s234-  s237 :: SBool = ~ s236-  s238 :: SBool = if s206 then s237 else s236-  s239 :: SWord1 = choose [27:27] s11-  s240 :: SBool = s13 /= s239-  s241 :: SBool = ~ s240-  s242 :: SBool = if s118 then s241 else s240-  s243 :: SBool = ~ s242-  s244 :: SBool = if s158 then s243 else s242-  s245 :: SBool = ~ s244-  s246 :: SBool = if s214 then s245 else s244-  s247 :: SWord1 = choose [26:26] s11-  s248 :: SBool = s13 /= s247-  s249 :: SBool = ~ s248-  s250 :: SBool = if s126 then s249 else s248-  s251 :: SBool = ~ s250-  s252 :: SBool = if s166 then s251 else s250-  s253 :: SBool = ~ s252-  s254 :: SBool = if s222 then s253 else s252-  s255 :: SWord1 = choose [25:25] s11-  s256 :: SBool = s13 /= s255-  s257 :: SBool = ~ s256-  s258 :: SBool = if s134 then s257 else s256-  s259 :: SBool = ~ s258-  s260 :: SBool = if s174 then s259 else s258-  s261 :: SBool = ~ s260-  s262 :: SBool = if s230 then s261 else s260-  s263 :: SWord1 = choose [24:24] s11-  s264 :: SBool = s13 /= s263-  s265 :: SBool = ~ s264-  s266 :: SBool = if s142 then s265 else s264-  s267 :: SBool = ~ s266-  s268 :: SBool = if s182 then s267 else s266-  s269 :: SBool = ~ s268-  s270 :: SBool = if s238 then s269 else s268-  s271 :: SWord1 = choose [23:23] s11-  s272 :: SBool = s13 /= s271-  s273 :: SBool = ~ s272-  s274 :: SBool = if s150 then s273 else s272-  s275 :: SBool = ~ s274-  s276 :: SBool = if s190 then s275 else s274-  s277 :: SBool = ~ s276-  s278 :: SBool = if s246 then s277 else s276-  s279 :: SWord1 = choose [22:22] s11-  s280 :: SBool = s13 /= s279-  s281 :: SBool = ~ s280-  s282 :: SBool = if s158 then s281 else s280-  s283 :: SBool = ~ s282-  s284 :: SBool = if s198 then s283 else s282-  s285 :: SBool = ~ s284-  s286 :: SBool = if s254 then s285 else s284-  s287 :: SWord1 = choose [21:21] s11-  s288 :: SBool = s13 /= s287-  s289 :: SBool = ~ s288-  s290 :: SBool = if s166 then s289 else s288-  s291 :: SBool = ~ s290-  s292 :: SBool = if s206 then s291 else s290-  s293 :: SBool = ~ s292-  s294 :: SBool = if s262 then s293 else s292-  s295 :: SWord1 = choose [20:20] s11-  s296 :: SBool = s13 /= s295-  s297 :: SBool = ~ s296-  s298 :: SBool = if s174 then s297 else s296-  s299 :: SBool = ~ s298-  s300 :: SBool = if s214 then s299 else s298-  s301 :: SBool = ~ s300-  s302 :: SBool = if s270 then s301 else s300-  s303 :: SWord1 = choose [19:19] s11-  s304 :: SBool = s13 /= s303-  s305 :: SBool = ~ s304-  s306 :: SBool = if s182 then s305 else s304-  s307 :: SBool = ~ s306-  s308 :: SBool = if s222 then s307 else s306-  s309 :: SBool = ~ s308-  s310 :: SBool = if s278 then s309 else s308-  s311 :: SWord1 = choose [18:18] s11-  s312 :: SBool = s13 /= s311-  s313 :: SBool = ~ s312-  s314 :: SBool = if s190 then s313 else s312-  s315 :: SBool = ~ s314-  s316 :: SBool = if s230 then s315 else s314-  s317 :: SBool = ~ s316-  s318 :: SBool = if s286 then s317 else s316-  s319 :: SWord1 = choose [17:17] s11-  s320 :: SBool = s13 /= s319-  s321 :: SBool = ~ s320-  s322 :: SBool = if s198 then s321 else s320-  s323 :: SBool = ~ s322-  s324 :: SBool = if s238 then s323 else s322-  s325 :: SBool = ~ s324-  s326 :: SBool = if s294 then s325 else s324-  s327 :: SWord1 = choose [16:16] s11-  s328 :: SBool = s13 /= s327-  s329 :: SBool = ~ s328-  s330 :: SBool = if s206 then s329 else s328-  s331 :: SBool = ~ s330-  s332 :: SBool = if s246 then s331 else s330-  s333 :: SBool = ~ s332-  s334 :: SBool = if s302 then s333 else s332-  s335 :: SBool = ~ s14-  s336 :: SBool = if s14 then s335 else s14-  s337 :: SBool = ~ s16-  s338 :: SBool = if s16 then s337 else s16-  s339 :: SBool = ~ s18-  s340 :: SBool = if s18 then s339 else s18-  s341 :: SBool = ~ s20-  s342 :: SBool = if s20 then s341 else s20-  s343 :: SBool = ~ s24-  s344 :: SBool = if s24 then s343 else s24-  s345 :: SBool = ~ s28-  s346 :: SBool = if s28 then s345 else s28-  s347 :: SBool = ~ s32-  s348 :: SBool = if s32 then s347 else s32-  s349 :: SBool = ~ s36-  s350 :: SBool = if s36 then s349 else s36-  s351 :: SBool = ~ s40-  s352 :: SBool = if s40 then s351 else s40-  s353 :: SBool = ~ s44-  s354 :: SBool = if s44 then s353 else s44-  s355 :: SBool = ~ s48-  s356 :: SBool = if s48 then s355 else s48-  s357 :: SBool = ~ s54-  s358 :: SBool = if s54 then s357 else s54-  s359 :: SBool = ~ s60-  s360 :: SBool = if s60 then s359 else s60-  s361 :: SBool = ~ s66-  s362 :: SBool = if s66 then s361 else s66-  s363 :: SBool = ~ s72-  s364 :: SBool = if s72 then s363 else s72-  s365 :: SBool = ~ s78-  s366 :: SBool = if s78 then s365 else s78-  s367 :: SBool = ~ s86-  s368 :: SBool = if s86 then s367 else s86-  s369 :: SBool = ~ s94-  s370 :: SBool = if s94 then s369 else s94-  s371 :: SBool = ~ s102-  s372 :: SBool = if s102 then s371 else s102-  s373 :: SBool = ~ s110-  s374 :: SBool = if s110 then s373 else s110-  s375 :: SBool = ~ s118-  s376 :: SBool = if s118 then s375 else s118-  s377 :: SBool = ~ s126-  s378 :: SBool = if s126 then s377 else s126-  s379 :: SBool = ~ s134-  s380 :: SBool = if s134 then s379 else s134-  s381 :: SBool = ~ s142-  s382 :: SBool = if s142 then s381 else s142-  s383 :: SBool = ~ s150-  s384 :: SBool = if s150 then s383 else s150-  s385 :: SBool = ~ s158-  s386 :: SBool = if s158 then s385 else s158-  s387 :: SBool = ~ s166-  s388 :: SBool = if s166 then s387 else s166-  s389 :: SBool = ~ s174-  s390 :: SBool = if s174 then s389 else s174-  s391 :: SBool = ~ s182-  s392 :: SBool = if s182 then s391 else s182-  s393 :: SBool = ~ s190-  s394 :: SBool = if s190 then s393 else s190-  s395 :: SBool = ~ s198-  s396 :: SBool = if s198 then s395 else s198-  s397 :: SBool = ~ s206-  s398 :: SBool = if s206 then s397 else s206-  s399 :: SBool = ~ s214-  s400 :: SBool = if s214 then s399 else s214-  s401 :: SBool = ~ s222-  s402 :: SBool = if s222 then s401 else s222-  s403 :: SBool = ~ s230-  s404 :: SBool = if s230 then s403 else s230-  s405 :: SBool = ~ s238-  s406 :: SBool = if s238 then s405 else s238-  s407 :: SBool = ~ s246-  s408 :: SBool = if s246 then s407 else s246-  s409 :: SBool = ~ s254-  s410 :: SBool = if s254 then s409 else s254-  s411 :: SBool = ~ s262-  s412 :: SBool = if s262 then s411 else s262-  s413 :: SBool = ~ s270-  s414 :: SBool = if s270 then s413 else s270-  s415 :: SBool = ~ s278-  s416 :: SBool = if s278 then s415 else s278-  s417 :: SBool = ~ s286-  s418 :: SBool = if s286 then s417 else s286-  s419 :: SBool = ~ s294-  s420 :: SBool = if s294 then s419 else s294-  s421 :: SBool = ~ s302-  s422 :: SBool = if s302 then s421 else s302-  s423 :: SBool = ~ s310-  s424 :: SBool = if s310 then s423 else s310-  s425 :: SBool = ~ s318-  s426 :: SBool = if s318 then s425 else s318-  s427 :: SBool = ~ s326-  s428 :: SBool = if s326 then s427 else s326-  s429 :: SBool = ~ s334-  s430 :: SBool = if s334 then s429 else s334-  s431 :: SWord1 = choose [15:15] s11-  s432 :: SBool = s13 /= s431-  s433 :: SBool = ~ s432-  s434 :: SBool = if s214 then s433 else s432-  s435 :: SBool = ~ s434-  s436 :: SBool = if s254 then s435 else s434-  s437 :: SBool = ~ s436-  s438 :: SBool = if s310 then s437 else s436-  s439 :: SWord1 = choose [14:14] s11-  s440 :: SBool = s13 /= s439-  s441 :: SBool = ~ s440-  s442 :: SBool = if s222 then s441 else s440-  s443 :: SBool = ~ s442-  s444 :: SBool = if s262 then s443 else s442-  s445 :: SBool = ~ s444-  s446 :: SBool = if s318 then s445 else s444-  s447 :: SWord1 = choose [13:13] s11-  s448 :: SBool = s13 /= s447-  s449 :: SBool = ~ s448-  s450 :: SBool = if s230 then s449 else s448-  s451 :: SBool = ~ s450-  s452 :: SBool = if s270 then s451 else s450-  s453 :: SBool = ~ s452-  s454 :: SBool = if s326 then s453 else s452-  s455 :: SWord1 = choose [12:12] s11-  s456 :: SBool = s13 /= s455-  s457 :: SBool = ~ s456-  s458 :: SBool = if s238 then s457 else s456-  s459 :: SBool = ~ s458-  s460 :: SBool = if s278 then s459 else s458-  s461 :: SBool = ~ s460-  s462 :: SBool = if s334 then s461 else s460-  s463 :: SWord1 = choose [11:11] s11-  s464 :: SBool = s13 /= s463-  s465 :: SBool = ~ s464-  s466 :: SBool = if s246 then s465 else s464-  s467 :: SBool = ~ s466-  s468 :: SBool = if s286 then s467 else s466-  s469 :: SWord1 = choose [10:10] s11-  s470 :: SBool = s13 /= s469-  s471 :: SBool = ~ s470-  s472 :: SBool = if s254 then s471 else s470-  s473 :: SBool = ~ s472-  s474 :: SBool = if s294 then s473 else s472-  s475 :: SWord1 = choose [9:9] s11-  s476 :: SBool = s13 /= s475-  s477 :: SBool = ~ s476-  s478 :: SBool = if s262 then s477 else s476-  s479 :: SBool = ~ s478-  s480 :: SBool = if s302 then s479 else s478-  s481 :: SWord1 = choose [8:8] s11-  s482 :: SBool = s13 /= s481-  s483 :: SBool = ~ s482-  s484 :: SBool = if s270 then s483 else s482-  s485 :: SBool = ~ s484-  s486 :: SBool = if s310 then s485 else s484-  s487 :: SWord1 = choose [7:7] s11-  s488 :: SBool = s13 /= s487-  s489 :: SBool = ~ s488-  s490 :: SBool = if s278 then s489 else s488-  s491 :: SBool = ~ s490-  s492 :: SBool = if s318 then s491 else s490-  s493 :: SWord1 = choose [6:6] s11-  s494 :: SBool = s13 /= s493-  s495 :: SBool = ~ s494-  s496 :: SBool = if s286 then s495 else s494-  s497 :: SBool = ~ s496-  s498 :: SBool = if s326 then s497 else s496-  s499 :: SWord1 = choose [5:5] s11-  s500 :: SBool = s13 /= s499-  s501 :: SBool = ~ s500-  s502 :: SBool = if s294 then s501 else s500-  s503 :: SBool = ~ s502-  s504 :: SBool = if s334 then s503 else s502-  s505 :: SWord1 = choose [4:4] s11-  s506 :: SBool = s13 /= s505-  s507 :: SBool = ~ s506-  s508 :: SBool = if s302 then s507 else s506-  s509 :: SWord1 = choose [3:3] s11-  s510 :: SBool = s13 /= s509-  s511 :: SBool = ~ s510-  s512 :: SBool = if s310 then s511 else s510-  s513 :: SWord1 = choose [2:2] s11-  s514 :: SBool = s13 /= s513-  s515 :: SBool = ~ s514-  s516 :: SBool = if s318 then s515 else s514-  s517 :: SWord1 = choose [1:1] s11-  s518 :: SBool = s13 /= s517-  s519 :: SBool = ~ s518-  s520 :: SBool = if s326 then s519 else s518-  s521 :: SWord1 = choose [0:0] s11-  s522 :: SBool = s13 /= s521-  s523 :: SBool = ~ s522-  s524 :: SBool = if s334 then s523 else s522-  s527 :: SWord64 = if s524 then s525 else s526-  s529 :: SWord64 = s527 | s528-  s530 :: SWord64 = if s520 then s529 else s527-  s532 :: SWord64 = s530 | s531-  s533 :: SWord64 = if s516 then s532 else s530-  s535 :: SWord64 = s533 | s534-  s536 :: SWord64 = if s512 then s535 else s533-  s538 :: SWord64 = s536 | s537-  s539 :: SWord64 = if s508 then s538 else s536-  s541 :: SWord64 = s539 | s540-  s542 :: SWord64 = if s504 then s541 else s539-  s544 :: SWord64 = s542 | s543-  s545 :: SWord64 = if s498 then s544 else s542-  s547 :: SWord64 = s545 | s546-  s548 :: SWord64 = if s492 then s547 else s545-  s550 :: SWord64 = s548 | s549-  s551 :: SWord64 = if s486 then s550 else s548-  s553 :: SWord64 = s551 | s552-  s554 :: SWord64 = if s480 then s553 else s551-  s556 :: SWord64 = s554 | s555-  s557 :: SWord64 = if s474 then s556 else s554-  s559 :: SWord64 = s557 | s558-  s560 :: SWord64 = if s468 then s559 else s557-  s562 :: SWord64 = s560 | s561-  s563 :: SWord64 = if s462 then s562 else s560-  s565 :: SWord64 = s563 | s564-  s566 :: SWord64 = if s454 then s565 else s563-  s568 :: SWord64 = s566 | s567-  s569 :: SWord64 = if s446 then s568 else s566-  s571 :: SWord64 = s569 | s570-  s572 :: SWord64 = if s438 then s571 else s569-  s574 :: SWord64 = s572 | s573-  s575 :: SWord64 = if s430 then s574 else s572-  s577 :: SWord64 = s575 | s576-  s578 :: SWord64 = if s428 then s577 else s575-  s580 :: SWord64 = s578 | s579-  s581 :: SWord64 = if s426 then s580 else s578-  s583 :: SWord64 = s581 | s582-  s584 :: SWord64 = if s424 then s583 else s581-  s586 :: SWord64 = s584 | s585-  s587 :: SWord64 = if s422 then s586 else s584-  s589 :: SWord64 = s587 | s588-  s590 :: SWord64 = if s420 then s589 else s587-  s592 :: SWord64 = s590 | s591-  s593 :: SWord64 = if s418 then s592 else s590-  s595 :: SWord64 = s593 | s594-  s596 :: SWord64 = if s416 then s595 else s593-  s598 :: SWord64 = s596 | s597-  s599 :: SWord64 = if s414 then s598 else s596-  s601 :: SWord64 = s599 | s600-  s602 :: SWord64 = if s412 then s601 else s599-  s604 :: SWord64 = s602 | s603-  s605 :: SWord64 = if s410 then s604 else s602-  s607 :: SWord64 = s605 | s606-  s608 :: SWord64 = if s408 then s607 else s605-  s610 :: SWord64 = s608 | s609-  s611 :: SWord64 = if s406 then s610 else s608-  s613 :: SWord64 = s611 | s612-  s614 :: SWord64 = if s404 then s613 else s611-  s616 :: SWord64 = s614 | s615-  s617 :: SWord64 = if s402 then s616 else s614-  s619 :: SWord64 = s617 | s618-  s620 :: SWord64 = if s400 then s619 else s617-  s622 :: SWord64 = s620 | s621-  s623 :: SWord64 = if s398 then s622 else s620-  s625 :: SWord64 = s623 | s624-  s626 :: SWord64 = if s396 then s625 else s623-  s628 :: SWord64 = s626 | s627-  s629 :: SWord64 = if s394 then s628 else s626-  s631 :: SWord64 = s629 | s630-  s632 :: SWord64 = if s392 then s631 else s629-  s634 :: SWord64 = s632 | s633-  s635 :: SWord64 = if s390 then s634 else s632-  s637 :: SWord64 = s635 | s636-  s638 :: SWord64 = if s388 then s637 else s635-  s640 :: SWord64 = s638 | s639-  s641 :: SWord64 = if s386 then s640 else s638-  s643 :: SWord64 = s641 | s642-  s644 :: SWord64 = if s384 then s643 else s641-  s646 :: SWord64 = s644 | s645-  s647 :: SWord64 = if s382 then s646 else s644-  s649 :: SWord64 = s647 | s648-  s650 :: SWord64 = if s380 then s649 else s647-  s652 :: SWord64 = s650 | s651-  s653 :: SWord64 = if s378 then s652 else s650-  s655 :: SWord64 = s653 | s654-  s656 :: SWord64 = if s376 then s655 else s653-  s658 :: SWord64 = s656 | s657-  s659 :: SWord64 = if s374 then s658 else s656-  s661 :: SWord64 = s659 | s660-  s662 :: SWord64 = if s372 then s661 else s659-  s664 :: SWord64 = s662 | s663-  s665 :: SWord64 = if s370 then s664 else s662-  s667 :: SWord64 = s665 | s666-  s668 :: SWord64 = if s368 then s667 else s665-  s670 :: SWord64 = s668 | s669-  s671 :: SWord64 = if s366 then s670 else s668-  s673 :: SWord64 = s671 | s672-  s674 :: SWord64 = if s364 then s673 else s671-  s676 :: SWord64 = s674 | s675-  s677 :: SWord64 = if s362 then s676 else s674-  s679 :: SWord64 = s677 | s678-  s680 :: SWord64 = if s360 then s679 else s677-  s682 :: SWord64 = s680 | s681-  s683 :: SWord64 = if s358 then s682 else s680-  s685 :: SWord64 = s683 | s684-  s686 :: SWord64 = if s356 then s685 else s683-  s688 :: SWord64 = s686 | s687-  s689 :: SWord64 = if s354 then s688 else s686-  s691 :: SWord64 = s689 | s690-  s692 :: SWord64 = if s352 then s691 else s689-  s694 :: SWord64 = s692 | s693-  s695 :: SWord64 = if s350 then s694 else s692-  s697 :: SWord64 = s695 | s696-  s698 :: SWord64 = if s348 then s697 else s695-  s700 :: SWord64 = s698 | s699-  s701 :: SWord64 = if s346 then s700 else s698-  s703 :: SWord64 = s701 | s702-  s704 :: SWord64 = if s344 then s703 else s701-  s706 :: SWord64 = s704 | s705-  s707 :: SWord64 = if s342 then s706 else s704-  s709 :: SWord64 = s707 | s708-  s710 :: SWord64 = if s340 then s709 else s707-  s712 :: SWord64 = s710 | s711-  s713 :: SWord64 = if s338 then s712 else s710-  s715 :: SWord64 = s713 | s714-  s716 :: SWord64 = if s336 then s715 else s713-  s717 :: SWord32 = choose [31:0] s716-  s718 :: SWord16 = choose [15:0] s717-  s719 :: SWord32 = s1 # s718-  s720 :: SWord64 = s0 # s719-  s721 :: SWord1 = choose [0:0] s720-  s722 :: SBool = s13 /= s721-  s723 :: SWord32 = s3 # s9-  s724 :: SWord64 = s2 # s723-  s725 :: SWord1 = choose [63:63] s724-  s726 :: SBool = s13 /= s725-  s727 :: SWord1 = choose [62:62] s724-  s728 :: SBool = s13 /= s727-  s729 :: SWord1 = choose [61:61] s724-  s730 :: SBool = s13 /= s729-  s731 :: SWord1 = choose [60:60] s724-  s732 :: SBool = s13 /= s731-  s733 :: SWord1 = choose [59:59] s724-  s734 :: SBool = s13 /= s733-  s735 :: SBool = ~ s734-  s736 :: SBool = if s726 then s735 else s734-  s737 :: SWord1 = choose [58:58] s724-  s738 :: SBool = s13 /= s737-  s739 :: SBool = ~ s738-  s740 :: SBool = if s728 then s739 else s738-  s741 :: SWord1 = choose [57:57] s724-  s742 :: SBool = s13 /= s741-  s743 :: SBool = ~ s742-  s744 :: SBool = if s730 then s743 else s742-  s745 :: SWord1 = choose [56:56] s724-  s746 :: SBool = s13 /= s745-  s747 :: SBool = ~ s746-  s748 :: SBool = if s732 then s747 else s746-  s749 :: SWord1 = choose [55:55] s724-  s750 :: SBool = s13 /= s749-  s751 :: SBool = ~ s750-  s752 :: SBool = if s736 then s751 else s750-  s753 :: SWord1 = choose [54:54] s724-  s754 :: SBool = s13 /= s753-  s755 :: SBool = ~ s754-  s756 :: SBool = if s740 then s755 else s754-  s757 :: SWord1 = choose [53:53] s724-  s758 :: SBool = s13 /= s757-  s759 :: SBool = ~ s758-  s760 :: SBool = if s744 then s759 else s758-  s761 :: SWord1 = choose [52:52] s724-  s762 :: SBool = s13 /= s761-  s763 :: SBool = ~ s762-  s764 :: SBool = if s726 then s763 else s762-  s765 :: SBool = ~ s764-  s766 :: SBool = if s748 then s765 else s764-  s767 :: SWord1 = choose [51:51] s724-  s768 :: SBool = s13 /= s767-  s769 :: SBool = ~ s768-  s770 :: SBool = if s728 then s769 else s768-  s771 :: SBool = ~ s770-  s772 :: SBool = if s752 then s771 else s770-  s773 :: SWord1 = choose [50:50] s724-  s774 :: SBool = s13 /= s773-  s775 :: SBool = ~ s774-  s776 :: SBool = if s730 then s775 else s774-  s777 :: SBool = ~ s776-  s778 :: SBool = if s756 then s777 else s776-  s779 :: SWord1 = choose [49:49] s724-  s780 :: SBool = s13 /= s779-  s781 :: SBool = ~ s780-  s782 :: SBool = if s732 then s781 else s780-  s783 :: SBool = ~ s782-  s784 :: SBool = if s760 then s783 else s782-  s785 :: SWord1 = choose [48:48] s724-  s786 :: SBool = s13 /= s785-  s787 :: SBool = ~ s786-  s788 :: SBool = if s736 then s787 else s786-  s789 :: SBool = ~ s788-  s790 :: SBool = if s766 then s789 else s788-  s791 :: SWord1 = choose [47:47] s724-  s792 :: SBool = s13 /= s791-  s793 :: SBool = ~ s792-  s794 :: SBool = if s726 then s793 else s792-  s795 :: SBool = ~ s794-  s796 :: SBool = if s740 then s795 else s794-  s797 :: SBool = ~ s796-  s798 :: SBool = if s772 then s797 else s796-  s799 :: SWord1 = choose [46:46] s724-  s800 :: SBool = s13 /= s799-  s801 :: SBool = ~ s800-  s802 :: SBool = if s728 then s801 else s800-  s803 :: SBool = ~ s802-  s804 :: SBool = if s744 then s803 else s802-  s805 :: SBool = ~ s804-  s806 :: SBool = if s778 then s805 else s804-  s807 :: SWord1 = choose [45:45] s724-  s808 :: SBool = s13 /= s807-  s809 :: SBool = ~ s808-  s810 :: SBool = if s730 then s809 else s808-  s811 :: SBool = ~ s810-  s812 :: SBool = if s748 then s811 else s810-  s813 :: SBool = ~ s812-  s814 :: SBool = if s784 then s813 else s812-  s815 :: SWord1 = choose [44:44] s724-  s816 :: SBool = s13 /= s815-  s817 :: SBool = ~ s816-  s818 :: SBool = if s732 then s817 else s816-  s819 :: SBool = ~ s818-  s820 :: SBool = if s752 then s819 else s818-  s821 :: SBool = ~ s820-  s822 :: SBool = if s790 then s821 else s820-  s823 :: SWord1 = choose [43:43] s724-  s824 :: SBool = s13 /= s823-  s825 :: SBool = ~ s824-  s826 :: SBool = if s736 then s825 else s824-  s827 :: SBool = ~ s826-  s828 :: SBool = if s756 then s827 else s826-  s829 :: SBool = ~ s828-  s830 :: SBool = if s798 then s829 else s828-  s831 :: SWord1 = choose [42:42] s724-  s832 :: SBool = s13 /= s831-  s833 :: SBool = ~ s832-  s834 :: SBool = if s740 then s833 else s832-  s835 :: SBool = ~ s834-  s836 :: SBool = if s760 then s835 else s834-  s837 :: SBool = ~ s836-  s838 :: SBool = if s806 then s837 else s836-  s839 :: SWord1 = choose [41:41] s724-  s840 :: SBool = s13 /= s839-  s841 :: SBool = ~ s840-  s842 :: SBool = if s744 then s841 else s840-  s843 :: SBool = ~ s842-  s844 :: SBool = if s766 then s843 else s842-  s845 :: SBool = ~ s844-  s846 :: SBool = if s814 then s845 else s844-  s847 :: SWord1 = choose [40:40] s724-  s848 :: SBool = s13 /= s847-  s849 :: SBool = ~ s848-  s850 :: SBool = if s748 then s849 else s848-  s851 :: SBool = ~ s850-  s852 :: SBool = if s772 then s851 else s850-  s853 :: SBool = ~ s852-  s854 :: SBool = if s822 then s853 else s852-  s855 :: SWord1 = choose [39:39] s724-  s856 :: SBool = s13 /= s855-  s857 :: SBool = ~ s856-  s858 :: SBool = if s752 then s857 else s856-  s859 :: SBool = ~ s858-  s860 :: SBool = if s778 then s859 else s858-  s861 :: SBool = ~ s860-  s862 :: SBool = if s830 then s861 else s860-  s863 :: SWord1 = choose [38:38] s724-  s864 :: SBool = s13 /= s863-  s865 :: SBool = ~ s864-  s866 :: SBool = if s756 then s865 else s864-  s867 :: SBool = ~ s866-  s868 :: SBool = if s784 then s867 else s866-  s869 :: SBool = ~ s868-  s870 :: SBool = if s838 then s869 else s868-  s871 :: SWord1 = choose [37:37] s724-  s872 :: SBool = s13 /= s871-  s873 :: SBool = ~ s872-  s874 :: SBool = if s760 then s873 else s872-  s875 :: SBool = ~ s874-  s876 :: SBool = if s790 then s875 else s874-  s877 :: SBool = ~ s876-  s878 :: SBool = if s846 then s877 else s876-  s879 :: SWord1 = choose [36:36] s724-  s880 :: SBool = s13 /= s879-  s881 :: SBool = ~ s880-  s882 :: SBool = if s766 then s881 else s880-  s883 :: SBool = ~ s882-  s884 :: SBool = if s798 then s883 else s882-  s885 :: SBool = ~ s884-  s886 :: SBool = if s854 then s885 else s884-  s887 :: SWord1 = choose [35:35] s724-  s888 :: SBool = s13 /= s887-  s889 :: SBool = ~ s888-  s890 :: SBool = if s772 then s889 else s888-  s891 :: SBool = ~ s890-  s892 :: SBool = if s806 then s891 else s890-  s893 :: SBool = ~ s892-  s894 :: SBool = if s862 then s893 else s892-  s895 :: SWord1 = choose [34:34] s724-  s896 :: SBool = s13 /= s895-  s897 :: SBool = ~ s896-  s898 :: SBool = if s778 then s897 else s896-  s899 :: SBool = ~ s898-  s900 :: SBool = if s814 then s899 else s898-  s901 :: SBool = ~ s900-  s902 :: SBool = if s870 then s901 else s900-  s903 :: SWord1 = choose [33:33] s724-  s904 :: SBool = s13 /= s903-  s905 :: SBool = ~ s904-  s906 :: SBool = if s784 then s905 else s904-  s907 :: SBool = ~ s906-  s908 :: SBool = if s822 then s907 else s906-  s909 :: SBool = ~ s908-  s910 :: SBool = if s878 then s909 else s908-  s911 :: SWord1 = choose [32:32] s724-  s912 :: SBool = s13 /= s911-  s913 :: SBool = ~ s912-  s914 :: SBool = if s790 then s913 else s912-  s915 :: SBool = ~ s914-  s916 :: SBool = if s830 then s915 else s914-  s917 :: SBool = ~ s916-  s918 :: SBool = if s886 then s917 else s916-  s919 :: SWord1 = choose [31:31] s724-  s920 :: SBool = s13 /= s919-  s921 :: SBool = ~ s920-  s922 :: SBool = if s798 then s921 else s920-  s923 :: SBool = ~ s922-  s924 :: SBool = if s838 then s923 else s922-  s925 :: SBool = ~ s924-  s926 :: SBool = if s894 then s925 else s924-  s927 :: SWord1 = choose [30:30] s724-  s928 :: SBool = s13 /= s927-  s929 :: SBool = ~ s928-  s930 :: SBool = if s806 then s929 else s928-  s931 :: SBool = ~ s930-  s932 :: SBool = if s846 then s931 else s930-  s933 :: SBool = ~ s932-  s934 :: SBool = if s902 then s933 else s932-  s935 :: SWord1 = choose [29:29] s724-  s936 :: SBool = s13 /= s935-  s937 :: SBool = ~ s936-  s938 :: SBool = if s814 then s937 else s936-  s939 :: SBool = ~ s938-  s940 :: SBool = if s854 then s939 else s938-  s941 :: SBool = ~ s940-  s942 :: SBool = if s910 then s941 else s940-  s943 :: SWord1 = choose [28:28] s724-  s944 :: SBool = s13 /= s943-  s945 :: SBool = ~ s944-  s946 :: SBool = if s822 then s945 else s944-  s947 :: SBool = ~ s946-  s948 :: SBool = if s862 then s947 else s946-  s949 :: SBool = ~ s948-  s950 :: SBool = if s918 then s949 else s948-  s951 :: SWord1 = choose [27:27] s724-  s952 :: SBool = s13 /= s951-  s953 :: SBool = ~ s952-  s954 :: SBool = if s830 then s953 else s952-  s955 :: SBool = ~ s954-  s956 :: SBool = if s870 then s955 else s954-  s957 :: SBool = ~ s956-  s958 :: SBool = if s926 then s957 else s956-  s959 :: SWord1 = choose [26:26] s724-  s960 :: SBool = s13 /= s959-  s961 :: SBool = ~ s960-  s962 :: SBool = if s838 then s961 else s960-  s963 :: SBool = ~ s962-  s964 :: SBool = if s878 then s963 else s962-  s965 :: SBool = ~ s964-  s966 :: SBool = if s934 then s965 else s964-  s967 :: SWord1 = choose [25:25] s724-  s968 :: SBool = s13 /= s967-  s969 :: SBool = ~ s968-  s970 :: SBool = if s846 then s969 else s968-  s971 :: SBool = ~ s970-  s972 :: SBool = if s886 then s971 else s970-  s973 :: SBool = ~ s972-  s974 :: SBool = if s942 then s973 else s972-  s975 :: SWord1 = choose [24:24] s724-  s976 :: SBool = s13 /= s975-  s977 :: SBool = ~ s976-  s978 :: SBool = if s854 then s977 else s976-  s979 :: SBool = ~ s978-  s980 :: SBool = if s894 then s979 else s978-  s981 :: SBool = ~ s980-  s982 :: SBool = if s950 then s981 else s980-  s983 :: SWord1 = choose [23:23] s724-  s984 :: SBool = s13 /= s983-  s985 :: SBool = ~ s984-  s986 :: SBool = if s862 then s985 else s984-  s987 :: SBool = ~ s986-  s988 :: SBool = if s902 then s987 else s986-  s989 :: SBool = ~ s988-  s990 :: SBool = if s958 then s989 else s988-  s991 :: SWord1 = choose [22:22] s724-  s992 :: SBool = s13 /= s991-  s993 :: SBool = ~ s992-  s994 :: SBool = if s870 then s993 else s992-  s995 :: SBool = ~ s994-  s996 :: SBool = if s910 then s995 else s994-  s997 :: SBool = ~ s996-  s998 :: SBool = if s966 then s997 else s996-  s999 :: SWord1 = choose [21:21] s724-  s1000 :: SBool = s13 /= s999-  s1001 :: SBool = ~ s1000-  s1002 :: SBool = if s878 then s1001 else s1000-  s1003 :: SBool = ~ s1002-  s1004 :: SBool = if s918 then s1003 else s1002-  s1005 :: SBool = ~ s1004-  s1006 :: SBool = if s974 then s1005 else s1004-  s1007 :: SWord1 = choose [20:20] s724-  s1008 :: SBool = s13 /= s1007-  s1009 :: SBool = ~ s1008-  s1010 :: SBool = if s886 then s1009 else s1008-  s1011 :: SBool = ~ s1010-  s1012 :: SBool = if s926 then s1011 else s1010-  s1013 :: SBool = ~ s1012-  s1014 :: SBool = if s982 then s1013 else s1012-  s1015 :: SWord1 = choose [19:19] s724-  s1016 :: SBool = s13 /= s1015-  s1017 :: SBool = ~ s1016-  s1018 :: SBool = if s894 then s1017 else s1016-  s1019 :: SBool = ~ s1018-  s1020 :: SBool = if s934 then s1019 else s1018-  s1021 :: SBool = ~ s1020-  s1022 :: SBool = if s990 then s1021 else s1020-  s1023 :: SWord1 = choose [18:18] s724-  s1024 :: SBool = s13 /= s1023-  s1025 :: SBool = ~ s1024-  s1026 :: SBool = if s902 then s1025 else s1024-  s1027 :: SBool = ~ s1026-  s1028 :: SBool = if s942 then s1027 else s1026-  s1029 :: SBool = ~ s1028-  s1030 :: SBool = if s998 then s1029 else s1028-  s1031 :: SWord1 = choose [17:17] s724-  s1032 :: SBool = s13 /= s1031-  s1033 :: SBool = ~ s1032-  s1034 :: SBool = if s910 then s1033 else s1032-  s1035 :: SBool = ~ s1034-  s1036 :: SBool = if s950 then s1035 else s1034-  s1037 :: SBool = ~ s1036-  s1038 :: SBool = if s1006 then s1037 else s1036-  s1039 :: SWord1 = choose [16:16] s724-  s1040 :: SBool = s13 /= s1039-  s1041 :: SBool = ~ s1040-  s1042 :: SBool = if s918 then s1041 else s1040-  s1043 :: SBool = ~ s1042-  s1044 :: SBool = if s958 then s1043 else s1042-  s1045 :: SBool = ~ s1044-  s1046 :: SBool = if s1014 then s1045 else s1044-  s1047 :: SBool = ~ s726-  s1048 :: SBool = if s726 then s1047 else s726-  s1049 :: SBool = ~ s728-  s1050 :: SBool = if s728 then s1049 else s728-  s1051 :: SBool = ~ s730-  s1052 :: SBool = if s730 then s1051 else s730-  s1053 :: SBool = ~ s732-  s1054 :: SBool = if s732 then s1053 else s732-  s1055 :: SBool = ~ s736-  s1056 :: SBool = if s736 then s1055 else s736-  s1057 :: SBool = ~ s740-  s1058 :: SBool = if s740 then s1057 else s740-  s1059 :: SBool = ~ s744-  s1060 :: SBool = if s744 then s1059 else s744-  s1061 :: SBool = ~ s748-  s1062 :: SBool = if s748 then s1061 else s748-  s1063 :: SBool = ~ s752-  s1064 :: SBool = if s752 then s1063 else s752-  s1065 :: SBool = ~ s756-  s1066 :: SBool = if s756 then s1065 else s756-  s1067 :: SBool = ~ s760-  s1068 :: SBool = if s760 then s1067 else s760-  s1069 :: SBool = ~ s766-  s1070 :: SBool = if s766 then s1069 else s766-  s1071 :: SBool = ~ s772-  s1072 :: SBool = if s772 then s1071 else s772-  s1073 :: SBool = ~ s778-  s1074 :: SBool = if s778 then s1073 else s778-  s1075 :: SBool = ~ s784-  s1076 :: SBool = if s784 then s1075 else s784-  s1077 :: SBool = ~ s790-  s1078 :: SBool = if s790 then s1077 else s790-  s1079 :: SBool = ~ s798-  s1080 :: SBool = if s798 then s1079 else s798-  s1081 :: SBool = ~ s806-  s1082 :: SBool = if s806 then s1081 else s806-  s1083 :: SBool = ~ s814-  s1084 :: SBool = if s814 then s1083 else s814-  s1085 :: SBool = ~ s822-  s1086 :: SBool = if s822 then s1085 else s822-  s1087 :: SBool = ~ s830-  s1088 :: SBool = if s830 then s1087 else s830-  s1089 :: SBool = ~ s838-  s1090 :: SBool = if s838 then s1089 else s838-  s1091 :: SBool = ~ s846-  s1092 :: SBool = if s846 then s1091 else s846-  s1093 :: SBool = ~ s854-  s1094 :: SBool = if s854 then s1093 else s854-  s1095 :: SBool = ~ s862-  s1096 :: SBool = if s862 then s1095 else s862-  s1097 :: SBool = ~ s870-  s1098 :: SBool = if s870 then s1097 else s870-  s1099 :: SBool = ~ s878-  s1100 :: SBool = if s878 then s1099 else s878-  s1101 :: SBool = ~ s886-  s1102 :: SBool = if s886 then s1101 else s886-  s1103 :: SBool = ~ s894-  s1104 :: SBool = if s894 then s1103 else s894-  s1105 :: SBool = ~ s902-  s1106 :: SBool = if s902 then s1105 else s902-  s1107 :: SBool = ~ s910-  s1108 :: SBool = if s910 then s1107 else s910-  s1109 :: SBool = ~ s918-  s1110 :: SBool = if s918 then s1109 else s918-  s1111 :: SBool = ~ s926-  s1112 :: SBool = if s926 then s1111 else s926-  s1113 :: SBool = ~ s934-  s1114 :: SBool = if s934 then s1113 else s934-  s1115 :: SBool = ~ s942-  s1116 :: SBool = if s942 then s1115 else s942-  s1117 :: SBool = ~ s950-  s1118 :: SBool = if s950 then s1117 else s950-  s1119 :: SBool = ~ s958-  s1120 :: SBool = if s958 then s1119 else s958-  s1121 :: SBool = ~ s966-  s1122 :: SBool = if s966 then s1121 else s966-  s1123 :: SBool = ~ s974-  s1124 :: SBool = if s974 then s1123 else s974-  s1125 :: SBool = ~ s982-  s1126 :: SBool = if s982 then s1125 else s982-  s1127 :: SBool = ~ s990-  s1128 :: SBool = if s990 then s1127 else s990-  s1129 :: SBool = ~ s998-  s1130 :: SBool = if s998 then s1129 else s998-  s1131 :: SBool = ~ s1006-  s1132 :: SBool = if s1006 then s1131 else s1006-  s1133 :: SBool = ~ s1014-  s1134 :: SBool = if s1014 then s1133 else s1014-  s1135 :: SBool = ~ s1022-  s1136 :: SBool = if s1022 then s1135 else s1022-  s1137 :: SBool = ~ s1030-  s1138 :: SBool = if s1030 then s1137 else s1030-  s1139 :: SBool = ~ s1038-  s1140 :: SBool = if s1038 then s1139 else s1038-  s1141 :: SBool = ~ s1046-  s1142 :: SBool = if s1046 then s1141 else s1046-  s1143 :: SWord1 = choose [15:15] s724-  s1144 :: SBool = s13 /= s1143-  s1145 :: SBool = ~ s1144-  s1146 :: SBool = if s926 then s1145 else s1144-  s1147 :: SBool = ~ s1146-  s1148 :: SBool = if s966 then s1147 else s1146-  s1149 :: SBool = ~ s1148-  s1150 :: SBool = if s1022 then s1149 else s1148-  s1151 :: SWord1 = choose [14:14] s724-  s1152 :: SBool = s13 /= s1151-  s1153 :: SBool = ~ s1152-  s1154 :: SBool = if s934 then s1153 else s1152-  s1155 :: SBool = ~ s1154-  s1156 :: SBool = if s974 then s1155 else s1154-  s1157 :: SBool = ~ s1156-  s1158 :: SBool = if s1030 then s1157 else s1156-  s1159 :: SWord1 = choose [13:13] s724-  s1160 :: SBool = s13 /= s1159-  s1161 :: SBool = ~ s1160-  s1162 :: SBool = if s942 then s1161 else s1160-  s1163 :: SBool = ~ s1162-  s1164 :: SBool = if s982 then s1163 else s1162-  s1165 :: SBool = ~ s1164-  s1166 :: SBool = if s1038 then s1165 else s1164-  s1167 :: SWord1 = choose [12:12] s724-  s1168 :: SBool = s13 /= s1167-  s1169 :: SBool = ~ s1168-  s1170 :: SBool = if s950 then s1169 else s1168-  s1171 :: SBool = ~ s1170-  s1172 :: SBool = if s990 then s1171 else s1170-  s1173 :: SBool = ~ s1172-  s1174 :: SBool = if s1046 then s1173 else s1172-  s1175 :: SWord1 = choose [11:11] s724-  s1176 :: SBool = s13 /= s1175-  s1177 :: SBool = ~ s1176-  s1178 :: SBool = if s958 then s1177 else s1176-  s1179 :: SBool = ~ s1178-  s1180 :: SBool = if s998 then s1179 else s1178-  s1181 :: SWord1 = choose [10:10] s724-  s1182 :: SBool = s13 /= s1181-  s1183 :: SBool = ~ s1182-  s1184 :: SBool = if s966 then s1183 else s1182-  s1185 :: SBool = ~ s1184-  s1186 :: SBool = if s1006 then s1185 else s1184-  s1187 :: SWord1 = choose [9:9] s724-  s1188 :: SBool = s13 /= s1187-  s1189 :: SBool = ~ s1188-  s1190 :: SBool = if s974 then s1189 else s1188-  s1191 :: SBool = ~ s1190-  s1192 :: SBool = if s1014 then s1191 else s1190-  s1193 :: SWord1 = choose [8:8] s724-  s1194 :: SBool = s13 /= s1193-  s1195 :: SBool = ~ s1194-  s1196 :: SBool = if s982 then s1195 else s1194-  s1197 :: SBool = ~ s1196-  s1198 :: SBool = if s1022 then s1197 else s1196-  s1199 :: SWord1 = choose [7:7] s724-  s1200 :: SBool = s13 /= s1199-  s1201 :: SBool = ~ s1200-  s1202 :: SBool = if s990 then s1201 else s1200-  s1203 :: SBool = ~ s1202-  s1204 :: SBool = if s1030 then s1203 else s1202-  s1205 :: SWord1 = choose [6:6] s724-  s1206 :: SBool = s13 /= s1205-  s1207 :: SBool = ~ s1206-  s1208 :: SBool = if s998 then s1207 else s1206-  s1209 :: SBool = ~ s1208-  s1210 :: SBool = if s1038 then s1209 else s1208-  s1211 :: SWord1 = choose [5:5] s724-  s1212 :: SBool = s13 /= s1211-  s1213 :: SBool = ~ s1212-  s1214 :: SBool = if s1006 then s1213 else s1212-  s1215 :: SBool = ~ s1214-  s1216 :: SBool = if s1046 then s1215 else s1214-  s1217 :: SWord1 = choose [4:4] s724-  s1218 :: SBool = s13 /= s1217-  s1219 :: SBool = ~ s1218-  s1220 :: SBool = if s1014 then s1219 else s1218-  s1221 :: SWord1 = choose [3:3] s724-  s1222 :: SBool = s13 /= s1221-  s1223 :: SBool = ~ s1222-  s1224 :: SBool = if s1022 then s1223 else s1222-  s1225 :: SWord1 = choose [2:2] s724-  s1226 :: SBool = s13 /= s1225-  s1227 :: SBool = ~ s1226-  s1228 :: SBool = if s1030 then s1227 else s1226-  s1229 :: SWord1 = choose [1:1] s724-  s1230 :: SBool = s13 /= s1229-  s1231 :: SBool = ~ s1230-  s1232 :: SBool = if s1038 then s1231 else s1230-  s1233 :: SWord1 = choose [0:0] s724-  s1234 :: SBool = s13 /= s1233-  s1235 :: SBool = ~ s1234-  s1236 :: SBool = if s1046 then s1235 else s1234-  s1237 :: SWord64 = if s1236 then s525 else s526-  s1238 :: SWord64 = s528 | s1237-  s1239 :: SWord64 = if s1232 then s1238 else s1237-  s1240 :: SWord64 = s531 | s1239-  s1241 :: SWord64 = if s1228 then s1240 else s1239-  s1242 :: SWord64 = s534 | s1241-  s1243 :: SWord64 = if s1224 then s1242 else s1241-  s1244 :: SWord64 = s537 | s1243-  s1245 :: SWord64 = if s1220 then s1244 else s1243-  s1246 :: SWord64 = s540 | s1245-  s1247 :: SWord64 = if s1216 then s1246 else s1245-  s1248 :: SWord64 = s543 | s1247-  s1249 :: SWord64 = if s1210 then s1248 else s1247-  s1250 :: SWord64 = s546 | s1249-  s1251 :: SWord64 = if s1204 then s1250 else s1249-  s1252 :: SWord64 = s549 | s1251-  s1253 :: SWord64 = if s1198 then s1252 else s1251-  s1254 :: SWord64 = s552 | s1253-  s1255 :: SWord64 = if s1192 then s1254 else s1253-  s1256 :: SWord64 = s555 | s1255-  s1257 :: SWord64 = if s1186 then s1256 else s1255-  s1258 :: SWord64 = s558 | s1257-  s1259 :: SWord64 = if s1180 then s1258 else s1257-  s1260 :: SWord64 = s561 | s1259-  s1261 :: SWord64 = if s1174 then s1260 else s1259-  s1262 :: SWord64 = s564 | s1261-  s1263 :: SWord64 = if s1166 then s1262 else s1261-  s1264 :: SWord64 = s567 | s1263-  s1265 :: SWord64 = if s1158 then s1264 else s1263-  s1266 :: SWord64 = s570 | s1265-  s1267 :: SWord64 = if s1150 then s1266 else s1265-  s1268 :: SWord64 = s573 | s1267-  s1269 :: SWord64 = if s1142 then s1268 else s1267-  s1270 :: SWord64 = s576 | s1269-  s1271 :: SWord64 = if s1140 then s1270 else s1269-  s1272 :: SWord64 = s579 | s1271-  s1273 :: SWord64 = if s1138 then s1272 else s1271-  s1274 :: SWord64 = s582 | s1273-  s1275 :: SWord64 = if s1136 then s1274 else s1273-  s1276 :: SWord64 = s585 | s1275-  s1277 :: SWord64 = if s1134 then s1276 else s1275-  s1278 :: SWord64 = s588 | s1277-  s1279 :: SWord64 = if s1132 then s1278 else s1277-  s1280 :: SWord64 = s591 | s1279-  s1281 :: SWord64 = if s1130 then s1280 else s1279-  s1282 :: SWord64 = s594 | s1281-  s1283 :: SWord64 = if s1128 then s1282 else s1281-  s1284 :: SWord64 = s597 | s1283-  s1285 :: SWord64 = if s1126 then s1284 else s1283-  s1286 :: SWord64 = s600 | s1285-  s1287 :: SWord64 = if s1124 then s1286 else s1285-  s1288 :: SWord64 = s603 | s1287-  s1289 :: SWord64 = if s1122 then s1288 else s1287-  s1290 :: SWord64 = s606 | s1289-  s1291 :: SWord64 = if s1120 then s1290 else s1289-  s1292 :: SWord64 = s609 | s1291-  s1293 :: SWord64 = if s1118 then s1292 else s1291-  s1294 :: SWord64 = s612 | s1293-  s1295 :: SWord64 = if s1116 then s1294 else s1293-  s1296 :: SWord64 = s615 | s1295-  s1297 :: SWord64 = if s1114 then s1296 else s1295-  s1298 :: SWord64 = s618 | s1297-  s1299 :: SWord64 = if s1112 then s1298 else s1297-  s1300 :: SWord64 = s621 | s1299-  s1301 :: SWord64 = if s1110 then s1300 else s1299-  s1302 :: SWord64 = s624 | s1301-  s1303 :: SWord64 = if s1108 then s1302 else s1301-  s1304 :: SWord64 = s627 | s1303-  s1305 :: SWord64 = if s1106 then s1304 else s1303-  s1306 :: SWord64 = s630 | s1305-  s1307 :: SWord64 = if s1104 then s1306 else s1305-  s1308 :: SWord64 = s633 | s1307-  s1309 :: SWord64 = if s1102 then s1308 else s1307-  s1310 :: SWord64 = s636 | s1309-  s1311 :: SWord64 = if s1100 then s1310 else s1309-  s1312 :: SWord64 = s639 | s1311-  s1313 :: SWord64 = if s1098 then s1312 else s1311-  s1314 :: SWord64 = s642 | s1313-  s1315 :: SWord64 = if s1096 then s1314 else s1313-  s1316 :: SWord64 = s645 | s1315-  s1317 :: SWord64 = if s1094 then s1316 else s1315-  s1318 :: SWord64 = s648 | s1317-  s1319 :: SWord64 = if s1092 then s1318 else s1317-  s1320 :: SWord64 = s651 | s1319-  s1321 :: SWord64 = if s1090 then s1320 else s1319-  s1322 :: SWord64 = s654 | s1321-  s1323 :: SWord64 = if s1088 then s1322 else s1321-  s1324 :: SWord64 = s657 | s1323-  s1325 :: SWord64 = if s1086 then s1324 else s1323-  s1326 :: SWord64 = s660 | s1325-  s1327 :: SWord64 = if s1084 then s1326 else s1325-  s1328 :: SWord64 = s663 | s1327-  s1329 :: SWord64 = if s1082 then s1328 else s1327-  s1330 :: SWord64 = s666 | s1329-  s1331 :: SWord64 = if s1080 then s1330 else s1329-  s1332 :: SWord64 = s669 | s1331-  s1333 :: SWord64 = if s1078 then s1332 else s1331-  s1334 :: SWord64 = s672 | s1333-  s1335 :: SWord64 = if s1076 then s1334 else s1333-  s1336 :: SWord64 = s675 | s1335-  s1337 :: SWord64 = if s1074 then s1336 else s1335-  s1338 :: SWord64 = s678 | s1337-  s1339 :: SWord64 = if s1072 then s1338 else s1337-  s1340 :: SWord64 = s681 | s1339-  s1341 :: SWord64 = if s1070 then s1340 else s1339-  s1342 :: SWord64 = s684 | s1341-  s1343 :: SWord64 = if s1068 then s1342 else s1341-  s1344 :: SWord64 = s687 | s1343-  s1345 :: SWord64 = if s1066 then s1344 else s1343-  s1346 :: SWord64 = s690 | s1345-  s1347 :: SWord64 = if s1064 then s1346 else s1345-  s1348 :: SWord64 = s693 | s1347-  s1349 :: SWord64 = if s1062 then s1348 else s1347-  s1350 :: SWord64 = s696 | s1349-  s1351 :: SWord64 = if s1060 then s1350 else s1349-  s1352 :: SWord64 = s699 | s1351-  s1353 :: SWord64 = if s1058 then s1352 else s1351-  s1354 :: SWord64 = s702 | s1353-  s1355 :: SWord64 = if s1056 then s1354 else s1353-  s1356 :: SWord64 = s705 | s1355-  s1357 :: SWord64 = if s1054 then s1356 else s1355-  s1358 :: SWord64 = s708 | s1357-  s1359 :: SWord64 = if s1052 then s1358 else s1357-  s1360 :: SWord64 = s711 | s1359-  s1361 :: SWord64 = if s1050 then s1360 else s1359-  s1362 :: SWord64 = s714 | s1361-  s1363 :: SWord64 = if s1048 then s1362 else s1361-  s1364 :: SWord32 = choose [31:0] s1363-  s1365 :: SWord16 = choose [15:0] s1364-  s1366 :: SWord32 = s3 # s1365-  s1367 :: SWord64 = s2 # s1366-  s1368 :: SWord1 = choose [0:0] s1367-  s1369 :: SBool = s13 /= s1368-  s1370 :: SBool = s722 == s1369-  s1371 :: SWord1 = choose [1:1] s720-  s1372 :: SBool = s13 /= s1371-  s1373 :: SWord1 = choose [1:1] s1367-  s1374 :: SBool = s13 /= s1373-  s1375 :: SBool = s1372 == s1374-  s1376 :: SWord1 = choose [2:2] s720-  s1377 :: SBool = s13 /= s1376-  s1378 :: SWord1 = choose [2:2] s1367-  s1379 :: SBool = s13 /= s1378-  s1380 :: SBool = s1377 == s1379-  s1381 :: SWord1 = choose [3:3] s720-  s1382 :: SBool = s13 /= s1381-  s1383 :: SWord1 = choose [3:3] s1367-  s1384 :: SBool = s13 /= s1383-  s1385 :: SBool = s1382 == s1384-  s1386 :: SWord1 = choose [4:4] s720-  s1387 :: SBool = s13 /= s1386-  s1388 :: SWord1 = choose [4:4] s1367-  s1389 :: SBool = s13 /= s1388-  s1390 :: SBool = s1387 == s1389-  s1391 :: SWord1 = choose [5:5] s720-  s1392 :: SBool = s13 /= s1391-  s1393 :: SWord1 = choose [5:5] s1367-  s1394 :: SBool = s13 /= s1393-  s1395 :: SBool = s1392 == s1394-  s1396 :: SWord1 = choose [6:6] s720-  s1397 :: SBool = s13 /= s1396-  s1398 :: SWord1 = choose [6:6] s1367-  s1399 :: SBool = s13 /= s1398-  s1400 :: SBool = s1397 == s1399-  s1401 :: SWord1 = choose [7:7] s720-  s1402 :: SBool = s13 /= s1401-  s1403 :: SWord1 = choose [7:7] s1367-  s1404 :: SBool = s13 /= s1403-  s1405 :: SBool = s1402 == s1404-  s1406 :: SWord1 = choose [8:8] s720-  s1407 :: SBool = s13 /= s1406-  s1408 :: SWord1 = choose [8:8] s1367-  s1409 :: SBool = s13 /= s1408-  s1410 :: SBool = s1407 == s1409-  s1411 :: SWord1 = choose [9:9] s720-  s1412 :: SBool = s13 /= s1411-  s1413 :: SWord1 = choose [9:9] s1367-  s1414 :: SBool = s13 /= s1413-  s1415 :: SBool = s1412 == s1414-  s1416 :: SWord1 = choose [10:10] s720-  s1417 :: SBool = s13 /= s1416-  s1418 :: SWord1 = choose [10:10] s1367-  s1419 :: SBool = s13 /= s1418-  s1420 :: SBool = s1417 == s1419-  s1421 :: SWord1 = choose [11:11] s720-  s1422 :: SBool = s13 /= s1421-  s1423 :: SWord1 = choose [11:11] s1367-  s1424 :: SBool = s13 /= s1423-  s1425 :: SBool = s1422 == s1424-  s1426 :: SWord1 = choose [12:12] s720-  s1427 :: SBool = s13 /= s1426-  s1428 :: SWord1 = choose [12:12] s1367-  s1429 :: SBool = s13 /= s1428-  s1430 :: SBool = s1427 == s1429-  s1431 :: SWord1 = choose [13:13] s720-  s1432 :: SBool = s13 /= s1431-  s1433 :: SWord1 = choose [13:13] s1367-  s1434 :: SBool = s13 /= s1433-  s1435 :: SBool = s1432 == s1434-  s1436 :: SWord1 = choose [14:14] s720-  s1437 :: SBool = s13 /= s1436-  s1438 :: SWord1 = choose [14:14] s1367-  s1439 :: SBool = s13 /= s1438-  s1440 :: SBool = s1437 == s1439-  s1441 :: SWord1 = choose [15:15] s720-  s1442 :: SBool = s13 /= s1441-  s1443 :: SWord1 = choose [15:15] s1367-  s1444 :: SBool = s13 /= s1443-  s1445 :: SBool = s1442 == s1444-  s1446 :: SWord1 = choose [16:16] s720-  s1447 :: SBool = s13 /= s1446-  s1448 :: SWord1 = choose [16:16] s1367-  s1449 :: SBool = s13 /= s1448-  s1450 :: SBool = s1447 == s1449-  s1451 :: SWord1 = choose [17:17] s720-  s1452 :: SBool = s13 /= s1451-  s1453 :: SWord1 = choose [17:17] s1367-  s1454 :: SBool = s13 /= s1453-  s1455 :: SBool = s1452 == s1454-  s1456 :: SWord1 = choose [18:18] s720-  s1457 :: SBool = s13 /= s1456-  s1458 :: SWord1 = choose [18:18] s1367-  s1459 :: SBool = s13 /= s1458-  s1460 :: SBool = s1457 == s1459-  s1461 :: SWord1 = choose [19:19] s720-  s1462 :: SBool = s13 /= s1461-  s1463 :: SWord1 = choose [19:19] s1367-  s1464 :: SBool = s13 /= s1463-  s1465 :: SBool = s1462 == s1464-  s1466 :: SWord1 = choose [20:20] s720-  s1467 :: SBool = s13 /= s1466-  s1468 :: SWord1 = choose [20:20] s1367-  s1469 :: SBool = s13 /= s1468-  s1470 :: SBool = s1467 == s1469-  s1471 :: SWord1 = choose [21:21] s720-  s1472 :: SBool = s13 /= s1471-  s1473 :: SWord1 = choose [21:21] s1367-  s1474 :: SBool = s13 /= s1473-  s1475 :: SBool = s1472 == s1474-  s1476 :: SWord1 = choose [22:22] s720-  s1477 :: SBool = s13 /= s1476-  s1478 :: SWord1 = choose [22:22] s1367-  s1479 :: SBool = s13 /= s1478-  s1480 :: SBool = s1477 == s1479-  s1481 :: SWord1 = choose [23:23] s720-  s1482 :: SBool = s13 /= s1481-  s1483 :: SWord1 = choose [23:23] s1367-  s1484 :: SBool = s13 /= s1483-  s1485 :: SBool = s1482 == s1484-  s1486 :: SWord1 = choose [24:24] s720-  s1487 :: SBool = s13 /= s1486-  s1488 :: SWord1 = choose [24:24] s1367-  s1489 :: SBool = s13 /= s1488-  s1490 :: SBool = s1487 == s1489-  s1491 :: SWord1 = choose [25:25] s720-  s1492 :: SBool = s13 /= s1491-  s1493 :: SWord1 = choose [25:25] s1367-  s1494 :: SBool = s13 /= s1493-  s1495 :: SBool = s1492 == s1494-  s1496 :: SWord1 = choose [26:26] s720-  s1497 :: SBool = s13 /= s1496-  s1498 :: SWord1 = choose [26:26] s1367-  s1499 :: SBool = s13 /= s1498-  s1500 :: SBool = s1497 == s1499-  s1501 :: SWord1 = choose [27:27] s720-  s1502 :: SBool = s13 /= s1501-  s1503 :: SWord1 = choose [27:27] s1367-  s1504 :: SBool = s13 /= s1503-  s1505 :: SBool = s1502 == s1504-  s1506 :: SWord1 = choose [28:28] s720-  s1507 :: SBool = s13 /= s1506-  s1508 :: SWord1 = choose [28:28] s1367-  s1509 :: SBool = s13 /= s1508-  s1510 :: SBool = s1507 == s1509-  s1511 :: SWord1 = choose [29:29] s720-  s1512 :: SBool = s13 /= s1511-  s1513 :: SWord1 = choose [29:29] s1367-  s1514 :: SBool = s13 /= s1513-  s1515 :: SBool = s1512 == s1514-  s1516 :: SWord1 = choose [30:30] s720-  s1517 :: SBool = s13 /= s1516-  s1518 :: SWord1 = choose [30:30] s1367-  s1519 :: SBool = s13 /= s1518-  s1520 :: SBool = s1517 == s1519-  s1521 :: SWord1 = choose [31:31] s720-  s1522 :: SBool = s13 /= s1521-  s1523 :: SWord1 = choose [31:31] s1367-  s1524 :: SBool = s13 /= s1523-  s1525 :: SBool = s1522 == s1524-  s1526 :: SWord1 = choose [32:32] s720-  s1527 :: SBool = s13 /= s1526-  s1528 :: SWord1 = choose [32:32] s1367-  s1529 :: SBool = s13 /= s1528-  s1530 :: SBool = s1527 == s1529-  s1531 :: SWord1 = choose [33:33] s720-  s1532 :: SBool = s13 /= s1531-  s1533 :: SWord1 = choose [33:33] s1367-  s1534 :: SBool = s13 /= s1533-  s1535 :: SBool = s1532 == s1534-  s1536 :: SWord1 = choose [34:34] s720-  s1537 :: SBool = s13 /= s1536-  s1538 :: SWord1 = choose [34:34] s1367-  s1539 :: SBool = s13 /= s1538-  s1540 :: SBool = s1537 == s1539-  s1541 :: SWord1 = choose [35:35] s720-  s1542 :: SBool = s13 /= s1541-  s1543 :: SWord1 = choose [35:35] s1367-  s1544 :: SBool = s13 /= s1543-  s1545 :: SBool = s1542 == s1544-  s1546 :: SWord1 = choose [36:36] s720-  s1547 :: SBool = s13 /= s1546-  s1548 :: SWord1 = choose [36:36] s1367-  s1549 :: SBool = s13 /= s1548-  s1550 :: SBool = s1547 == s1549-  s1551 :: SWord1 = choose [37:37] s720-  s1552 :: SBool = s13 /= s1551-  s1553 :: SWord1 = choose [37:37] s1367-  s1554 :: SBool = s13 /= s1553-  s1555 :: SBool = s1552 == s1554-  s1556 :: SWord1 = choose [38:38] s720-  s1557 :: SBool = s13 /= s1556-  s1558 :: SWord1 = choose [38:38] s1367-  s1559 :: SBool = s13 /= s1558-  s1560 :: SBool = s1557 == s1559-  s1561 :: SWord1 = choose [39:39] s720-  s1562 :: SBool = s13 /= s1561-  s1563 :: SWord1 = choose [39:39] s1367-  s1564 :: SBool = s13 /= s1563-  s1565 :: SBool = s1562 == s1564-  s1566 :: SWord1 = choose [40:40] s720-  s1567 :: SBool = s13 /= s1566-  s1568 :: SWord1 = choose [40:40] s1367-  s1569 :: SBool = s13 /= s1568-  s1570 :: SBool = s1567 == s1569-  s1571 :: SWord1 = choose [41:41] s720-  s1572 :: SBool = s13 /= s1571-  s1573 :: SWord1 = choose [41:41] s1367-  s1574 :: SBool = s13 /= s1573-  s1575 :: SBool = s1572 == s1574-  s1576 :: SWord1 = choose [42:42] s720-  s1577 :: SBool = s13 /= s1576-  s1578 :: SWord1 = choose [42:42] s1367-  s1579 :: SBool = s13 /= s1578-  s1580 :: SBool = s1577 == s1579-  s1581 :: SWord1 = choose [43:43] s720-  s1582 :: SBool = s13 /= s1581-  s1583 :: SWord1 = choose [43:43] s1367-  s1584 :: SBool = s13 /= s1583-  s1585 :: SBool = s1582 == s1584-  s1586 :: SWord1 = choose [44:44] s720-  s1587 :: SBool = s13 /= s1586-  s1588 :: SWord1 = choose [44:44] s1367-  s1589 :: SBool = s13 /= s1588-  s1590 :: SBool = s1587 == s1589-  s1591 :: SWord1 = choose [45:45] s720-  s1592 :: SBool = s13 /= s1591-  s1593 :: SWord1 = choose [45:45] s1367-  s1594 :: SBool = s13 /= s1593-  s1595 :: SBool = s1592 == s1594-  s1596 :: SWord1 = choose [46:46] s720-  s1597 :: SBool = s13 /= s1596-  s1598 :: SWord1 = choose [46:46] s1367-  s1599 :: SBool = s13 /= s1598-  s1600 :: SBool = s1597 == s1599-  s1601 :: SWord1 = choose [47:47] s720-  s1602 :: SBool = s13 /= s1601-  s1603 :: SWord1 = choose [47:47] s1367-  s1604 :: SBool = s13 /= s1603-  s1605 :: SBool = s1602 == s1604-  s1606 :: SWord1 = choose [48:48] s720-  s1607 :: SBool = s13 /= s1606-  s1608 :: SWord1 = choose [48:48] s1367-  s1609 :: SBool = s13 /= s1608-  s1610 :: SBool = s1607 == s1609-  s1611 :: SWord1 = choose [49:49] s720-  s1612 :: SBool = s13 /= s1611-  s1613 :: SWord1 = choose [49:49] s1367-  s1614 :: SBool = s13 /= s1613-  s1615 :: SBool = s1612 == s1614-  s1616 :: SWord1 = choose [50:50] s720-  s1617 :: SBool = s13 /= s1616-  s1618 :: SWord1 = choose [50:50] s1367-  s1619 :: SBool = s13 /= s1618-  s1620 :: SBool = s1617 == s1619-  s1621 :: SWord1 = choose [51:51] s720-  s1622 :: SBool = s13 /= s1621-  s1623 :: SWord1 = choose [51:51] s1367-  s1624 :: SBool = s13 /= s1623-  s1625 :: SBool = s1622 == s1624-  s1626 :: SWord1 = choose [52:52] s720-  s1627 :: SBool = s13 /= s1626-  s1628 :: SWord1 = choose [52:52] s1367-  s1629 :: SBool = s13 /= s1628-  s1630 :: SBool = s1627 == s1629-  s1631 :: SWord1 = choose [53:53] s720-  s1632 :: SBool = s13 /= s1631-  s1633 :: SWord1 = choose [53:53] s1367-  s1634 :: SBool = s13 /= s1633-  s1635 :: SBool = s1632 == s1634-  s1636 :: SWord1 = choose [54:54] s720-  s1637 :: SBool = s13 /= s1636-  s1638 :: SWord1 = choose [54:54] s1367-  s1639 :: SBool = s13 /= s1638-  s1640 :: SBool = s1637 == s1639-  s1641 :: SWord1 = choose [55:55] s720-  s1642 :: SBool = s13 /= s1641-  s1643 :: SWord1 = choose [55:55] s1367-  s1644 :: SBool = s13 /= s1643-  s1645 :: SBool = s1642 == s1644-  s1646 :: SWord1 = choose [56:56] s720-  s1647 :: SBool = s13 /= s1646-  s1648 :: SWord1 = choose [56:56] s1367-  s1649 :: SBool = s13 /= s1648-  s1650 :: SBool = s1647 == s1649-  s1651 :: SWord1 = choose [57:57] s720-  s1652 :: SBool = s13 /= s1651-  s1653 :: SWord1 = choose [57:57] s1367-  s1654 :: SBool = s13 /= s1653-  s1655 :: SBool = s1652 == s1654-  s1656 :: SWord1 = choose [58:58] s720-  s1657 :: SBool = s13 /= s1656-  s1658 :: SWord1 = choose [58:58] s1367-  s1659 :: SBool = s13 /= s1658-  s1660 :: SBool = s1657 == s1659-  s1661 :: SWord1 = choose [59:59] s720-  s1662 :: SBool = s13 /= s1661-  s1663 :: SWord1 = choose [59:59] s1367-  s1664 :: SBool = s13 /= s1663-  s1665 :: SBool = s1662 == s1664-  s1666 :: SWord1 = choose [60:60] s720-  s1667 :: SBool = s13 /= s1666-  s1668 :: SWord1 = choose [60:60] s1367-  s1669 :: SBool = s13 /= s1668-  s1670 :: SBool = s1667 == s1669-  s1671 :: SWord1 = choose [61:61] s720-  s1672 :: SBool = s13 /= s1671-  s1673 :: SWord1 = choose [61:61] s1367-  s1674 :: SBool = s13 /= s1673-  s1675 :: SBool = s1672 == s1674-  s1676 :: SWord1 = choose [62:62] s720-  s1677 :: SBool = s13 /= s1676-  s1678 :: SWord1 = choose [62:62] s1367-  s1679 :: SBool = s13 /= s1678-  s1680 :: SBool = s1677 == s1679-  s1681 :: SWord1 = choose [63:63] s720-  s1682 :: SBool = s13 /= s1681-  s1683 :: SWord1 = choose [63:63] s1367-  s1684 :: SBool = s13 /= s1683-  s1685 :: SBool = s1682 == s1684-  s1688 :: SWord8 = if s1685 then s1686 else s1687-  s1689 :: SWord8 = s1687 + s1688-  s1690 :: SWord8 = if s1680 then s1688 else s1689-  s1691 :: SWord8 = s1687 + s1690-  s1692 :: SWord8 = if s1675 then s1690 else s1691-  s1693 :: SWord8 = s1687 + s1692-  s1694 :: SWord8 = if s1670 then s1692 else s1693-  s1695 :: SWord8 = s1687 + s1694-  s1696 :: SWord8 = if s1665 then s1694 else s1695-  s1697 :: SWord8 = s1687 + s1696-  s1698 :: SWord8 = if s1660 then s1696 else s1697-  s1699 :: SWord8 = s1687 + s1698-  s1700 :: SWord8 = if s1655 then s1698 else s1699-  s1701 :: SWord8 = s1687 + s1700-  s1702 :: SWord8 = if s1650 then s1700 else s1701-  s1703 :: SWord8 = s1687 + s1702-  s1704 :: SWord8 = if s1645 then s1702 else s1703-  s1705 :: SWord8 = s1687 + s1704-  s1706 :: SWord8 = if s1640 then s1704 else s1705-  s1707 :: SWord8 = s1687 + s1706-  s1708 :: SWord8 = if s1635 then s1706 else s1707-  s1709 :: SWord8 = s1687 + s1708-  s1710 :: SWord8 = if s1630 then s1708 else s1709-  s1711 :: SWord8 = s1687 + s1710-  s1712 :: SWord8 = if s1625 then s1710 else s1711-  s1713 :: SWord8 = s1687 + s1712-  s1714 :: SWord8 = if s1620 then s1712 else s1713-  s1715 :: SWord8 = s1687 + s1714-  s1716 :: SWord8 = if s1615 then s1714 else s1715-  s1717 :: SWord8 = s1687 + s1716-  s1718 :: SWord8 = if s1610 then s1716 else s1717-  s1719 :: SWord8 = s1687 + s1718-  s1720 :: SWord8 = if s1605 then s1718 else s1719-  s1721 :: SWord8 = s1687 + s1720-  s1722 :: SWord8 = if s1600 then s1720 else s1721-  s1723 :: SWord8 = s1687 + s1722-  s1724 :: SWord8 = if s1595 then s1722 else s1723-  s1725 :: SWord8 = s1687 + s1724-  s1726 :: SWord8 = if s1590 then s1724 else s1725-  s1727 :: SWord8 = s1687 + s1726-  s1728 :: SWord8 = if s1585 then s1726 else s1727-  s1729 :: SWord8 = s1687 + s1728-  s1730 :: SWord8 = if s1580 then s1728 else s1729-  s1731 :: SWord8 = s1687 + s1730-  s1732 :: SWord8 = if s1575 then s1730 else s1731-  s1733 :: SWord8 = s1687 + s1732-  s1734 :: SWord8 = if s1570 then s1732 else s1733-  s1735 :: SWord8 = s1687 + s1734-  s1736 :: SWord8 = if s1565 then s1734 else s1735-  s1737 :: SWord8 = s1687 + s1736-  s1738 :: SWord8 = if s1560 then s1736 else s1737-  s1739 :: SWord8 = s1687 + s1738-  s1740 :: SWord8 = if s1555 then s1738 else s1739-  s1741 :: SWord8 = s1687 + s1740-  s1742 :: SWord8 = if s1550 then s1740 else s1741-  s1743 :: SWord8 = s1687 + s1742-  s1744 :: SWord8 = if s1545 then s1742 else s1743-  s1745 :: SWord8 = s1687 + s1744-  s1746 :: SWord8 = if s1540 then s1744 else s1745-  s1747 :: SWord8 = s1687 + s1746-  s1748 :: SWord8 = if s1535 then s1746 else s1747-  s1749 :: SWord8 = s1687 + s1748-  s1750 :: SWord8 = if s1530 then s1748 else s1749-  s1751 :: SWord8 = s1687 + s1750-  s1752 :: SWord8 = if s1525 then s1750 else s1751-  s1753 :: SWord8 = s1687 + s1752-  s1754 :: SWord8 = if s1520 then s1752 else s1753-  s1755 :: SWord8 = s1687 + s1754-  s1756 :: SWord8 = if s1515 then s1754 else s1755-  s1757 :: SWord8 = s1687 + s1756-  s1758 :: SWord8 = if s1510 then s1756 else s1757-  s1759 :: SWord8 = s1687 + s1758-  s1760 :: SWord8 = if s1505 then s1758 else s1759-  s1761 :: SWord8 = s1687 + s1760-  s1762 :: SWord8 = if s1500 then s1760 else s1761-  s1763 :: SWord8 = s1687 + s1762-  s1764 :: SWord8 = if s1495 then s1762 else s1763-  s1765 :: SWord8 = s1687 + s1764-  s1766 :: SWord8 = if s1490 then s1764 else s1765-  s1767 :: SWord8 = s1687 + s1766-  s1768 :: SWord8 = if s1485 then s1766 else s1767-  s1769 :: SWord8 = s1687 + s1768-  s1770 :: SWord8 = if s1480 then s1768 else s1769-  s1771 :: SWord8 = s1687 + s1770-  s1772 :: SWord8 = if s1475 then s1770 else s1771-  s1773 :: SWord8 = s1687 + s1772-  s1774 :: SWord8 = if s1470 then s1772 else s1773-  s1775 :: SWord8 = s1687 + s1774-  s1776 :: SWord8 = if s1465 then s1774 else s1775-  s1777 :: SWord8 = s1687 + s1776-  s1778 :: SWord8 = if s1460 then s1776 else s1777-  s1779 :: SWord8 = s1687 + s1778-  s1780 :: SWord8 = if s1455 then s1778 else s1779-  s1781 :: SWord8 = s1687 + s1780-  s1782 :: SWord8 = if s1450 then s1780 else s1781-  s1783 :: SWord8 = s1687 + s1782-  s1784 :: SWord8 = if s1445 then s1782 else s1783-  s1785 :: SWord8 = s1687 + s1784-  s1786 :: SWord8 = if s1440 then s1784 else s1785-  s1787 :: SWord8 = s1687 + s1786-  s1788 :: SWord8 = if s1435 then s1786 else s1787-  s1789 :: SWord8 = s1687 + s1788-  s1790 :: SWord8 = if s1430 then s1788 else s1789-  s1791 :: SWord8 = s1687 + s1790-  s1792 :: SWord8 = if s1425 then s1790 else s1791-  s1793 :: SWord8 = s1687 + s1792-  s1794 :: SWord8 = if s1420 then s1792 else s1793-  s1795 :: SWord8 = s1687 + s1794-  s1796 :: SWord8 = if s1415 then s1794 else s1795-  s1797 :: SWord8 = s1687 + s1796-  s1798 :: SWord8 = if s1410 then s1796 else s1797-  s1799 :: SWord8 = s1687 + s1798-  s1800 :: SWord8 = if s1405 then s1798 else s1799-  s1801 :: SWord8 = s1687 + s1800-  s1802 :: SWord8 = if s1400 then s1800 else s1801-  s1803 :: SWord8 = s1687 + s1802-  s1804 :: SWord8 = if s1395 then s1802 else s1803-  s1805 :: SWord8 = s1687 + s1804-  s1806 :: SWord8 = if s1390 then s1804 else s1805-  s1807 :: SWord8 = s1687 + s1806-  s1808 :: SWord8 = if s1385 then s1806 else s1807-  s1809 :: SWord8 = s1687 + s1808-  s1810 :: SWord8 = if s1380 then s1808 else s1809-  s1811 :: SWord8 = s1687 + s1810-  s1812 :: SWord8 = if s1375 then s1810 else s1811-  s1813 :: SWord8 = s1687 + s1812-  s1814 :: SWord8 = if s1370 then s1812 else s1813-  s1816 :: SBool = s1814 > s1815-  s1817 :: SBool = s8 | s1816-CONSTRAINTS-ASSERTIONS-OUTPUTS-  s1817+  s0 :: SWord48+  s1 :: SWord48+CONSTANTS+  s5 = 0 :: Word1+  s2054 = 0 :: Word8+  s2055 = 1 :: Word8+  s2183 = 3 :: Word8+  s101 = 65536 :: Word64+  s102 = 0 :: Word64+  s104 = 131072 :: Word64+  s107 = 262144 :: Word64+  s110 = 524288 :: Word64+  s113 = 1048576 :: Word64+  s116 = 2097152 :: Word64+  s119 = 4194304 :: Word64+  s122 = 8388608 :: Word64+  s125 = 16777216 :: Word64+  s128 = 33554432 :: Word64+  s131 = 67108864 :: Word64+  s134 = 134217728 :: Word64+  s137 = 268435456 :: Word64+  s140 = 536870912 :: Word64+  s143 = 1073741824 :: Word64+  s146 = 2147483648 :: Word64+  s149 = 4294967296 :: Word64+  s152 = 8589934592 :: Word64+  s155 = 17179869184 :: Word64+  s158 = 34359738368 :: Word64+  s161 = 68719476736 :: Word64+  s164 = 137438953472 :: Word64+  s167 = 274877906944 :: Word64+  s170 = 549755813888 :: Word64+  s173 = 1099511627776 :: Word64+  s176 = 2199023255552 :: Word64+  s179 = 4398046511104 :: Word64+  s182 = 8796093022208 :: Word64+  s185 = 17592186044416 :: Word64+  s188 = 35184372088832 :: Word64+  s191 = 70368744177664 :: Word64+  s194 = 140737488355328 :: Word64+  s197 = 281474976710656 :: Word64+  s200 = 562949953421312 :: Word64+  s203 = 1125899906842624 :: Word64+  s206 = 2251799813685248 :: Word64+  s209 = 4503599627370496 :: Word64+  s212 = 9007199254740992 :: Word64+  s215 = 18014398509481984 :: Word64+  s218 = 36028797018963968 :: Word64+  s221 = 72057594037927936 :: Word64+  s224 = 144115188075855872 :: Word64+  s227 = 288230376151711744 :: Word64+  s230 = 576460752303423488 :: Word64+  s233 = 1152921504606846976 :: Word64+  s236 = 2305843009213693952 :: Word64+  s239 = 4611686018427387904 :: Word64+  s242 = 9223372036854775808 :: Word64+  s757 = 1 :: Word64+  s759 = 2 :: Word64+  s762 = 4 :: Word64+  s765 = 8 :: Word64+  s768 = 16 :: Word64+  s771 = 32 :: Word64+  s774 = 64 :: Word64+  s777 = 128 :: Word64+  s780 = 256 :: Word64+  s783 = 512 :: Word64+  s786 = 1024 :: Word64+  s789 = 2048 :: Word64+  s792 = 4096 :: Word64+  s795 = 8192 :: Word64+  s798 = 16384 :: Word64+  s801 = 32768 :: Word64+TABLES+ARRAYS+UNINTERPRETED CONSTANTS+USER GIVEN CODE SEGMENTS+AXIOMS+DEFINE+  s2 :: SBool = s0 /= s1+  s3 :: SBool = ~ s2+  s4 :: SWord1 = choose [47:47] s0+  s6 :: SBool = s4 /= s5+  s7 :: SWord1 = choose [46:46] s0+  s8 :: SBool = s5 /= s7+  s9 :: SWord1 = choose [45:45] s0+  s10 :: SBool = s5 /= s9+  s11 :: SWord1 = choose [44:44] s0+  s12 :: SBool = s5 /= s11+  s13 :: SWord1 = choose [43:43] s0+  s14 :: SBool = s5 /= s13+  s15 :: SWord1 = choose [42:42] s0+  s16 :: SBool = s5 /= s15+  s17 :: SWord1 = choose [41:41] s0+  s18 :: SBool = s5 /= s17+  s19 :: SWord1 = choose [40:40] s0+  s20 :: SBool = s5 /= s19+  s21 :: SWord1 = choose [39:39] s0+  s22 :: SBool = s5 /= s21+  s23 :: SWord1 = choose [38:38] s0+  s24 :: SBool = s5 /= s23+  s25 :: SWord1 = choose [37:37] s0+  s26 :: SBool = s5 /= s25+  s27 :: SWord1 = choose [36:36] s0+  s28 :: SBool = s5 /= s27+  s29 :: SWord1 = choose [35:35] s0+  s30 :: SBool = s5 /= s29+  s31 :: SWord1 = choose [34:34] s0+  s32 :: SBool = s5 /= s31+  s33 :: SWord1 = choose [33:33] s0+  s34 :: SBool = s5 /= s33+  s35 :: SWord1 = choose [32:32] s0+  s36 :: SBool = s5 /= s35+  s37 :: SWord1 = choose [31:31] s0+  s38 :: SBool = s5 /= s37+  s39 :: SWord1 = choose [30:30] s0+  s40 :: SBool = s5 /= s39+  s41 :: SWord1 = choose [29:29] s0+  s42 :: SBool = s5 /= s41+  s43 :: SWord1 = choose [28:28] s0+  s44 :: SBool = s5 /= s43+  s45 :: SWord1 = choose [27:27] s0+  s46 :: SBool = s5 /= s45+  s47 :: SWord1 = choose [26:26] s0+  s48 :: SBool = s5 /= s47+  s49 :: SWord1 = choose [25:25] s0+  s50 :: SBool = s5 /= s49+  s51 :: SWord1 = choose [24:24] s0+  s52 :: SBool = s5 /= s51+  s53 :: SWord1 = choose [23:23] s0+  s54 :: SBool = s5 /= s53+  s55 :: SWord1 = choose [22:22] s0+  s56 :: SBool = s5 /= s55+  s57 :: SWord1 = choose [21:21] s0+  s58 :: SBool = s5 /= s57+  s59 :: SWord1 = choose [20:20] s0+  s60 :: SBool = s5 /= s59+  s61 :: SWord1 = choose [19:19] s0+  s62 :: SBool = s5 /= s61+  s63 :: SWord1 = choose [18:18] s0+  s64 :: SBool = s5 /= s63+  s65 :: SWord1 = choose [17:17] s0+  s66 :: SBool = s5 /= s65+  s67 :: SWord1 = choose [16:16] s0+  s68 :: SBool = s5 /= s67+  s69 :: SWord1 = choose [15:15] s0+  s70 :: SBool = s5 /= s69+  s71 :: SWord1 = choose [14:14] s0+  s72 :: SBool = s5 /= s71+  s73 :: SWord1 = choose [13:13] s0+  s74 :: SBool = s5 /= s73+  s75 :: SWord1 = choose [12:12] s0+  s76 :: SBool = s5 /= s75+  s77 :: SWord1 = choose [11:11] s0+  s78 :: SBool = s5 /= s77+  s79 :: SWord1 = choose [10:10] s0+  s80 :: SBool = s5 /= s79+  s81 :: SWord1 = choose [9:9] s0+  s82 :: SBool = s5 /= s81+  s83 :: SWord1 = choose [8:8] s0+  s84 :: SBool = s5 /= s83+  s85 :: SWord1 = choose [7:7] s0+  s86 :: SBool = s5 /= s85+  s87 :: SWord1 = choose [6:6] s0+  s88 :: SBool = s5 /= s87+  s89 :: SWord1 = choose [5:5] s0+  s90 :: SBool = s5 /= s89+  s91 :: SWord1 = choose [4:4] s0+  s92 :: SBool = s5 /= s91+  s93 :: SWord1 = choose [3:3] s0+  s94 :: SBool = s5 /= s93+  s95 :: SWord1 = choose [2:2] s0+  s96 :: SBool = s5 /= s95+  s97 :: SWord1 = choose [1:1] s0+  s98 :: SBool = s5 /= s97+  s99 :: SWord1 = choose [0:0] s0+  s100 :: SBool = s5 /= s99+  s103 :: SWord64 = if s100 then s101 else s102+  s105 :: SWord64 = s103 | s104+  s106 :: SWord64 = if s98 then s105 else s103+  s108 :: SWord64 = s106 | s107+  s109 :: SWord64 = if s96 then s108 else s106+  s111 :: SWord64 = s109 | s110+  s112 :: SWord64 = if s94 then s111 else s109+  s114 :: SWord64 = s112 | s113+  s115 :: SWord64 = if s92 then s114 else s112+  s117 :: SWord64 = s115 | s116+  s118 :: SWord64 = if s90 then s117 else s115+  s120 :: SWord64 = s118 | s119+  s121 :: SWord64 = if s88 then s120 else s118+  s123 :: SWord64 = s121 | s122+  s124 :: SWord64 = if s86 then s123 else s121+  s126 :: SWord64 = s124 | s125+  s127 :: SWord64 = if s84 then s126 else s124+  s129 :: SWord64 = s127 | s128+  s130 :: SWord64 = if s82 then s129 else s127+  s132 :: SWord64 = s130 | s131+  s133 :: SWord64 = if s80 then s132 else s130+  s135 :: SWord64 = s133 | s134+  s136 :: SWord64 = if s78 then s135 else s133+  s138 :: SWord64 = s136 | s137+  s139 :: SWord64 = if s76 then s138 else s136+  s141 :: SWord64 = s139 | s140+  s142 :: SWord64 = if s74 then s141 else s139+  s144 :: SWord64 = s142 | s143+  s145 :: SWord64 = if s72 then s144 else s142+  s147 :: SWord64 = s145 | s146+  s148 :: SWord64 = if s70 then s147 else s145+  s150 :: SWord64 = s148 | s149+  s151 :: SWord64 = if s68 then s150 else s148+  s153 :: SWord64 = s151 | s152+  s154 :: SWord64 = if s66 then s153 else s151+  s156 :: SWord64 = s154 | s155+  s157 :: SWord64 = if s64 then s156 else s154+  s159 :: SWord64 = s157 | s158+  s160 :: SWord64 = if s62 then s159 else s157+  s162 :: SWord64 = s160 | s161+  s163 :: SWord64 = if s60 then s162 else s160+  s165 :: SWord64 = s163 | s164+  s166 :: SWord64 = if s58 then s165 else s163+  s168 :: SWord64 = s166 | s167+  s169 :: SWord64 = if s56 then s168 else s166+  s171 :: SWord64 = s169 | s170+  s172 :: SWord64 = if s54 then s171 else s169+  s174 :: SWord64 = s172 | s173+  s175 :: SWord64 = if s52 then s174 else s172+  s177 :: SWord64 = s175 | s176+  s178 :: SWord64 = if s50 then s177 else s175+  s180 :: SWord64 = s178 | s179+  s181 :: SWord64 = if s48 then s180 else s178+  s183 :: SWord64 = s181 | s182+  s184 :: SWord64 = if s46 then s183 else s181+  s186 :: SWord64 = s184 | s185+  s187 :: SWord64 = if s44 then s186 else s184+  s189 :: SWord64 = s187 | s188+  s190 :: SWord64 = if s42 then s189 else s187+  s192 :: SWord64 = s190 | s191+  s193 :: SWord64 = if s40 then s192 else s190+  s195 :: SWord64 = s193 | s194+  s196 :: SWord64 = if s38 then s195 else s193+  s198 :: SWord64 = s196 | s197+  s199 :: SWord64 = if s36 then s198 else s196+  s201 :: SWord64 = s199 | s200+  s202 :: SWord64 = if s34 then s201 else s199+  s204 :: SWord64 = s202 | s203+  s205 :: SWord64 = if s32 then s204 else s202+  s207 :: SWord64 = s205 | s206+  s208 :: SWord64 = if s30 then s207 else s205+  s210 :: SWord64 = s208 | s209+  s211 :: SWord64 = if s28 then s210 else s208+  s213 :: SWord64 = s211 | s212+  s214 :: SWord64 = if s26 then s213 else s211+  s216 :: SWord64 = s214 | s215+  s217 :: SWord64 = if s24 then s216 else s214+  s219 :: SWord64 = s217 | s218+  s220 :: SWord64 = if s22 then s219 else s217+  s222 :: SWord64 = s220 | s221+  s223 :: SWord64 = if s20 then s222 else s220+  s225 :: SWord64 = s223 | s224+  s226 :: SWord64 = if s18 then s225 else s223+  s228 :: SWord64 = s226 | s227+  s229 :: SWord64 = if s16 then s228 else s226+  s231 :: SWord64 = s229 | s230+  s232 :: SWord64 = if s14 then s231 else s229+  s234 :: SWord64 = s232 | s233+  s235 :: SWord64 = if s12 then s234 else s232+  s237 :: SWord64 = s235 | s236+  s238 :: SWord64 = if s10 then s237 else s235+  s240 :: SWord64 = s238 | s239+  s241 :: SWord64 = if s8 then s240 else s238+  s243 :: SWord64 = s241 | s242+  s244 :: SWord64 = if s6 then s243 else s241+  s245 :: SWord1 = choose [63:63] s244+  s246 :: SBool = s5 /= s245+  s247 :: SWord1 = choose [62:62] s244+  s248 :: SBool = s5 /= s247+  s249 :: SWord1 = choose [61:61] s244+  s250 :: SBool = s5 /= s249+  s251 :: SWord1 = choose [60:60] s244+  s252 :: SBool = s5 /= s251+  s253 :: SWord1 = choose [59:59] s244+  s254 :: SBool = s5 /= s253+  s255 :: SBool = ~ s254+  s256 :: SBool = if s246 then s255 else s254+  s257 :: SWord1 = choose [58:58] s244+  s258 :: SBool = s5 /= s257+  s259 :: SBool = ~ s258+  s260 :: SBool = if s248 then s259 else s258+  s261 :: SWord1 = choose [57:57] s244+  s262 :: SBool = s5 /= s261+  s263 :: SBool = ~ s262+  s264 :: SBool = if s250 then s263 else s262+  s265 :: SWord1 = choose [56:56] s244+  s266 :: SBool = s5 /= s265+  s267 :: SBool = ~ s266+  s268 :: SBool = if s252 then s267 else s266+  s269 :: SWord1 = choose [55:55] s244+  s270 :: SBool = s5 /= s269+  s271 :: SBool = ~ s270+  s272 :: SBool = if s256 then s271 else s270+  s273 :: SWord1 = choose [54:54] s244+  s274 :: SBool = s5 /= s273+  s275 :: SBool = ~ s274+  s276 :: SBool = if s260 then s275 else s274+  s277 :: SWord1 = choose [53:53] s244+  s278 :: SBool = s5 /= s277+  s279 :: SBool = ~ s278+  s280 :: SBool = if s264 then s279 else s278+  s281 :: SWord1 = choose [52:52] s244+  s282 :: SBool = s5 /= s281+  s283 :: SBool = ~ s282+  s284 :: SBool = if s246 then s283 else s282+  s285 :: SBool = ~ s284+  s286 :: SBool = if s268 then s285 else s284+  s287 :: SWord1 = choose [51:51] s244+  s288 :: SBool = s5 /= s287+  s289 :: SBool = ~ s288+  s290 :: SBool = if s248 then s289 else s288+  s291 :: SBool = ~ s290+  s292 :: SBool = if s272 then s291 else s290+  s293 :: SWord1 = choose [50:50] s244+  s294 :: SBool = s5 /= s293+  s295 :: SBool = ~ s294+  s296 :: SBool = if s250 then s295 else s294+  s297 :: SBool = ~ s296+  s298 :: SBool = if s276 then s297 else s296+  s299 :: SWord1 = choose [49:49] s244+  s300 :: SBool = s5 /= s299+  s301 :: SBool = ~ s300+  s302 :: SBool = if s252 then s301 else s300+  s303 :: SBool = ~ s302+  s304 :: SBool = if s280 then s303 else s302+  s305 :: SWord1 = choose [48:48] s244+  s306 :: SBool = s5 /= s305+  s307 :: SBool = ~ s306+  s308 :: SBool = if s256 then s307 else s306+  s309 :: SBool = ~ s308+  s310 :: SBool = if s286 then s309 else s308+  s311 :: SWord1 = choose [47:47] s244+  s312 :: SBool = s5 /= s311+  s313 :: SBool = ~ s312+  s314 :: SBool = if s246 then s313 else s312+  s315 :: SBool = ~ s314+  s316 :: SBool = if s260 then s315 else s314+  s317 :: SBool = ~ s316+  s318 :: SBool = if s292 then s317 else s316+  s319 :: SWord1 = choose [46:46] s244+  s320 :: SBool = s5 /= s319+  s321 :: SBool = ~ s320+  s322 :: SBool = if s248 then s321 else s320+  s323 :: SBool = ~ s322+  s324 :: SBool = if s264 then s323 else s322+  s325 :: SBool = ~ s324+  s326 :: SBool = if s298 then s325 else s324+  s327 :: SWord1 = choose [45:45] s244+  s328 :: SBool = s5 /= s327+  s329 :: SBool = ~ s328+  s330 :: SBool = if s250 then s329 else s328+  s331 :: SBool = ~ s330+  s332 :: SBool = if s268 then s331 else s330+  s333 :: SBool = ~ s332+  s334 :: SBool = if s304 then s333 else s332+  s335 :: SWord1 = choose [44:44] s244+  s336 :: SBool = s5 /= s335+  s337 :: SBool = ~ s336+  s338 :: SBool = if s252 then s337 else s336+  s339 :: SBool = ~ s338+  s340 :: SBool = if s272 then s339 else s338+  s341 :: SBool = ~ s340+  s342 :: SBool = if s310 then s341 else s340+  s343 :: SWord1 = choose [43:43] s244+  s344 :: SBool = s5 /= s343+  s345 :: SBool = ~ s344+  s346 :: SBool = if s256 then s345 else s344+  s347 :: SBool = ~ s346+  s348 :: SBool = if s276 then s347 else s346+  s349 :: SBool = ~ s348+  s350 :: SBool = if s318 then s349 else s348+  s351 :: SWord1 = choose [42:42] s244+  s352 :: SBool = s5 /= s351+  s353 :: SBool = ~ s352+  s354 :: SBool = if s260 then s353 else s352+  s355 :: SBool = ~ s354+  s356 :: SBool = if s280 then s355 else s354+  s357 :: SBool = ~ s356+  s358 :: SBool = if s326 then s357 else s356+  s359 :: SWord1 = choose [41:41] s244+  s360 :: SBool = s5 /= s359+  s361 :: SBool = ~ s360+  s362 :: SBool = if s264 then s361 else s360+  s363 :: SBool = ~ s362+  s364 :: SBool = if s286 then s363 else s362+  s365 :: SBool = ~ s364+  s366 :: SBool = if s334 then s365 else s364+  s367 :: SWord1 = choose [40:40] s244+  s368 :: SBool = s5 /= s367+  s369 :: SBool = ~ s368+  s370 :: SBool = if s268 then s369 else s368+  s371 :: SBool = ~ s370+  s372 :: SBool = if s292 then s371 else s370+  s373 :: SBool = ~ s372+  s374 :: SBool = if s342 then s373 else s372+  s375 :: SWord1 = choose [39:39] s244+  s376 :: SBool = s5 /= s375+  s377 :: SBool = ~ s376+  s378 :: SBool = if s272 then s377 else s376+  s379 :: SBool = ~ s378+  s380 :: SBool = if s298 then s379 else s378+  s381 :: SBool = ~ s380+  s382 :: SBool = if s350 then s381 else s380+  s383 :: SWord1 = choose [38:38] s244+  s384 :: SBool = s5 /= s383+  s385 :: SBool = ~ s384+  s386 :: SBool = if s276 then s385 else s384+  s387 :: SBool = ~ s386+  s388 :: SBool = if s304 then s387 else s386+  s389 :: SBool = ~ s388+  s390 :: SBool = if s358 then s389 else s388+  s391 :: SWord1 = choose [37:37] s244+  s392 :: SBool = s5 /= s391+  s393 :: SBool = ~ s392+  s394 :: SBool = if s280 then s393 else s392+  s395 :: SBool = ~ s394+  s396 :: SBool = if s310 then s395 else s394+  s397 :: SBool = ~ s396+  s398 :: SBool = if s366 then s397 else s396+  s399 :: SWord1 = choose [36:36] s244+  s400 :: SBool = s5 /= s399+  s401 :: SBool = ~ s400+  s402 :: SBool = if s286 then s401 else s400+  s403 :: SBool = ~ s402+  s404 :: SBool = if s318 then s403 else s402+  s405 :: SBool = ~ s404+  s406 :: SBool = if s374 then s405 else s404+  s407 :: SWord1 = choose [35:35] s244+  s408 :: SBool = s5 /= s407+  s409 :: SBool = ~ s408+  s410 :: SBool = if s292 then s409 else s408+  s411 :: SBool = ~ s410+  s412 :: SBool = if s326 then s411 else s410+  s413 :: SBool = ~ s412+  s414 :: SBool = if s382 then s413 else s412+  s415 :: SWord1 = choose [34:34] s244+  s416 :: SBool = s5 /= s415+  s417 :: SBool = ~ s416+  s418 :: SBool = if s298 then s417 else s416+  s419 :: SBool = ~ s418+  s420 :: SBool = if s334 then s419 else s418+  s421 :: SBool = ~ s420+  s422 :: SBool = if s390 then s421 else s420+  s423 :: SWord1 = choose [33:33] s244+  s424 :: SBool = s5 /= s423+  s425 :: SBool = ~ s424+  s426 :: SBool = if s304 then s425 else s424+  s427 :: SBool = ~ s426+  s428 :: SBool = if s342 then s427 else s426+  s429 :: SBool = ~ s428+  s430 :: SBool = if s398 then s429 else s428+  s431 :: SWord1 = choose [32:32] s244+  s432 :: SBool = s5 /= s431+  s433 :: SBool = ~ s432+  s434 :: SBool = if s310 then s433 else s432+  s435 :: SBool = ~ s434+  s436 :: SBool = if s350 then s435 else s434+  s437 :: SBool = ~ s436+  s438 :: SBool = if s406 then s437 else s436+  s439 :: SWord1 = choose [31:31] s244+  s440 :: SBool = s5 /= s439+  s441 :: SBool = ~ s440+  s442 :: SBool = if s318 then s441 else s440+  s443 :: SBool = ~ s442+  s444 :: SBool = if s358 then s443 else s442+  s445 :: SBool = ~ s444+  s446 :: SBool = if s414 then s445 else s444+  s447 :: SWord1 = choose [30:30] s244+  s448 :: SBool = s5 /= s447+  s449 :: SBool = ~ s448+  s450 :: SBool = if s326 then s449 else s448+  s451 :: SBool = ~ s450+  s452 :: SBool = if s366 then s451 else s450+  s453 :: SBool = ~ s452+  s454 :: SBool = if s422 then s453 else s452+  s455 :: SWord1 = choose [29:29] s244+  s456 :: SBool = s5 /= s455+  s457 :: SBool = ~ s456+  s458 :: SBool = if s334 then s457 else s456+  s459 :: SBool = ~ s458+  s460 :: SBool = if s374 then s459 else s458+  s461 :: SBool = ~ s460+  s462 :: SBool = if s430 then s461 else s460+  s463 :: SWord1 = choose [28:28] s244+  s464 :: SBool = s5 /= s463+  s465 :: SBool = ~ s464+  s466 :: SBool = if s342 then s465 else s464+  s467 :: SBool = ~ s466+  s468 :: SBool = if s382 then s467 else s466+  s469 :: SBool = ~ s468+  s470 :: SBool = if s438 then s469 else s468+  s471 :: SWord1 = choose [27:27] s244+  s472 :: SBool = s5 /= s471+  s473 :: SBool = ~ s472+  s474 :: SBool = if s350 then s473 else s472+  s475 :: SBool = ~ s474+  s476 :: SBool = if s390 then s475 else s474+  s477 :: SBool = ~ s476+  s478 :: SBool = if s446 then s477 else s476+  s479 :: SWord1 = choose [26:26] s244+  s480 :: SBool = s5 /= s479+  s481 :: SBool = ~ s480+  s482 :: SBool = if s358 then s481 else s480+  s483 :: SBool = ~ s482+  s484 :: SBool = if s398 then s483 else s482+  s485 :: SBool = ~ s484+  s486 :: SBool = if s454 then s485 else s484+  s487 :: SWord1 = choose [25:25] s244+  s488 :: SBool = s5 /= s487+  s489 :: SBool = ~ s488+  s490 :: SBool = if s366 then s489 else s488+  s491 :: SBool = ~ s490+  s492 :: SBool = if s406 then s491 else s490+  s493 :: SBool = ~ s492+  s494 :: SBool = if s462 then s493 else s492+  s495 :: SWord1 = choose [24:24] s244+  s496 :: SBool = s5 /= s495+  s497 :: SBool = ~ s496+  s498 :: SBool = if s374 then s497 else s496+  s499 :: SBool = ~ s498+  s500 :: SBool = if s414 then s499 else s498+  s501 :: SBool = ~ s500+  s502 :: SBool = if s470 then s501 else s500+  s503 :: SWord1 = choose [23:23] s244+  s504 :: SBool = s5 /= s503+  s505 :: SBool = ~ s504+  s506 :: SBool = if s382 then s505 else s504+  s507 :: SBool = ~ s506+  s508 :: SBool = if s422 then s507 else s506+  s509 :: SBool = ~ s508+  s510 :: SBool = if s478 then s509 else s508+  s511 :: SWord1 = choose [22:22] s244+  s512 :: SBool = s5 /= s511+  s513 :: SBool = ~ s512+  s514 :: SBool = if s390 then s513 else s512+  s515 :: SBool = ~ s514+  s516 :: SBool = if s430 then s515 else s514+  s517 :: SBool = ~ s516+  s518 :: SBool = if s486 then s517 else s516+  s519 :: SWord1 = choose [21:21] s244+  s520 :: SBool = s5 /= s519+  s521 :: SBool = ~ s520+  s522 :: SBool = if s398 then s521 else s520+  s523 :: SBool = ~ s522+  s524 :: SBool = if s438 then s523 else s522+  s525 :: SBool = ~ s524+  s526 :: SBool = if s494 then s525 else s524+  s527 :: SWord1 = choose [20:20] s244+  s528 :: SBool = s5 /= s527+  s529 :: SBool = ~ s528+  s530 :: SBool = if s406 then s529 else s528+  s531 :: SBool = ~ s530+  s532 :: SBool = if s446 then s531 else s530+  s533 :: SBool = ~ s532+  s534 :: SBool = if s502 then s533 else s532+  s535 :: SWord1 = choose [19:19] s244+  s536 :: SBool = s5 /= s535+  s537 :: SBool = ~ s536+  s538 :: SBool = if s414 then s537 else s536+  s539 :: SBool = ~ s538+  s540 :: SBool = if s454 then s539 else s538+  s541 :: SBool = ~ s540+  s542 :: SBool = if s510 then s541 else s540+  s543 :: SWord1 = choose [18:18] s244+  s544 :: SBool = s5 /= s543+  s545 :: SBool = ~ s544+  s546 :: SBool = if s422 then s545 else s544+  s547 :: SBool = ~ s546+  s548 :: SBool = if s462 then s547 else s546+  s549 :: SBool = ~ s548+  s550 :: SBool = if s518 then s549 else s548+  s551 :: SWord1 = choose [17:17] s244+  s552 :: SBool = s5 /= s551+  s553 :: SBool = ~ s552+  s554 :: SBool = if s430 then s553 else s552+  s555 :: SBool = ~ s554+  s556 :: SBool = if s470 then s555 else s554+  s557 :: SBool = ~ s556+  s558 :: SBool = if s526 then s557 else s556+  s559 :: SWord1 = choose [16:16] s244+  s560 :: SBool = s5 /= s559+  s561 :: SBool = ~ s560+  s562 :: SBool = if s438 then s561 else s560+  s563 :: SBool = ~ s562+  s564 :: SBool = if s478 then s563 else s562+  s565 :: SBool = ~ s564+  s566 :: SBool = if s534 then s565 else s564+  s567 :: SBool = ~ s246+  s568 :: SBool = if s246 then s567 else s246+  s569 :: SBool = ~ s248+  s570 :: SBool = if s248 then s569 else s248+  s571 :: SBool = ~ s250+  s572 :: SBool = if s250 then s571 else s250+  s573 :: SBool = ~ s252+  s574 :: SBool = if s252 then s573 else s252+  s575 :: SBool = ~ s256+  s576 :: SBool = if s256 then s575 else s256+  s577 :: SBool = ~ s260+  s578 :: SBool = if s260 then s577 else s260+  s579 :: SBool = ~ s264+  s580 :: SBool = if s264 then s579 else s264+  s581 :: SBool = ~ s268+  s582 :: SBool = if s268 then s581 else s268+  s583 :: SBool = ~ s272+  s584 :: SBool = if s272 then s583 else s272+  s585 :: SBool = ~ s276+  s586 :: SBool = if s276 then s585 else s276+  s587 :: SBool = ~ s280+  s588 :: SBool = if s280 then s587 else s280+  s589 :: SBool = ~ s286+  s590 :: SBool = if s286 then s589 else s286+  s591 :: SBool = ~ s292+  s592 :: SBool = if s292 then s591 else s292+  s593 :: SBool = ~ s298+  s594 :: SBool = if s298 then s593 else s298+  s595 :: SBool = ~ s304+  s596 :: SBool = if s304 then s595 else s304+  s597 :: SBool = ~ s310+  s598 :: SBool = if s310 then s597 else s310+  s599 :: SBool = ~ s318+  s600 :: SBool = if s318 then s599 else s318+  s601 :: SBool = ~ s326+  s602 :: SBool = if s326 then s601 else s326+  s603 :: SBool = ~ s334+  s604 :: SBool = if s334 then s603 else s334+  s605 :: SBool = ~ s342+  s606 :: SBool = if s342 then s605 else s342+  s607 :: SBool = ~ s350+  s608 :: SBool = if s350 then s607 else s350+  s609 :: SBool = ~ s358+  s610 :: SBool = if s358 then s609 else s358+  s611 :: SBool = ~ s366+  s612 :: SBool = if s366 then s611 else s366+  s613 :: SBool = ~ s374+  s614 :: SBool = if s374 then s613 else s374+  s615 :: SBool = ~ s382+  s616 :: SBool = if s382 then s615 else s382+  s617 :: SBool = ~ s390+  s618 :: SBool = if s390 then s617 else s390+  s619 :: SBool = ~ s398+  s620 :: SBool = if s398 then s619 else s398+  s621 :: SBool = ~ s406+  s622 :: SBool = if s406 then s621 else s406+  s623 :: SBool = ~ s414+  s624 :: SBool = if s414 then s623 else s414+  s625 :: SBool = ~ s422+  s626 :: SBool = if s422 then s625 else s422+  s627 :: SBool = ~ s430+  s628 :: SBool = if s430 then s627 else s430+  s629 :: SBool = ~ s438+  s630 :: SBool = if s438 then s629 else s438+  s631 :: SBool = ~ s446+  s632 :: SBool = if s446 then s631 else s446+  s633 :: SBool = ~ s454+  s634 :: SBool = if s454 then s633 else s454+  s635 :: SBool = ~ s462+  s636 :: SBool = if s462 then s635 else s462+  s637 :: SBool = ~ s470+  s638 :: SBool = if s470 then s637 else s470+  s639 :: SBool = ~ s478+  s640 :: SBool = if s478 then s639 else s478+  s641 :: SBool = ~ s486+  s642 :: SBool = if s486 then s641 else s486+  s643 :: SBool = ~ s494+  s644 :: SBool = if s494 then s643 else s494+  s645 :: SBool = ~ s502+  s646 :: SBool = if s502 then s645 else s502+  s647 :: SBool = ~ s510+  s648 :: SBool = if s510 then s647 else s510+  s649 :: SBool = ~ s518+  s650 :: SBool = if s518 then s649 else s518+  s651 :: SBool = ~ s526+  s652 :: SBool = if s526 then s651 else s526+  s653 :: SBool = ~ s534+  s654 :: SBool = if s534 then s653 else s534+  s655 :: SBool = ~ s542+  s656 :: SBool = if s542 then s655 else s542+  s657 :: SBool = ~ s550+  s658 :: SBool = if s550 then s657 else s550+  s659 :: SBool = ~ s558+  s660 :: SBool = if s558 then s659 else s558+  s661 :: SBool = ~ s566+  s662 :: SBool = if s566 then s661 else s566+  s663 :: SWord1 = choose [15:15] s244+  s664 :: SBool = s5 /= s663+  s665 :: SBool = ~ s664+  s666 :: SBool = if s446 then s665 else s664+  s667 :: SBool = ~ s666+  s668 :: SBool = if s486 then s667 else s666+  s669 :: SBool = ~ s668+  s670 :: SBool = if s542 then s669 else s668+  s671 :: SWord1 = choose [14:14] s244+  s672 :: SBool = s5 /= s671+  s673 :: SBool = ~ s672+  s674 :: SBool = if s454 then s673 else s672+  s675 :: SBool = ~ s674+  s676 :: SBool = if s494 then s675 else s674+  s677 :: SBool = ~ s676+  s678 :: SBool = if s550 then s677 else s676+  s679 :: SWord1 = choose [13:13] s244+  s680 :: SBool = s5 /= s679+  s681 :: SBool = ~ s680+  s682 :: SBool = if s462 then s681 else s680+  s683 :: SBool = ~ s682+  s684 :: SBool = if s502 then s683 else s682+  s685 :: SBool = ~ s684+  s686 :: SBool = if s558 then s685 else s684+  s687 :: SWord1 = choose [12:12] s244+  s688 :: SBool = s5 /= s687+  s689 :: SBool = ~ s688+  s690 :: SBool = if s470 then s689 else s688+  s691 :: SBool = ~ s690+  s692 :: SBool = if s510 then s691 else s690+  s693 :: SBool = ~ s692+  s694 :: SBool = if s566 then s693 else s692+  s695 :: SWord1 = choose [11:11] s244+  s696 :: SBool = s5 /= s695+  s697 :: SBool = ~ s696+  s698 :: SBool = if s478 then s697 else s696+  s699 :: SBool = ~ s698+  s700 :: SBool = if s518 then s699 else s698+  s701 :: SWord1 = choose [10:10] s244+  s702 :: SBool = s5 /= s701+  s703 :: SBool = ~ s702+  s704 :: SBool = if s486 then s703 else s702+  s705 :: SBool = ~ s704+  s706 :: SBool = if s526 then s705 else s704+  s707 :: SWord1 = choose [9:9] s244+  s708 :: SBool = s5 /= s707+  s709 :: SBool = ~ s708+  s710 :: SBool = if s494 then s709 else s708+  s711 :: SBool = ~ s710+  s712 :: SBool = if s534 then s711 else s710+  s713 :: SWord1 = choose [8:8] s244+  s714 :: SBool = s5 /= s713+  s715 :: SBool = ~ s714+  s716 :: SBool = if s502 then s715 else s714+  s717 :: SBool = ~ s716+  s718 :: SBool = if s542 then s717 else s716+  s719 :: SWord1 = choose [7:7] s244+  s720 :: SBool = s5 /= s719+  s721 :: SBool = ~ s720+  s722 :: SBool = if s510 then s721 else s720+  s723 :: SBool = ~ s722+  s724 :: SBool = if s550 then s723 else s722+  s725 :: SWord1 = choose [6:6] s244+  s726 :: SBool = s5 /= s725+  s727 :: SBool = ~ s726+  s728 :: SBool = if s518 then s727 else s726+  s729 :: SBool = ~ s728+  s730 :: SBool = if s558 then s729 else s728+  s731 :: SWord1 = choose [5:5] s244+  s732 :: SBool = s5 /= s731+  s733 :: SBool = ~ s732+  s734 :: SBool = if s526 then s733 else s732+  s735 :: SBool = ~ s734+  s736 :: SBool = if s566 then s735 else s734+  s737 :: SWord1 = choose [4:4] s244+  s738 :: SBool = s5 /= s737+  s739 :: SBool = ~ s738+  s740 :: SBool = if s534 then s739 else s738+  s741 :: SWord1 = choose [3:3] s244+  s742 :: SBool = s5 /= s741+  s743 :: SBool = ~ s742+  s744 :: SBool = if s542 then s743 else s742+  s745 :: SWord1 = choose [2:2] s244+  s746 :: SBool = s5 /= s745+  s747 :: SBool = ~ s746+  s748 :: SBool = if s550 then s747 else s746+  s749 :: SWord1 = choose [1:1] s244+  s750 :: SBool = s5 /= s749+  s751 :: SBool = ~ s750+  s752 :: SBool = if s558 then s751 else s750+  s753 :: SWord1 = choose [0:0] s244+  s754 :: SBool = s5 /= s753+  s755 :: SBool = ~ s754+  s756 :: SBool = if s566 then s755 else s754+  s758 :: SWord64 = if s756 then s757 else s102+  s760 :: SWord64 = s758 | s759+  s761 :: SWord64 = if s752 then s760 else s758+  s763 :: SWord64 = s761 | s762+  s764 :: SWord64 = if s748 then s763 else s761+  s766 :: SWord64 = s764 | s765+  s767 :: SWord64 = if s744 then s766 else s764+  s769 :: SWord64 = s767 | s768+  s770 :: SWord64 = if s740 then s769 else s767+  s772 :: SWord64 = s770 | s771+  s773 :: SWord64 = if s736 then s772 else s770+  s775 :: SWord64 = s773 | s774+  s776 :: SWord64 = if s730 then s775 else s773+  s778 :: SWord64 = s776 | s777+  s779 :: SWord64 = if s724 then s778 else s776+  s781 :: SWord64 = s779 | s780+  s782 :: SWord64 = if s718 then s781 else s779+  s784 :: SWord64 = s782 | s783+  s785 :: SWord64 = if s712 then s784 else s782+  s787 :: SWord64 = s785 | s786+  s788 :: SWord64 = if s706 then s787 else s785+  s790 :: SWord64 = s788 | s789+  s791 :: SWord64 = if s700 then s790 else s788+  s793 :: SWord64 = s791 | s792+  s794 :: SWord64 = if s694 then s793 else s791+  s796 :: SWord64 = s794 | s795+  s797 :: SWord64 = if s686 then s796 else s794+  s799 :: SWord64 = s797 | s798+  s800 :: SWord64 = if s678 then s799 else s797+  s802 :: SWord64 = s800 | s801+  s803 :: SWord64 = if s670 then s802 else s800+  s804 :: SWord64 = s101 | s803+  s805 :: SWord64 = if s662 then s804 else s803+  s806 :: SWord64 = s104 | s805+  s807 :: SWord64 = if s660 then s806 else s805+  s808 :: SWord64 = s107 | s807+  s809 :: SWord64 = if s658 then s808 else s807+  s810 :: SWord64 = s110 | s809+  s811 :: SWord64 = if s656 then s810 else s809+  s812 :: SWord64 = s113 | s811+  s813 :: SWord64 = if s654 then s812 else s811+  s814 :: SWord64 = s116 | s813+  s815 :: SWord64 = if s652 then s814 else s813+  s816 :: SWord64 = s119 | s815+  s817 :: SWord64 = if s650 then s816 else s815+  s818 :: SWord64 = s122 | s817+  s819 :: SWord64 = if s648 then s818 else s817+  s820 :: SWord64 = s125 | s819+  s821 :: SWord64 = if s646 then s820 else s819+  s822 :: SWord64 = s128 | s821+  s823 :: SWord64 = if s644 then s822 else s821+  s824 :: SWord64 = s131 | s823+  s825 :: SWord64 = if s642 then s824 else s823+  s826 :: SWord64 = s134 | s825+  s827 :: SWord64 = if s640 then s826 else s825+  s828 :: SWord64 = s137 | s827+  s829 :: SWord64 = if s638 then s828 else s827+  s830 :: SWord64 = s140 | s829+  s831 :: SWord64 = if s636 then s830 else s829+  s832 :: SWord64 = s143 | s831+  s833 :: SWord64 = if s634 then s832 else s831+  s834 :: SWord64 = s146 | s833+  s835 :: SWord64 = if s632 then s834 else s833+  s836 :: SWord64 = s149 | s835+  s837 :: SWord64 = if s630 then s836 else s835+  s838 :: SWord64 = s152 | s837+  s839 :: SWord64 = if s628 then s838 else s837+  s840 :: SWord64 = s155 | s839+  s841 :: SWord64 = if s626 then s840 else s839+  s842 :: SWord64 = s158 | s841+  s843 :: SWord64 = if s624 then s842 else s841+  s844 :: SWord64 = s161 | s843+  s845 :: SWord64 = if s622 then s844 else s843+  s846 :: SWord64 = s164 | s845+  s847 :: SWord64 = if s620 then s846 else s845+  s848 :: SWord64 = s167 | s847+  s849 :: SWord64 = if s618 then s848 else s847+  s850 :: SWord64 = s170 | s849+  s851 :: SWord64 = if s616 then s850 else s849+  s852 :: SWord64 = s173 | s851+  s853 :: SWord64 = if s614 then s852 else s851+  s854 :: SWord64 = s176 | s853+  s855 :: SWord64 = if s612 then s854 else s853+  s856 :: SWord64 = s179 | s855+  s857 :: SWord64 = if s610 then s856 else s855+  s858 :: SWord64 = s182 | s857+  s859 :: SWord64 = if s608 then s858 else s857+  s860 :: SWord64 = s185 | s859+  s861 :: SWord64 = if s606 then s860 else s859+  s862 :: SWord64 = s188 | s861+  s863 :: SWord64 = if s604 then s862 else s861+  s864 :: SWord64 = s191 | s863+  s865 :: SWord64 = if s602 then s864 else s863+  s866 :: SWord64 = s194 | s865+  s867 :: SWord64 = if s600 then s866 else s865+  s868 :: SWord64 = s197 | s867+  s869 :: SWord64 = if s598 then s868 else s867+  s870 :: SWord64 = s200 | s869+  s871 :: SWord64 = if s596 then s870 else s869+  s872 :: SWord64 = s203 | s871+  s873 :: SWord64 = if s594 then s872 else s871+  s874 :: SWord64 = s206 | s873+  s875 :: SWord64 = if s592 then s874 else s873+  s876 :: SWord64 = s209 | s875+  s877 :: SWord64 = if s590 then s876 else s875+  s878 :: SWord64 = s212 | s877+  s879 :: SWord64 = if s588 then s878 else s877+  s880 :: SWord64 = s215 | s879+  s881 :: SWord64 = if s586 then s880 else s879+  s882 :: SWord64 = s218 | s881+  s883 :: SWord64 = if s584 then s882 else s881+  s884 :: SWord64 = s221 | s883+  s885 :: SWord64 = if s582 then s884 else s883+  s886 :: SWord64 = s224 | s885+  s887 :: SWord64 = if s580 then s886 else s885+  s888 :: SWord64 = s227 | s887+  s889 :: SWord64 = if s578 then s888 else s887+  s890 :: SWord64 = s230 | s889+  s891 :: SWord64 = if s576 then s890 else s889+  s892 :: SWord64 = s233 | s891+  s893 :: SWord64 = if s574 then s892 else s891+  s894 :: SWord64 = s236 | s893+  s895 :: SWord64 = if s572 then s894 else s893+  s896 :: SWord64 = s239 | s895+  s897 :: SWord64 = if s570 then s896 else s895+  s898 :: SWord64 = s242 | s897+  s899 :: SWord64 = if s568 then s898 else s897+  s900 :: SWord16 = choose [15:0] s899+  s901 :: SWord64 = s0 # s900+  s902 :: SWord1 = choose [0:0] s901+  s903 :: SBool = s5 /= s902+  s904 :: SWord1 = choose [47:47] s1+  s905 :: SBool = s5 /= s904+  s906 :: SWord1 = choose [46:46] s1+  s907 :: SBool = s5 /= s906+  s908 :: SWord1 = choose [45:45] s1+  s909 :: SBool = s5 /= s908+  s910 :: SWord1 = choose [44:44] s1+  s911 :: SBool = s5 /= s910+  s912 :: SWord1 = choose [43:43] s1+  s913 :: SBool = s5 /= s912+  s914 :: SWord1 = choose [42:42] s1+  s915 :: SBool = s5 /= s914+  s916 :: SWord1 = choose [41:41] s1+  s917 :: SBool = s5 /= s916+  s918 :: SWord1 = choose [40:40] s1+  s919 :: SBool = s5 /= s918+  s920 :: SWord1 = choose [39:39] s1+  s921 :: SBool = s5 /= s920+  s922 :: SWord1 = choose [38:38] s1+  s923 :: SBool = s5 /= s922+  s924 :: SWord1 = choose [37:37] s1+  s925 :: SBool = s5 /= s924+  s926 :: SWord1 = choose [36:36] s1+  s927 :: SBool = s5 /= s926+  s928 :: SWord1 = choose [35:35] s1+  s929 :: SBool = s5 /= s928+  s930 :: SWord1 = choose [34:34] s1+  s931 :: SBool = s5 /= s930+  s932 :: SWord1 = choose [33:33] s1+  s933 :: SBool = s5 /= s932+  s934 :: SWord1 = choose [32:32] s1+  s935 :: SBool = s5 /= s934+  s936 :: SWord1 = choose [31:31] s1+  s937 :: SBool = s5 /= s936+  s938 :: SWord1 = choose [30:30] s1+  s939 :: SBool = s5 /= s938+  s940 :: SWord1 = choose [29:29] s1+  s941 :: SBool = s5 /= s940+  s942 :: SWord1 = choose [28:28] s1+  s943 :: SBool = s5 /= s942+  s944 :: SWord1 = choose [27:27] s1+  s945 :: SBool = s5 /= s944+  s946 :: SWord1 = choose [26:26] s1+  s947 :: SBool = s5 /= s946+  s948 :: SWord1 = choose [25:25] s1+  s949 :: SBool = s5 /= s948+  s950 :: SWord1 = choose [24:24] s1+  s951 :: SBool = s5 /= s950+  s952 :: SWord1 = choose [23:23] s1+  s953 :: SBool = s5 /= s952+  s954 :: SWord1 = choose [22:22] s1+  s955 :: SBool = s5 /= s954+  s956 :: SWord1 = choose [21:21] s1+  s957 :: SBool = s5 /= s956+  s958 :: SWord1 = choose [20:20] s1+  s959 :: SBool = s5 /= s958+  s960 :: SWord1 = choose [19:19] s1+  s961 :: SBool = s5 /= s960+  s962 :: SWord1 = choose [18:18] s1+  s963 :: SBool = s5 /= s962+  s964 :: SWord1 = choose [17:17] s1+  s965 :: SBool = s5 /= s964+  s966 :: SWord1 = choose [16:16] s1+  s967 :: SBool = s5 /= s966+  s968 :: SWord1 = choose [15:15] s1+  s969 :: SBool = s5 /= s968+  s970 :: SWord1 = choose [14:14] s1+  s971 :: SBool = s5 /= s970+  s972 :: SWord1 = choose [13:13] s1+  s973 :: SBool = s5 /= s972+  s974 :: SWord1 = choose [12:12] s1+  s975 :: SBool = s5 /= s974+  s976 :: SWord1 = choose [11:11] s1+  s977 :: SBool = s5 /= s976+  s978 :: SWord1 = choose [10:10] s1+  s979 :: SBool = s5 /= s978+  s980 :: SWord1 = choose [9:9] s1+  s981 :: SBool = s5 /= s980+  s982 :: SWord1 = choose [8:8] s1+  s983 :: SBool = s5 /= s982+  s984 :: SWord1 = choose [7:7] s1+  s985 :: SBool = s5 /= s984+  s986 :: SWord1 = choose [6:6] s1+  s987 :: SBool = s5 /= s986+  s988 :: SWord1 = choose [5:5] s1+  s989 :: SBool = s5 /= s988+  s990 :: SWord1 = choose [4:4] s1+  s991 :: SBool = s5 /= s990+  s992 :: SWord1 = choose [3:3] s1+  s993 :: SBool = s5 /= s992+  s994 :: SWord1 = choose [2:2] s1+  s995 :: SBool = s5 /= s994+  s996 :: SWord1 = choose [1:1] s1+  s997 :: SBool = s5 /= s996+  s998 :: SWord1 = choose [0:0] s1+  s999 :: SBool = s5 /= s998+  s1000 :: SWord64 = if s999 then s101 else s102+  s1001 :: SWord64 = s104 | s1000+  s1002 :: SWord64 = if s997 then s1001 else s1000+  s1003 :: SWord64 = s107 | s1002+  s1004 :: SWord64 = if s995 then s1003 else s1002+  s1005 :: SWord64 = s110 | s1004+  s1006 :: SWord64 = if s993 then s1005 else s1004+  s1007 :: SWord64 = s113 | s1006+  s1008 :: SWord64 = if s991 then s1007 else s1006+  s1009 :: SWord64 = s116 | s1008+  s1010 :: SWord64 = if s989 then s1009 else s1008+  s1011 :: SWord64 = s119 | s1010+  s1012 :: SWord64 = if s987 then s1011 else s1010+  s1013 :: SWord64 = s122 | s1012+  s1014 :: SWord64 = if s985 then s1013 else s1012+  s1015 :: SWord64 = s125 | s1014+  s1016 :: SWord64 = if s983 then s1015 else s1014+  s1017 :: SWord64 = s128 | s1016+  s1018 :: SWord64 = if s981 then s1017 else s1016+  s1019 :: SWord64 = s131 | s1018+  s1020 :: SWord64 = if s979 then s1019 else s1018+  s1021 :: SWord64 = s134 | s1020+  s1022 :: SWord64 = if s977 then s1021 else s1020+  s1023 :: SWord64 = s137 | s1022+  s1024 :: SWord64 = if s975 then s1023 else s1022+  s1025 :: SWord64 = s140 | s1024+  s1026 :: SWord64 = if s973 then s1025 else s1024+  s1027 :: SWord64 = s143 | s1026+  s1028 :: SWord64 = if s971 then s1027 else s1026+  s1029 :: SWord64 = s146 | s1028+  s1030 :: SWord64 = if s969 then s1029 else s1028+  s1031 :: SWord64 = s149 | s1030+  s1032 :: SWord64 = if s967 then s1031 else s1030+  s1033 :: SWord64 = s152 | s1032+  s1034 :: SWord64 = if s965 then s1033 else s1032+  s1035 :: SWord64 = s155 | s1034+  s1036 :: SWord64 = if s963 then s1035 else s1034+  s1037 :: SWord64 = s158 | s1036+  s1038 :: SWord64 = if s961 then s1037 else s1036+  s1039 :: SWord64 = s161 | s1038+  s1040 :: SWord64 = if s959 then s1039 else s1038+  s1041 :: SWord64 = s164 | s1040+  s1042 :: SWord64 = if s957 then s1041 else s1040+  s1043 :: SWord64 = s167 | s1042+  s1044 :: SWord64 = if s955 then s1043 else s1042+  s1045 :: SWord64 = s170 | s1044+  s1046 :: SWord64 = if s953 then s1045 else s1044+  s1047 :: SWord64 = s173 | s1046+  s1048 :: SWord64 = if s951 then s1047 else s1046+  s1049 :: SWord64 = s176 | s1048+  s1050 :: SWord64 = if s949 then s1049 else s1048+  s1051 :: SWord64 = s179 | s1050+  s1052 :: SWord64 = if s947 then s1051 else s1050+  s1053 :: SWord64 = s182 | s1052+  s1054 :: SWord64 = if s945 then s1053 else s1052+  s1055 :: SWord64 = s185 | s1054+  s1056 :: SWord64 = if s943 then s1055 else s1054+  s1057 :: SWord64 = s188 | s1056+  s1058 :: SWord64 = if s941 then s1057 else s1056+  s1059 :: SWord64 = s191 | s1058+  s1060 :: SWord64 = if s939 then s1059 else s1058+  s1061 :: SWord64 = s194 | s1060+  s1062 :: SWord64 = if s937 then s1061 else s1060+  s1063 :: SWord64 = s197 | s1062+  s1064 :: SWord64 = if s935 then s1063 else s1062+  s1065 :: SWord64 = s200 | s1064+  s1066 :: SWord64 = if s933 then s1065 else s1064+  s1067 :: SWord64 = s203 | s1066+  s1068 :: SWord64 = if s931 then s1067 else s1066+  s1069 :: SWord64 = s206 | s1068+  s1070 :: SWord64 = if s929 then s1069 else s1068+  s1071 :: SWord64 = s209 | s1070+  s1072 :: SWord64 = if s927 then s1071 else s1070+  s1073 :: SWord64 = s212 | s1072+  s1074 :: SWord64 = if s925 then s1073 else s1072+  s1075 :: SWord64 = s215 | s1074+  s1076 :: SWord64 = if s923 then s1075 else s1074+  s1077 :: SWord64 = s218 | s1076+  s1078 :: SWord64 = if s921 then s1077 else s1076+  s1079 :: SWord64 = s221 | s1078+  s1080 :: SWord64 = if s919 then s1079 else s1078+  s1081 :: SWord64 = s224 | s1080+  s1082 :: SWord64 = if s917 then s1081 else s1080+  s1083 :: SWord64 = s227 | s1082+  s1084 :: SWord64 = if s915 then s1083 else s1082+  s1085 :: SWord64 = s230 | s1084+  s1086 :: SWord64 = if s913 then s1085 else s1084+  s1087 :: SWord64 = s233 | s1086+  s1088 :: SWord64 = if s911 then s1087 else s1086+  s1089 :: SWord64 = s236 | s1088+  s1090 :: SWord64 = if s909 then s1089 else s1088+  s1091 :: SWord64 = s239 | s1090+  s1092 :: SWord64 = if s907 then s1091 else s1090+  s1093 :: SWord64 = s242 | s1092+  s1094 :: SWord64 = if s905 then s1093 else s1092+  s1095 :: SWord1 = choose [63:63] s1094+  s1096 :: SBool = s5 /= s1095+  s1097 :: SWord1 = choose [62:62] s1094+  s1098 :: SBool = s5 /= s1097+  s1099 :: SWord1 = choose [61:61] s1094+  s1100 :: SBool = s5 /= s1099+  s1101 :: SWord1 = choose [60:60] s1094+  s1102 :: SBool = s5 /= s1101+  s1103 :: SWord1 = choose [59:59] s1094+  s1104 :: SBool = s5 /= s1103+  s1105 :: SBool = ~ s1104+  s1106 :: SBool = if s1096 then s1105 else s1104+  s1107 :: SWord1 = choose [58:58] s1094+  s1108 :: SBool = s5 /= s1107+  s1109 :: SBool = ~ s1108+  s1110 :: SBool = if s1098 then s1109 else s1108+  s1111 :: SWord1 = choose [57:57] s1094+  s1112 :: SBool = s5 /= s1111+  s1113 :: SBool = ~ s1112+  s1114 :: SBool = if s1100 then s1113 else s1112+  s1115 :: SWord1 = choose [56:56] s1094+  s1116 :: SBool = s5 /= s1115+  s1117 :: SBool = ~ s1116+  s1118 :: SBool = if s1102 then s1117 else s1116+  s1119 :: SWord1 = choose [55:55] s1094+  s1120 :: SBool = s5 /= s1119+  s1121 :: SBool = ~ s1120+  s1122 :: SBool = if s1106 then s1121 else s1120+  s1123 :: SWord1 = choose [54:54] s1094+  s1124 :: SBool = s5 /= s1123+  s1125 :: SBool = ~ s1124+  s1126 :: SBool = if s1110 then s1125 else s1124+  s1127 :: SWord1 = choose [53:53] s1094+  s1128 :: SBool = s5 /= s1127+  s1129 :: SBool = ~ s1128+  s1130 :: SBool = if s1114 then s1129 else s1128+  s1131 :: SWord1 = choose [52:52] s1094+  s1132 :: SBool = s5 /= s1131+  s1133 :: SBool = ~ s1132+  s1134 :: SBool = if s1096 then s1133 else s1132+  s1135 :: SBool = ~ s1134+  s1136 :: SBool = if s1118 then s1135 else s1134+  s1137 :: SWord1 = choose [51:51] s1094+  s1138 :: SBool = s5 /= s1137+  s1139 :: SBool = ~ s1138+  s1140 :: SBool = if s1098 then s1139 else s1138+  s1141 :: SBool = ~ s1140+  s1142 :: SBool = if s1122 then s1141 else s1140+  s1143 :: SWord1 = choose [50:50] s1094+  s1144 :: SBool = s5 /= s1143+  s1145 :: SBool = ~ s1144+  s1146 :: SBool = if s1100 then s1145 else s1144+  s1147 :: SBool = ~ s1146+  s1148 :: SBool = if s1126 then s1147 else s1146+  s1149 :: SWord1 = choose [49:49] s1094+  s1150 :: SBool = s5 /= s1149+  s1151 :: SBool = ~ s1150+  s1152 :: SBool = if s1102 then s1151 else s1150+  s1153 :: SBool = ~ s1152+  s1154 :: SBool = if s1130 then s1153 else s1152+  s1155 :: SWord1 = choose [48:48] s1094+  s1156 :: SBool = s5 /= s1155+  s1157 :: SBool = ~ s1156+  s1158 :: SBool = if s1106 then s1157 else s1156+  s1159 :: SBool = ~ s1158+  s1160 :: SBool = if s1136 then s1159 else s1158+  s1161 :: SWord1 = choose [47:47] s1094+  s1162 :: SBool = s5 /= s1161+  s1163 :: SBool = ~ s1162+  s1164 :: SBool = if s1096 then s1163 else s1162+  s1165 :: SBool = ~ s1164+  s1166 :: SBool = if s1110 then s1165 else s1164+  s1167 :: SBool = ~ s1166+  s1168 :: SBool = if s1142 then s1167 else s1166+  s1169 :: SWord1 = choose [46:46] s1094+  s1170 :: SBool = s5 /= s1169+  s1171 :: SBool = ~ s1170+  s1172 :: SBool = if s1098 then s1171 else s1170+  s1173 :: SBool = ~ s1172+  s1174 :: SBool = if s1114 then s1173 else s1172+  s1175 :: SBool = ~ s1174+  s1176 :: SBool = if s1148 then s1175 else s1174+  s1177 :: SWord1 = choose [45:45] s1094+  s1178 :: SBool = s5 /= s1177+  s1179 :: SBool = ~ s1178+  s1180 :: SBool = if s1100 then s1179 else s1178+  s1181 :: SBool = ~ s1180+  s1182 :: SBool = if s1118 then s1181 else s1180+  s1183 :: SBool = ~ s1182+  s1184 :: SBool = if s1154 then s1183 else s1182+  s1185 :: SWord1 = choose [44:44] s1094+  s1186 :: SBool = s5 /= s1185+  s1187 :: SBool = ~ s1186+  s1188 :: SBool = if s1102 then s1187 else s1186+  s1189 :: SBool = ~ s1188+  s1190 :: SBool = if s1122 then s1189 else s1188+  s1191 :: SBool = ~ s1190+  s1192 :: SBool = if s1160 then s1191 else s1190+  s1193 :: SWord1 = choose [43:43] s1094+  s1194 :: SBool = s5 /= s1193+  s1195 :: SBool = ~ s1194+  s1196 :: SBool = if s1106 then s1195 else s1194+  s1197 :: SBool = ~ s1196+  s1198 :: SBool = if s1126 then s1197 else s1196+  s1199 :: SBool = ~ s1198+  s1200 :: SBool = if s1168 then s1199 else s1198+  s1201 :: SWord1 = choose [42:42] s1094+  s1202 :: SBool = s5 /= s1201+  s1203 :: SBool = ~ s1202+  s1204 :: SBool = if s1110 then s1203 else s1202+  s1205 :: SBool = ~ s1204+  s1206 :: SBool = if s1130 then s1205 else s1204+  s1207 :: SBool = ~ s1206+  s1208 :: SBool = if s1176 then s1207 else s1206+  s1209 :: SWord1 = choose [41:41] s1094+  s1210 :: SBool = s5 /= s1209+  s1211 :: SBool = ~ s1210+  s1212 :: SBool = if s1114 then s1211 else s1210+  s1213 :: SBool = ~ s1212+  s1214 :: SBool = if s1136 then s1213 else s1212+  s1215 :: SBool = ~ s1214+  s1216 :: SBool = if s1184 then s1215 else s1214+  s1217 :: SWord1 = choose [40:40] s1094+  s1218 :: SBool = s5 /= s1217+  s1219 :: SBool = ~ s1218+  s1220 :: SBool = if s1118 then s1219 else s1218+  s1221 :: SBool = ~ s1220+  s1222 :: SBool = if s1142 then s1221 else s1220+  s1223 :: SBool = ~ s1222+  s1224 :: SBool = if s1192 then s1223 else s1222+  s1225 :: SWord1 = choose [39:39] s1094+  s1226 :: SBool = s5 /= s1225+  s1227 :: SBool = ~ s1226+  s1228 :: SBool = if s1122 then s1227 else s1226+  s1229 :: SBool = ~ s1228+  s1230 :: SBool = if s1148 then s1229 else s1228+  s1231 :: SBool = ~ s1230+  s1232 :: SBool = if s1200 then s1231 else s1230+  s1233 :: SWord1 = choose [38:38] s1094+  s1234 :: SBool = s5 /= s1233+  s1235 :: SBool = ~ s1234+  s1236 :: SBool = if s1126 then s1235 else s1234+  s1237 :: SBool = ~ s1236+  s1238 :: SBool = if s1154 then s1237 else s1236+  s1239 :: SBool = ~ s1238+  s1240 :: SBool = if s1208 then s1239 else s1238+  s1241 :: SWord1 = choose [37:37] s1094+  s1242 :: SBool = s5 /= s1241+  s1243 :: SBool = ~ s1242+  s1244 :: SBool = if s1130 then s1243 else s1242+  s1245 :: SBool = ~ s1244+  s1246 :: SBool = if s1160 then s1245 else s1244+  s1247 :: SBool = ~ s1246+  s1248 :: SBool = if s1216 then s1247 else s1246+  s1249 :: SWord1 = choose [36:36] s1094+  s1250 :: SBool = s5 /= s1249+  s1251 :: SBool = ~ s1250+  s1252 :: SBool = if s1136 then s1251 else s1250+  s1253 :: SBool = ~ s1252+  s1254 :: SBool = if s1168 then s1253 else s1252+  s1255 :: SBool = ~ s1254+  s1256 :: SBool = if s1224 then s1255 else s1254+  s1257 :: SWord1 = choose [35:35] s1094+  s1258 :: SBool = s5 /= s1257+  s1259 :: SBool = ~ s1258+  s1260 :: SBool = if s1142 then s1259 else s1258+  s1261 :: SBool = ~ s1260+  s1262 :: SBool = if s1176 then s1261 else s1260+  s1263 :: SBool = ~ s1262+  s1264 :: SBool = if s1232 then s1263 else s1262+  s1265 :: SWord1 = choose [34:34] s1094+  s1266 :: SBool = s5 /= s1265+  s1267 :: SBool = ~ s1266+  s1268 :: SBool = if s1148 then s1267 else s1266+  s1269 :: SBool = ~ s1268+  s1270 :: SBool = if s1184 then s1269 else s1268+  s1271 :: SBool = ~ s1270+  s1272 :: SBool = if s1240 then s1271 else s1270+  s1273 :: SWord1 = choose [33:33] s1094+  s1274 :: SBool = s5 /= s1273+  s1275 :: SBool = ~ s1274+  s1276 :: SBool = if s1154 then s1275 else s1274+  s1277 :: SBool = ~ s1276+  s1278 :: SBool = if s1192 then s1277 else s1276+  s1279 :: SBool = ~ s1278+  s1280 :: SBool = if s1248 then s1279 else s1278+  s1281 :: SWord1 = choose [32:32] s1094+  s1282 :: SBool = s5 /= s1281+  s1283 :: SBool = ~ s1282+  s1284 :: SBool = if s1160 then s1283 else s1282+  s1285 :: SBool = ~ s1284+  s1286 :: SBool = if s1200 then s1285 else s1284+  s1287 :: SBool = ~ s1286+  s1288 :: SBool = if s1256 then s1287 else s1286+  s1289 :: SWord1 = choose [31:31] s1094+  s1290 :: SBool = s5 /= s1289+  s1291 :: SBool = ~ s1290+  s1292 :: SBool = if s1168 then s1291 else s1290+  s1293 :: SBool = ~ s1292+  s1294 :: SBool = if s1208 then s1293 else s1292+  s1295 :: SBool = ~ s1294+  s1296 :: SBool = if s1264 then s1295 else s1294+  s1297 :: SWord1 = choose [30:30] s1094+  s1298 :: SBool = s5 /= s1297+  s1299 :: SBool = ~ s1298+  s1300 :: SBool = if s1176 then s1299 else s1298+  s1301 :: SBool = ~ s1300+  s1302 :: SBool = if s1216 then s1301 else s1300+  s1303 :: SBool = ~ s1302+  s1304 :: SBool = if s1272 then s1303 else s1302+  s1305 :: SWord1 = choose [29:29] s1094+  s1306 :: SBool = s5 /= s1305+  s1307 :: SBool = ~ s1306+  s1308 :: SBool = if s1184 then s1307 else s1306+  s1309 :: SBool = ~ s1308+  s1310 :: SBool = if s1224 then s1309 else s1308+  s1311 :: SBool = ~ s1310+  s1312 :: SBool = if s1280 then s1311 else s1310+  s1313 :: SWord1 = choose [28:28] s1094+  s1314 :: SBool = s5 /= s1313+  s1315 :: SBool = ~ s1314+  s1316 :: SBool = if s1192 then s1315 else s1314+  s1317 :: SBool = ~ s1316+  s1318 :: SBool = if s1232 then s1317 else s1316+  s1319 :: SBool = ~ s1318+  s1320 :: SBool = if s1288 then s1319 else s1318+  s1321 :: SWord1 = choose [27:27] s1094+  s1322 :: SBool = s5 /= s1321+  s1323 :: SBool = ~ s1322+  s1324 :: SBool = if s1200 then s1323 else s1322+  s1325 :: SBool = ~ s1324+  s1326 :: SBool = if s1240 then s1325 else s1324+  s1327 :: SBool = ~ s1326+  s1328 :: SBool = if s1296 then s1327 else s1326+  s1329 :: SWord1 = choose [26:26] s1094+  s1330 :: SBool = s5 /= s1329+  s1331 :: SBool = ~ s1330+  s1332 :: SBool = if s1208 then s1331 else s1330+  s1333 :: SBool = ~ s1332+  s1334 :: SBool = if s1248 then s1333 else s1332+  s1335 :: SBool = ~ s1334+  s1336 :: SBool = if s1304 then s1335 else s1334+  s1337 :: SWord1 = choose [25:25] s1094+  s1338 :: SBool = s5 /= s1337+  s1339 :: SBool = ~ s1338+  s1340 :: SBool = if s1216 then s1339 else s1338+  s1341 :: SBool = ~ s1340+  s1342 :: SBool = if s1256 then s1341 else s1340+  s1343 :: SBool = ~ s1342+  s1344 :: SBool = if s1312 then s1343 else s1342+  s1345 :: SWord1 = choose [24:24] s1094+  s1346 :: SBool = s5 /= s1345+  s1347 :: SBool = ~ s1346+  s1348 :: SBool = if s1224 then s1347 else s1346+  s1349 :: SBool = ~ s1348+  s1350 :: SBool = if s1264 then s1349 else s1348+  s1351 :: SBool = ~ s1350+  s1352 :: SBool = if s1320 then s1351 else s1350+  s1353 :: SWord1 = choose [23:23] s1094+  s1354 :: SBool = s5 /= s1353+  s1355 :: SBool = ~ s1354+  s1356 :: SBool = if s1232 then s1355 else s1354+  s1357 :: SBool = ~ s1356+  s1358 :: SBool = if s1272 then s1357 else s1356+  s1359 :: SBool = ~ s1358+  s1360 :: SBool = if s1328 then s1359 else s1358+  s1361 :: SWord1 = choose [22:22] s1094+  s1362 :: SBool = s5 /= s1361+  s1363 :: SBool = ~ s1362+  s1364 :: SBool = if s1240 then s1363 else s1362+  s1365 :: SBool = ~ s1364+  s1366 :: SBool = if s1280 then s1365 else s1364+  s1367 :: SBool = ~ s1366+  s1368 :: SBool = if s1336 then s1367 else s1366+  s1369 :: SWord1 = choose [21:21] s1094+  s1370 :: SBool = s5 /= s1369+  s1371 :: SBool = ~ s1370+  s1372 :: SBool = if s1248 then s1371 else s1370+  s1373 :: SBool = ~ s1372+  s1374 :: SBool = if s1288 then s1373 else s1372+  s1375 :: SBool = ~ s1374+  s1376 :: SBool = if s1344 then s1375 else s1374+  s1377 :: SWord1 = choose [20:20] s1094+  s1378 :: SBool = s5 /= s1377+  s1379 :: SBool = ~ s1378+  s1380 :: SBool = if s1256 then s1379 else s1378+  s1381 :: SBool = ~ s1380+  s1382 :: SBool = if s1296 then s1381 else s1380+  s1383 :: SBool = ~ s1382+  s1384 :: SBool = if s1352 then s1383 else s1382+  s1385 :: SWord1 = choose [19:19] s1094+  s1386 :: SBool = s5 /= s1385+  s1387 :: SBool = ~ s1386+  s1388 :: SBool = if s1264 then s1387 else s1386+  s1389 :: SBool = ~ s1388+  s1390 :: SBool = if s1304 then s1389 else s1388+  s1391 :: SBool = ~ s1390+  s1392 :: SBool = if s1360 then s1391 else s1390+  s1393 :: SWord1 = choose [18:18] s1094+  s1394 :: SBool = s5 /= s1393+  s1395 :: SBool = ~ s1394+  s1396 :: SBool = if s1272 then s1395 else s1394+  s1397 :: SBool = ~ s1396+  s1398 :: SBool = if s1312 then s1397 else s1396+  s1399 :: SBool = ~ s1398+  s1400 :: SBool = if s1368 then s1399 else s1398+  s1401 :: SWord1 = choose [17:17] s1094+  s1402 :: SBool = s5 /= s1401+  s1403 :: SBool = ~ s1402+  s1404 :: SBool = if s1280 then s1403 else s1402+  s1405 :: SBool = ~ s1404+  s1406 :: SBool = if s1320 then s1405 else s1404+  s1407 :: SBool = ~ s1406+  s1408 :: SBool = if s1376 then s1407 else s1406+  s1409 :: SWord1 = choose [16:16] s1094+  s1410 :: SBool = s5 /= s1409+  s1411 :: SBool = ~ s1410+  s1412 :: SBool = if s1288 then s1411 else s1410+  s1413 :: SBool = ~ s1412+  s1414 :: SBool = if s1328 then s1413 else s1412+  s1415 :: SBool = ~ s1414+  s1416 :: SBool = if s1384 then s1415 else s1414+  s1417 :: SBool = ~ s1096+  s1418 :: SBool = if s1096 then s1417 else s1096+  s1419 :: SBool = ~ s1098+  s1420 :: SBool = if s1098 then s1419 else s1098+  s1421 :: SBool = ~ s1100+  s1422 :: SBool = if s1100 then s1421 else s1100+  s1423 :: SBool = ~ s1102+  s1424 :: SBool = if s1102 then s1423 else s1102+  s1425 :: SBool = ~ s1106+  s1426 :: SBool = if s1106 then s1425 else s1106+  s1427 :: SBool = ~ s1110+  s1428 :: SBool = if s1110 then s1427 else s1110+  s1429 :: SBool = ~ s1114+  s1430 :: SBool = if s1114 then s1429 else s1114+  s1431 :: SBool = ~ s1118+  s1432 :: SBool = if s1118 then s1431 else s1118+  s1433 :: SBool = ~ s1122+  s1434 :: SBool = if s1122 then s1433 else s1122+  s1435 :: SBool = ~ s1126+  s1436 :: SBool = if s1126 then s1435 else s1126+  s1437 :: SBool = ~ s1130+  s1438 :: SBool = if s1130 then s1437 else s1130+  s1439 :: SBool = ~ s1136+  s1440 :: SBool = if s1136 then s1439 else s1136+  s1441 :: SBool = ~ s1142+  s1442 :: SBool = if s1142 then s1441 else s1142+  s1443 :: SBool = ~ s1148+  s1444 :: SBool = if s1148 then s1443 else s1148+  s1445 :: SBool = ~ s1154+  s1446 :: SBool = if s1154 then s1445 else s1154+  s1447 :: SBool = ~ s1160+  s1448 :: SBool = if s1160 then s1447 else s1160+  s1449 :: SBool = ~ s1168+  s1450 :: SBool = if s1168 then s1449 else s1168+  s1451 :: SBool = ~ s1176+  s1452 :: SBool = if s1176 then s1451 else s1176+  s1453 :: SBool = ~ s1184+  s1454 :: SBool = if s1184 then s1453 else s1184+  s1455 :: SBool = ~ s1192+  s1456 :: SBool = if s1192 then s1455 else s1192+  s1457 :: SBool = ~ s1200+  s1458 :: SBool = if s1200 then s1457 else s1200+  s1459 :: SBool = ~ s1208+  s1460 :: SBool = if s1208 then s1459 else s1208+  s1461 :: SBool = ~ s1216+  s1462 :: SBool = if s1216 then s1461 else s1216+  s1463 :: SBool = ~ s1224+  s1464 :: SBool = if s1224 then s1463 else s1224+  s1465 :: SBool = ~ s1232+  s1466 :: SBool = if s1232 then s1465 else s1232+  s1467 :: SBool = ~ s1240+  s1468 :: SBool = if s1240 then s1467 else s1240+  s1469 :: SBool = ~ s1248+  s1470 :: SBool = if s1248 then s1469 else s1248+  s1471 :: SBool = ~ s1256+  s1472 :: SBool = if s1256 then s1471 else s1256+  s1473 :: SBool = ~ s1264+  s1474 :: SBool = if s1264 then s1473 else s1264+  s1475 :: SBool = ~ s1272+  s1476 :: SBool = if s1272 then s1475 else s1272+  s1477 :: SBool = ~ s1280+  s1478 :: SBool = if s1280 then s1477 else s1280+  s1479 :: SBool = ~ s1288+  s1480 :: SBool = if s1288 then s1479 else s1288+  s1481 :: SBool = ~ s1296+  s1482 :: SBool = if s1296 then s1481 else s1296+  s1483 :: SBool = ~ s1304+  s1484 :: SBool = if s1304 then s1483 else s1304+  s1485 :: SBool = ~ s1312+  s1486 :: SBool = if s1312 then s1485 else s1312+  s1487 :: SBool = ~ s1320+  s1488 :: SBool = if s1320 then s1487 else s1320+  s1489 :: SBool = ~ s1328+  s1490 :: SBool = if s1328 then s1489 else s1328+  s1491 :: SBool = ~ s1336+  s1492 :: SBool = if s1336 then s1491 else s1336+  s1493 :: SBool = ~ s1344+  s1494 :: SBool = if s1344 then s1493 else s1344+  s1495 :: SBool = ~ s1352+  s1496 :: SBool = if s1352 then s1495 else s1352+  s1497 :: SBool = ~ s1360+  s1498 :: SBool = if s1360 then s1497 else s1360+  s1499 :: SBool = ~ s1368+  s1500 :: SBool = if s1368 then s1499 else s1368+  s1501 :: SBool = ~ s1376+  s1502 :: SBool = if s1376 then s1501 else s1376+  s1503 :: SBool = ~ s1384+  s1504 :: SBool = if s1384 then s1503 else s1384+  s1505 :: SBool = ~ s1392+  s1506 :: SBool = if s1392 then s1505 else s1392+  s1507 :: SBool = ~ s1400+  s1508 :: SBool = if s1400 then s1507 else s1400+  s1509 :: SBool = ~ s1408+  s1510 :: SBool = if s1408 then s1509 else s1408+  s1511 :: SBool = ~ s1416+  s1512 :: SBool = if s1416 then s1511 else s1416+  s1513 :: SWord1 = choose [15:15] s1094+  s1514 :: SBool = s5 /= s1513+  s1515 :: SBool = ~ s1514+  s1516 :: SBool = if s1296 then s1515 else s1514+  s1517 :: SBool = ~ s1516+  s1518 :: SBool = if s1336 then s1517 else s1516+  s1519 :: SBool = ~ s1518+  s1520 :: SBool = if s1392 then s1519 else s1518+  s1521 :: SWord1 = choose [14:14] s1094+  s1522 :: SBool = s5 /= s1521+  s1523 :: SBool = ~ s1522+  s1524 :: SBool = if s1304 then s1523 else s1522+  s1525 :: SBool = ~ s1524+  s1526 :: SBool = if s1344 then s1525 else s1524+  s1527 :: SBool = ~ s1526+  s1528 :: SBool = if s1400 then s1527 else s1526+  s1529 :: SWord1 = choose [13:13] s1094+  s1530 :: SBool = s5 /= s1529+  s1531 :: SBool = ~ s1530+  s1532 :: SBool = if s1312 then s1531 else s1530+  s1533 :: SBool = ~ s1532+  s1534 :: SBool = if s1352 then s1533 else s1532+  s1535 :: SBool = ~ s1534+  s1536 :: SBool = if s1408 then s1535 else s1534+  s1537 :: SWord1 = choose [12:12] s1094+  s1538 :: SBool = s5 /= s1537+  s1539 :: SBool = ~ s1538+  s1540 :: SBool = if s1320 then s1539 else s1538+  s1541 :: SBool = ~ s1540+  s1542 :: SBool = if s1360 then s1541 else s1540+  s1543 :: SBool = ~ s1542+  s1544 :: SBool = if s1416 then s1543 else s1542+  s1545 :: SWord1 = choose [11:11] s1094+  s1546 :: SBool = s5 /= s1545+  s1547 :: SBool = ~ s1546+  s1548 :: SBool = if s1328 then s1547 else s1546+  s1549 :: SBool = ~ s1548+  s1550 :: SBool = if s1368 then s1549 else s1548+  s1551 :: SWord1 = choose [10:10] s1094+  s1552 :: SBool = s5 /= s1551+  s1553 :: SBool = ~ s1552+  s1554 :: SBool = if s1336 then s1553 else s1552+  s1555 :: SBool = ~ s1554+  s1556 :: SBool = if s1376 then s1555 else s1554+  s1557 :: SWord1 = choose [9:9] s1094+  s1558 :: SBool = s5 /= s1557+  s1559 :: SBool = ~ s1558+  s1560 :: SBool = if s1344 then s1559 else s1558+  s1561 :: SBool = ~ s1560+  s1562 :: SBool = if s1384 then s1561 else s1560+  s1563 :: SWord1 = choose [8:8] s1094+  s1564 :: SBool = s5 /= s1563+  s1565 :: SBool = ~ s1564+  s1566 :: SBool = if s1352 then s1565 else s1564+  s1567 :: SBool = ~ s1566+  s1568 :: SBool = if s1392 then s1567 else s1566+  s1569 :: SWord1 = choose [7:7] s1094+  s1570 :: SBool = s5 /= s1569+  s1571 :: SBool = ~ s1570+  s1572 :: SBool = if s1360 then s1571 else s1570+  s1573 :: SBool = ~ s1572+  s1574 :: SBool = if s1400 then s1573 else s1572+  s1575 :: SWord1 = choose [6:6] s1094+  s1576 :: SBool = s5 /= s1575+  s1577 :: SBool = ~ s1576+  s1578 :: SBool = if s1368 then s1577 else s1576+  s1579 :: SBool = ~ s1578+  s1580 :: SBool = if s1408 then s1579 else s1578+  s1581 :: SWord1 = choose [5:5] s1094+  s1582 :: SBool = s5 /= s1581+  s1583 :: SBool = ~ s1582+  s1584 :: SBool = if s1376 then s1583 else s1582+  s1585 :: SBool = ~ s1584+  s1586 :: SBool = if s1416 then s1585 else s1584+  s1587 :: SWord1 = choose [4:4] s1094+  s1588 :: SBool = s5 /= s1587+  s1589 :: SBool = ~ s1588+  s1590 :: SBool = if s1384 then s1589 else s1588+  s1591 :: SWord1 = choose [3:3] s1094+  s1592 :: SBool = s5 /= s1591+  s1593 :: SBool = ~ s1592+  s1594 :: SBool = if s1392 then s1593 else s1592+  s1595 :: SWord1 = choose [2:2] s1094+  s1596 :: SBool = s5 /= s1595+  s1597 :: SBool = ~ s1596+  s1598 :: SBool = if s1400 then s1597 else s1596+  s1599 :: SWord1 = choose [1:1] s1094+  s1600 :: SBool = s5 /= s1599+  s1601 :: SBool = ~ s1600+  s1602 :: SBool = if s1408 then s1601 else s1600+  s1603 :: SWord1 = choose [0:0] s1094+  s1604 :: SBool = s5 /= s1603+  s1605 :: SBool = ~ s1604+  s1606 :: SBool = if s1416 then s1605 else s1604+  s1607 :: SWord64 = if s1606 then s757 else s102+  s1608 :: SWord64 = s759 | s1607+  s1609 :: SWord64 = if s1602 then s1608 else s1607+  s1610 :: SWord64 = s762 | s1609+  s1611 :: SWord64 = if s1598 then s1610 else s1609+  s1612 :: SWord64 = s765 | s1611+  s1613 :: SWord64 = if s1594 then s1612 else s1611+  s1614 :: SWord64 = s768 | s1613+  s1615 :: SWord64 = if s1590 then s1614 else s1613+  s1616 :: SWord64 = s771 | s1615+  s1617 :: SWord64 = if s1586 then s1616 else s1615+  s1618 :: SWord64 = s774 | s1617+  s1619 :: SWord64 = if s1580 then s1618 else s1617+  s1620 :: SWord64 = s777 | s1619+  s1621 :: SWord64 = if s1574 then s1620 else s1619+  s1622 :: SWord64 = s780 | s1621+  s1623 :: SWord64 = if s1568 then s1622 else s1621+  s1624 :: SWord64 = s783 | s1623+  s1625 :: SWord64 = if s1562 then s1624 else s1623+  s1626 :: SWord64 = s786 | s1625+  s1627 :: SWord64 = if s1556 then s1626 else s1625+  s1628 :: SWord64 = s789 | s1627+  s1629 :: SWord64 = if s1550 then s1628 else s1627+  s1630 :: SWord64 = s792 | s1629+  s1631 :: SWord64 = if s1544 then s1630 else s1629+  s1632 :: SWord64 = s795 | s1631+  s1633 :: SWord64 = if s1536 then s1632 else s1631+  s1634 :: SWord64 = s798 | s1633+  s1635 :: SWord64 = if s1528 then s1634 else s1633+  s1636 :: SWord64 = s801 | s1635+  s1637 :: SWord64 = if s1520 then s1636 else s1635+  s1638 :: SWord64 = s101 | s1637+  s1639 :: SWord64 = if s1512 then s1638 else s1637+  s1640 :: SWord64 = s104 | s1639+  s1641 :: SWord64 = if s1510 then s1640 else s1639+  s1642 :: SWord64 = s107 | s1641+  s1643 :: SWord64 = if s1508 then s1642 else s1641+  s1644 :: SWord64 = s110 | s1643+  s1645 :: SWord64 = if s1506 then s1644 else s1643+  s1646 :: SWord64 = s113 | s1645+  s1647 :: SWord64 = if s1504 then s1646 else s1645+  s1648 :: SWord64 = s116 | s1647+  s1649 :: SWord64 = if s1502 then s1648 else s1647+  s1650 :: SWord64 = s119 | s1649+  s1651 :: SWord64 = if s1500 then s1650 else s1649+  s1652 :: SWord64 = s122 | s1651+  s1653 :: SWord64 = if s1498 then s1652 else s1651+  s1654 :: SWord64 = s125 | s1653+  s1655 :: SWord64 = if s1496 then s1654 else s1653+  s1656 :: SWord64 = s128 | s1655+  s1657 :: SWord64 = if s1494 then s1656 else s1655+  s1658 :: SWord64 = s131 | s1657+  s1659 :: SWord64 = if s1492 then s1658 else s1657+  s1660 :: SWord64 = s134 | s1659+  s1661 :: SWord64 = if s1490 then s1660 else s1659+  s1662 :: SWord64 = s137 | s1661+  s1663 :: SWord64 = if s1488 then s1662 else s1661+  s1664 :: SWord64 = s140 | s1663+  s1665 :: SWord64 = if s1486 then s1664 else s1663+  s1666 :: SWord64 = s143 | s1665+  s1667 :: SWord64 = if s1484 then s1666 else s1665+  s1668 :: SWord64 = s146 | s1667+  s1669 :: SWord64 = if s1482 then s1668 else s1667+  s1670 :: SWord64 = s149 | s1669+  s1671 :: SWord64 = if s1480 then s1670 else s1669+  s1672 :: SWord64 = s152 | s1671+  s1673 :: SWord64 = if s1478 then s1672 else s1671+  s1674 :: SWord64 = s155 | s1673+  s1675 :: SWord64 = if s1476 then s1674 else s1673+  s1676 :: SWord64 = s158 | s1675+  s1677 :: SWord64 = if s1474 then s1676 else s1675+  s1678 :: SWord64 = s161 | s1677+  s1679 :: SWord64 = if s1472 then s1678 else s1677+  s1680 :: SWord64 = s164 | s1679+  s1681 :: SWord64 = if s1470 then s1680 else s1679+  s1682 :: SWord64 = s167 | s1681+  s1683 :: SWord64 = if s1468 then s1682 else s1681+  s1684 :: SWord64 = s170 | s1683+  s1685 :: SWord64 = if s1466 then s1684 else s1683+  s1686 :: SWord64 = s173 | s1685+  s1687 :: SWord64 = if s1464 then s1686 else s1685+  s1688 :: SWord64 = s176 | s1687+  s1689 :: SWord64 = if s1462 then s1688 else s1687+  s1690 :: SWord64 = s179 | s1689+  s1691 :: SWord64 = if s1460 then s1690 else s1689+  s1692 :: SWord64 = s182 | s1691+  s1693 :: SWord64 = if s1458 then s1692 else s1691+  s1694 :: SWord64 = s185 | s1693+  s1695 :: SWord64 = if s1456 then s1694 else s1693+  s1696 :: SWord64 = s188 | s1695+  s1697 :: SWord64 = if s1454 then s1696 else s1695+  s1698 :: SWord64 = s191 | s1697+  s1699 :: SWord64 = if s1452 then s1698 else s1697+  s1700 :: SWord64 = s194 | s1699+  s1701 :: SWord64 = if s1450 then s1700 else s1699+  s1702 :: SWord64 = s197 | s1701+  s1703 :: SWord64 = if s1448 then s1702 else s1701+  s1704 :: SWord64 = s200 | s1703+  s1705 :: SWord64 = if s1446 then s1704 else s1703+  s1706 :: SWord64 = s203 | s1705+  s1707 :: SWord64 = if s1444 then s1706 else s1705+  s1708 :: SWord64 = s206 | s1707+  s1709 :: SWord64 = if s1442 then s1708 else s1707+  s1710 :: SWord64 = s209 | s1709+  s1711 :: SWord64 = if s1440 then s1710 else s1709+  s1712 :: SWord64 = s212 | s1711+  s1713 :: SWord64 = if s1438 then s1712 else s1711+  s1714 :: SWord64 = s215 | s1713+  s1715 :: SWord64 = if s1436 then s1714 else s1713+  s1716 :: SWord64 = s218 | s1715+  s1717 :: SWord64 = if s1434 then s1716 else s1715+  s1718 :: SWord64 = s221 | s1717+  s1719 :: SWord64 = if s1432 then s1718 else s1717+  s1720 :: SWord64 = s224 | s1719+  s1721 :: SWord64 = if s1430 then s1720 else s1719+  s1722 :: SWord64 = s227 | s1721+  s1723 :: SWord64 = if s1428 then s1722 else s1721+  s1724 :: SWord64 = s230 | s1723+  s1725 :: SWord64 = if s1426 then s1724 else s1723+  s1726 :: SWord64 = s233 | s1725+  s1727 :: SWord64 = if s1424 then s1726 else s1725+  s1728 :: SWord64 = s236 | s1727+  s1729 :: SWord64 = if s1422 then s1728 else s1727+  s1730 :: SWord64 = s239 | s1729+  s1731 :: SWord64 = if s1420 then s1730 else s1729+  s1732 :: SWord64 = s242 | s1731+  s1733 :: SWord64 = if s1418 then s1732 else s1731+  s1734 :: SWord16 = choose [15:0] s1733+  s1735 :: SWord64 = s1 # s1734+  s1736 :: SWord1 = choose [0:0] s1735+  s1737 :: SBool = s5 /= s1736+  s1738 :: SBool = s903 == s1737+  s1739 :: SWord1 = choose [1:1] s901+  s1740 :: SBool = s5 /= s1739+  s1741 :: SWord1 = choose [1:1] s1735+  s1742 :: SBool = s5 /= s1741+  s1743 :: SBool = s1740 == s1742+  s1744 :: SWord1 = choose [2:2] s901+  s1745 :: SBool = s5 /= s1744+  s1746 :: SWord1 = choose [2:2] s1735+  s1747 :: SBool = s5 /= s1746+  s1748 :: SBool = s1745 == s1747+  s1749 :: SWord1 = choose [3:3] s901+  s1750 :: SBool = s5 /= s1749+  s1751 :: SWord1 = choose [3:3] s1735+  s1752 :: SBool = s5 /= s1751+  s1753 :: SBool = s1750 == s1752+  s1754 :: SWord1 = choose [4:4] s901+  s1755 :: SBool = s5 /= s1754+  s1756 :: SWord1 = choose [4:4] s1735+  s1757 :: SBool = s5 /= s1756+  s1758 :: SBool = s1755 == s1757+  s1759 :: SWord1 = choose [5:5] s901+  s1760 :: SBool = s5 /= s1759+  s1761 :: SWord1 = choose [5:5] s1735+  s1762 :: SBool = s5 /= s1761+  s1763 :: SBool = s1760 == s1762+  s1764 :: SWord1 = choose [6:6] s901+  s1765 :: SBool = s5 /= s1764+  s1766 :: SWord1 = choose [6:6] s1735+  s1767 :: SBool = s5 /= s1766+  s1768 :: SBool = s1765 == s1767+  s1769 :: SWord1 = choose [7:7] s901+  s1770 :: SBool = s5 /= s1769+  s1771 :: SWord1 = choose [7:7] s1735+  s1772 :: SBool = s5 /= s1771+  s1773 :: SBool = s1770 == s1772+  s1774 :: SWord1 = choose [8:8] s901+  s1775 :: SBool = s5 /= s1774+  s1776 :: SWord1 = choose [8:8] s1735+  s1777 :: SBool = s5 /= s1776+  s1778 :: SBool = s1775 == s1777+  s1779 :: SWord1 = choose [9:9] s901+  s1780 :: SBool = s5 /= s1779+  s1781 :: SWord1 = choose [9:9] s1735+  s1782 :: SBool = s5 /= s1781+  s1783 :: SBool = s1780 == s1782+  s1784 :: SWord1 = choose [10:10] s901+  s1785 :: SBool = s5 /= s1784+  s1786 :: SWord1 = choose [10:10] s1735+  s1787 :: SBool = s5 /= s1786+  s1788 :: SBool = s1785 == s1787+  s1789 :: SWord1 = choose [11:11] s901+  s1790 :: SBool = s5 /= s1789+  s1791 :: SWord1 = choose [11:11] s1735+  s1792 :: SBool = s5 /= s1791+  s1793 :: SBool = s1790 == s1792+  s1794 :: SWord1 = choose [12:12] s901+  s1795 :: SBool = s5 /= s1794+  s1796 :: SWord1 = choose [12:12] s1735+  s1797 :: SBool = s5 /= s1796+  s1798 :: SBool = s1795 == s1797+  s1799 :: SWord1 = choose [13:13] s901+  s1800 :: SBool = s5 /= s1799+  s1801 :: SWord1 = choose [13:13] s1735+  s1802 :: SBool = s5 /= s1801+  s1803 :: SBool = s1800 == s1802+  s1804 :: SWord1 = choose [14:14] s901+  s1805 :: SBool = s5 /= s1804+  s1806 :: SWord1 = choose [14:14] s1735+  s1807 :: SBool = s5 /= s1806+  s1808 :: SBool = s1805 == s1807+  s1809 :: SWord1 = choose [15:15] s901+  s1810 :: SBool = s5 /= s1809+  s1811 :: SWord1 = choose [15:15] s1735+  s1812 :: SBool = s5 /= s1811+  s1813 :: SBool = s1810 == s1812+  s1814 :: SWord1 = choose [16:16] s901+  s1815 :: SBool = s5 /= s1814+  s1816 :: SWord1 = choose [16:16] s1735+  s1817 :: SBool = s5 /= s1816+  s1818 :: SBool = s1815 == s1817+  s1819 :: SWord1 = choose [17:17] s901+  s1820 :: SBool = s5 /= s1819+  s1821 :: SWord1 = choose [17:17] s1735+  s1822 :: SBool = s5 /= s1821+  s1823 :: SBool = s1820 == s1822+  s1824 :: SWord1 = choose [18:18] s901+  s1825 :: SBool = s5 /= s1824+  s1826 :: SWord1 = choose [18:18] s1735+  s1827 :: SBool = s5 /= s1826+  s1828 :: SBool = s1825 == s1827+  s1829 :: SWord1 = choose [19:19] s901+  s1830 :: SBool = s5 /= s1829+  s1831 :: SWord1 = choose [19:19] s1735+  s1832 :: SBool = s5 /= s1831+  s1833 :: SBool = s1830 == s1832+  s1834 :: SWord1 = choose [20:20] s901+  s1835 :: SBool = s5 /= s1834+  s1836 :: SWord1 = choose [20:20] s1735+  s1837 :: SBool = s5 /= s1836+  s1838 :: SBool = s1835 == s1837+  s1839 :: SWord1 = choose [21:21] s901+  s1840 :: SBool = s5 /= s1839+  s1841 :: SWord1 = choose [21:21] s1735+  s1842 :: SBool = s5 /= s1841+  s1843 :: SBool = s1840 == s1842+  s1844 :: SWord1 = choose [22:22] s901+  s1845 :: SBool = s5 /= s1844+  s1846 :: SWord1 = choose [22:22] s1735+  s1847 :: SBool = s5 /= s1846+  s1848 :: SBool = s1845 == s1847+  s1849 :: SWord1 = choose [23:23] s901+  s1850 :: SBool = s5 /= s1849+  s1851 :: SWord1 = choose [23:23] s1735+  s1852 :: SBool = s5 /= s1851+  s1853 :: SBool = s1850 == s1852+  s1854 :: SWord1 = choose [24:24] s901+  s1855 :: SBool = s5 /= s1854+  s1856 :: SWord1 = choose [24:24] s1735+  s1857 :: SBool = s5 /= s1856+  s1858 :: SBool = s1855 == s1857+  s1859 :: SWord1 = choose [25:25] s901+  s1860 :: SBool = s5 /= s1859+  s1861 :: SWord1 = choose [25:25] s1735+  s1862 :: SBool = s5 /= s1861+  s1863 :: SBool = s1860 == s1862+  s1864 :: SWord1 = choose [26:26] s901+  s1865 :: SBool = s5 /= s1864+  s1866 :: SWord1 = choose [26:26] s1735+  s1867 :: SBool = s5 /= s1866+  s1868 :: SBool = s1865 == s1867+  s1869 :: SWord1 = choose [27:27] s901+  s1870 :: SBool = s5 /= s1869+  s1871 :: SWord1 = choose [27:27] s1735+  s1872 :: SBool = s5 /= s1871+  s1873 :: SBool = s1870 == s1872+  s1874 :: SWord1 = choose [28:28] s901+  s1875 :: SBool = s5 /= s1874+  s1876 :: SWord1 = choose [28:28] s1735+  s1877 :: SBool = s5 /= s1876+  s1878 :: SBool = s1875 == s1877+  s1879 :: SWord1 = choose [29:29] s901+  s1880 :: SBool = s5 /= s1879+  s1881 :: SWord1 = choose [29:29] s1735+  s1882 :: SBool = s5 /= s1881+  s1883 :: SBool = s1880 == s1882+  s1884 :: SWord1 = choose [30:30] s901+  s1885 :: SBool = s5 /= s1884+  s1886 :: SWord1 = choose [30:30] s1735+  s1887 :: SBool = s5 /= s1886+  s1888 :: SBool = s1885 == s1887+  s1889 :: SWord1 = choose [31:31] s901+  s1890 :: SBool = s5 /= s1889+  s1891 :: SWord1 = choose [31:31] s1735+  s1892 :: SBool = s5 /= s1891+  s1893 :: SBool = s1890 == s1892+  s1894 :: SWord1 = choose [32:32] s901+  s1895 :: SBool = s5 /= s1894+  s1896 :: SWord1 = choose [32:32] s1735+  s1897 :: SBool = s5 /= s1896+  s1898 :: SBool = s1895 == s1897+  s1899 :: SWord1 = choose [33:33] s901+  s1900 :: SBool = s5 /= s1899+  s1901 :: SWord1 = choose [33:33] s1735+  s1902 :: SBool = s5 /= s1901+  s1903 :: SBool = s1900 == s1902+  s1904 :: SWord1 = choose [34:34] s901+  s1905 :: SBool = s5 /= s1904+  s1906 :: SWord1 = choose [34:34] s1735+  s1907 :: SBool = s5 /= s1906+  s1908 :: SBool = s1905 == s1907+  s1909 :: SWord1 = choose [35:35] s901+  s1910 :: SBool = s5 /= s1909+  s1911 :: SWord1 = choose [35:35] s1735+  s1912 :: SBool = s5 /= s1911+  s1913 :: SBool = s1910 == s1912+  s1914 :: SWord1 = choose [36:36] s901+  s1915 :: SBool = s5 /= s1914+  s1916 :: SWord1 = choose [36:36] s1735+  s1917 :: SBool = s5 /= s1916+  s1918 :: SBool = s1915 == s1917+  s1919 :: SWord1 = choose [37:37] s901+  s1920 :: SBool = s5 /= s1919+  s1921 :: SWord1 = choose [37:37] s1735+  s1922 :: SBool = s5 /= s1921+  s1923 :: SBool = s1920 == s1922+  s1924 :: SWord1 = choose [38:38] s901+  s1925 :: SBool = s5 /= s1924+  s1926 :: SWord1 = choose [38:38] s1735+  s1927 :: SBool = s5 /= s1926+  s1928 :: SBool = s1925 == s1927+  s1929 :: SWord1 = choose [39:39] s901+  s1930 :: SBool = s5 /= s1929+  s1931 :: SWord1 = choose [39:39] s1735+  s1932 :: SBool = s5 /= s1931+  s1933 :: SBool = s1930 == s1932+  s1934 :: SWord1 = choose [40:40] s901+  s1935 :: SBool = s5 /= s1934+  s1936 :: SWord1 = choose [40:40] s1735+  s1937 :: SBool = s5 /= s1936+  s1938 :: SBool = s1935 == s1937+  s1939 :: SWord1 = choose [41:41] s901+  s1940 :: SBool = s5 /= s1939+  s1941 :: SWord1 = choose [41:41] s1735+  s1942 :: SBool = s5 /= s1941+  s1943 :: SBool = s1940 == s1942+  s1944 :: SWord1 = choose [42:42] s901+  s1945 :: SBool = s5 /= s1944+  s1946 :: SWord1 = choose [42:42] s1735+  s1947 :: SBool = s5 /= s1946+  s1948 :: SBool = s1945 == s1947+  s1949 :: SWord1 = choose [43:43] s901+  s1950 :: SBool = s5 /= s1949+  s1951 :: SWord1 = choose [43:43] s1735+  s1952 :: SBool = s5 /= s1951+  s1953 :: SBool = s1950 == s1952+  s1954 :: SWord1 = choose [44:44] s901+  s1955 :: SBool = s5 /= s1954+  s1956 :: SWord1 = choose [44:44] s1735+  s1957 :: SBool = s5 /= s1956+  s1958 :: SBool = s1955 == s1957+  s1959 :: SWord1 = choose [45:45] s901+  s1960 :: SBool = s5 /= s1959+  s1961 :: SWord1 = choose [45:45] s1735+  s1962 :: SBool = s5 /= s1961+  s1963 :: SBool = s1960 == s1962+  s1964 :: SWord1 = choose [46:46] s901+  s1965 :: SBool = s5 /= s1964+  s1966 :: SWord1 = choose [46:46] s1735+  s1967 :: SBool = s5 /= s1966+  s1968 :: SBool = s1965 == s1967+  s1969 :: SWord1 = choose [47:47] s901+  s1970 :: SBool = s5 /= s1969+  s1971 :: SWord1 = choose [47:47] s1735+  s1972 :: SBool = s5 /= s1971+  s1973 :: SBool = s1970 == s1972+  s1974 :: SWord1 = choose [48:48] s901+  s1975 :: SBool = s5 /= s1974+  s1976 :: SWord1 = choose [48:48] s1735+  s1977 :: SBool = s5 /= s1976+  s1978 :: SBool = s1975 == s1977+  s1979 :: SWord1 = choose [49:49] s901+  s1980 :: SBool = s5 /= s1979+  s1981 :: SWord1 = choose [49:49] s1735+  s1982 :: SBool = s5 /= s1981+  s1983 :: SBool = s1980 == s1982+  s1984 :: SWord1 = choose [50:50] s901+  s1985 :: SBool = s5 /= s1984+  s1986 :: SWord1 = choose [50:50] s1735+  s1987 :: SBool = s5 /= s1986+  s1988 :: SBool = s1985 == s1987+  s1989 :: SWord1 = choose [51:51] s901+  s1990 :: SBool = s5 /= s1989+  s1991 :: SWord1 = choose [51:51] s1735+  s1992 :: SBool = s5 /= s1991+  s1993 :: SBool = s1990 == s1992+  s1994 :: SWord1 = choose [52:52] s901+  s1995 :: SBool = s5 /= s1994+  s1996 :: SWord1 = choose [52:52] s1735+  s1997 :: SBool = s5 /= s1996+  s1998 :: SBool = s1995 == s1997+  s1999 :: SWord1 = choose [53:53] s901+  s2000 :: SBool = s5 /= s1999+  s2001 :: SWord1 = choose [53:53] s1735+  s2002 :: SBool = s5 /= s2001+  s2003 :: SBool = s2000 == s2002+  s2004 :: SWord1 = choose [54:54] s901+  s2005 :: SBool = s5 /= s2004+  s2006 :: SWord1 = choose [54:54] s1735+  s2007 :: SBool = s5 /= s2006+  s2008 :: SBool = s2005 == s2007+  s2009 :: SWord1 = choose [55:55] s901+  s2010 :: SBool = s5 /= s2009+  s2011 :: SWord1 = choose [55:55] s1735+  s2012 :: SBool = s5 /= s2011+  s2013 :: SBool = s2010 == s2012+  s2014 :: SWord1 = choose [56:56] s901+  s2015 :: SBool = s5 /= s2014+  s2016 :: SWord1 = choose [56:56] s1735+  s2017 :: SBool = s5 /= s2016+  s2018 :: SBool = s2015 == s2017+  s2019 :: SWord1 = choose [57:57] s901+  s2020 :: SBool = s5 /= s2019+  s2021 :: SWord1 = choose [57:57] s1735+  s2022 :: SBool = s5 /= s2021+  s2023 :: SBool = s2020 == s2022+  s2024 :: SWord1 = choose [58:58] s901+  s2025 :: SBool = s5 /= s2024+  s2026 :: SWord1 = choose [58:58] s1735+  s2027 :: SBool = s5 /= s2026+  s2028 :: SBool = s2025 == s2027+  s2029 :: SWord1 = choose [59:59] s901+  s2030 :: SBool = s5 /= s2029+  s2031 :: SWord1 = choose [59:59] s1735+  s2032 :: SBool = s5 /= s2031+  s2033 :: SBool = s2030 == s2032+  s2034 :: SWord1 = choose [60:60] s901+  s2035 :: SBool = s5 /= s2034+  s2036 :: SWord1 = choose [60:60] s1735+  s2037 :: SBool = s5 /= s2036+  s2038 :: SBool = s2035 == s2037+  s2039 :: SWord1 = choose [61:61] s901+  s2040 :: SBool = s5 /= s2039+  s2041 :: SWord1 = choose [61:61] s1735+  s2042 :: SBool = s5 /= s2041+  s2043 :: SBool = s2040 == s2042+  s2044 :: SWord1 = choose [62:62] s901+  s2045 :: SBool = s5 /= s2044+  s2046 :: SWord1 = choose [62:62] s1735+  s2047 :: SBool = s5 /= s2046+  s2048 :: SBool = s2045 == s2047+  s2049 :: SWord1 = choose [63:63] s901+  s2050 :: SBool = s5 /= s2049+  s2051 :: SWord1 = choose [63:63] s1735+  s2052 :: SBool = s5 /= s2051+  s2053 :: SBool = s2050 == s2052+  s2056 :: SWord8 = if s2053 then s2054 else s2055+  s2057 :: SWord8 = s2055 + s2056+  s2058 :: SWord8 = if s2048 then s2056 else s2057+  s2059 :: SWord8 = s2055 + s2058+  s2060 :: SWord8 = if s2043 then s2058 else s2059+  s2061 :: SWord8 = s2055 + s2060+  s2062 :: SWord8 = if s2038 then s2060 else s2061+  s2063 :: SWord8 = s2055 + s2062+  s2064 :: SWord8 = if s2033 then s2062 else s2063+  s2065 :: SWord8 = s2055 + s2064+  s2066 :: SWord8 = if s2028 then s2064 else s2065+  s2067 :: SWord8 = s2055 + s2066+  s2068 :: SWord8 = if s2023 then s2066 else s2067+  s2069 :: SWord8 = s2055 + s2068+  s2070 :: SWord8 = if s2018 then s2068 else s2069+  s2071 :: SWord8 = s2055 + s2070+  s2072 :: SWord8 = if s2013 then s2070 else s2071+  s2073 :: SWord8 = s2055 + s2072+  s2074 :: SWord8 = if s2008 then s2072 else s2073+  s2075 :: SWord8 = s2055 + s2074+  s2076 :: SWord8 = if s2003 then s2074 else s2075+  s2077 :: SWord8 = s2055 + s2076+  s2078 :: SWord8 = if s1998 then s2076 else s2077+  s2079 :: SWord8 = s2055 + s2078+  s2080 :: SWord8 = if s1993 then s2078 else s2079+  s2081 :: SWord8 = s2055 + s2080+  s2082 :: SWord8 = if s1988 then s2080 else s2081+  s2083 :: SWord8 = s2055 + s2082+  s2084 :: SWord8 = if s1983 then s2082 else s2083+  s2085 :: SWord8 = s2055 + s2084+  s2086 :: SWord8 = if s1978 then s2084 else s2085+  s2087 :: SWord8 = s2055 + s2086+  s2088 :: SWord8 = if s1973 then s2086 else s2087+  s2089 :: SWord8 = s2055 + s2088+  s2090 :: SWord8 = if s1968 then s2088 else s2089+  s2091 :: SWord8 = s2055 + s2090+  s2092 :: SWord8 = if s1963 then s2090 else s2091+  s2093 :: SWord8 = s2055 + s2092+  s2094 :: SWord8 = if s1958 then s2092 else s2093+  s2095 :: SWord8 = s2055 + s2094+  s2096 :: SWord8 = if s1953 then s2094 else s2095+  s2097 :: SWord8 = s2055 + s2096+  s2098 :: SWord8 = if s1948 then s2096 else s2097+  s2099 :: SWord8 = s2055 + s2098+  s2100 :: SWord8 = if s1943 then s2098 else s2099+  s2101 :: SWord8 = s2055 + s2100+  s2102 :: SWord8 = if s1938 then s2100 else s2101+  s2103 :: SWord8 = s2055 + s2102+  s2104 :: SWord8 = if s1933 then s2102 else s2103+  s2105 :: SWord8 = s2055 + s2104+  s2106 :: SWord8 = if s1928 then s2104 else s2105+  s2107 :: SWord8 = s2055 + s2106+  s2108 :: SWord8 = if s1923 then s2106 else s2107+  s2109 :: SWord8 = s2055 + s2108+  s2110 :: SWord8 = if s1918 then s2108 else s2109+  s2111 :: SWord8 = s2055 + s2110+  s2112 :: SWord8 = if s1913 then s2110 else s2111+  s2113 :: SWord8 = s2055 + s2112+  s2114 :: SWord8 = if s1908 then s2112 else s2113+  s2115 :: SWord8 = s2055 + s2114+  s2116 :: SWord8 = if s1903 then s2114 else s2115+  s2117 :: SWord8 = s2055 + s2116+  s2118 :: SWord8 = if s1898 then s2116 else s2117+  s2119 :: SWord8 = s2055 + s2118+  s2120 :: SWord8 = if s1893 then s2118 else s2119+  s2121 :: SWord8 = s2055 + s2120+  s2122 :: SWord8 = if s1888 then s2120 else s2121+  s2123 :: SWord8 = s2055 + s2122+  s2124 :: SWord8 = if s1883 then s2122 else s2123+  s2125 :: SWord8 = s2055 + s2124+  s2126 :: SWord8 = if s1878 then s2124 else s2125+  s2127 :: SWord8 = s2055 + s2126+  s2128 :: SWord8 = if s1873 then s2126 else s2127+  s2129 :: SWord8 = s2055 + s2128+  s2130 :: SWord8 = if s1868 then s2128 else s2129+  s2131 :: SWord8 = s2055 + s2130+  s2132 :: SWord8 = if s1863 then s2130 else s2131+  s2133 :: SWord8 = s2055 + s2132+  s2134 :: SWord8 = if s1858 then s2132 else s2133+  s2135 :: SWord8 = s2055 + s2134+  s2136 :: SWord8 = if s1853 then s2134 else s2135+  s2137 :: SWord8 = s2055 + s2136+  s2138 :: SWord8 = if s1848 then s2136 else s2137+  s2139 :: SWord8 = s2055 + s2138+  s2140 :: SWord8 = if s1843 then s2138 else s2139+  s2141 :: SWord8 = s2055 + s2140+  s2142 :: SWord8 = if s1838 then s2140 else s2141+  s2143 :: SWord8 = s2055 + s2142+  s2144 :: SWord8 = if s1833 then s2142 else s2143+  s2145 :: SWord8 = s2055 + s2144+  s2146 :: SWord8 = if s1828 then s2144 else s2145+  s2147 :: SWord8 = s2055 + s2146+  s2148 :: SWord8 = if s1823 then s2146 else s2147+  s2149 :: SWord8 = s2055 + s2148+  s2150 :: SWord8 = if s1818 then s2148 else s2149+  s2151 :: SWord8 = s2055 + s2150+  s2152 :: SWord8 = if s1813 then s2150 else s2151+  s2153 :: SWord8 = s2055 + s2152+  s2154 :: SWord8 = if s1808 then s2152 else s2153+  s2155 :: SWord8 = s2055 + s2154+  s2156 :: SWord8 = if s1803 then s2154 else s2155+  s2157 :: SWord8 = s2055 + s2156+  s2158 :: SWord8 = if s1798 then s2156 else s2157+  s2159 :: SWord8 = s2055 + s2158+  s2160 :: SWord8 = if s1793 then s2158 else s2159+  s2161 :: SWord8 = s2055 + s2160+  s2162 :: SWord8 = if s1788 then s2160 else s2161+  s2163 :: SWord8 = s2055 + s2162+  s2164 :: SWord8 = if s1783 then s2162 else s2163+  s2165 :: SWord8 = s2055 + s2164+  s2166 :: SWord8 = if s1778 then s2164 else s2165+  s2167 :: SWord8 = s2055 + s2166+  s2168 :: SWord8 = if s1773 then s2166 else s2167+  s2169 :: SWord8 = s2055 + s2168+  s2170 :: SWord8 = if s1768 then s2168 else s2169+  s2171 :: SWord8 = s2055 + s2170+  s2172 :: SWord8 = if s1763 then s2170 else s2171+  s2173 :: SWord8 = s2055 + s2172+  s2174 :: SWord8 = if s1758 then s2172 else s2173+  s2175 :: SWord8 = s2055 + s2174+  s2176 :: SWord8 = if s1753 then s2174 else s2175+  s2177 :: SWord8 = s2055 + s2176+  s2178 :: SWord8 = if s1748 then s2176 else s2177+  s2179 :: SWord8 = s2055 + s2178+  s2180 :: SWord8 = if s1743 then s2178 else s2179+  s2181 :: SWord8 = s2055 + s2180+  s2182 :: SWord8 = if s1738 then s2180 else s2181+  s2184 :: SBool = s2182 > s2183+  s2185 :: SBool = s3 | s2184+CONSTRAINTS+ASSERTIONS+OUTPUTS+  s2185
SBVTestSuite/GoldFiles/cgUninterpret.gold view
@@ -80,7 +80,7 @@   printf("Contents of input array vs:\n");   int vs_ctr;   for(vs_ctr = 0; vs_ctr < 3 ; ++vs_ctr)-    printf("  vs[%d] = 0x%08"PRIx32"UL\n", vs_ctr ,vs[vs_ctr]);+    printf("  vs[%1d] = 0x%08"PRIx32"UL\n", vs_ctr ,vs[vs_ctr]);     const SWord32 __result = tstShiftLeft(vs);
SBVTestSuite/GoldFiles/codeGen1.gold view
@@ -95,7 +95,7 @@   printf("Contents of input array xArr:\n");   int xArr_ctr;   for(xArr_ctr = 0; xArr_ctr < 45 ; ++xArr_ctr)-    printf("  xArr[%d] = %"PRId64"LL\n", xArr_ctr ,xArr[xArr_ctr]);+    printf("  xArr[%2d] = %"PRId64"LL\n", xArr_ctr ,xArr[xArr_ctr]);    SWord16 z;   SInt16 zArr[7];@@ -107,10 +107,10 @@   printf("  z = 0x%04"PRIx16"U\n", z);   int zArr_ctr;   for(zArr_ctr = 0; zArr_ctr < 7 ; ++zArr_ctr)-    printf("  zArr[%d] = %"PRId16"\n", zArr_ctr ,zArr[zArr_ctr]);+    printf("  zArr[%1d] = %"PRId16"\n", zArr_ctr ,zArr[zArr_ctr]);   int yArr_ctr;   for(yArr_ctr = 0; yArr_ctr < 45 ; ++yArr_ctr)-    printf("  yArr[%d] = %"PRId64"LL\n", yArr_ctr ,yArr[yArr_ctr]);+    printf("  yArr[%2d] = %"PRId64"LL\n", yArr_ctr ,yArr[yArr_ctr]);    return 0; }
SBVTestSuite/GoldFiles/crcPolyExist.gold view
@@ -1,3484 +1,14 @@ INPUTS   s0 :: SWord16, existential, aliasing "poly"-  s1 :: SWord32, aliasing "sh"-  s2 :: SWord16, aliasing "sl"-  s3 :: SWord32, aliasing "rh"-  s4 :: SWord16, aliasing "rl"-CONSTANTS-  s6 = 0 :: Word1-  s18 = 1 :: Word8-  s3340 = 0 :: Word8-  s3468 = 4 :: Word8-TABLES-ARRAYS-UNINTERPRETED CONSTANTS-USER GIVEN CODE SEGMENTS-AXIOMS-DEFINE-  s5 :: SWord1 = choose [0:0] s0-  s7 :: SBool = s5 /= s6-  s8 :: SBool = s1 == s3-  s9 :: SBool = s2 == s4-  s10 :: SBool = s8 & s9-  s11 :: SBool = ~ s10-  s12 :: SBool = ~ s11-  s13 :: SWord1 = choose [31:31] s1-  s14 :: SBool = s6 /= s13-  s15 :: SWord1 = choose [31:31] s3-  s16 :: SBool = s6 /= s15-  s17 :: SBool = s14 ^ s16-  s19 :: SWord1 = choose [30:30] s1-  s20 :: SBool = s6 /= s19-  s21 :: SWord1 = choose [30:30] s3-  s22 :: SBool = s6 /= s21-  s23 :: SBool = s20 ^ s22-  s24 :: SWord1 = choose [29:29] s1-  s25 :: SBool = s6 /= s24-  s26 :: SWord1 = choose [29:29] s3-  s27 :: SBool = s6 /= s26-  s28 :: SBool = s25 ^ s27-  s29 :: SWord1 = choose [28:28] s1-  s30 :: SBool = s6 /= s29-  s31 :: SWord1 = choose [28:28] s3-  s32 :: SBool = s6 /= s31-  s33 :: SBool = s30 ^ s32-  s34 :: SWord1 = choose [27:27] s1-  s35 :: SBool = s6 /= s34-  s36 :: SWord1 = choose [27:27] s3-  s37 :: SBool = s6 /= s36-  s38 :: SBool = s35 ^ s37-  s39 :: SWord1 = choose [26:26] s1-  s40 :: SBool = s6 /= s39-  s41 :: SWord1 = choose [26:26] s3-  s42 :: SBool = s6 /= s41-  s43 :: SBool = s40 ^ s42-  s44 :: SWord1 = choose [25:25] s1-  s45 :: SBool = s6 /= s44-  s46 :: SWord1 = choose [25:25] s3-  s47 :: SBool = s6 /= s46-  s48 :: SBool = s45 ^ s47-  s49 :: SWord1 = choose [24:24] s1-  s50 :: SBool = s6 /= s49-  s51 :: SWord1 = choose [24:24] s3-  s52 :: SBool = s6 /= s51-  s53 :: SBool = s50 ^ s52-  s54 :: SWord1 = choose [23:23] s1-  s55 :: SBool = s6 /= s54-  s56 :: SWord1 = choose [23:23] s3-  s57 :: SBool = s6 /= s56-  s58 :: SBool = s55 ^ s57-  s59 :: SWord1 = choose [22:22] s1-  s60 :: SBool = s6 /= s59-  s61 :: SWord1 = choose [22:22] s3-  s62 :: SBool = s6 /= s61-  s63 :: SBool = s60 ^ s62-  s64 :: SWord1 = choose [21:21] s1-  s65 :: SBool = s6 /= s64-  s66 :: SWord1 = choose [21:21] s3-  s67 :: SBool = s6 /= s66-  s68 :: SBool = s65 ^ s67-  s69 :: SWord1 = choose [20:20] s1-  s70 :: SBool = s6 /= s69-  s71 :: SWord1 = choose [20:20] s3-  s72 :: SBool = s6 /= s71-  s73 :: SBool = s70 ^ s72-  s74 :: SWord1 = choose [19:19] s1-  s75 :: SBool = s6 /= s74-  s76 :: SWord1 = choose [19:19] s3-  s77 :: SBool = s6 /= s76-  s78 :: SBool = s75 ^ s77-  s79 :: SWord1 = choose [18:18] s1-  s80 :: SBool = s6 /= s79-  s81 :: SWord1 = choose [18:18] s3-  s82 :: SBool = s6 /= s81-  s83 :: SBool = s80 ^ s82-  s84 :: SWord1 = choose [17:17] s1-  s85 :: SBool = s6 /= s84-  s86 :: SWord1 = choose [17:17] s3-  s87 :: SBool = s6 /= s86-  s88 :: SBool = s85 ^ s87-  s89 :: SWord1 = choose [16:16] s1-  s90 :: SBool = s6 /= s89-  s91 :: SWord1 = choose [16:16] s3-  s92 :: SBool = s6 /= s91-  s93 :: SBool = s90 ^ s92-  s94 :: SWord1 = choose [15:15] s1-  s95 :: SBool = s6 /= s94-  s96 :: SWord1 = choose [15:15] s3-  s97 :: SBool = s6 /= s96-  s98 :: SBool = s95 ^ s97-  s99 :: SWord1 = choose [14:14] s1-  s100 :: SBool = s6 /= s99-  s101 :: SWord1 = choose [14:14] s3-  s102 :: SBool = s6 /= s101-  s103 :: SBool = s100 ^ s102-  s104 :: SWord1 = choose [13:13] s1-  s105 :: SBool = s6 /= s104-  s106 :: SWord1 = choose [13:13] s3-  s107 :: SBool = s6 /= s106-  s108 :: SBool = s105 ^ s107-  s109 :: SWord1 = choose [12:12] s1-  s110 :: SBool = s6 /= s109-  s111 :: SWord1 = choose [12:12] s3-  s112 :: SBool = s6 /= s111-  s113 :: SBool = s110 ^ s112-  s114 :: SWord1 = choose [11:11] s1-  s115 :: SBool = s6 /= s114-  s116 :: SWord1 = choose [11:11] s3-  s117 :: SBool = s6 /= s116-  s118 :: SBool = s115 ^ s117-  s119 :: SWord1 = choose [10:10] s1-  s120 :: SBool = s6 /= s119-  s121 :: SWord1 = choose [10:10] s3-  s122 :: SBool = s6 /= s121-  s123 :: SBool = s120 ^ s122-  s124 :: SWord1 = choose [9:9] s1-  s125 :: SBool = s6 /= s124-  s126 :: SWord1 = choose [9:9] s3-  s127 :: SBool = s6 /= s126-  s128 :: SBool = s125 ^ s127-  s129 :: SWord1 = choose [8:8] s1-  s130 :: SBool = s6 /= s129-  s131 :: SWord1 = choose [8:8] s3-  s132 :: SBool = s6 /= s131-  s133 :: SBool = s130 ^ s132-  s134 :: SWord1 = choose [7:7] s1-  s135 :: SBool = s6 /= s134-  s136 :: SWord1 = choose [7:7] s3-  s137 :: SBool = s6 /= s136-  s138 :: SBool = s135 ^ s137-  s139 :: SWord1 = choose [6:6] s1-  s140 :: SBool = s6 /= s139-  s141 :: SWord1 = choose [6:6] s3-  s142 :: SBool = s6 /= s141-  s143 :: SBool = s140 ^ s142-  s144 :: SWord1 = choose [5:5] s1-  s145 :: SBool = s6 /= s144-  s146 :: SWord1 = choose [5:5] s3-  s147 :: SBool = s6 /= s146-  s148 :: SBool = s145 ^ s147-  s149 :: SWord1 = choose [4:4] s1-  s150 :: SBool = s6 /= s149-  s151 :: SWord1 = choose [4:4] s3-  s152 :: SBool = s6 /= s151-  s153 :: SBool = s150 ^ s152-  s154 :: SWord1 = choose [3:3] s1-  s155 :: SBool = s6 /= s154-  s156 :: SWord1 = choose [3:3] s3-  s157 :: SBool = s6 /= s156-  s158 :: SBool = s155 ^ s157-  s159 :: SWord1 = choose [2:2] s1-  s160 :: SBool = s6 /= s159-  s161 :: SWord1 = choose [2:2] s3-  s162 :: SBool = s6 /= s161-  s163 :: SBool = s160 ^ s162-  s164 :: SWord1 = choose [1:1] s1-  s165 :: SBool = s6 /= s164-  s166 :: SWord1 = choose [1:1] s3-  s167 :: SBool = s6 /= s166-  s168 :: SBool = s165 ^ s167-  s169 :: SWord1 = choose [0:0] s1-  s170 :: SBool = s6 /= s169-  s171 :: SWord1 = choose [0:0] s3-  s172 :: SBool = s6 /= s171-  s173 :: SBool = s170 ^ s172-  s174 :: SWord1 = choose [15:15] s2-  s175 :: SBool = s6 /= s174-  s176 :: SWord1 = choose [15:15] s4-  s177 :: SBool = s6 /= s176-  s178 :: SBool = s175 ^ s177-  s179 :: SWord1 = choose [14:14] s2-  s180 :: SBool = s6 /= s179-  s181 :: SWord1 = choose [14:14] s4-  s182 :: SBool = s6 /= s181-  s183 :: SBool = s180 ^ s182-  s184 :: SWord1 = choose [13:13] s2-  s185 :: SBool = s6 /= s184-  s186 :: SWord1 = choose [13:13] s4-  s187 :: SBool = s6 /= s186-  s188 :: SBool = s185 ^ s187-  s189 :: SWord1 = choose [12:12] s2-  s190 :: SBool = s6 /= s189-  s191 :: SWord1 = choose [12:12] s4-  s192 :: SBool = s6 /= s191-  s193 :: SBool = s190 ^ s192-  s194 :: SWord1 = choose [11:11] s2-  s195 :: SBool = s6 /= s194-  s196 :: SWord1 = choose [11:11] s4-  s197 :: SBool = s6 /= s196-  s198 :: SBool = s195 ^ s197-  s199 :: SWord1 = choose [10:10] s2-  s200 :: SBool = s6 /= s199-  s201 :: SWord1 = choose [10:10] s4-  s202 :: SBool = s6 /= s201-  s203 :: SBool = s200 ^ s202-  s204 :: SWord1 = choose [9:9] s2-  s205 :: SBool = s6 /= s204-  s206 :: SWord1 = choose [9:9] s4-  s207 :: SBool = s6 /= s206-  s208 :: SBool = s205 ^ s207-  s209 :: SWord1 = choose [8:8] s2-  s210 :: SBool = s6 /= s209-  s211 :: SWord1 = choose [8:8] s4-  s212 :: SBool = s6 /= s211-  s213 :: SBool = s210 ^ s212-  s214 :: SWord1 = choose [7:7] s2-  s215 :: SBool = s6 /= s214-  s216 :: SWord1 = choose [7:7] s4-  s217 :: SBool = s6 /= s216-  s218 :: SBool = s215 ^ s217-  s219 :: SWord1 = choose [6:6] s2-  s220 :: SBool = s6 /= s219-  s221 :: SWord1 = choose [6:6] s4-  s222 :: SBool = s6 /= s221-  s223 :: SBool = s220 ^ s222-  s224 :: SWord1 = choose [5:5] s2-  s225 :: SBool = s6 /= s224-  s226 :: SWord1 = choose [5:5] s4-  s227 :: SBool = s6 /= s226-  s228 :: SBool = s225 ^ s227-  s229 :: SWord1 = choose [4:4] s2-  s230 :: SBool = s6 /= s229-  s231 :: SWord1 = choose [4:4] s4-  s232 :: SBool = s6 /= s231-  s233 :: SBool = s230 ^ s232-  s234 :: SWord1 = choose [3:3] s2-  s235 :: SBool = s6 /= s234-  s236 :: SWord1 = choose [3:3] s4-  s237 :: SBool = s6 /= s236-  s238 :: SBool = s235 ^ s237-  s239 :: SWord1 = choose [2:2] s2-  s240 :: SBool = s6 /= s239-  s241 :: SWord1 = choose [2:2] s4-  s242 :: SBool = s6 /= s241-  s243 :: SBool = s240 ^ s242-  s244 :: SWord1 = choose [1:1] s2-  s245 :: SBool = s6 /= s244-  s246 :: SWord1 = choose [1:1] s4-  s247 :: SBool = s6 /= s246-  s248 :: SBool = s245 ^ s247-  s249 :: SWord1 = choose [0:0] s2-  s250 :: SBool = s6 /= s249-  s251 :: SWord1 = choose [0:0] s4-  s252 :: SBool = s6 /= s251-  s253 :: SBool = s250 ^ s252-  s254 :: SWord1 = choose [15:15] s0-  s255 :: SBool = s6 /= s254-  s256 :: SBool = s20 ^ s255-  s257 :: SBool = if s14 then s256 else s20-  s258 :: SWord1 = choose [14:14] s0-  s259 :: SBool = s6 /= s258-  s260 :: SBool = s25 ^ s259-  s261 :: SBool = if s14 then s260 else s25-  s262 :: SBool = s255 ^ s261-  s263 :: SBool = if s257 then s262 else s261-  s264 :: SWord1 = choose [13:13] s0-  s265 :: SBool = s6 /= s264-  s266 :: SBool = s30 ^ s265-  s267 :: SBool = if s14 then s266 else s30-  s268 :: SBool = s259 ^ s267-  s269 :: SBool = if s257 then s268 else s267-  s270 :: SBool = s255 ^ s269-  s271 :: SBool = if s263 then s270 else s269-  s272 :: SWord1 = choose [12:12] s0-  s273 :: SBool = s6 /= s272-  s274 :: SBool = s35 ^ s273-  s275 :: SBool = if s14 then s274 else s35-  s276 :: SBool = s265 ^ s275-  s277 :: SBool = if s257 then s276 else s275-  s278 :: SBool = s259 ^ s277-  s279 :: SBool = if s263 then s278 else s277-  s280 :: SBool = s255 ^ s279-  s281 :: SBool = if s271 then s280 else s279-  s282 :: SWord1 = choose [11:11] s0-  s283 :: SBool = s6 /= s282-  s284 :: SBool = s40 ^ s283-  s285 :: SBool = if s14 then s284 else s40-  s286 :: SBool = s273 ^ s285-  s287 :: SBool = if s257 then s286 else s285-  s288 :: SBool = s265 ^ s287-  s289 :: SBool = if s263 then s288 else s287-  s290 :: SBool = s259 ^ s289-  s291 :: SBool = if s271 then s290 else s289-  s292 :: SBool = s255 ^ s291-  s293 :: SBool = if s281 then s292 else s291-  s294 :: SWord1 = choose [10:10] s0-  s295 :: SBool = s6 /= s294-  s296 :: SBool = s45 ^ s295-  s297 :: SBool = if s14 then s296 else s45-  s298 :: SBool = s283 ^ s297-  s299 :: SBool = if s257 then s298 else s297-  s300 :: SBool = s273 ^ s299-  s301 :: SBool = if s263 then s300 else s299-  s302 :: SBool = s265 ^ s301-  s303 :: SBool = if s271 then s302 else s301-  s304 :: SBool = s259 ^ s303-  s305 :: SBool = if s281 then s304 else s303-  s306 :: SBool = s255 ^ s305-  s307 :: SBool = if s293 then s306 else s305-  s308 :: SWord1 = choose [9:9] s0-  s309 :: SBool = s6 /= s308-  s310 :: SBool = s50 ^ s309-  s311 :: SBool = if s14 then s310 else s50-  s312 :: SBool = s295 ^ s311-  s313 :: SBool = if s257 then s312 else s311-  s314 :: SBool = s283 ^ s313-  s315 :: SBool = if s263 then s314 else s313-  s316 :: SBool = s273 ^ s315-  s317 :: SBool = if s271 then s316 else s315-  s318 :: SBool = s265 ^ s317-  s319 :: SBool = if s281 then s318 else s317-  s320 :: SBool = s259 ^ s319-  s321 :: SBool = if s293 then s320 else s319-  s322 :: SBool = s255 ^ s321-  s323 :: SBool = if s307 then s322 else s321-  s324 :: SWord1 = choose [8:8] s0-  s325 :: SBool = s6 /= s324-  s326 :: SBool = s55 ^ s325-  s327 :: SBool = if s14 then s326 else s55-  s328 :: SBool = s309 ^ s327-  s329 :: SBool = if s257 then s328 else s327-  s330 :: SBool = s295 ^ s329-  s331 :: SBool = if s263 then s330 else s329-  s332 :: SBool = s283 ^ s331-  s333 :: SBool = if s271 then s332 else s331-  s334 :: SBool = s273 ^ s333-  s335 :: SBool = if s281 then s334 else s333-  s336 :: SBool = s265 ^ s335-  s337 :: SBool = if s293 then s336 else s335-  s338 :: SBool = s259 ^ s337-  s339 :: SBool = if s307 then s338 else s337-  s340 :: SBool = s255 ^ s339-  s341 :: SBool = if s323 then s340 else s339-  s342 :: SWord1 = choose [7:7] s0-  s343 :: SBool = s6 /= s342-  s344 :: SBool = s60 ^ s343-  s345 :: SBool = if s14 then s344 else s60-  s346 :: SBool = s325 ^ s345-  s347 :: SBool = if s257 then s346 else s345-  s348 :: SBool = s309 ^ s347-  s349 :: SBool = if s263 then s348 else s347-  s350 :: SBool = s295 ^ s349-  s351 :: SBool = if s271 then s350 else s349-  s352 :: SBool = s283 ^ s351-  s353 :: SBool = if s281 then s352 else s351-  s354 :: SBool = s273 ^ s353-  s355 :: SBool = if s293 then s354 else s353-  s356 :: SBool = s265 ^ s355-  s357 :: SBool = if s307 then s356 else s355-  s358 :: SBool = s259 ^ s357-  s359 :: SBool = if s323 then s358 else s357-  s360 :: SBool = s255 ^ s359-  s361 :: SBool = if s341 then s360 else s359-  s362 :: SWord1 = choose [6:6] s0-  s363 :: SBool = s6 /= s362-  s364 :: SBool = s65 ^ s363-  s365 :: SBool = if s14 then s364 else s65-  s366 :: SBool = s343 ^ s365-  s367 :: SBool = if s257 then s366 else s365-  s368 :: SBool = s325 ^ s367-  s369 :: SBool = if s263 then s368 else s367-  s370 :: SBool = s309 ^ s369-  s371 :: SBool = if s271 then s370 else s369-  s372 :: SBool = s295 ^ s371-  s373 :: SBool = if s281 then s372 else s371-  s374 :: SBool = s283 ^ s373-  s375 :: SBool = if s293 then s374 else s373-  s376 :: SBool = s273 ^ s375-  s377 :: SBool = if s307 then s376 else s375-  s378 :: SBool = s265 ^ s377-  s379 :: SBool = if s323 then s378 else s377-  s380 :: SBool = s259 ^ s379-  s381 :: SBool = if s341 then s380 else s379-  s382 :: SBool = s255 ^ s381-  s383 :: SBool = if s361 then s382 else s381-  s384 :: SWord1 = choose [5:5] s0-  s385 :: SBool = s6 /= s384-  s386 :: SBool = s70 ^ s385-  s387 :: SBool = if s14 then s386 else s70-  s388 :: SBool = s363 ^ s387-  s389 :: SBool = if s257 then s388 else s387-  s390 :: SBool = s343 ^ s389-  s391 :: SBool = if s263 then s390 else s389-  s392 :: SBool = s325 ^ s391-  s393 :: SBool = if s271 then s392 else s391-  s394 :: SBool = s309 ^ s393-  s395 :: SBool = if s281 then s394 else s393-  s396 :: SBool = s295 ^ s395-  s397 :: SBool = if s293 then s396 else s395-  s398 :: SBool = s283 ^ s397-  s399 :: SBool = if s307 then s398 else s397-  s400 :: SBool = s273 ^ s399-  s401 :: SBool = if s323 then s400 else s399-  s402 :: SBool = s265 ^ s401-  s403 :: SBool = if s341 then s402 else s401-  s404 :: SBool = s259 ^ s403-  s405 :: SBool = if s361 then s404 else s403-  s406 :: SBool = s255 ^ s405-  s407 :: SBool = if s383 then s406 else s405-  s408 :: SWord1 = choose [4:4] s0-  s409 :: SBool = s6 /= s408-  s410 :: SBool = s75 ^ s409-  s411 :: SBool = if s14 then s410 else s75-  s412 :: SBool = s385 ^ s411-  s413 :: SBool = if s257 then s412 else s411-  s414 :: SBool = s363 ^ s413-  s415 :: SBool = if s263 then s414 else s413-  s416 :: SBool = s343 ^ s415-  s417 :: SBool = if s271 then s416 else s415-  s418 :: SBool = s325 ^ s417-  s419 :: SBool = if s281 then s418 else s417-  s420 :: SBool = s309 ^ s419-  s421 :: SBool = if s293 then s420 else s419-  s422 :: SBool = s295 ^ s421-  s423 :: SBool = if s307 then s422 else s421-  s424 :: SBool = s283 ^ s423-  s425 :: SBool = if s323 then s424 else s423-  s426 :: SBool = s273 ^ s425-  s427 :: SBool = if s341 then s426 else s425-  s428 :: SBool = s265 ^ s427-  s429 :: SBool = if s361 then s428 else s427-  s430 :: SBool = s259 ^ s429-  s431 :: SBool = if s383 then s430 else s429-  s432 :: SBool = s255 ^ s431-  s433 :: SBool = if s407 then s432 else s431-  s434 :: SWord1 = choose [3:3] s0-  s435 :: SBool = s6 /= s434-  s436 :: SBool = s80 ^ s435-  s437 :: SBool = if s14 then s436 else s80-  s438 :: SBool = s409 ^ s437-  s439 :: SBool = if s257 then s438 else s437-  s440 :: SBool = s385 ^ s439-  s441 :: SBool = if s263 then s440 else s439-  s442 :: SBool = s363 ^ s441-  s443 :: SBool = if s271 then s442 else s441-  s444 :: SBool = s343 ^ s443-  s445 :: SBool = if s281 then s444 else s443-  s446 :: SBool = s325 ^ s445-  s447 :: SBool = if s293 then s446 else s445-  s448 :: SBool = s309 ^ s447-  s449 :: SBool = if s307 then s448 else s447-  s450 :: SBool = s295 ^ s449-  s451 :: SBool = if s323 then s450 else s449-  s452 :: SBool = s283 ^ s451-  s453 :: SBool = if s341 then s452 else s451-  s454 :: SBool = s273 ^ s453-  s455 :: SBool = if s361 then s454 else s453-  s456 :: SBool = s265 ^ s455-  s457 :: SBool = if s383 then s456 else s455-  s458 :: SBool = s259 ^ s457-  s459 :: SBool = if s407 then s458 else s457-  s460 :: SBool = s255 ^ s459-  s461 :: SBool = if s433 then s460 else s459-  s462 :: SWord1 = choose [2:2] s0-  s463 :: SBool = s6 /= s462-  s464 :: SBool = s85 ^ s463-  s465 :: SBool = if s14 then s464 else s85-  s466 :: SBool = s435 ^ s465-  s467 :: SBool = if s257 then s466 else s465-  s468 :: SBool = s409 ^ s467-  s469 :: SBool = if s263 then s468 else s467-  s470 :: SBool = s385 ^ s469-  s471 :: SBool = if s271 then s470 else s469-  s472 :: SBool = s363 ^ s471-  s473 :: SBool = if s281 then s472 else s471-  s474 :: SBool = s343 ^ s473-  s475 :: SBool = if s293 then s474 else s473-  s476 :: SBool = s325 ^ s475-  s477 :: SBool = if s307 then s476 else s475-  s478 :: SBool = s309 ^ s477-  s479 :: SBool = if s323 then s478 else s477-  s480 :: SBool = s295 ^ s479-  s481 :: SBool = if s341 then s480 else s479-  s482 :: SBool = s283 ^ s481-  s483 :: SBool = if s361 then s482 else s481-  s484 :: SBool = s273 ^ s483-  s485 :: SBool = if s383 then s484 else s483-  s486 :: SBool = s265 ^ s485-  s487 :: SBool = if s407 then s486 else s485-  s488 :: SBool = s259 ^ s487-  s489 :: SBool = if s433 then s488 else s487-  s490 :: SBool = s255 ^ s489-  s491 :: SBool = if s461 then s490 else s489-  s492 :: SWord1 = choose [1:1] s0-  s493 :: SBool = s6 /= s492-  s494 :: SBool = s90 ^ s493-  s495 :: SBool = if s14 then s494 else s90-  s496 :: SBool = s463 ^ s495-  s497 :: SBool = if s257 then s496 else s495-  s498 :: SBool = s435 ^ s497-  s499 :: SBool = if s263 then s498 else s497-  s500 :: SBool = s409 ^ s499-  s501 :: SBool = if s271 then s500 else s499-  s502 :: SBool = s385 ^ s501-  s503 :: SBool = if s281 then s502 else s501-  s504 :: SBool = s363 ^ s503-  s505 :: SBool = if s293 then s504 else s503-  s506 :: SBool = s343 ^ s505-  s507 :: SBool = if s307 then s506 else s505-  s508 :: SBool = s325 ^ s507-  s509 :: SBool = if s323 then s508 else s507-  s510 :: SBool = s309 ^ s509-  s511 :: SBool = if s341 then s510 else s509-  s512 :: SBool = s295 ^ s511-  s513 :: SBool = if s361 then s512 else s511-  s514 :: SBool = s283 ^ s513-  s515 :: SBool = if s383 then s514 else s513-  s516 :: SBool = s273 ^ s515-  s517 :: SBool = if s407 then s516 else s515-  s518 :: SBool = s265 ^ s517-  s519 :: SBool = if s433 then s518 else s517-  s520 :: SBool = s259 ^ s519-  s521 :: SBool = if s461 then s520 else s519-  s522 :: SBool = s255 ^ s521-  s523 :: SBool = if s491 then s522 else s521-  s524 :: SBool = s7 ^ s95-  s525 :: SBool = if s14 then s524 else s95-  s526 :: SBool = s493 ^ s525-  s527 :: SBool = if s257 then s526 else s525-  s528 :: SBool = s463 ^ s527-  s529 :: SBool = if s263 then s528 else s527-  s530 :: SBool = s435 ^ s529-  s531 :: SBool = if s271 then s530 else s529-  s532 :: SBool = s409 ^ s531-  s533 :: SBool = if s281 then s532 else s531-  s534 :: SBool = s385 ^ s533-  s535 :: SBool = if s293 then s534 else s533-  s536 :: SBool = s363 ^ s535-  s537 :: SBool = if s307 then s536 else s535-  s538 :: SBool = s343 ^ s537-  s539 :: SBool = if s323 then s538 else s537-  s540 :: SBool = s325 ^ s539-  s541 :: SBool = if s341 then s540 else s539-  s542 :: SBool = s309 ^ s541-  s543 :: SBool = if s361 then s542 else s541-  s544 :: SBool = s295 ^ s543-  s545 :: SBool = if s383 then s544 else s543-  s546 :: SBool = s283 ^ s545-  s547 :: SBool = if s407 then s546 else s545-  s548 :: SBool = s273 ^ s547-  s549 :: SBool = if s433 then s548 else s547-  s550 :: SBool = s265 ^ s549-  s551 :: SBool = if s461 then s550 else s549-  s552 :: SBool = s259 ^ s551-  s553 :: SBool = if s491 then s552 else s551-  s554 :: SBool = s255 ^ s553-  s555 :: SBool = if s523 then s554 else s553-  s556 :: SBool = s7 ^ s100-  s557 :: SBool = if s257 then s556 else s100-  s558 :: SBool = s493 ^ s557-  s559 :: SBool = if s263 then s558 else s557-  s560 :: SBool = s463 ^ s559-  s561 :: SBool = if s271 then s560 else s559-  s562 :: SBool = s435 ^ s561-  s563 :: SBool = if s281 then s562 else s561-  s564 :: SBool = s409 ^ s563-  s565 :: SBool = if s293 then s564 else s563-  s566 :: SBool = s385 ^ s565-  s567 :: SBool = if s307 then s566 else s565-  s568 :: SBool = s363 ^ s567-  s569 :: SBool = if s323 then s568 else s567-  s570 :: SBool = s343 ^ s569-  s571 :: SBool = if s341 then s570 else s569-  s572 :: SBool = s325 ^ s571-  s573 :: SBool = if s361 then s572 else s571-  s574 :: SBool = s309 ^ s573-  s575 :: SBool = if s383 then s574 else s573-  s576 :: SBool = s295 ^ s575-  s577 :: SBool = if s407 then s576 else s575-  s578 :: SBool = s283 ^ s577-  s579 :: SBool = if s433 then s578 else s577-  s580 :: SBool = s273 ^ s579-  s581 :: SBool = if s461 then s580 else s579-  s582 :: SBool = s265 ^ s581-  s583 :: SBool = if s491 then s582 else s581-  s584 :: SBool = s259 ^ s583-  s585 :: SBool = if s523 then s584 else s583-  s586 :: SBool = s255 ^ s585-  s587 :: SBool = if s555 then s586 else s585-  s588 :: SBool = s7 ^ s105-  s589 :: SBool = if s263 then s588 else s105-  s590 :: SBool = s493 ^ s589-  s591 :: SBool = if s271 then s590 else s589-  s592 :: SBool = s463 ^ s591-  s593 :: SBool = if s281 then s592 else s591-  s594 :: SBool = s435 ^ s593-  s595 :: SBool = if s293 then s594 else s593-  s596 :: SBool = s409 ^ s595-  s597 :: SBool = if s307 then s596 else s595-  s598 :: SBool = s385 ^ s597-  s599 :: SBool = if s323 then s598 else s597-  s600 :: SBool = s363 ^ s599-  s601 :: SBool = if s341 then s600 else s599-  s602 :: SBool = s343 ^ s601-  s603 :: SBool = if s361 then s602 else s601-  s604 :: SBool = s325 ^ s603-  s605 :: SBool = if s383 then s604 else s603-  s606 :: SBool = s309 ^ s605-  s607 :: SBool = if s407 then s606 else s605-  s608 :: SBool = s295 ^ s607-  s609 :: SBool = if s433 then s608 else s607-  s610 :: SBool = s283 ^ s609-  s611 :: SBool = if s461 then s610 else s609-  s612 :: SBool = s273 ^ s611-  s613 :: SBool = if s491 then s612 else s611-  s614 :: SBool = s265 ^ s613-  s615 :: SBool = if s523 then s614 else s613-  s616 :: SBool = s259 ^ s615-  s617 :: SBool = if s555 then s616 else s615-  s618 :: SBool = s255 ^ s617-  s619 :: SBool = if s587 then s618 else s617-  s620 :: SBool = s7 ^ s110-  s621 :: SBool = if s271 then s620 else s110-  s622 :: SBool = s493 ^ s621-  s623 :: SBool = if s281 then s622 else s621-  s624 :: SBool = s463 ^ s623-  s625 :: SBool = if s293 then s624 else s623-  s626 :: SBool = s435 ^ s625-  s627 :: SBool = if s307 then s626 else s625-  s628 :: SBool = s409 ^ s627-  s629 :: SBool = if s323 then s628 else s627-  s630 :: SBool = s385 ^ s629-  s631 :: SBool = if s341 then s630 else s629-  s632 :: SBool = s363 ^ s631-  s633 :: SBool = if s361 then s632 else s631-  s634 :: SBool = s343 ^ s633-  s635 :: SBool = if s383 then s634 else s633-  s636 :: SBool = s325 ^ s635-  s637 :: SBool = if s407 then s636 else s635-  s638 :: SBool = s309 ^ s637-  s639 :: SBool = if s433 then s638 else s637-  s640 :: SBool = s295 ^ s639-  s641 :: SBool = if s461 then s640 else s639-  s642 :: SBool = s283 ^ s641-  s643 :: SBool = if s491 then s642 else s641-  s644 :: SBool = s273 ^ s643-  s645 :: SBool = if s523 then s644 else s643-  s646 :: SBool = s265 ^ s645-  s647 :: SBool = if s555 then s646 else s645-  s648 :: SBool = s259 ^ s647-  s649 :: SBool = if s587 then s648 else s647-  s650 :: SBool = s255 ^ s649-  s651 :: SBool = if s619 then s650 else s649-  s652 :: SBool = s7 ^ s115-  s653 :: SBool = if s281 then s652 else s115-  s654 :: SBool = s493 ^ s653-  s655 :: SBool = if s293 then s654 else s653-  s656 :: SBool = s463 ^ s655-  s657 :: SBool = if s307 then s656 else s655-  s658 :: SBool = s435 ^ s657-  s659 :: SBool = if s323 then s658 else s657-  s660 :: SBool = s409 ^ s659-  s661 :: SBool = if s341 then s660 else s659-  s662 :: SBool = s385 ^ s661-  s663 :: SBool = if s361 then s662 else s661-  s664 :: SBool = s363 ^ s663-  s665 :: SBool = if s383 then s664 else s663-  s666 :: SBool = s343 ^ s665-  s667 :: SBool = if s407 then s666 else s665-  s668 :: SBool = s325 ^ s667-  s669 :: SBool = if s433 then s668 else s667-  s670 :: SBool = s309 ^ s669-  s671 :: SBool = if s461 then s670 else s669-  s672 :: SBool = s295 ^ s671-  s673 :: SBool = if s491 then s672 else s671-  s674 :: SBool = s283 ^ s673-  s675 :: SBool = if s523 then s674 else s673-  s676 :: SBool = s273 ^ s675-  s677 :: SBool = if s555 then s676 else s675-  s678 :: SBool = s265 ^ s677-  s679 :: SBool = if s587 then s678 else s677-  s680 :: SBool = s259 ^ s679-  s681 :: SBool = if s619 then s680 else s679-  s682 :: SBool = s255 ^ s681-  s683 :: SBool = if s651 then s682 else s681-  s684 :: SBool = s7 ^ s120-  s685 :: SBool = if s293 then s684 else s120-  s686 :: SBool = s493 ^ s685-  s687 :: SBool = if s307 then s686 else s685-  s688 :: SBool = s463 ^ s687-  s689 :: SBool = if s323 then s688 else s687-  s690 :: SBool = s435 ^ s689-  s691 :: SBool = if s341 then s690 else s689-  s692 :: SBool = s409 ^ s691-  s693 :: SBool = if s361 then s692 else s691-  s694 :: SBool = s385 ^ s693-  s695 :: SBool = if s383 then s694 else s693-  s696 :: SBool = s363 ^ s695-  s697 :: SBool = if s407 then s696 else s695-  s698 :: SBool = s343 ^ s697-  s699 :: SBool = if s433 then s698 else s697-  s700 :: SBool = s325 ^ s699-  s701 :: SBool = if s461 then s700 else s699-  s702 :: SBool = s309 ^ s701-  s703 :: SBool = if s491 then s702 else s701-  s704 :: SBool = s295 ^ s703-  s705 :: SBool = if s523 then s704 else s703-  s706 :: SBool = s283 ^ s705-  s707 :: SBool = if s555 then s706 else s705-  s708 :: SBool = s273 ^ s707-  s709 :: SBool = if s587 then s708 else s707-  s710 :: SBool = s265 ^ s709-  s711 :: SBool = if s619 then s710 else s709-  s712 :: SBool = s259 ^ s711-  s713 :: SBool = if s651 then s712 else s711-  s714 :: SBool = s255 ^ s713-  s715 :: SBool = if s683 then s714 else s713-  s716 :: SBool = s7 ^ s125-  s717 :: SBool = if s307 then s716 else s125-  s718 :: SBool = s493 ^ s717-  s719 :: SBool = if s323 then s718 else s717-  s720 :: SBool = s463 ^ s719-  s721 :: SBool = if s341 then s720 else s719-  s722 :: SBool = s435 ^ s721-  s723 :: SBool = if s361 then s722 else s721-  s724 :: SBool = s409 ^ s723-  s725 :: SBool = if s383 then s724 else s723-  s726 :: SBool = s385 ^ s725-  s727 :: SBool = if s407 then s726 else s725-  s728 :: SBool = s363 ^ s727-  s729 :: SBool = if s433 then s728 else s727-  s730 :: SBool = s343 ^ s729-  s731 :: SBool = if s461 then s730 else s729-  s732 :: SBool = s325 ^ s731-  s733 :: SBool = if s491 then s732 else s731-  s734 :: SBool = s309 ^ s733-  s735 :: SBool = if s523 then s734 else s733-  s736 :: SBool = s295 ^ s735-  s737 :: SBool = if s555 then s736 else s735-  s738 :: SBool = s283 ^ s737-  s739 :: SBool = if s587 then s738 else s737-  s740 :: SBool = s273 ^ s739-  s741 :: SBool = if s619 then s740 else s739-  s742 :: SBool = s265 ^ s741-  s743 :: SBool = if s651 then s742 else s741-  s744 :: SBool = s259 ^ s743-  s745 :: SBool = if s683 then s744 else s743-  s746 :: SBool = s255 ^ s745-  s747 :: SBool = if s715 then s746 else s745-  s748 :: SBool = s7 ^ s130-  s749 :: SBool = if s323 then s748 else s130-  s750 :: SBool = s493 ^ s749-  s751 :: SBool = if s341 then s750 else s749-  s752 :: SBool = s463 ^ s751-  s753 :: SBool = if s361 then s752 else s751-  s754 :: SBool = s435 ^ s753-  s755 :: SBool = if s383 then s754 else s753-  s756 :: SBool = s409 ^ s755-  s757 :: SBool = if s407 then s756 else s755-  s758 :: SBool = s385 ^ s757-  s759 :: SBool = if s433 then s758 else s757-  s760 :: SBool = s363 ^ s759-  s761 :: SBool = if s461 then s760 else s759-  s762 :: SBool = s343 ^ s761-  s763 :: SBool = if s491 then s762 else s761-  s764 :: SBool = s325 ^ s763-  s765 :: SBool = if s523 then s764 else s763-  s766 :: SBool = s309 ^ s765-  s767 :: SBool = if s555 then s766 else s765-  s768 :: SBool = s295 ^ s767-  s769 :: SBool = if s587 then s768 else s767-  s770 :: SBool = s283 ^ s769-  s771 :: SBool = if s619 then s770 else s769-  s772 :: SBool = s273 ^ s771-  s773 :: SBool = if s651 then s772 else s771-  s774 :: SBool = s265 ^ s773-  s775 :: SBool = if s683 then s774 else s773-  s776 :: SBool = s259 ^ s775-  s777 :: SBool = if s715 then s776 else s775-  s778 :: SBool = s255 ^ s777-  s779 :: SBool = if s747 then s778 else s777-  s780 :: SBool = s7 ^ s135-  s781 :: SBool = if s341 then s780 else s135-  s782 :: SBool = s493 ^ s781-  s783 :: SBool = if s361 then s782 else s781-  s784 :: SBool = s463 ^ s783-  s785 :: SBool = if s383 then s784 else s783-  s786 :: SBool = s435 ^ s785-  s787 :: SBool = if s407 then s786 else s785-  s788 :: SBool = s409 ^ s787-  s789 :: SBool = if s433 then s788 else s787-  s790 :: SBool = s385 ^ s789-  s791 :: SBool = if s461 then s790 else s789-  s792 :: SBool = s363 ^ s791-  s793 :: SBool = if s491 then s792 else s791-  s794 :: SBool = s343 ^ s793-  s795 :: SBool = if s523 then s794 else s793-  s796 :: SBool = s325 ^ s795-  s797 :: SBool = if s555 then s796 else s795-  s798 :: SBool = s309 ^ s797-  s799 :: SBool = if s587 then s798 else s797-  s800 :: SBool = s295 ^ s799-  s801 :: SBool = if s619 then s800 else s799-  s802 :: SBool = s283 ^ s801-  s803 :: SBool = if s651 then s802 else s801-  s804 :: SBool = s273 ^ s803-  s805 :: SBool = if s683 then s804 else s803-  s806 :: SBool = s265 ^ s805-  s807 :: SBool = if s715 then s806 else s805-  s808 :: SBool = s259 ^ s807-  s809 :: SBool = if s747 then s808 else s807-  s810 :: SBool = s255 ^ s809-  s811 :: SBool = if s779 then s810 else s809-  s812 :: SBool = s7 ^ s140-  s813 :: SBool = if s361 then s812 else s140-  s814 :: SBool = s493 ^ s813-  s815 :: SBool = if s383 then s814 else s813-  s816 :: SBool = s463 ^ s815-  s817 :: SBool = if s407 then s816 else s815-  s818 :: SBool = s435 ^ s817-  s819 :: SBool = if s433 then s818 else s817-  s820 :: SBool = s409 ^ s819-  s821 :: SBool = if s461 then s820 else s819-  s822 :: SBool = s385 ^ s821-  s823 :: SBool = if s491 then s822 else s821-  s824 :: SBool = s363 ^ s823-  s825 :: SBool = if s523 then s824 else s823-  s826 :: SBool = s343 ^ s825-  s827 :: SBool = if s555 then s826 else s825-  s828 :: SBool = s325 ^ s827-  s829 :: SBool = if s587 then s828 else s827-  s830 :: SBool = s309 ^ s829-  s831 :: SBool = if s619 then s830 else s829-  s832 :: SBool = s295 ^ s831-  s833 :: SBool = if s651 then s832 else s831-  s834 :: SBool = s283 ^ s833-  s835 :: SBool = if s683 then s834 else s833-  s836 :: SBool = s273 ^ s835-  s837 :: SBool = if s715 then s836 else s835-  s838 :: SBool = s265 ^ s837-  s839 :: SBool = if s747 then s838 else s837-  s840 :: SBool = s259 ^ s839-  s841 :: SBool = if s779 then s840 else s839-  s842 :: SBool = s255 ^ s841-  s843 :: SBool = if s811 then s842 else s841-  s844 :: SBool = s7 ^ s145-  s845 :: SBool = if s383 then s844 else s145-  s846 :: SBool = s493 ^ s845-  s847 :: SBool = if s407 then s846 else s845-  s848 :: SBool = s463 ^ s847-  s849 :: SBool = if s433 then s848 else s847-  s850 :: SBool = s435 ^ s849-  s851 :: SBool = if s461 then s850 else s849-  s852 :: SBool = s409 ^ s851-  s853 :: SBool = if s491 then s852 else s851-  s854 :: SBool = s385 ^ s853-  s855 :: SBool = if s523 then s854 else s853-  s856 :: SBool = s363 ^ s855-  s857 :: SBool = if s555 then s856 else s855-  s858 :: SBool = s343 ^ s857-  s859 :: SBool = if s587 then s858 else s857-  s860 :: SBool = s325 ^ s859-  s861 :: SBool = if s619 then s860 else s859-  s862 :: SBool = s309 ^ s861-  s863 :: SBool = if s651 then s862 else s861-  s864 :: SBool = s295 ^ s863-  s865 :: SBool = if s683 then s864 else s863-  s866 :: SBool = s283 ^ s865-  s867 :: SBool = if s715 then s866 else s865-  s868 :: SBool = s273 ^ s867-  s869 :: SBool = if s747 then s868 else s867-  s870 :: SBool = s265 ^ s869-  s871 :: SBool = if s779 then s870 else s869-  s872 :: SBool = s259 ^ s871-  s873 :: SBool = if s811 then s872 else s871-  s874 :: SBool = s255 ^ s873-  s875 :: SBool = if s843 then s874 else s873-  s876 :: SBool = s7 ^ s150-  s877 :: SBool = if s407 then s876 else s150-  s878 :: SBool = s493 ^ s877-  s879 :: SBool = if s433 then s878 else s877-  s880 :: SBool = s463 ^ s879-  s881 :: SBool = if s461 then s880 else s879-  s882 :: SBool = s435 ^ s881-  s883 :: SBool = if s491 then s882 else s881-  s884 :: SBool = s409 ^ s883-  s885 :: SBool = if s523 then s884 else s883-  s886 :: SBool = s385 ^ s885-  s887 :: SBool = if s555 then s886 else s885-  s888 :: SBool = s363 ^ s887-  s889 :: SBool = if s587 then s888 else s887-  s890 :: SBool = s343 ^ s889-  s891 :: SBool = if s619 then s890 else s889-  s892 :: SBool = s325 ^ s891-  s893 :: SBool = if s651 then s892 else s891-  s894 :: SBool = s309 ^ s893-  s895 :: SBool = if s683 then s894 else s893-  s896 :: SBool = s295 ^ s895-  s897 :: SBool = if s715 then s896 else s895-  s898 :: SBool = s283 ^ s897-  s899 :: SBool = if s747 then s898 else s897-  s900 :: SBool = s273 ^ s899-  s901 :: SBool = if s779 then s900 else s899-  s902 :: SBool = s265 ^ s901-  s903 :: SBool = if s811 then s902 else s901-  s904 :: SBool = s259 ^ s903-  s905 :: SBool = if s843 then s904 else s903-  s906 :: SBool = s255 ^ s905-  s907 :: SBool = if s875 then s906 else s905-  s908 :: SBool = s7 ^ s155-  s909 :: SBool = if s433 then s908 else s155-  s910 :: SBool = s493 ^ s909-  s911 :: SBool = if s461 then s910 else s909-  s912 :: SBool = s463 ^ s911-  s913 :: SBool = if s491 then s912 else s911-  s914 :: SBool = s435 ^ s913-  s915 :: SBool = if s523 then s914 else s913-  s916 :: SBool = s409 ^ s915-  s917 :: SBool = if s555 then s916 else s915-  s918 :: SBool = s385 ^ s917-  s919 :: SBool = if s587 then s918 else s917-  s920 :: SBool = s363 ^ s919-  s921 :: SBool = if s619 then s920 else s919-  s922 :: SBool = s343 ^ s921-  s923 :: SBool = if s651 then s922 else s921-  s924 :: SBool = s325 ^ s923-  s925 :: SBool = if s683 then s924 else s923-  s926 :: SBool = s309 ^ s925-  s927 :: SBool = if s715 then s926 else s925-  s928 :: SBool = s295 ^ s927-  s929 :: SBool = if s747 then s928 else s927-  s930 :: SBool = s283 ^ s929-  s931 :: SBool = if s779 then s930 else s929-  s932 :: SBool = s273 ^ s931-  s933 :: SBool = if s811 then s932 else s931-  s934 :: SBool = s265 ^ s933-  s935 :: SBool = if s843 then s934 else s933-  s936 :: SBool = s259 ^ s935-  s937 :: SBool = if s875 then s936 else s935-  s938 :: SBool = s255 ^ s937-  s939 :: SBool = if s907 then s938 else s937-  s940 :: SBool = s7 ^ s160-  s941 :: SBool = if s461 then s940 else s160-  s942 :: SBool = s493 ^ s941-  s943 :: SBool = if s491 then s942 else s941-  s944 :: SBool = s463 ^ s943-  s945 :: SBool = if s523 then s944 else s943-  s946 :: SBool = s435 ^ s945-  s947 :: SBool = if s555 then s946 else s945-  s948 :: SBool = s409 ^ s947-  s949 :: SBool = if s587 then s948 else s947-  s950 :: SBool = s385 ^ s949-  s951 :: SBool = if s619 then s950 else s949-  s952 :: SBool = s363 ^ s951-  s953 :: SBool = if s651 then s952 else s951-  s954 :: SBool = s343 ^ s953-  s955 :: SBool = if s683 then s954 else s953-  s956 :: SBool = s325 ^ s955-  s957 :: SBool = if s715 then s956 else s955-  s958 :: SBool = s309 ^ s957-  s959 :: SBool = if s747 then s958 else s957-  s960 :: SBool = s295 ^ s959-  s961 :: SBool = if s779 then s960 else s959-  s962 :: SBool = s283 ^ s961-  s963 :: SBool = if s811 then s962 else s961-  s964 :: SBool = s273 ^ s963-  s965 :: SBool = if s843 then s964 else s963-  s966 :: SBool = s265 ^ s965-  s967 :: SBool = if s875 then s966 else s965-  s968 :: SBool = s259 ^ s967-  s969 :: SBool = if s907 then s968 else s967-  s970 :: SBool = s255 ^ s969-  s971 :: SBool = if s939 then s970 else s969-  s972 :: SBool = s7 ^ s165-  s973 :: SBool = if s491 then s972 else s165-  s974 :: SBool = s493 ^ s973-  s975 :: SBool = if s523 then s974 else s973-  s976 :: SBool = s463 ^ s975-  s977 :: SBool = if s555 then s976 else s975-  s978 :: SBool = s435 ^ s977-  s979 :: SBool = if s587 then s978 else s977-  s980 :: SBool = s409 ^ s979-  s981 :: SBool = if s619 then s980 else s979-  s982 :: SBool = s385 ^ s981-  s983 :: SBool = if s651 then s982 else s981-  s984 :: SBool = s363 ^ s983-  s985 :: SBool = if s683 then s984 else s983-  s986 :: SBool = s343 ^ s985-  s987 :: SBool = if s715 then s986 else s985-  s988 :: SBool = s325 ^ s987-  s989 :: SBool = if s747 then s988 else s987-  s990 :: SBool = s309 ^ s989-  s991 :: SBool = if s779 then s990 else s989-  s992 :: SBool = s295 ^ s991-  s993 :: SBool = if s811 then s992 else s991-  s994 :: SBool = s283 ^ s993-  s995 :: SBool = if s843 then s994 else s993-  s996 :: SBool = s273 ^ s995-  s997 :: SBool = if s875 then s996 else s995-  s998 :: SBool = s265 ^ s997-  s999 :: SBool = if s907 then s998 else s997-  s1000 :: SBool = s259 ^ s999-  s1001 :: SBool = if s939 then s1000 else s999-  s1002 :: SBool = s255 ^ s1001-  s1003 :: SBool = if s971 then s1002 else s1001-  s1004 :: SBool = s7 ^ s170-  s1005 :: SBool = if s523 then s1004 else s170-  s1006 :: SBool = s493 ^ s1005-  s1007 :: SBool = if s555 then s1006 else s1005-  s1008 :: SBool = s463 ^ s1007-  s1009 :: SBool = if s587 then s1008 else s1007-  s1010 :: SBool = s435 ^ s1009-  s1011 :: SBool = if s619 then s1010 else s1009-  s1012 :: SBool = s409 ^ s1011-  s1013 :: SBool = if s651 then s1012 else s1011-  s1014 :: SBool = s385 ^ s1013-  s1015 :: SBool = if s683 then s1014 else s1013-  s1016 :: SBool = s363 ^ s1015-  s1017 :: SBool = if s715 then s1016 else s1015-  s1018 :: SBool = s343 ^ s1017-  s1019 :: SBool = if s747 then s1018 else s1017-  s1020 :: SBool = s325 ^ s1019-  s1021 :: SBool = if s779 then s1020 else s1019-  s1022 :: SBool = s309 ^ s1021-  s1023 :: SBool = if s811 then s1022 else s1021-  s1024 :: SBool = s295 ^ s1023-  s1025 :: SBool = if s843 then s1024 else s1023-  s1026 :: SBool = s283 ^ s1025-  s1027 :: SBool = if s875 then s1026 else s1025-  s1028 :: SBool = s273 ^ s1027-  s1029 :: SBool = if s907 then s1028 else s1027-  s1030 :: SBool = s265 ^ s1029-  s1031 :: SBool = if s939 then s1030 else s1029-  s1032 :: SBool = s259 ^ s1031-  s1033 :: SBool = if s971 then s1032 else s1031-  s1034 :: SBool = s255 ^ s1033-  s1035 :: SBool = if s1003 then s1034 else s1033-  s1036 :: SBool = s7 ^ s175-  s1037 :: SBool = if s555 then s1036 else s175-  s1038 :: SBool = s493 ^ s1037-  s1039 :: SBool = if s587 then s1038 else s1037-  s1040 :: SBool = s463 ^ s1039-  s1041 :: SBool = if s619 then s1040 else s1039-  s1042 :: SBool = s435 ^ s1041-  s1043 :: SBool = if s651 then s1042 else s1041-  s1044 :: SBool = s409 ^ s1043-  s1045 :: SBool = if s683 then s1044 else s1043-  s1046 :: SBool = s385 ^ s1045-  s1047 :: SBool = if s715 then s1046 else s1045-  s1048 :: SBool = s363 ^ s1047-  s1049 :: SBool = if s747 then s1048 else s1047-  s1050 :: SBool = s343 ^ s1049-  s1051 :: SBool = if s779 then s1050 else s1049-  s1052 :: SBool = s325 ^ s1051-  s1053 :: SBool = if s811 then s1052 else s1051-  s1054 :: SBool = s309 ^ s1053-  s1055 :: SBool = if s843 then s1054 else s1053-  s1056 :: SBool = s295 ^ s1055-  s1057 :: SBool = if s875 then s1056 else s1055-  s1058 :: SBool = s283 ^ s1057-  s1059 :: SBool = if s907 then s1058 else s1057-  s1060 :: SBool = s273 ^ s1059-  s1061 :: SBool = if s939 then s1060 else s1059-  s1062 :: SBool = s265 ^ s1061-  s1063 :: SBool = if s971 then s1062 else s1061-  s1064 :: SBool = s259 ^ s1063-  s1065 :: SBool = if s1003 then s1064 else s1063-  s1066 :: SBool = s255 ^ s1065-  s1067 :: SBool = if s1035 then s1066 else s1065-  s1068 :: SBool = s7 ^ s180-  s1069 :: SBool = if s587 then s1068 else s180-  s1070 :: SBool = s493 ^ s1069-  s1071 :: SBool = if s619 then s1070 else s1069-  s1072 :: SBool = s463 ^ s1071-  s1073 :: SBool = if s651 then s1072 else s1071-  s1074 :: SBool = s435 ^ s1073-  s1075 :: SBool = if s683 then s1074 else s1073-  s1076 :: SBool = s409 ^ s1075-  s1077 :: SBool = if s715 then s1076 else s1075-  s1078 :: SBool = s385 ^ s1077-  s1079 :: SBool = if s747 then s1078 else s1077-  s1080 :: SBool = s363 ^ s1079-  s1081 :: SBool = if s779 then s1080 else s1079-  s1082 :: SBool = s343 ^ s1081-  s1083 :: SBool = if s811 then s1082 else s1081-  s1084 :: SBool = s325 ^ s1083-  s1085 :: SBool = if s843 then s1084 else s1083-  s1086 :: SBool = s309 ^ s1085-  s1087 :: SBool = if s875 then s1086 else s1085-  s1088 :: SBool = s295 ^ s1087-  s1089 :: SBool = if s907 then s1088 else s1087-  s1090 :: SBool = s283 ^ s1089-  s1091 :: SBool = if s939 then s1090 else s1089-  s1092 :: SBool = s273 ^ s1091-  s1093 :: SBool = if s971 then s1092 else s1091-  s1094 :: SBool = s265 ^ s1093-  s1095 :: SBool = if s1003 then s1094 else s1093-  s1096 :: SBool = s259 ^ s1095-  s1097 :: SBool = if s1035 then s1096 else s1095-  s1098 :: SBool = s255 ^ s1097-  s1099 :: SBool = if s1067 then s1098 else s1097-  s1100 :: SBool = s7 ^ s185-  s1101 :: SBool = if s619 then s1100 else s185-  s1102 :: SBool = s493 ^ s1101-  s1103 :: SBool = if s651 then s1102 else s1101-  s1104 :: SBool = s463 ^ s1103-  s1105 :: SBool = if s683 then s1104 else s1103-  s1106 :: SBool = s435 ^ s1105-  s1107 :: SBool = if s715 then s1106 else s1105-  s1108 :: SBool = s409 ^ s1107-  s1109 :: SBool = if s747 then s1108 else s1107-  s1110 :: SBool = s385 ^ s1109-  s1111 :: SBool = if s779 then s1110 else s1109-  s1112 :: SBool = s363 ^ s1111-  s1113 :: SBool = if s811 then s1112 else s1111-  s1114 :: SBool = s343 ^ s1113-  s1115 :: SBool = if s843 then s1114 else s1113-  s1116 :: SBool = s325 ^ s1115-  s1117 :: SBool = if s875 then s1116 else s1115-  s1118 :: SBool = s309 ^ s1117-  s1119 :: SBool = if s907 then s1118 else s1117-  s1120 :: SBool = s295 ^ s1119-  s1121 :: SBool = if s939 then s1120 else s1119-  s1122 :: SBool = s283 ^ s1121-  s1123 :: SBool = if s971 then s1122 else s1121-  s1124 :: SBool = s273 ^ s1123-  s1125 :: SBool = if s1003 then s1124 else s1123-  s1126 :: SBool = s265 ^ s1125-  s1127 :: SBool = if s1035 then s1126 else s1125-  s1128 :: SBool = s259 ^ s1127-  s1129 :: SBool = if s1067 then s1128 else s1127-  s1130 :: SBool = s255 ^ s1129-  s1131 :: SBool = if s1099 then s1130 else s1129-  s1132 :: SBool = s7 ^ s190-  s1133 :: SBool = if s651 then s1132 else s190-  s1134 :: SBool = s493 ^ s1133-  s1135 :: SBool = if s683 then s1134 else s1133-  s1136 :: SBool = s463 ^ s1135-  s1137 :: SBool = if s715 then s1136 else s1135-  s1138 :: SBool = s435 ^ s1137-  s1139 :: SBool = if s747 then s1138 else s1137-  s1140 :: SBool = s409 ^ s1139-  s1141 :: SBool = if s779 then s1140 else s1139-  s1142 :: SBool = s385 ^ s1141-  s1143 :: SBool = if s811 then s1142 else s1141-  s1144 :: SBool = s363 ^ s1143-  s1145 :: SBool = if s843 then s1144 else s1143-  s1146 :: SBool = s343 ^ s1145-  s1147 :: SBool = if s875 then s1146 else s1145-  s1148 :: SBool = s325 ^ s1147-  s1149 :: SBool = if s907 then s1148 else s1147-  s1150 :: SBool = s309 ^ s1149-  s1151 :: SBool = if s939 then s1150 else s1149-  s1152 :: SBool = s295 ^ s1151-  s1153 :: SBool = if s971 then s1152 else s1151-  s1154 :: SBool = s283 ^ s1153-  s1155 :: SBool = if s1003 then s1154 else s1153-  s1156 :: SBool = s273 ^ s1155-  s1157 :: SBool = if s1035 then s1156 else s1155-  s1158 :: SBool = s265 ^ s1157-  s1159 :: SBool = if s1067 then s1158 else s1157-  s1160 :: SBool = s259 ^ s1159-  s1161 :: SBool = if s1099 then s1160 else s1159-  s1162 :: SBool = s255 ^ s1161-  s1163 :: SBool = if s1131 then s1162 else s1161-  s1164 :: SBool = s7 ^ s195-  s1165 :: SBool = if s683 then s1164 else s195-  s1166 :: SBool = s493 ^ s1165-  s1167 :: SBool = if s715 then s1166 else s1165-  s1168 :: SBool = s463 ^ s1167-  s1169 :: SBool = if s747 then s1168 else s1167-  s1170 :: SBool = s435 ^ s1169-  s1171 :: SBool = if s779 then s1170 else s1169-  s1172 :: SBool = s409 ^ s1171-  s1173 :: SBool = if s811 then s1172 else s1171-  s1174 :: SBool = s385 ^ s1173-  s1175 :: SBool = if s843 then s1174 else s1173-  s1176 :: SBool = s363 ^ s1175-  s1177 :: SBool = if s875 then s1176 else s1175-  s1178 :: SBool = s343 ^ s1177-  s1179 :: SBool = if s907 then s1178 else s1177-  s1180 :: SBool = s325 ^ s1179-  s1181 :: SBool = if s939 then s1180 else s1179-  s1182 :: SBool = s309 ^ s1181-  s1183 :: SBool = if s971 then s1182 else s1181-  s1184 :: SBool = s295 ^ s1183-  s1185 :: SBool = if s1003 then s1184 else s1183-  s1186 :: SBool = s283 ^ s1185-  s1187 :: SBool = if s1035 then s1186 else s1185-  s1188 :: SBool = s273 ^ s1187-  s1189 :: SBool = if s1067 then s1188 else s1187-  s1190 :: SBool = s265 ^ s1189-  s1191 :: SBool = if s1099 then s1190 else s1189-  s1192 :: SBool = s259 ^ s1191-  s1193 :: SBool = if s1131 then s1192 else s1191-  s1194 :: SBool = s255 ^ s1193-  s1195 :: SBool = if s1163 then s1194 else s1193-  s1196 :: SBool = s7 ^ s200-  s1197 :: SBool = if s715 then s1196 else s200-  s1198 :: SBool = s493 ^ s1197-  s1199 :: SBool = if s747 then s1198 else s1197-  s1200 :: SBool = s463 ^ s1199-  s1201 :: SBool = if s779 then s1200 else s1199-  s1202 :: SBool = s435 ^ s1201-  s1203 :: SBool = if s811 then s1202 else s1201-  s1204 :: SBool = s409 ^ s1203-  s1205 :: SBool = if s843 then s1204 else s1203-  s1206 :: SBool = s385 ^ s1205-  s1207 :: SBool = if s875 then s1206 else s1205-  s1208 :: SBool = s363 ^ s1207-  s1209 :: SBool = if s907 then s1208 else s1207-  s1210 :: SBool = s343 ^ s1209-  s1211 :: SBool = if s939 then s1210 else s1209-  s1212 :: SBool = s325 ^ s1211-  s1213 :: SBool = if s971 then s1212 else s1211-  s1214 :: SBool = s309 ^ s1213-  s1215 :: SBool = if s1003 then s1214 else s1213-  s1216 :: SBool = s295 ^ s1215-  s1217 :: SBool = if s1035 then s1216 else s1215-  s1218 :: SBool = s283 ^ s1217-  s1219 :: SBool = if s1067 then s1218 else s1217-  s1220 :: SBool = s273 ^ s1219-  s1221 :: SBool = if s1099 then s1220 else s1219-  s1222 :: SBool = s265 ^ s1221-  s1223 :: SBool = if s1131 then s1222 else s1221-  s1224 :: SBool = s259 ^ s1223-  s1225 :: SBool = if s1163 then s1224 else s1223-  s1226 :: SBool = s255 ^ s1225-  s1227 :: SBool = if s1195 then s1226 else s1225-  s1228 :: SBool = s7 ^ s205-  s1229 :: SBool = if s747 then s1228 else s205-  s1230 :: SBool = s493 ^ s1229-  s1231 :: SBool = if s779 then s1230 else s1229-  s1232 :: SBool = s463 ^ s1231-  s1233 :: SBool = if s811 then s1232 else s1231-  s1234 :: SBool = s435 ^ s1233-  s1235 :: SBool = if s843 then s1234 else s1233-  s1236 :: SBool = s409 ^ s1235-  s1237 :: SBool = if s875 then s1236 else s1235-  s1238 :: SBool = s385 ^ s1237-  s1239 :: SBool = if s907 then s1238 else s1237-  s1240 :: SBool = s363 ^ s1239-  s1241 :: SBool = if s939 then s1240 else s1239-  s1242 :: SBool = s343 ^ s1241-  s1243 :: SBool = if s971 then s1242 else s1241-  s1244 :: SBool = s325 ^ s1243-  s1245 :: SBool = if s1003 then s1244 else s1243-  s1246 :: SBool = s309 ^ s1245-  s1247 :: SBool = if s1035 then s1246 else s1245-  s1248 :: SBool = s295 ^ s1247-  s1249 :: SBool = if s1067 then s1248 else s1247-  s1250 :: SBool = s283 ^ s1249-  s1251 :: SBool = if s1099 then s1250 else s1249-  s1252 :: SBool = s273 ^ s1251-  s1253 :: SBool = if s1131 then s1252 else s1251-  s1254 :: SBool = s265 ^ s1253-  s1255 :: SBool = if s1163 then s1254 else s1253-  s1256 :: SBool = s259 ^ s1255-  s1257 :: SBool = if s1195 then s1256 else s1255-  s1258 :: SBool = s255 ^ s1257-  s1259 :: SBool = if s1227 then s1258 else s1257-  s1260 :: SBool = s7 ^ s210-  s1261 :: SBool = if s779 then s1260 else s210-  s1262 :: SBool = s493 ^ s1261-  s1263 :: SBool = if s811 then s1262 else s1261-  s1264 :: SBool = s463 ^ s1263-  s1265 :: SBool = if s843 then s1264 else s1263-  s1266 :: SBool = s435 ^ s1265-  s1267 :: SBool = if s875 then s1266 else s1265-  s1268 :: SBool = s409 ^ s1267-  s1269 :: SBool = if s907 then s1268 else s1267-  s1270 :: SBool = s385 ^ s1269-  s1271 :: SBool = if s939 then s1270 else s1269-  s1272 :: SBool = s363 ^ s1271-  s1273 :: SBool = if s971 then s1272 else s1271-  s1274 :: SBool = s343 ^ s1273-  s1275 :: SBool = if s1003 then s1274 else s1273-  s1276 :: SBool = s325 ^ s1275-  s1277 :: SBool = if s1035 then s1276 else s1275-  s1278 :: SBool = s309 ^ s1277-  s1279 :: SBool = if s1067 then s1278 else s1277-  s1280 :: SBool = s295 ^ s1279-  s1281 :: SBool = if s1099 then s1280 else s1279-  s1282 :: SBool = s283 ^ s1281-  s1283 :: SBool = if s1131 then s1282 else s1281-  s1284 :: SBool = s273 ^ s1283-  s1285 :: SBool = if s1163 then s1284 else s1283-  s1286 :: SBool = s265 ^ s1285-  s1287 :: SBool = if s1195 then s1286 else s1285-  s1288 :: SBool = s259 ^ s1287-  s1289 :: SBool = if s1227 then s1288 else s1287-  s1290 :: SBool = s255 ^ s1289-  s1291 :: SBool = if s1259 then s1290 else s1289-  s1292 :: SBool = s7 ^ s215-  s1293 :: SBool = if s811 then s1292 else s215-  s1294 :: SBool = s493 ^ s1293-  s1295 :: SBool = if s843 then s1294 else s1293-  s1296 :: SBool = s463 ^ s1295-  s1297 :: SBool = if s875 then s1296 else s1295-  s1298 :: SBool = s435 ^ s1297-  s1299 :: SBool = if s907 then s1298 else s1297-  s1300 :: SBool = s409 ^ s1299-  s1301 :: SBool = if s939 then s1300 else s1299-  s1302 :: SBool = s385 ^ s1301-  s1303 :: SBool = if s971 then s1302 else s1301-  s1304 :: SBool = s363 ^ s1303-  s1305 :: SBool = if s1003 then s1304 else s1303-  s1306 :: SBool = s343 ^ s1305-  s1307 :: SBool = if s1035 then s1306 else s1305-  s1308 :: SBool = s325 ^ s1307-  s1309 :: SBool = if s1067 then s1308 else s1307-  s1310 :: SBool = s309 ^ s1309-  s1311 :: SBool = if s1099 then s1310 else s1309-  s1312 :: SBool = s295 ^ s1311-  s1313 :: SBool = if s1131 then s1312 else s1311-  s1314 :: SBool = s283 ^ s1313-  s1315 :: SBool = if s1163 then s1314 else s1313-  s1316 :: SBool = s273 ^ s1315-  s1317 :: SBool = if s1195 then s1316 else s1315-  s1318 :: SBool = s265 ^ s1317-  s1319 :: SBool = if s1227 then s1318 else s1317-  s1320 :: SBool = s259 ^ s1319-  s1321 :: SBool = if s1259 then s1320 else s1319-  s1322 :: SBool = s255 ^ s1321-  s1323 :: SBool = if s1291 then s1322 else s1321-  s1324 :: SBool = s7 ^ s220-  s1325 :: SBool = if s843 then s1324 else s220-  s1326 :: SBool = s493 ^ s1325-  s1327 :: SBool = if s875 then s1326 else s1325-  s1328 :: SBool = s463 ^ s1327-  s1329 :: SBool = if s907 then s1328 else s1327-  s1330 :: SBool = s435 ^ s1329-  s1331 :: SBool = if s939 then s1330 else s1329-  s1332 :: SBool = s409 ^ s1331-  s1333 :: SBool = if s971 then s1332 else s1331-  s1334 :: SBool = s385 ^ s1333-  s1335 :: SBool = if s1003 then s1334 else s1333-  s1336 :: SBool = s363 ^ s1335-  s1337 :: SBool = if s1035 then s1336 else s1335-  s1338 :: SBool = s343 ^ s1337-  s1339 :: SBool = if s1067 then s1338 else s1337-  s1340 :: SBool = s325 ^ s1339-  s1341 :: SBool = if s1099 then s1340 else s1339-  s1342 :: SBool = s309 ^ s1341-  s1343 :: SBool = if s1131 then s1342 else s1341-  s1344 :: SBool = s295 ^ s1343-  s1345 :: SBool = if s1163 then s1344 else s1343-  s1346 :: SBool = s283 ^ s1345-  s1347 :: SBool = if s1195 then s1346 else s1345-  s1348 :: SBool = s273 ^ s1347-  s1349 :: SBool = if s1227 then s1348 else s1347-  s1350 :: SBool = s265 ^ s1349-  s1351 :: SBool = if s1259 then s1350 else s1349-  s1352 :: SBool = s259 ^ s1351-  s1353 :: SBool = if s1291 then s1352 else s1351-  s1354 :: SBool = s255 ^ s1353-  s1355 :: SBool = if s1323 then s1354 else s1353-  s1356 :: SBool = s7 ^ s225-  s1357 :: SBool = if s875 then s1356 else s225-  s1358 :: SBool = s493 ^ s1357-  s1359 :: SBool = if s907 then s1358 else s1357-  s1360 :: SBool = s463 ^ s1359-  s1361 :: SBool = if s939 then s1360 else s1359-  s1362 :: SBool = s435 ^ s1361-  s1363 :: SBool = if s971 then s1362 else s1361-  s1364 :: SBool = s409 ^ s1363-  s1365 :: SBool = if s1003 then s1364 else s1363-  s1366 :: SBool = s385 ^ s1365-  s1367 :: SBool = if s1035 then s1366 else s1365-  s1368 :: SBool = s363 ^ s1367-  s1369 :: SBool = if s1067 then s1368 else s1367-  s1370 :: SBool = s343 ^ s1369-  s1371 :: SBool = if s1099 then s1370 else s1369-  s1372 :: SBool = s325 ^ s1371-  s1373 :: SBool = if s1131 then s1372 else s1371-  s1374 :: SBool = s309 ^ s1373-  s1375 :: SBool = if s1163 then s1374 else s1373-  s1376 :: SBool = s295 ^ s1375-  s1377 :: SBool = if s1195 then s1376 else s1375-  s1378 :: SBool = s283 ^ s1377-  s1379 :: SBool = if s1227 then s1378 else s1377-  s1380 :: SBool = s273 ^ s1379-  s1381 :: SBool = if s1259 then s1380 else s1379-  s1382 :: SBool = s265 ^ s1381-  s1383 :: SBool = if s1291 then s1382 else s1381-  s1384 :: SBool = s259 ^ s1383-  s1385 :: SBool = if s1323 then s1384 else s1383-  s1386 :: SBool = s255 ^ s1385-  s1387 :: SBool = if s1355 then s1386 else s1385-  s1388 :: SBool = s7 ^ s230-  s1389 :: SBool = if s907 then s1388 else s230-  s1390 :: SBool = s493 ^ s1389-  s1391 :: SBool = if s939 then s1390 else s1389-  s1392 :: SBool = s463 ^ s1391-  s1393 :: SBool = if s971 then s1392 else s1391-  s1394 :: SBool = s435 ^ s1393-  s1395 :: SBool = if s1003 then s1394 else s1393-  s1396 :: SBool = s409 ^ s1395-  s1397 :: SBool = if s1035 then s1396 else s1395-  s1398 :: SBool = s385 ^ s1397-  s1399 :: SBool = if s1067 then s1398 else s1397-  s1400 :: SBool = s363 ^ s1399-  s1401 :: SBool = if s1099 then s1400 else s1399-  s1402 :: SBool = s343 ^ s1401-  s1403 :: SBool = if s1131 then s1402 else s1401-  s1404 :: SBool = s325 ^ s1403-  s1405 :: SBool = if s1163 then s1404 else s1403-  s1406 :: SBool = s309 ^ s1405-  s1407 :: SBool = if s1195 then s1406 else s1405-  s1408 :: SBool = s295 ^ s1407-  s1409 :: SBool = if s1227 then s1408 else s1407-  s1410 :: SBool = s283 ^ s1409-  s1411 :: SBool = if s1259 then s1410 else s1409-  s1412 :: SBool = s273 ^ s1411-  s1413 :: SBool = if s1291 then s1412 else s1411-  s1414 :: SBool = s265 ^ s1413-  s1415 :: SBool = if s1323 then s1414 else s1413-  s1416 :: SBool = s259 ^ s1415-  s1417 :: SBool = if s1355 then s1416 else s1415-  s1418 :: SBool = s255 ^ s1417-  s1419 :: SBool = if s1387 then s1418 else s1417-  s1420 :: SBool = s7 ^ s235-  s1421 :: SBool = if s939 then s1420 else s235-  s1422 :: SBool = s493 ^ s1421-  s1423 :: SBool = if s971 then s1422 else s1421-  s1424 :: SBool = s463 ^ s1423-  s1425 :: SBool = if s1003 then s1424 else s1423-  s1426 :: SBool = s435 ^ s1425-  s1427 :: SBool = if s1035 then s1426 else s1425-  s1428 :: SBool = s409 ^ s1427-  s1429 :: SBool = if s1067 then s1428 else s1427-  s1430 :: SBool = s385 ^ s1429-  s1431 :: SBool = if s1099 then s1430 else s1429-  s1432 :: SBool = s363 ^ s1431-  s1433 :: SBool = if s1131 then s1432 else s1431-  s1434 :: SBool = s343 ^ s1433-  s1435 :: SBool = if s1163 then s1434 else s1433-  s1436 :: SBool = s325 ^ s1435-  s1437 :: SBool = if s1195 then s1436 else s1435-  s1438 :: SBool = s309 ^ s1437-  s1439 :: SBool = if s1227 then s1438 else s1437-  s1440 :: SBool = s295 ^ s1439-  s1441 :: SBool = if s1259 then s1440 else s1439-  s1442 :: SBool = s283 ^ s1441-  s1443 :: SBool = if s1291 then s1442 else s1441-  s1444 :: SBool = s273 ^ s1443-  s1445 :: SBool = if s1323 then s1444 else s1443-  s1446 :: SBool = s265 ^ s1445-  s1447 :: SBool = if s1355 then s1446 else s1445-  s1448 :: SBool = s259 ^ s1447-  s1449 :: SBool = if s1387 then s1448 else s1447-  s1450 :: SBool = s255 ^ s1449-  s1451 :: SBool = if s1419 then s1450 else s1449-  s1452 :: SBool = s7 ^ s240-  s1453 :: SBool = if s971 then s1452 else s240-  s1454 :: SBool = s493 ^ s1453-  s1455 :: SBool = if s1003 then s1454 else s1453-  s1456 :: SBool = s463 ^ s1455-  s1457 :: SBool = if s1035 then s1456 else s1455-  s1458 :: SBool = s435 ^ s1457-  s1459 :: SBool = if s1067 then s1458 else s1457-  s1460 :: SBool = s409 ^ s1459-  s1461 :: SBool = if s1099 then s1460 else s1459-  s1462 :: SBool = s385 ^ s1461-  s1463 :: SBool = if s1131 then s1462 else s1461-  s1464 :: SBool = s363 ^ s1463-  s1465 :: SBool = if s1163 then s1464 else s1463-  s1466 :: SBool = s343 ^ s1465-  s1467 :: SBool = if s1195 then s1466 else s1465-  s1468 :: SBool = s325 ^ s1467-  s1469 :: SBool = if s1227 then s1468 else s1467-  s1470 :: SBool = s309 ^ s1469-  s1471 :: SBool = if s1259 then s1470 else s1469-  s1472 :: SBool = s295 ^ s1471-  s1473 :: SBool = if s1291 then s1472 else s1471-  s1474 :: SBool = s283 ^ s1473-  s1475 :: SBool = if s1323 then s1474 else s1473-  s1476 :: SBool = s273 ^ s1475-  s1477 :: SBool = if s1355 then s1476 else s1475-  s1478 :: SBool = s265 ^ s1477-  s1479 :: SBool = if s1387 then s1478 else s1477-  s1480 :: SBool = s259 ^ s1479-  s1481 :: SBool = if s1419 then s1480 else s1479-  s1482 :: SBool = s255 ^ s1481-  s1483 :: SBool = if s1451 then s1482 else s1481-  s1484 :: SBool = s7 ^ s245-  s1485 :: SBool = if s1003 then s1484 else s245-  s1486 :: SBool = s493 ^ s1485-  s1487 :: SBool = if s1035 then s1486 else s1485-  s1488 :: SBool = s463 ^ s1487-  s1489 :: SBool = if s1067 then s1488 else s1487-  s1490 :: SBool = s435 ^ s1489-  s1491 :: SBool = if s1099 then s1490 else s1489-  s1492 :: SBool = s409 ^ s1491-  s1493 :: SBool = if s1131 then s1492 else s1491-  s1494 :: SBool = s385 ^ s1493-  s1495 :: SBool = if s1163 then s1494 else s1493-  s1496 :: SBool = s363 ^ s1495-  s1497 :: SBool = if s1195 then s1496 else s1495-  s1498 :: SBool = s343 ^ s1497-  s1499 :: SBool = if s1227 then s1498 else s1497-  s1500 :: SBool = s325 ^ s1499-  s1501 :: SBool = if s1259 then s1500 else s1499-  s1502 :: SBool = s309 ^ s1501-  s1503 :: SBool = if s1291 then s1502 else s1501-  s1504 :: SBool = s295 ^ s1503-  s1505 :: SBool = if s1323 then s1504 else s1503-  s1506 :: SBool = s283 ^ s1505-  s1507 :: SBool = if s1355 then s1506 else s1505-  s1508 :: SBool = s273 ^ s1507-  s1509 :: SBool = if s1387 then s1508 else s1507-  s1510 :: SBool = s265 ^ s1509-  s1511 :: SBool = if s1419 then s1510 else s1509-  s1512 :: SBool = s259 ^ s1511-  s1513 :: SBool = if s1451 then s1512 else s1511-  s1514 :: SBool = s255 ^ s1513-  s1515 :: SBool = if s1483 then s1514 else s1513-  s1516 :: SBool = s7 ^ s250-  s1517 :: SBool = if s1035 then s1516 else s250-  s1518 :: SBool = s493 ^ s1517-  s1519 :: SBool = if s1067 then s1518 else s1517-  s1520 :: SBool = s463 ^ s1519-  s1521 :: SBool = if s1099 then s1520 else s1519-  s1522 :: SBool = s435 ^ s1521-  s1523 :: SBool = if s1131 then s1522 else s1521-  s1524 :: SBool = s409 ^ s1523-  s1525 :: SBool = if s1163 then s1524 else s1523-  s1526 :: SBool = s385 ^ s1525-  s1527 :: SBool = if s1195 then s1526 else s1525-  s1528 :: SBool = s363 ^ s1527-  s1529 :: SBool = if s1227 then s1528 else s1527-  s1530 :: SBool = s343 ^ s1529-  s1531 :: SBool = if s1259 then s1530 else s1529-  s1532 :: SBool = s325 ^ s1531-  s1533 :: SBool = if s1291 then s1532 else s1531-  s1534 :: SBool = s309 ^ s1533-  s1535 :: SBool = if s1323 then s1534 else s1533-  s1536 :: SBool = s295 ^ s1535-  s1537 :: SBool = if s1355 then s1536 else s1535-  s1538 :: SBool = s283 ^ s1537-  s1539 :: SBool = if s1387 then s1538 else s1537-  s1540 :: SBool = s273 ^ s1539-  s1541 :: SBool = if s1419 then s1540 else s1539-  s1542 :: SBool = s265 ^ s1541-  s1543 :: SBool = if s1451 then s1542 else s1541-  s1544 :: SBool = s259 ^ s1543-  s1545 :: SBool = if s1483 then s1544 else s1543-  s1546 :: SBool = s255 ^ s1545-  s1547 :: SBool = if s1515 then s1546 else s1545-  s1548 :: SBool = s7 & s1067-  s1549 :: SBool = s493 ^ s1548-  s1550 :: SBool = if s1099 then s1549 else s1548-  s1551 :: SBool = s463 ^ s1550-  s1552 :: SBool = if s1131 then s1551 else s1550-  s1553 :: SBool = s435 ^ s1552-  s1554 :: SBool = if s1163 then s1553 else s1552-  s1555 :: SBool = s409 ^ s1554-  s1556 :: SBool = if s1195 then s1555 else s1554-  s1557 :: SBool = s385 ^ s1556-  s1558 :: SBool = if s1227 then s1557 else s1556-  s1559 :: SBool = s363 ^ s1558-  s1560 :: SBool = if s1259 then s1559 else s1558-  s1561 :: SBool = s343 ^ s1560-  s1562 :: SBool = if s1291 then s1561 else s1560-  s1563 :: SBool = s325 ^ s1562-  s1564 :: SBool = if s1323 then s1563 else s1562-  s1565 :: SBool = s309 ^ s1564-  s1566 :: SBool = if s1355 then s1565 else s1564-  s1567 :: SBool = s295 ^ s1566-  s1568 :: SBool = if s1387 then s1567 else s1566-  s1569 :: SBool = s283 ^ s1568-  s1570 :: SBool = if s1419 then s1569 else s1568-  s1571 :: SBool = s273 ^ s1570-  s1572 :: SBool = if s1451 then s1571 else s1570-  s1573 :: SBool = s265 ^ s1572-  s1574 :: SBool = if s1483 then s1573 else s1572-  s1575 :: SBool = s259 ^ s1574-  s1576 :: SBool = if s1515 then s1575 else s1574-  s1577 :: SBool = s255 ^ s1576-  s1578 :: SBool = if s1547 then s1577 else s1576-  s1579 :: SBool = s22 ^ s255-  s1580 :: SBool = if s16 then s1579 else s22-  s1581 :: SBool = s27 ^ s259-  s1582 :: SBool = if s16 then s1581 else s27-  s1583 :: SBool = s255 ^ s1582-  s1584 :: SBool = if s1580 then s1583 else s1582-  s1585 :: SBool = s32 ^ s265-  s1586 :: SBool = if s16 then s1585 else s32-  s1587 :: SBool = s259 ^ s1586-  s1588 :: SBool = if s1580 then s1587 else s1586-  s1589 :: SBool = s255 ^ s1588-  s1590 :: SBool = if s1584 then s1589 else s1588-  s1591 :: SBool = s37 ^ s273-  s1592 :: SBool = if s16 then s1591 else s37-  s1593 :: SBool = s265 ^ s1592-  s1594 :: SBool = if s1580 then s1593 else s1592-  s1595 :: SBool = s259 ^ s1594-  s1596 :: SBool = if s1584 then s1595 else s1594-  s1597 :: SBool = s255 ^ s1596-  s1598 :: SBool = if s1590 then s1597 else s1596-  s1599 :: SBool = s42 ^ s283-  s1600 :: SBool = if s16 then s1599 else s42-  s1601 :: SBool = s273 ^ s1600-  s1602 :: SBool = if s1580 then s1601 else s1600-  s1603 :: SBool = s265 ^ s1602-  s1604 :: SBool = if s1584 then s1603 else s1602-  s1605 :: SBool = s259 ^ s1604-  s1606 :: SBool = if s1590 then s1605 else s1604-  s1607 :: SBool = s255 ^ s1606-  s1608 :: SBool = if s1598 then s1607 else s1606-  s1609 :: SBool = s47 ^ s295-  s1610 :: SBool = if s16 then s1609 else s47-  s1611 :: SBool = s283 ^ s1610-  s1612 :: SBool = if s1580 then s1611 else s1610-  s1613 :: SBool = s273 ^ s1612-  s1614 :: SBool = if s1584 then s1613 else s1612-  s1615 :: SBool = s265 ^ s1614-  s1616 :: SBool = if s1590 then s1615 else s1614-  s1617 :: SBool = s259 ^ s1616-  s1618 :: SBool = if s1598 then s1617 else s1616-  s1619 :: SBool = s255 ^ s1618-  s1620 :: SBool = if s1608 then s1619 else s1618-  s1621 :: SBool = s52 ^ s309-  s1622 :: SBool = if s16 then s1621 else s52-  s1623 :: SBool = s295 ^ s1622-  s1624 :: SBool = if s1580 then s1623 else s1622-  s1625 :: SBool = s283 ^ s1624-  s1626 :: SBool = if s1584 then s1625 else s1624-  s1627 :: SBool = s273 ^ s1626-  s1628 :: SBool = if s1590 then s1627 else s1626-  s1629 :: SBool = s265 ^ s1628-  s1630 :: SBool = if s1598 then s1629 else s1628-  s1631 :: SBool = s259 ^ s1630-  s1632 :: SBool = if s1608 then s1631 else s1630-  s1633 :: SBool = s255 ^ s1632-  s1634 :: SBool = if s1620 then s1633 else s1632-  s1635 :: SBool = s57 ^ s325-  s1636 :: SBool = if s16 then s1635 else s57-  s1637 :: SBool = s309 ^ s1636-  s1638 :: SBool = if s1580 then s1637 else s1636-  s1639 :: SBool = s295 ^ s1638-  s1640 :: SBool = if s1584 then s1639 else s1638-  s1641 :: SBool = s283 ^ s1640-  s1642 :: SBool = if s1590 then s1641 else s1640-  s1643 :: SBool = s273 ^ s1642-  s1644 :: SBool = if s1598 then s1643 else s1642-  s1645 :: SBool = s265 ^ s1644-  s1646 :: SBool = if s1608 then s1645 else s1644-  s1647 :: SBool = s259 ^ s1646-  s1648 :: SBool = if s1620 then s1647 else s1646-  s1649 :: SBool = s255 ^ s1648-  s1650 :: SBool = if s1634 then s1649 else s1648-  s1651 :: SBool = s62 ^ s343-  s1652 :: SBool = if s16 then s1651 else s62-  s1653 :: SBool = s325 ^ s1652-  s1654 :: SBool = if s1580 then s1653 else s1652-  s1655 :: SBool = s309 ^ s1654-  s1656 :: SBool = if s1584 then s1655 else s1654-  s1657 :: SBool = s295 ^ s1656-  s1658 :: SBool = if s1590 then s1657 else s1656-  s1659 :: SBool = s283 ^ s1658-  s1660 :: SBool = if s1598 then s1659 else s1658-  s1661 :: SBool = s273 ^ s1660-  s1662 :: SBool = if s1608 then s1661 else s1660-  s1663 :: SBool = s265 ^ s1662-  s1664 :: SBool = if s1620 then s1663 else s1662-  s1665 :: SBool = s259 ^ s1664-  s1666 :: SBool = if s1634 then s1665 else s1664-  s1667 :: SBool = s255 ^ s1666-  s1668 :: SBool = if s1650 then s1667 else s1666-  s1669 :: SBool = s67 ^ s363-  s1670 :: SBool = if s16 then s1669 else s67-  s1671 :: SBool = s343 ^ s1670-  s1672 :: SBool = if s1580 then s1671 else s1670-  s1673 :: SBool = s325 ^ s1672-  s1674 :: SBool = if s1584 then s1673 else s1672-  s1675 :: SBool = s309 ^ s1674-  s1676 :: SBool = if s1590 then s1675 else s1674-  s1677 :: SBool = s295 ^ s1676-  s1678 :: SBool = if s1598 then s1677 else s1676-  s1679 :: SBool = s283 ^ s1678-  s1680 :: SBool = if s1608 then s1679 else s1678-  s1681 :: SBool = s273 ^ s1680-  s1682 :: SBool = if s1620 then s1681 else s1680-  s1683 :: SBool = s265 ^ s1682-  s1684 :: SBool = if s1634 then s1683 else s1682-  s1685 :: SBool = s259 ^ s1684-  s1686 :: SBool = if s1650 then s1685 else s1684-  s1687 :: SBool = s255 ^ s1686-  s1688 :: SBool = if s1668 then s1687 else s1686-  s1689 :: SBool = s72 ^ s385-  s1690 :: SBool = if s16 then s1689 else s72-  s1691 :: SBool = s363 ^ s1690-  s1692 :: SBool = if s1580 then s1691 else s1690-  s1693 :: SBool = s343 ^ s1692-  s1694 :: SBool = if s1584 then s1693 else s1692-  s1695 :: SBool = s325 ^ s1694-  s1696 :: SBool = if s1590 then s1695 else s1694-  s1697 :: SBool = s309 ^ s1696-  s1698 :: SBool = if s1598 then s1697 else s1696-  s1699 :: SBool = s295 ^ s1698-  s1700 :: SBool = if s1608 then s1699 else s1698-  s1701 :: SBool = s283 ^ s1700-  s1702 :: SBool = if s1620 then s1701 else s1700-  s1703 :: SBool = s273 ^ s1702-  s1704 :: SBool = if s1634 then s1703 else s1702-  s1705 :: SBool = s265 ^ s1704-  s1706 :: SBool = if s1650 then s1705 else s1704-  s1707 :: SBool = s259 ^ s1706-  s1708 :: SBool = if s1668 then s1707 else s1706-  s1709 :: SBool = s255 ^ s1708-  s1710 :: SBool = if s1688 then s1709 else s1708-  s1711 :: SBool = s77 ^ s409-  s1712 :: SBool = if s16 then s1711 else s77-  s1713 :: SBool = s385 ^ s1712-  s1714 :: SBool = if s1580 then s1713 else s1712-  s1715 :: SBool = s363 ^ s1714-  s1716 :: SBool = if s1584 then s1715 else s1714-  s1717 :: SBool = s343 ^ s1716-  s1718 :: SBool = if s1590 then s1717 else s1716-  s1719 :: SBool = s325 ^ s1718-  s1720 :: SBool = if s1598 then s1719 else s1718-  s1721 :: SBool = s309 ^ s1720-  s1722 :: SBool = if s1608 then s1721 else s1720-  s1723 :: SBool = s295 ^ s1722-  s1724 :: SBool = if s1620 then s1723 else s1722-  s1725 :: SBool = s283 ^ s1724-  s1726 :: SBool = if s1634 then s1725 else s1724-  s1727 :: SBool = s273 ^ s1726-  s1728 :: SBool = if s1650 then s1727 else s1726-  s1729 :: SBool = s265 ^ s1728-  s1730 :: SBool = if s1668 then s1729 else s1728-  s1731 :: SBool = s259 ^ s1730-  s1732 :: SBool = if s1688 then s1731 else s1730-  s1733 :: SBool = s255 ^ s1732-  s1734 :: SBool = if s1710 then s1733 else s1732-  s1735 :: SBool = s82 ^ s435-  s1736 :: SBool = if s16 then s1735 else s82-  s1737 :: SBool = s409 ^ s1736-  s1738 :: SBool = if s1580 then s1737 else s1736-  s1739 :: SBool = s385 ^ s1738-  s1740 :: SBool = if s1584 then s1739 else s1738-  s1741 :: SBool = s363 ^ s1740-  s1742 :: SBool = if s1590 then s1741 else s1740-  s1743 :: SBool = s343 ^ s1742-  s1744 :: SBool = if s1598 then s1743 else s1742-  s1745 :: SBool = s325 ^ s1744-  s1746 :: SBool = if s1608 then s1745 else s1744-  s1747 :: SBool = s309 ^ s1746-  s1748 :: SBool = if s1620 then s1747 else s1746-  s1749 :: SBool = s295 ^ s1748-  s1750 :: SBool = if s1634 then s1749 else s1748-  s1751 :: SBool = s283 ^ s1750-  s1752 :: SBool = if s1650 then s1751 else s1750-  s1753 :: SBool = s273 ^ s1752-  s1754 :: SBool = if s1668 then s1753 else s1752-  s1755 :: SBool = s265 ^ s1754-  s1756 :: SBool = if s1688 then s1755 else s1754-  s1757 :: SBool = s259 ^ s1756-  s1758 :: SBool = if s1710 then s1757 else s1756-  s1759 :: SBool = s255 ^ s1758-  s1760 :: SBool = if s1734 then s1759 else s1758-  s1761 :: SBool = s87 ^ s463-  s1762 :: SBool = if s16 then s1761 else s87-  s1763 :: SBool = s435 ^ s1762-  s1764 :: SBool = if s1580 then s1763 else s1762-  s1765 :: SBool = s409 ^ s1764-  s1766 :: SBool = if s1584 then s1765 else s1764-  s1767 :: SBool = s385 ^ s1766-  s1768 :: SBool = if s1590 then s1767 else s1766-  s1769 :: SBool = s363 ^ s1768-  s1770 :: SBool = if s1598 then s1769 else s1768-  s1771 :: SBool = s343 ^ s1770-  s1772 :: SBool = if s1608 then s1771 else s1770-  s1773 :: SBool = s325 ^ s1772-  s1774 :: SBool = if s1620 then s1773 else s1772-  s1775 :: SBool = s309 ^ s1774-  s1776 :: SBool = if s1634 then s1775 else s1774-  s1777 :: SBool = s295 ^ s1776-  s1778 :: SBool = if s1650 then s1777 else s1776-  s1779 :: SBool = s283 ^ s1778-  s1780 :: SBool = if s1668 then s1779 else s1778-  s1781 :: SBool = s273 ^ s1780-  s1782 :: SBool = if s1688 then s1781 else s1780-  s1783 :: SBool = s265 ^ s1782-  s1784 :: SBool = if s1710 then s1783 else s1782-  s1785 :: SBool = s259 ^ s1784-  s1786 :: SBool = if s1734 then s1785 else s1784-  s1787 :: SBool = s255 ^ s1786-  s1788 :: SBool = if s1760 then s1787 else s1786-  s1789 :: SBool = s92 ^ s493-  s1790 :: SBool = if s16 then s1789 else s92-  s1791 :: SBool = s463 ^ s1790-  s1792 :: SBool = if s1580 then s1791 else s1790-  s1793 :: SBool = s435 ^ s1792-  s1794 :: SBool = if s1584 then s1793 else s1792-  s1795 :: SBool = s409 ^ s1794-  s1796 :: SBool = if s1590 then s1795 else s1794-  s1797 :: SBool = s385 ^ s1796-  s1798 :: SBool = if s1598 then s1797 else s1796-  s1799 :: SBool = s363 ^ s1798-  s1800 :: SBool = if s1608 then s1799 else s1798-  s1801 :: SBool = s343 ^ s1800-  s1802 :: SBool = if s1620 then s1801 else s1800-  s1803 :: SBool = s325 ^ s1802-  s1804 :: SBool = if s1634 then s1803 else s1802-  s1805 :: SBool = s309 ^ s1804-  s1806 :: SBool = if s1650 then s1805 else s1804-  s1807 :: SBool = s295 ^ s1806-  s1808 :: SBool = if s1668 then s1807 else s1806-  s1809 :: SBool = s283 ^ s1808-  s1810 :: SBool = if s1688 then s1809 else s1808-  s1811 :: SBool = s273 ^ s1810-  s1812 :: SBool = if s1710 then s1811 else s1810-  s1813 :: SBool = s265 ^ s1812-  s1814 :: SBool = if s1734 then s1813 else s1812-  s1815 :: SBool = s259 ^ s1814-  s1816 :: SBool = if s1760 then s1815 else s1814-  s1817 :: SBool = s255 ^ s1816-  s1818 :: SBool = if s1788 then s1817 else s1816-  s1819 :: SBool = s7 ^ s97-  s1820 :: SBool = if s16 then s1819 else s97-  s1821 :: SBool = s493 ^ s1820-  s1822 :: SBool = if s1580 then s1821 else s1820-  s1823 :: SBool = s463 ^ s1822-  s1824 :: SBool = if s1584 then s1823 else s1822-  s1825 :: SBool = s435 ^ s1824-  s1826 :: SBool = if s1590 then s1825 else s1824-  s1827 :: SBool = s409 ^ s1826-  s1828 :: SBool = if s1598 then s1827 else s1826-  s1829 :: SBool = s385 ^ s1828-  s1830 :: SBool = if s1608 then s1829 else s1828-  s1831 :: SBool = s363 ^ s1830-  s1832 :: SBool = if s1620 then s1831 else s1830-  s1833 :: SBool = s343 ^ s1832-  s1834 :: SBool = if s1634 then s1833 else s1832-  s1835 :: SBool = s325 ^ s1834-  s1836 :: SBool = if s1650 then s1835 else s1834-  s1837 :: SBool = s309 ^ s1836-  s1838 :: SBool = if s1668 then s1837 else s1836-  s1839 :: SBool = s295 ^ s1838-  s1840 :: SBool = if s1688 then s1839 else s1838-  s1841 :: SBool = s283 ^ s1840-  s1842 :: SBool = if s1710 then s1841 else s1840-  s1843 :: SBool = s273 ^ s1842-  s1844 :: SBool = if s1734 then s1843 else s1842-  s1845 :: SBool = s265 ^ s1844-  s1846 :: SBool = if s1760 then s1845 else s1844-  s1847 :: SBool = s259 ^ s1846-  s1848 :: SBool = if s1788 then s1847 else s1846-  s1849 :: SBool = s255 ^ s1848-  s1850 :: SBool = if s1818 then s1849 else s1848-  s1851 :: SBool = s7 ^ s102-  s1852 :: SBool = if s1580 then s1851 else s102-  s1853 :: SBool = s493 ^ s1852-  s1854 :: SBool = if s1584 then s1853 else s1852-  s1855 :: SBool = s463 ^ s1854-  s1856 :: SBool = if s1590 then s1855 else s1854-  s1857 :: SBool = s435 ^ s1856-  s1858 :: SBool = if s1598 then s1857 else s1856-  s1859 :: SBool = s409 ^ s1858-  s1860 :: SBool = if s1608 then s1859 else s1858-  s1861 :: SBool = s385 ^ s1860-  s1862 :: SBool = if s1620 then s1861 else s1860-  s1863 :: SBool = s363 ^ s1862-  s1864 :: SBool = if s1634 then s1863 else s1862-  s1865 :: SBool = s343 ^ s1864-  s1866 :: SBool = if s1650 then s1865 else s1864-  s1867 :: SBool = s325 ^ s1866-  s1868 :: SBool = if s1668 then s1867 else s1866-  s1869 :: SBool = s309 ^ s1868-  s1870 :: SBool = if s1688 then s1869 else s1868-  s1871 :: SBool = s295 ^ s1870-  s1872 :: SBool = if s1710 then s1871 else s1870-  s1873 :: SBool = s283 ^ s1872-  s1874 :: SBool = if s1734 then s1873 else s1872-  s1875 :: SBool = s273 ^ s1874-  s1876 :: SBool = if s1760 then s1875 else s1874-  s1877 :: SBool = s265 ^ s1876-  s1878 :: SBool = if s1788 then s1877 else s1876-  s1879 :: SBool = s259 ^ s1878-  s1880 :: SBool = if s1818 then s1879 else s1878-  s1881 :: SBool = s255 ^ s1880-  s1882 :: SBool = if s1850 then s1881 else s1880-  s1883 :: SBool = s7 ^ s107-  s1884 :: SBool = if s1584 then s1883 else s107-  s1885 :: SBool = s493 ^ s1884-  s1886 :: SBool = if s1590 then s1885 else s1884-  s1887 :: SBool = s463 ^ s1886-  s1888 :: SBool = if s1598 then s1887 else s1886-  s1889 :: SBool = s435 ^ s1888-  s1890 :: SBool = if s1608 then s1889 else s1888-  s1891 :: SBool = s409 ^ s1890-  s1892 :: SBool = if s1620 then s1891 else s1890-  s1893 :: SBool = s385 ^ s1892-  s1894 :: SBool = if s1634 then s1893 else s1892-  s1895 :: SBool = s363 ^ s1894-  s1896 :: SBool = if s1650 then s1895 else s1894-  s1897 :: SBool = s343 ^ s1896-  s1898 :: SBool = if s1668 then s1897 else s1896-  s1899 :: SBool = s325 ^ s1898-  s1900 :: SBool = if s1688 then s1899 else s1898-  s1901 :: SBool = s309 ^ s1900-  s1902 :: SBool = if s1710 then s1901 else s1900-  s1903 :: SBool = s295 ^ s1902-  s1904 :: SBool = if s1734 then s1903 else s1902-  s1905 :: SBool = s283 ^ s1904-  s1906 :: SBool = if s1760 then s1905 else s1904-  s1907 :: SBool = s273 ^ s1906-  s1908 :: SBool = if s1788 then s1907 else s1906-  s1909 :: SBool = s265 ^ s1908-  s1910 :: SBool = if s1818 then s1909 else s1908-  s1911 :: SBool = s259 ^ s1910-  s1912 :: SBool = if s1850 then s1911 else s1910-  s1913 :: SBool = s255 ^ s1912-  s1914 :: SBool = if s1882 then s1913 else s1912-  s1915 :: SBool = s7 ^ s112-  s1916 :: SBool = if s1590 then s1915 else s112-  s1917 :: SBool = s493 ^ s1916-  s1918 :: SBool = if s1598 then s1917 else s1916-  s1919 :: SBool = s463 ^ s1918-  s1920 :: SBool = if s1608 then s1919 else s1918-  s1921 :: SBool = s435 ^ s1920-  s1922 :: SBool = if s1620 then s1921 else s1920-  s1923 :: SBool = s409 ^ s1922-  s1924 :: SBool = if s1634 then s1923 else s1922-  s1925 :: SBool = s385 ^ s1924-  s1926 :: SBool = if s1650 then s1925 else s1924-  s1927 :: SBool = s363 ^ s1926-  s1928 :: SBool = if s1668 then s1927 else s1926-  s1929 :: SBool = s343 ^ s1928-  s1930 :: SBool = if s1688 then s1929 else s1928-  s1931 :: SBool = s325 ^ s1930-  s1932 :: SBool = if s1710 then s1931 else s1930-  s1933 :: SBool = s309 ^ s1932-  s1934 :: SBool = if s1734 then s1933 else s1932-  s1935 :: SBool = s295 ^ s1934-  s1936 :: SBool = if s1760 then s1935 else s1934-  s1937 :: SBool = s283 ^ s1936-  s1938 :: SBool = if s1788 then s1937 else s1936-  s1939 :: SBool = s273 ^ s1938-  s1940 :: SBool = if s1818 then s1939 else s1938-  s1941 :: SBool = s265 ^ s1940-  s1942 :: SBool = if s1850 then s1941 else s1940-  s1943 :: SBool = s259 ^ s1942-  s1944 :: SBool = if s1882 then s1943 else s1942-  s1945 :: SBool = s255 ^ s1944-  s1946 :: SBool = if s1914 then s1945 else s1944-  s1947 :: SBool = s7 ^ s117-  s1948 :: SBool = if s1598 then s1947 else s117-  s1949 :: SBool = s493 ^ s1948-  s1950 :: SBool = if s1608 then s1949 else s1948-  s1951 :: SBool = s463 ^ s1950-  s1952 :: SBool = if s1620 then s1951 else s1950-  s1953 :: SBool = s435 ^ s1952-  s1954 :: SBool = if s1634 then s1953 else s1952-  s1955 :: SBool = s409 ^ s1954-  s1956 :: SBool = if s1650 then s1955 else s1954-  s1957 :: SBool = s385 ^ s1956-  s1958 :: SBool = if s1668 then s1957 else s1956-  s1959 :: SBool = s363 ^ s1958-  s1960 :: SBool = if s1688 then s1959 else s1958-  s1961 :: SBool = s343 ^ s1960-  s1962 :: SBool = if s1710 then s1961 else s1960-  s1963 :: SBool = s325 ^ s1962-  s1964 :: SBool = if s1734 then s1963 else s1962-  s1965 :: SBool = s309 ^ s1964-  s1966 :: SBool = if s1760 then s1965 else s1964-  s1967 :: SBool = s295 ^ s1966-  s1968 :: SBool = if s1788 then s1967 else s1966-  s1969 :: SBool = s283 ^ s1968-  s1970 :: SBool = if s1818 then s1969 else s1968-  s1971 :: SBool = s273 ^ s1970-  s1972 :: SBool = if s1850 then s1971 else s1970-  s1973 :: SBool = s265 ^ s1972-  s1974 :: SBool = if s1882 then s1973 else s1972-  s1975 :: SBool = s259 ^ s1974-  s1976 :: SBool = if s1914 then s1975 else s1974-  s1977 :: SBool = s255 ^ s1976-  s1978 :: SBool = if s1946 then s1977 else s1976-  s1979 :: SBool = s7 ^ s122-  s1980 :: SBool = if s1608 then s1979 else s122-  s1981 :: SBool = s493 ^ s1980-  s1982 :: SBool = if s1620 then s1981 else s1980-  s1983 :: SBool = s463 ^ s1982-  s1984 :: SBool = if s1634 then s1983 else s1982-  s1985 :: SBool = s435 ^ s1984-  s1986 :: SBool = if s1650 then s1985 else s1984-  s1987 :: SBool = s409 ^ s1986-  s1988 :: SBool = if s1668 then s1987 else s1986-  s1989 :: SBool = s385 ^ s1988-  s1990 :: SBool = if s1688 then s1989 else s1988-  s1991 :: SBool = s363 ^ s1990-  s1992 :: SBool = if s1710 then s1991 else s1990-  s1993 :: SBool = s343 ^ s1992-  s1994 :: SBool = if s1734 then s1993 else s1992-  s1995 :: SBool = s325 ^ s1994-  s1996 :: SBool = if s1760 then s1995 else s1994-  s1997 :: SBool = s309 ^ s1996-  s1998 :: SBool = if s1788 then s1997 else s1996-  s1999 :: SBool = s295 ^ s1998-  s2000 :: SBool = if s1818 then s1999 else s1998-  s2001 :: SBool = s283 ^ s2000-  s2002 :: SBool = if s1850 then s2001 else s2000-  s2003 :: SBool = s273 ^ s2002-  s2004 :: SBool = if s1882 then s2003 else s2002-  s2005 :: SBool = s265 ^ s2004-  s2006 :: SBool = if s1914 then s2005 else s2004-  s2007 :: SBool = s259 ^ s2006-  s2008 :: SBool = if s1946 then s2007 else s2006-  s2009 :: SBool = s255 ^ s2008-  s2010 :: SBool = if s1978 then s2009 else s2008-  s2011 :: SBool = s7 ^ s127-  s2012 :: SBool = if s1620 then s2011 else s127-  s2013 :: SBool = s493 ^ s2012-  s2014 :: SBool = if s1634 then s2013 else s2012-  s2015 :: SBool = s463 ^ s2014-  s2016 :: SBool = if s1650 then s2015 else s2014-  s2017 :: SBool = s435 ^ s2016-  s2018 :: SBool = if s1668 then s2017 else s2016-  s2019 :: SBool = s409 ^ s2018-  s2020 :: SBool = if s1688 then s2019 else s2018-  s2021 :: SBool = s385 ^ s2020-  s2022 :: SBool = if s1710 then s2021 else s2020-  s2023 :: SBool = s363 ^ s2022-  s2024 :: SBool = if s1734 then s2023 else s2022-  s2025 :: SBool = s343 ^ s2024-  s2026 :: SBool = if s1760 then s2025 else s2024-  s2027 :: SBool = s325 ^ s2026-  s2028 :: SBool = if s1788 then s2027 else s2026-  s2029 :: SBool = s309 ^ s2028-  s2030 :: SBool = if s1818 then s2029 else s2028-  s2031 :: SBool = s295 ^ s2030-  s2032 :: SBool = if s1850 then s2031 else s2030-  s2033 :: SBool = s283 ^ s2032-  s2034 :: SBool = if s1882 then s2033 else s2032-  s2035 :: SBool = s273 ^ s2034-  s2036 :: SBool = if s1914 then s2035 else s2034-  s2037 :: SBool = s265 ^ s2036-  s2038 :: SBool = if s1946 then s2037 else s2036-  s2039 :: SBool = s259 ^ s2038-  s2040 :: SBool = if s1978 then s2039 else s2038-  s2041 :: SBool = s255 ^ s2040-  s2042 :: SBool = if s2010 then s2041 else s2040-  s2043 :: SBool = s7 ^ s132-  s2044 :: SBool = if s1634 then s2043 else s132-  s2045 :: SBool = s493 ^ s2044-  s2046 :: SBool = if s1650 then s2045 else s2044-  s2047 :: SBool = s463 ^ s2046-  s2048 :: SBool = if s1668 then s2047 else s2046-  s2049 :: SBool = s435 ^ s2048-  s2050 :: SBool = if s1688 then s2049 else s2048-  s2051 :: SBool = s409 ^ s2050-  s2052 :: SBool = if s1710 then s2051 else s2050-  s2053 :: SBool = s385 ^ s2052-  s2054 :: SBool = if s1734 then s2053 else s2052-  s2055 :: SBool = s363 ^ s2054-  s2056 :: SBool = if s1760 then s2055 else s2054-  s2057 :: SBool = s343 ^ s2056-  s2058 :: SBool = if s1788 then s2057 else s2056-  s2059 :: SBool = s325 ^ s2058-  s2060 :: SBool = if s1818 then s2059 else s2058-  s2061 :: SBool = s309 ^ s2060-  s2062 :: SBool = if s1850 then s2061 else s2060-  s2063 :: SBool = s295 ^ s2062-  s2064 :: SBool = if s1882 then s2063 else s2062-  s2065 :: SBool = s283 ^ s2064-  s2066 :: SBool = if s1914 then s2065 else s2064-  s2067 :: SBool = s273 ^ s2066-  s2068 :: SBool = if s1946 then s2067 else s2066-  s2069 :: SBool = s265 ^ s2068-  s2070 :: SBool = if s1978 then s2069 else s2068-  s2071 :: SBool = s259 ^ s2070-  s2072 :: SBool = if s2010 then s2071 else s2070-  s2073 :: SBool = s255 ^ s2072-  s2074 :: SBool = if s2042 then s2073 else s2072-  s2075 :: SBool = s7 ^ s137-  s2076 :: SBool = if s1650 then s2075 else s137-  s2077 :: SBool = s493 ^ s2076-  s2078 :: SBool = if s1668 then s2077 else s2076-  s2079 :: SBool = s463 ^ s2078-  s2080 :: SBool = if s1688 then s2079 else s2078-  s2081 :: SBool = s435 ^ s2080-  s2082 :: SBool = if s1710 then s2081 else s2080-  s2083 :: SBool = s409 ^ s2082-  s2084 :: SBool = if s1734 then s2083 else s2082-  s2085 :: SBool = s385 ^ s2084-  s2086 :: SBool = if s1760 then s2085 else s2084-  s2087 :: SBool = s363 ^ s2086-  s2088 :: SBool = if s1788 then s2087 else s2086-  s2089 :: SBool = s343 ^ s2088-  s2090 :: SBool = if s1818 then s2089 else s2088-  s2091 :: SBool = s325 ^ s2090-  s2092 :: SBool = if s1850 then s2091 else s2090-  s2093 :: SBool = s309 ^ s2092-  s2094 :: SBool = if s1882 then s2093 else s2092-  s2095 :: SBool = s295 ^ s2094-  s2096 :: SBool = if s1914 then s2095 else s2094-  s2097 :: SBool = s283 ^ s2096-  s2098 :: SBool = if s1946 then s2097 else s2096-  s2099 :: SBool = s273 ^ s2098-  s2100 :: SBool = if s1978 then s2099 else s2098-  s2101 :: SBool = s265 ^ s2100-  s2102 :: SBool = if s2010 then s2101 else s2100-  s2103 :: SBool = s259 ^ s2102-  s2104 :: SBool = if s2042 then s2103 else s2102-  s2105 :: SBool = s255 ^ s2104-  s2106 :: SBool = if s2074 then s2105 else s2104-  s2107 :: SBool = s7 ^ s142-  s2108 :: SBool = if s1668 then s2107 else s142-  s2109 :: SBool = s493 ^ s2108-  s2110 :: SBool = if s1688 then s2109 else s2108-  s2111 :: SBool = s463 ^ s2110-  s2112 :: SBool = if s1710 then s2111 else s2110-  s2113 :: SBool = s435 ^ s2112-  s2114 :: SBool = if s1734 then s2113 else s2112-  s2115 :: SBool = s409 ^ s2114-  s2116 :: SBool = if s1760 then s2115 else s2114-  s2117 :: SBool = s385 ^ s2116-  s2118 :: SBool = if s1788 then s2117 else s2116-  s2119 :: SBool = s363 ^ s2118-  s2120 :: SBool = if s1818 then s2119 else s2118-  s2121 :: SBool = s343 ^ s2120-  s2122 :: SBool = if s1850 then s2121 else s2120-  s2123 :: SBool = s325 ^ s2122-  s2124 :: SBool = if s1882 then s2123 else s2122-  s2125 :: SBool = s309 ^ s2124-  s2126 :: SBool = if s1914 then s2125 else s2124-  s2127 :: SBool = s295 ^ s2126-  s2128 :: SBool = if s1946 then s2127 else s2126-  s2129 :: SBool = s283 ^ s2128-  s2130 :: SBool = if s1978 then s2129 else s2128-  s2131 :: SBool = s273 ^ s2130-  s2132 :: SBool = if s2010 then s2131 else s2130-  s2133 :: SBool = s265 ^ s2132-  s2134 :: SBool = if s2042 then s2133 else s2132-  s2135 :: SBool = s259 ^ s2134-  s2136 :: SBool = if s2074 then s2135 else s2134-  s2137 :: SBool = s255 ^ s2136-  s2138 :: SBool = if s2106 then s2137 else s2136-  s2139 :: SBool = s7 ^ s147-  s2140 :: SBool = if s1688 then s2139 else s147-  s2141 :: SBool = s493 ^ s2140-  s2142 :: SBool = if s1710 then s2141 else s2140-  s2143 :: SBool = s463 ^ s2142-  s2144 :: SBool = if s1734 then s2143 else s2142-  s2145 :: SBool = s435 ^ s2144-  s2146 :: SBool = if s1760 then s2145 else s2144-  s2147 :: SBool = s409 ^ s2146-  s2148 :: SBool = if s1788 then s2147 else s2146-  s2149 :: SBool = s385 ^ s2148-  s2150 :: SBool = if s1818 then s2149 else s2148-  s2151 :: SBool = s363 ^ s2150-  s2152 :: SBool = if s1850 then s2151 else s2150-  s2153 :: SBool = s343 ^ s2152-  s2154 :: SBool = if s1882 then s2153 else s2152-  s2155 :: SBool = s325 ^ s2154-  s2156 :: SBool = if s1914 then s2155 else s2154-  s2157 :: SBool = s309 ^ s2156-  s2158 :: SBool = if s1946 then s2157 else s2156-  s2159 :: SBool = s295 ^ s2158-  s2160 :: SBool = if s1978 then s2159 else s2158-  s2161 :: SBool = s283 ^ s2160-  s2162 :: SBool = if s2010 then s2161 else s2160-  s2163 :: SBool = s273 ^ s2162-  s2164 :: SBool = if s2042 then s2163 else s2162-  s2165 :: SBool = s265 ^ s2164-  s2166 :: SBool = if s2074 then s2165 else s2164-  s2167 :: SBool = s259 ^ s2166-  s2168 :: SBool = if s2106 then s2167 else s2166-  s2169 :: SBool = s255 ^ s2168-  s2170 :: SBool = if s2138 then s2169 else s2168-  s2171 :: SBool = s7 ^ s152-  s2172 :: SBool = if s1710 then s2171 else s152-  s2173 :: SBool = s493 ^ s2172-  s2174 :: SBool = if s1734 then s2173 else s2172-  s2175 :: SBool = s463 ^ s2174-  s2176 :: SBool = if s1760 then s2175 else s2174-  s2177 :: SBool = s435 ^ s2176-  s2178 :: SBool = if s1788 then s2177 else s2176-  s2179 :: SBool = s409 ^ s2178-  s2180 :: SBool = if s1818 then s2179 else s2178-  s2181 :: SBool = s385 ^ s2180-  s2182 :: SBool = if s1850 then s2181 else s2180-  s2183 :: SBool = s363 ^ s2182-  s2184 :: SBool = if s1882 then s2183 else s2182-  s2185 :: SBool = s343 ^ s2184-  s2186 :: SBool = if s1914 then s2185 else s2184-  s2187 :: SBool = s325 ^ s2186-  s2188 :: SBool = if s1946 then s2187 else s2186-  s2189 :: SBool = s309 ^ s2188-  s2190 :: SBool = if s1978 then s2189 else s2188-  s2191 :: SBool = s295 ^ s2190-  s2192 :: SBool = if s2010 then s2191 else s2190-  s2193 :: SBool = s283 ^ s2192-  s2194 :: SBool = if s2042 then s2193 else s2192-  s2195 :: SBool = s273 ^ s2194-  s2196 :: SBool = if s2074 then s2195 else s2194-  s2197 :: SBool = s265 ^ s2196-  s2198 :: SBool = if s2106 then s2197 else s2196-  s2199 :: SBool = s259 ^ s2198-  s2200 :: SBool = if s2138 then s2199 else s2198-  s2201 :: SBool = s255 ^ s2200-  s2202 :: SBool = if s2170 then s2201 else s2200-  s2203 :: SBool = s7 ^ s157-  s2204 :: SBool = if s1734 then s2203 else s157-  s2205 :: SBool = s493 ^ s2204-  s2206 :: SBool = if s1760 then s2205 else s2204-  s2207 :: SBool = s463 ^ s2206-  s2208 :: SBool = if s1788 then s2207 else s2206-  s2209 :: SBool = s435 ^ s2208-  s2210 :: SBool = if s1818 then s2209 else s2208-  s2211 :: SBool = s409 ^ s2210-  s2212 :: SBool = if s1850 then s2211 else s2210-  s2213 :: SBool = s385 ^ s2212-  s2214 :: SBool = if s1882 then s2213 else s2212-  s2215 :: SBool = s363 ^ s2214-  s2216 :: SBool = if s1914 then s2215 else s2214-  s2217 :: SBool = s343 ^ s2216-  s2218 :: SBool = if s1946 then s2217 else s2216-  s2219 :: SBool = s325 ^ s2218-  s2220 :: SBool = if s1978 then s2219 else s2218-  s2221 :: SBool = s309 ^ s2220-  s2222 :: SBool = if s2010 then s2221 else s2220-  s2223 :: SBool = s295 ^ s2222-  s2224 :: SBool = if s2042 then s2223 else s2222-  s2225 :: SBool = s283 ^ s2224-  s2226 :: SBool = if s2074 then s2225 else s2224-  s2227 :: SBool = s273 ^ s2226-  s2228 :: SBool = if s2106 then s2227 else s2226-  s2229 :: SBool = s265 ^ s2228-  s2230 :: SBool = if s2138 then s2229 else s2228-  s2231 :: SBool = s259 ^ s2230-  s2232 :: SBool = if s2170 then s2231 else s2230-  s2233 :: SBool = s255 ^ s2232-  s2234 :: SBool = if s2202 then s2233 else s2232-  s2235 :: SBool = s7 ^ s162-  s2236 :: SBool = if s1760 then s2235 else s162-  s2237 :: SBool = s493 ^ s2236-  s2238 :: SBool = if s1788 then s2237 else s2236-  s2239 :: SBool = s463 ^ s2238-  s2240 :: SBool = if s1818 then s2239 else s2238-  s2241 :: SBool = s435 ^ s2240-  s2242 :: SBool = if s1850 then s2241 else s2240-  s2243 :: SBool = s409 ^ s2242-  s2244 :: SBool = if s1882 then s2243 else s2242-  s2245 :: SBool = s385 ^ s2244-  s2246 :: SBool = if s1914 then s2245 else s2244-  s2247 :: SBool = s363 ^ s2246-  s2248 :: SBool = if s1946 then s2247 else s2246-  s2249 :: SBool = s343 ^ s2248-  s2250 :: SBool = if s1978 then s2249 else s2248-  s2251 :: SBool = s325 ^ s2250-  s2252 :: SBool = if s2010 then s2251 else s2250-  s2253 :: SBool = s309 ^ s2252-  s2254 :: SBool = if s2042 then s2253 else s2252-  s2255 :: SBool = s295 ^ s2254-  s2256 :: SBool = if s2074 then s2255 else s2254-  s2257 :: SBool = s283 ^ s2256-  s2258 :: SBool = if s2106 then s2257 else s2256-  s2259 :: SBool = s273 ^ s2258-  s2260 :: SBool = if s2138 then s2259 else s2258-  s2261 :: SBool = s265 ^ s2260-  s2262 :: SBool = if s2170 then s2261 else s2260-  s2263 :: SBool = s259 ^ s2262-  s2264 :: SBool = if s2202 then s2263 else s2262-  s2265 :: SBool = s255 ^ s2264-  s2266 :: SBool = if s2234 then s2265 else s2264-  s2267 :: SBool = s7 ^ s167-  s2268 :: SBool = if s1788 then s2267 else s167-  s2269 :: SBool = s493 ^ s2268-  s2270 :: SBool = if s1818 then s2269 else s2268-  s2271 :: SBool = s463 ^ s2270-  s2272 :: SBool = if s1850 then s2271 else s2270-  s2273 :: SBool = s435 ^ s2272-  s2274 :: SBool = if s1882 then s2273 else s2272-  s2275 :: SBool = s409 ^ s2274-  s2276 :: SBool = if s1914 then s2275 else s2274-  s2277 :: SBool = s385 ^ s2276-  s2278 :: SBool = if s1946 then s2277 else s2276-  s2279 :: SBool = s363 ^ s2278-  s2280 :: SBool = if s1978 then s2279 else s2278-  s2281 :: SBool = s343 ^ s2280-  s2282 :: SBool = if s2010 then s2281 else s2280-  s2283 :: SBool = s325 ^ s2282-  s2284 :: SBool = if s2042 then s2283 else s2282-  s2285 :: SBool = s309 ^ s2284-  s2286 :: SBool = if s2074 then s2285 else s2284-  s2287 :: SBool = s295 ^ s2286-  s2288 :: SBool = if s2106 then s2287 else s2286-  s2289 :: SBool = s283 ^ s2288-  s2290 :: SBool = if s2138 then s2289 else s2288-  s2291 :: SBool = s273 ^ s2290-  s2292 :: SBool = if s2170 then s2291 else s2290-  s2293 :: SBool = s265 ^ s2292-  s2294 :: SBool = if s2202 then s2293 else s2292-  s2295 :: SBool = s259 ^ s2294-  s2296 :: SBool = if s2234 then s2295 else s2294-  s2297 :: SBool = s255 ^ s2296-  s2298 :: SBool = if s2266 then s2297 else s2296-  s2299 :: SBool = s7 ^ s172-  s2300 :: SBool = if s1818 then s2299 else s172-  s2301 :: SBool = s493 ^ s2300-  s2302 :: SBool = if s1850 then s2301 else s2300-  s2303 :: SBool = s463 ^ s2302-  s2304 :: SBool = if s1882 then s2303 else s2302-  s2305 :: SBool = s435 ^ s2304-  s2306 :: SBool = if s1914 then s2305 else s2304-  s2307 :: SBool = s409 ^ s2306-  s2308 :: SBool = if s1946 then s2307 else s2306-  s2309 :: SBool = s385 ^ s2308-  s2310 :: SBool = if s1978 then s2309 else s2308-  s2311 :: SBool = s363 ^ s2310-  s2312 :: SBool = if s2010 then s2311 else s2310-  s2313 :: SBool = s343 ^ s2312-  s2314 :: SBool = if s2042 then s2313 else s2312-  s2315 :: SBool = s325 ^ s2314-  s2316 :: SBool = if s2074 then s2315 else s2314-  s2317 :: SBool = s309 ^ s2316-  s2318 :: SBool = if s2106 then s2317 else s2316-  s2319 :: SBool = s295 ^ s2318-  s2320 :: SBool = if s2138 then s2319 else s2318-  s2321 :: SBool = s283 ^ s2320-  s2322 :: SBool = if s2170 then s2321 else s2320-  s2323 :: SBool = s273 ^ s2322-  s2324 :: SBool = if s2202 then s2323 else s2322-  s2325 :: SBool = s265 ^ s2324-  s2326 :: SBool = if s2234 then s2325 else s2324-  s2327 :: SBool = s259 ^ s2326-  s2328 :: SBool = if s2266 then s2327 else s2326-  s2329 :: SBool = s255 ^ s2328-  s2330 :: SBool = if s2298 then s2329 else s2328-  s2331 :: SBool = s7 ^ s177-  s2332 :: SBool = if s1850 then s2331 else s177-  s2333 :: SBool = s493 ^ s2332-  s2334 :: SBool = if s1882 then s2333 else s2332-  s2335 :: SBool = s463 ^ s2334-  s2336 :: SBool = if s1914 then s2335 else s2334-  s2337 :: SBool = s435 ^ s2336-  s2338 :: SBool = if s1946 then s2337 else s2336-  s2339 :: SBool = s409 ^ s2338-  s2340 :: SBool = if s1978 then s2339 else s2338-  s2341 :: SBool = s385 ^ s2340-  s2342 :: SBool = if s2010 then s2341 else s2340-  s2343 :: SBool = s363 ^ s2342-  s2344 :: SBool = if s2042 then s2343 else s2342-  s2345 :: SBool = s343 ^ s2344-  s2346 :: SBool = if s2074 then s2345 else s2344-  s2347 :: SBool = s325 ^ s2346-  s2348 :: SBool = if s2106 then s2347 else s2346-  s2349 :: SBool = s309 ^ s2348-  s2350 :: SBool = if s2138 then s2349 else s2348-  s2351 :: SBool = s295 ^ s2350-  s2352 :: SBool = if s2170 then s2351 else s2350-  s2353 :: SBool = s283 ^ s2352-  s2354 :: SBool = if s2202 then s2353 else s2352-  s2355 :: SBool = s273 ^ s2354-  s2356 :: SBool = if s2234 then s2355 else s2354-  s2357 :: SBool = s265 ^ s2356-  s2358 :: SBool = if s2266 then s2357 else s2356-  s2359 :: SBool = s259 ^ s2358-  s2360 :: SBool = if s2298 then s2359 else s2358-  s2361 :: SBool = s255 ^ s2360-  s2362 :: SBool = if s2330 then s2361 else s2360-  s2363 :: SBool = s7 ^ s182-  s2364 :: SBool = if s1882 then s2363 else s182-  s2365 :: SBool = s493 ^ s2364-  s2366 :: SBool = if s1914 then s2365 else s2364-  s2367 :: SBool = s463 ^ s2366-  s2368 :: SBool = if s1946 then s2367 else s2366-  s2369 :: SBool = s435 ^ s2368-  s2370 :: SBool = if s1978 then s2369 else s2368-  s2371 :: SBool = s409 ^ s2370-  s2372 :: SBool = if s2010 then s2371 else s2370-  s2373 :: SBool = s385 ^ s2372-  s2374 :: SBool = if s2042 then s2373 else s2372-  s2375 :: SBool = s363 ^ s2374-  s2376 :: SBool = if s2074 then s2375 else s2374-  s2377 :: SBool = s343 ^ s2376-  s2378 :: SBool = if s2106 then s2377 else s2376-  s2379 :: SBool = s325 ^ s2378-  s2380 :: SBool = if s2138 then s2379 else s2378-  s2381 :: SBool = s309 ^ s2380-  s2382 :: SBool = if s2170 then s2381 else s2380-  s2383 :: SBool = s295 ^ s2382-  s2384 :: SBool = if s2202 then s2383 else s2382-  s2385 :: SBool = s283 ^ s2384-  s2386 :: SBool = if s2234 then s2385 else s2384-  s2387 :: SBool = s273 ^ s2386-  s2388 :: SBool = if s2266 then s2387 else s2386-  s2389 :: SBool = s265 ^ s2388-  s2390 :: SBool = if s2298 then s2389 else s2388-  s2391 :: SBool = s259 ^ s2390-  s2392 :: SBool = if s2330 then s2391 else s2390-  s2393 :: SBool = s255 ^ s2392-  s2394 :: SBool = if s2362 then s2393 else s2392-  s2395 :: SBool = s7 ^ s187-  s2396 :: SBool = if s1914 then s2395 else s187-  s2397 :: SBool = s493 ^ s2396-  s2398 :: SBool = if s1946 then s2397 else s2396-  s2399 :: SBool = s463 ^ s2398-  s2400 :: SBool = if s1978 then s2399 else s2398-  s2401 :: SBool = s435 ^ s2400-  s2402 :: SBool = if s2010 then s2401 else s2400-  s2403 :: SBool = s409 ^ s2402-  s2404 :: SBool = if s2042 then s2403 else s2402-  s2405 :: SBool = s385 ^ s2404-  s2406 :: SBool = if s2074 then s2405 else s2404-  s2407 :: SBool = s363 ^ s2406-  s2408 :: SBool = if s2106 then s2407 else s2406-  s2409 :: SBool = s343 ^ s2408-  s2410 :: SBool = if s2138 then s2409 else s2408-  s2411 :: SBool = s325 ^ s2410-  s2412 :: SBool = if s2170 then s2411 else s2410-  s2413 :: SBool = s309 ^ s2412-  s2414 :: SBool = if s2202 then s2413 else s2412-  s2415 :: SBool = s295 ^ s2414-  s2416 :: SBool = if s2234 then s2415 else s2414-  s2417 :: SBool = s283 ^ s2416-  s2418 :: SBool = if s2266 then s2417 else s2416-  s2419 :: SBool = s273 ^ s2418-  s2420 :: SBool = if s2298 then s2419 else s2418-  s2421 :: SBool = s265 ^ s2420-  s2422 :: SBool = if s2330 then s2421 else s2420-  s2423 :: SBool = s259 ^ s2422-  s2424 :: SBool = if s2362 then s2423 else s2422-  s2425 :: SBool = s255 ^ s2424-  s2426 :: SBool = if s2394 then s2425 else s2424-  s2427 :: SBool = s7 ^ s192-  s2428 :: SBool = if s1946 then s2427 else s192-  s2429 :: SBool = s493 ^ s2428-  s2430 :: SBool = if s1978 then s2429 else s2428-  s2431 :: SBool = s463 ^ s2430-  s2432 :: SBool = if s2010 then s2431 else s2430-  s2433 :: SBool = s435 ^ s2432-  s2434 :: SBool = if s2042 then s2433 else s2432-  s2435 :: SBool = s409 ^ s2434-  s2436 :: SBool = if s2074 then s2435 else s2434-  s2437 :: SBool = s385 ^ s2436-  s2438 :: SBool = if s2106 then s2437 else s2436-  s2439 :: SBool = s363 ^ s2438-  s2440 :: SBool = if s2138 then s2439 else s2438-  s2441 :: SBool = s343 ^ s2440-  s2442 :: SBool = if s2170 then s2441 else s2440-  s2443 :: SBool = s325 ^ s2442-  s2444 :: SBool = if s2202 then s2443 else s2442-  s2445 :: SBool = s309 ^ s2444-  s2446 :: SBool = if s2234 then s2445 else s2444-  s2447 :: SBool = s295 ^ s2446-  s2448 :: SBool = if s2266 then s2447 else s2446-  s2449 :: SBool = s283 ^ s2448-  s2450 :: SBool = if s2298 then s2449 else s2448-  s2451 :: SBool = s273 ^ s2450-  s2452 :: SBool = if s2330 then s2451 else s2450-  s2453 :: SBool = s265 ^ s2452-  s2454 :: SBool = if s2362 then s2453 else s2452-  s2455 :: SBool = s259 ^ s2454-  s2456 :: SBool = if s2394 then s2455 else s2454-  s2457 :: SBool = s255 ^ s2456-  s2458 :: SBool = if s2426 then s2457 else s2456-  s2459 :: SBool = s7 ^ s197-  s2460 :: SBool = if s1978 then s2459 else s197-  s2461 :: SBool = s493 ^ s2460-  s2462 :: SBool = if s2010 then s2461 else s2460-  s2463 :: SBool = s463 ^ s2462-  s2464 :: SBool = if s2042 then s2463 else s2462-  s2465 :: SBool = s435 ^ s2464-  s2466 :: SBool = if s2074 then s2465 else s2464-  s2467 :: SBool = s409 ^ s2466-  s2468 :: SBool = if s2106 then s2467 else s2466-  s2469 :: SBool = s385 ^ s2468-  s2470 :: SBool = if s2138 then s2469 else s2468-  s2471 :: SBool = s363 ^ s2470-  s2472 :: SBool = if s2170 then s2471 else s2470-  s2473 :: SBool = s343 ^ s2472-  s2474 :: SBool = if s2202 then s2473 else s2472-  s2475 :: SBool = s325 ^ s2474-  s2476 :: SBool = if s2234 then s2475 else s2474-  s2477 :: SBool = s309 ^ s2476-  s2478 :: SBool = if s2266 then s2477 else s2476-  s2479 :: SBool = s295 ^ s2478-  s2480 :: SBool = if s2298 then s2479 else s2478-  s2481 :: SBool = s283 ^ s2480-  s2482 :: SBool = if s2330 then s2481 else s2480-  s2483 :: SBool = s273 ^ s2482-  s2484 :: SBool = if s2362 then s2483 else s2482-  s2485 :: SBool = s265 ^ s2484-  s2486 :: SBool = if s2394 then s2485 else s2484-  s2487 :: SBool = s259 ^ s2486-  s2488 :: SBool = if s2426 then s2487 else s2486-  s2489 :: SBool = s255 ^ s2488-  s2490 :: SBool = if s2458 then s2489 else s2488-  s2491 :: SBool = s7 ^ s202-  s2492 :: SBool = if s2010 then s2491 else s202-  s2493 :: SBool = s493 ^ s2492-  s2494 :: SBool = if s2042 then s2493 else s2492-  s2495 :: SBool = s463 ^ s2494-  s2496 :: SBool = if s2074 then s2495 else s2494-  s2497 :: SBool = s435 ^ s2496-  s2498 :: SBool = if s2106 then s2497 else s2496-  s2499 :: SBool = s409 ^ s2498-  s2500 :: SBool = if s2138 then s2499 else s2498-  s2501 :: SBool = s385 ^ s2500-  s2502 :: SBool = if s2170 then s2501 else s2500-  s2503 :: SBool = s363 ^ s2502-  s2504 :: SBool = if s2202 then s2503 else s2502-  s2505 :: SBool = s343 ^ s2504-  s2506 :: SBool = if s2234 then s2505 else s2504-  s2507 :: SBool = s325 ^ s2506-  s2508 :: SBool = if s2266 then s2507 else s2506-  s2509 :: SBool = s309 ^ s2508-  s2510 :: SBool = if s2298 then s2509 else s2508-  s2511 :: SBool = s295 ^ s2510-  s2512 :: SBool = if s2330 then s2511 else s2510-  s2513 :: SBool = s283 ^ s2512-  s2514 :: SBool = if s2362 then s2513 else s2512-  s2515 :: SBool = s273 ^ s2514-  s2516 :: SBool = if s2394 then s2515 else s2514-  s2517 :: SBool = s265 ^ s2516-  s2518 :: SBool = if s2426 then s2517 else s2516-  s2519 :: SBool = s259 ^ s2518-  s2520 :: SBool = if s2458 then s2519 else s2518-  s2521 :: SBool = s255 ^ s2520-  s2522 :: SBool = if s2490 then s2521 else s2520-  s2523 :: SBool = s7 ^ s207-  s2524 :: SBool = if s2042 then s2523 else s207-  s2525 :: SBool = s493 ^ s2524-  s2526 :: SBool = if s2074 then s2525 else s2524-  s2527 :: SBool = s463 ^ s2526-  s2528 :: SBool = if s2106 then s2527 else s2526-  s2529 :: SBool = s435 ^ s2528-  s2530 :: SBool = if s2138 then s2529 else s2528-  s2531 :: SBool = s409 ^ s2530-  s2532 :: SBool = if s2170 then s2531 else s2530-  s2533 :: SBool = s385 ^ s2532-  s2534 :: SBool = if s2202 then s2533 else s2532-  s2535 :: SBool = s363 ^ s2534-  s2536 :: SBool = if s2234 then s2535 else s2534-  s2537 :: SBool = s343 ^ s2536-  s2538 :: SBool = if s2266 then s2537 else s2536-  s2539 :: SBool = s325 ^ s2538-  s2540 :: SBool = if s2298 then s2539 else s2538-  s2541 :: SBool = s309 ^ s2540-  s2542 :: SBool = if s2330 then s2541 else s2540-  s2543 :: SBool = s295 ^ s2542-  s2544 :: SBool = if s2362 then s2543 else s2542-  s2545 :: SBool = s283 ^ s2544-  s2546 :: SBool = if s2394 then s2545 else s2544-  s2547 :: SBool = s273 ^ s2546-  s2548 :: SBool = if s2426 then s2547 else s2546-  s2549 :: SBool = s265 ^ s2548-  s2550 :: SBool = if s2458 then s2549 else s2548-  s2551 :: SBool = s259 ^ s2550-  s2552 :: SBool = if s2490 then s2551 else s2550-  s2553 :: SBool = s255 ^ s2552-  s2554 :: SBool = if s2522 then s2553 else s2552-  s2555 :: SBool = s7 ^ s212-  s2556 :: SBool = if s2074 then s2555 else s212-  s2557 :: SBool = s493 ^ s2556-  s2558 :: SBool = if s2106 then s2557 else s2556-  s2559 :: SBool = s463 ^ s2558-  s2560 :: SBool = if s2138 then s2559 else s2558-  s2561 :: SBool = s435 ^ s2560-  s2562 :: SBool = if s2170 then s2561 else s2560-  s2563 :: SBool = s409 ^ s2562-  s2564 :: SBool = if s2202 then s2563 else s2562-  s2565 :: SBool = s385 ^ s2564-  s2566 :: SBool = if s2234 then s2565 else s2564-  s2567 :: SBool = s363 ^ s2566-  s2568 :: SBool = if s2266 then s2567 else s2566-  s2569 :: SBool = s343 ^ s2568-  s2570 :: SBool = if s2298 then s2569 else s2568-  s2571 :: SBool = s325 ^ s2570-  s2572 :: SBool = if s2330 then s2571 else s2570-  s2573 :: SBool = s309 ^ s2572-  s2574 :: SBool = if s2362 then s2573 else s2572-  s2575 :: SBool = s295 ^ s2574-  s2576 :: SBool = if s2394 then s2575 else s2574-  s2577 :: SBool = s283 ^ s2576-  s2578 :: SBool = if s2426 then s2577 else s2576-  s2579 :: SBool = s273 ^ s2578-  s2580 :: SBool = if s2458 then s2579 else s2578-  s2581 :: SBool = s265 ^ s2580-  s2582 :: SBool = if s2490 then s2581 else s2580-  s2583 :: SBool = s259 ^ s2582-  s2584 :: SBool = if s2522 then s2583 else s2582-  s2585 :: SBool = s255 ^ s2584-  s2586 :: SBool = if s2554 then s2585 else s2584-  s2587 :: SBool = s7 ^ s217-  s2588 :: SBool = if s2106 then s2587 else s217-  s2589 :: SBool = s493 ^ s2588-  s2590 :: SBool = if s2138 then s2589 else s2588-  s2591 :: SBool = s463 ^ s2590-  s2592 :: SBool = if s2170 then s2591 else s2590-  s2593 :: SBool = s435 ^ s2592-  s2594 :: SBool = if s2202 then s2593 else s2592-  s2595 :: SBool = s409 ^ s2594-  s2596 :: SBool = if s2234 then s2595 else s2594-  s2597 :: SBool = s385 ^ s2596-  s2598 :: SBool = if s2266 then s2597 else s2596-  s2599 :: SBool = s363 ^ s2598-  s2600 :: SBool = if s2298 then s2599 else s2598-  s2601 :: SBool = s343 ^ s2600-  s2602 :: SBool = if s2330 then s2601 else s2600-  s2603 :: SBool = s325 ^ s2602-  s2604 :: SBool = if s2362 then s2603 else s2602-  s2605 :: SBool = s309 ^ s2604-  s2606 :: SBool = if s2394 then s2605 else s2604-  s2607 :: SBool = s295 ^ s2606-  s2608 :: SBool = if s2426 then s2607 else s2606-  s2609 :: SBool = s283 ^ s2608-  s2610 :: SBool = if s2458 then s2609 else s2608-  s2611 :: SBool = s273 ^ s2610-  s2612 :: SBool = if s2490 then s2611 else s2610-  s2613 :: SBool = s265 ^ s2612-  s2614 :: SBool = if s2522 then s2613 else s2612-  s2615 :: SBool = s259 ^ s2614-  s2616 :: SBool = if s2554 then s2615 else s2614-  s2617 :: SBool = s255 ^ s2616-  s2618 :: SBool = if s2586 then s2617 else s2616-  s2619 :: SBool = s7 ^ s222-  s2620 :: SBool = if s2138 then s2619 else s222-  s2621 :: SBool = s493 ^ s2620-  s2622 :: SBool = if s2170 then s2621 else s2620-  s2623 :: SBool = s463 ^ s2622-  s2624 :: SBool = if s2202 then s2623 else s2622-  s2625 :: SBool = s435 ^ s2624-  s2626 :: SBool = if s2234 then s2625 else s2624-  s2627 :: SBool = s409 ^ s2626-  s2628 :: SBool = if s2266 then s2627 else s2626-  s2629 :: SBool = s385 ^ s2628-  s2630 :: SBool = if s2298 then s2629 else s2628-  s2631 :: SBool = s363 ^ s2630-  s2632 :: SBool = if s2330 then s2631 else s2630-  s2633 :: SBool = s343 ^ s2632-  s2634 :: SBool = if s2362 then s2633 else s2632-  s2635 :: SBool = s325 ^ s2634-  s2636 :: SBool = if s2394 then s2635 else s2634-  s2637 :: SBool = s309 ^ s2636-  s2638 :: SBool = if s2426 then s2637 else s2636-  s2639 :: SBool = s295 ^ s2638-  s2640 :: SBool = if s2458 then s2639 else s2638-  s2641 :: SBool = s283 ^ s2640-  s2642 :: SBool = if s2490 then s2641 else s2640-  s2643 :: SBool = s273 ^ s2642-  s2644 :: SBool = if s2522 then s2643 else s2642-  s2645 :: SBool = s265 ^ s2644-  s2646 :: SBool = if s2554 then s2645 else s2644-  s2647 :: SBool = s259 ^ s2646-  s2648 :: SBool = if s2586 then s2647 else s2646-  s2649 :: SBool = s255 ^ s2648-  s2650 :: SBool = if s2618 then s2649 else s2648-  s2651 :: SBool = s7 ^ s227-  s2652 :: SBool = if s2170 then s2651 else s227-  s2653 :: SBool = s493 ^ s2652-  s2654 :: SBool = if s2202 then s2653 else s2652-  s2655 :: SBool = s463 ^ s2654-  s2656 :: SBool = if s2234 then s2655 else s2654-  s2657 :: SBool = s435 ^ s2656-  s2658 :: SBool = if s2266 then s2657 else s2656-  s2659 :: SBool = s409 ^ s2658-  s2660 :: SBool = if s2298 then s2659 else s2658-  s2661 :: SBool = s385 ^ s2660-  s2662 :: SBool = if s2330 then s2661 else s2660-  s2663 :: SBool = s363 ^ s2662-  s2664 :: SBool = if s2362 then s2663 else s2662-  s2665 :: SBool = s343 ^ s2664-  s2666 :: SBool = if s2394 then s2665 else s2664-  s2667 :: SBool = s325 ^ s2666-  s2668 :: SBool = if s2426 then s2667 else s2666-  s2669 :: SBool = s309 ^ s2668-  s2670 :: SBool = if s2458 then s2669 else s2668-  s2671 :: SBool = s295 ^ s2670-  s2672 :: SBool = if s2490 then s2671 else s2670-  s2673 :: SBool = s283 ^ s2672-  s2674 :: SBool = if s2522 then s2673 else s2672-  s2675 :: SBool = s273 ^ s2674-  s2676 :: SBool = if s2554 then s2675 else s2674-  s2677 :: SBool = s265 ^ s2676-  s2678 :: SBool = if s2586 then s2677 else s2676-  s2679 :: SBool = s259 ^ s2678-  s2680 :: SBool = if s2618 then s2679 else s2678-  s2681 :: SBool = s255 ^ s2680-  s2682 :: SBool = if s2650 then s2681 else s2680-  s2683 :: SBool = s7 ^ s232-  s2684 :: SBool = if s2202 then s2683 else s232-  s2685 :: SBool = s493 ^ s2684-  s2686 :: SBool = if s2234 then s2685 else s2684-  s2687 :: SBool = s463 ^ s2686-  s2688 :: SBool = if s2266 then s2687 else s2686-  s2689 :: SBool = s435 ^ s2688-  s2690 :: SBool = if s2298 then s2689 else s2688-  s2691 :: SBool = s409 ^ s2690-  s2692 :: SBool = if s2330 then s2691 else s2690-  s2693 :: SBool = s385 ^ s2692-  s2694 :: SBool = if s2362 then s2693 else s2692-  s2695 :: SBool = s363 ^ s2694-  s2696 :: SBool = if s2394 then s2695 else s2694-  s2697 :: SBool = s343 ^ s2696-  s2698 :: SBool = if s2426 then s2697 else s2696-  s2699 :: SBool = s325 ^ s2698-  s2700 :: SBool = if s2458 then s2699 else s2698-  s2701 :: SBool = s309 ^ s2700-  s2702 :: SBool = if s2490 then s2701 else s2700-  s2703 :: SBool = s295 ^ s2702-  s2704 :: SBool = if s2522 then s2703 else s2702-  s2705 :: SBool = s283 ^ s2704-  s2706 :: SBool = if s2554 then s2705 else s2704-  s2707 :: SBool = s273 ^ s2706-  s2708 :: SBool = if s2586 then s2707 else s2706-  s2709 :: SBool = s265 ^ s2708-  s2710 :: SBool = if s2618 then s2709 else s2708-  s2711 :: SBool = s259 ^ s2710-  s2712 :: SBool = if s2650 then s2711 else s2710-  s2713 :: SBool = s255 ^ s2712-  s2714 :: SBool = if s2682 then s2713 else s2712-  s2715 :: SBool = s7 ^ s237-  s2716 :: SBool = if s2234 then s2715 else s237-  s2717 :: SBool = s493 ^ s2716-  s2718 :: SBool = if s2266 then s2717 else s2716-  s2719 :: SBool = s463 ^ s2718-  s2720 :: SBool = if s2298 then s2719 else s2718-  s2721 :: SBool = s435 ^ s2720-  s2722 :: SBool = if s2330 then s2721 else s2720-  s2723 :: SBool = s409 ^ s2722-  s2724 :: SBool = if s2362 then s2723 else s2722-  s2725 :: SBool = s385 ^ s2724-  s2726 :: SBool = if s2394 then s2725 else s2724-  s2727 :: SBool = s363 ^ s2726-  s2728 :: SBool = if s2426 then s2727 else s2726-  s2729 :: SBool = s343 ^ s2728-  s2730 :: SBool = if s2458 then s2729 else s2728-  s2731 :: SBool = s325 ^ s2730-  s2732 :: SBool = if s2490 then s2731 else s2730-  s2733 :: SBool = s309 ^ s2732-  s2734 :: SBool = if s2522 then s2733 else s2732-  s2735 :: SBool = s295 ^ s2734-  s2736 :: SBool = if s2554 then s2735 else s2734-  s2737 :: SBool = s283 ^ s2736-  s2738 :: SBool = if s2586 then s2737 else s2736-  s2739 :: SBool = s273 ^ s2738-  s2740 :: SBool = if s2618 then s2739 else s2738-  s2741 :: SBool = s265 ^ s2740-  s2742 :: SBool = if s2650 then s2741 else s2740-  s2743 :: SBool = s259 ^ s2742-  s2744 :: SBool = if s2682 then s2743 else s2742-  s2745 :: SBool = s255 ^ s2744-  s2746 :: SBool = if s2714 then s2745 else s2744-  s2747 :: SBool = s7 ^ s242-  s2748 :: SBool = if s2266 then s2747 else s242-  s2749 :: SBool = s493 ^ s2748-  s2750 :: SBool = if s2298 then s2749 else s2748-  s2751 :: SBool = s463 ^ s2750-  s2752 :: SBool = if s2330 then s2751 else s2750-  s2753 :: SBool = s435 ^ s2752-  s2754 :: SBool = if s2362 then s2753 else s2752-  s2755 :: SBool = s409 ^ s2754-  s2756 :: SBool = if s2394 then s2755 else s2754-  s2757 :: SBool = s385 ^ s2756-  s2758 :: SBool = if s2426 then s2757 else s2756-  s2759 :: SBool = s363 ^ s2758-  s2760 :: SBool = if s2458 then s2759 else s2758-  s2761 :: SBool = s343 ^ s2760-  s2762 :: SBool = if s2490 then s2761 else s2760-  s2763 :: SBool = s325 ^ s2762-  s2764 :: SBool = if s2522 then s2763 else s2762-  s2765 :: SBool = s309 ^ s2764-  s2766 :: SBool = if s2554 then s2765 else s2764-  s2767 :: SBool = s295 ^ s2766-  s2768 :: SBool = if s2586 then s2767 else s2766-  s2769 :: SBool = s283 ^ s2768-  s2770 :: SBool = if s2618 then s2769 else s2768-  s2771 :: SBool = s273 ^ s2770-  s2772 :: SBool = if s2650 then s2771 else s2770-  s2773 :: SBool = s265 ^ s2772-  s2774 :: SBool = if s2682 then s2773 else s2772-  s2775 :: SBool = s259 ^ s2774-  s2776 :: SBool = if s2714 then s2775 else s2774-  s2777 :: SBool = s255 ^ s2776-  s2778 :: SBool = if s2746 then s2777 else s2776-  s2779 :: SBool = s7 ^ s247-  s2780 :: SBool = if s2298 then s2779 else s247-  s2781 :: SBool = s493 ^ s2780-  s2782 :: SBool = if s2330 then s2781 else s2780-  s2783 :: SBool = s463 ^ s2782-  s2784 :: SBool = if s2362 then s2783 else s2782-  s2785 :: SBool = s435 ^ s2784-  s2786 :: SBool = if s2394 then s2785 else s2784-  s2787 :: SBool = s409 ^ s2786-  s2788 :: SBool = if s2426 then s2787 else s2786-  s2789 :: SBool = s385 ^ s2788-  s2790 :: SBool = if s2458 then s2789 else s2788-  s2791 :: SBool = s363 ^ s2790-  s2792 :: SBool = if s2490 then s2791 else s2790-  s2793 :: SBool = s343 ^ s2792-  s2794 :: SBool = if s2522 then s2793 else s2792-  s2795 :: SBool = s325 ^ s2794-  s2796 :: SBool = if s2554 then s2795 else s2794-  s2797 :: SBool = s309 ^ s2796-  s2798 :: SBool = if s2586 then s2797 else s2796-  s2799 :: SBool = s295 ^ s2798-  s2800 :: SBool = if s2618 then s2799 else s2798-  s2801 :: SBool = s283 ^ s2800-  s2802 :: SBool = if s2650 then s2801 else s2800-  s2803 :: SBool = s273 ^ s2802-  s2804 :: SBool = if s2682 then s2803 else s2802-  s2805 :: SBool = s265 ^ s2804-  s2806 :: SBool = if s2714 then s2805 else s2804-  s2807 :: SBool = s259 ^ s2806-  s2808 :: SBool = if s2746 then s2807 else s2806-  s2809 :: SBool = s255 ^ s2808-  s2810 :: SBool = if s2778 then s2809 else s2808-  s2811 :: SBool = s7 ^ s252-  s2812 :: SBool = if s2330 then s2811 else s252-  s2813 :: SBool = s493 ^ s2812-  s2814 :: SBool = if s2362 then s2813 else s2812-  s2815 :: SBool = s463 ^ s2814-  s2816 :: SBool = if s2394 then s2815 else s2814-  s2817 :: SBool = s435 ^ s2816-  s2818 :: SBool = if s2426 then s2817 else s2816-  s2819 :: SBool = s409 ^ s2818-  s2820 :: SBool = if s2458 then s2819 else s2818-  s2821 :: SBool = s385 ^ s2820-  s2822 :: SBool = if s2490 then s2821 else s2820-  s2823 :: SBool = s363 ^ s2822-  s2824 :: SBool = if s2522 then s2823 else s2822-  s2825 :: SBool = s343 ^ s2824-  s2826 :: SBool = if s2554 then s2825 else s2824-  s2827 :: SBool = s325 ^ s2826-  s2828 :: SBool = if s2586 then s2827 else s2826-  s2829 :: SBool = s309 ^ s2828-  s2830 :: SBool = if s2618 then s2829 else s2828-  s2831 :: SBool = s295 ^ s2830-  s2832 :: SBool = if s2650 then s2831 else s2830-  s2833 :: SBool = s283 ^ s2832-  s2834 :: SBool = if s2682 then s2833 else s2832-  s2835 :: SBool = s273 ^ s2834-  s2836 :: SBool = if s2714 then s2835 else s2834-  s2837 :: SBool = s265 ^ s2836-  s2838 :: SBool = if s2746 then s2837 else s2836-  s2839 :: SBool = s259 ^ s2838-  s2840 :: SBool = if s2778 then s2839 else s2838-  s2841 :: SBool = s255 ^ s2840-  s2842 :: SBool = if s2810 then s2841 else s2840-  s2843 :: SBool = s7 & s2362-  s2844 :: SBool = s493 ^ s2843-  s2845 :: SBool = if s2394 then s2844 else s2843-  s2846 :: SBool = s463 ^ s2845-  s2847 :: SBool = if s2426 then s2846 else s2845-  s2848 :: SBool = s435 ^ s2847-  s2849 :: SBool = if s2458 then s2848 else s2847-  s2850 :: SBool = s409 ^ s2849-  s2851 :: SBool = if s2490 then s2850 else s2849-  s2852 :: SBool = s385 ^ s2851-  s2853 :: SBool = if s2522 then s2852 else s2851-  s2854 :: SBool = s363 ^ s2853-  s2855 :: SBool = if s2554 then s2854 else s2853-  s2856 :: SBool = s343 ^ s2855-  s2857 :: SBool = if s2586 then s2856 else s2855-  s2858 :: SBool = s325 ^ s2857-  s2859 :: SBool = if s2618 then s2858 else s2857-  s2860 :: SBool = s309 ^ s2859-  s2861 :: SBool = if s2650 then s2860 else s2859-  s2862 :: SBool = s295 ^ s2861-  s2863 :: SBool = if s2682 then s2862 else s2861-  s2864 :: SBool = s283 ^ s2863-  s2865 :: SBool = if s2714 then s2864 else s2863-  s2866 :: SBool = s273 ^ s2865-  s2867 :: SBool = if s2746 then s2866 else s2865-  s2868 :: SBool = s265 ^ s2867-  s2869 :: SBool = if s2778 then s2868 else s2867-  s2870 :: SBool = s259 ^ s2869-  s2871 :: SBool = if s2810 then s2870 else s2869-  s2872 :: SBool = s255 ^ s2871-  s2873 :: SBool = if s2842 then s2872 else s2871-  s2874 :: SBool = s1578 ^ s2873-  s2875 :: SBool = s7 & s1099-  s2876 :: SBool = s493 ^ s2875-  s2877 :: SBool = if s1131 then s2876 else s2875-  s2878 :: SBool = s463 ^ s2877-  s2879 :: SBool = if s1163 then s2878 else s2877-  s2880 :: SBool = s435 ^ s2879-  s2881 :: SBool = if s1195 then s2880 else s2879-  s2882 :: SBool = s409 ^ s2881-  s2883 :: SBool = if s1227 then s2882 else s2881-  s2884 :: SBool = s385 ^ s2883-  s2885 :: SBool = if s1259 then s2884 else s2883-  s2886 :: SBool = s363 ^ s2885-  s2887 :: SBool = if s1291 then s2886 else s2885-  s2888 :: SBool = s343 ^ s2887-  s2889 :: SBool = if s1323 then s2888 else s2887-  s2890 :: SBool = s325 ^ s2889-  s2891 :: SBool = if s1355 then s2890 else s2889-  s2892 :: SBool = s309 ^ s2891-  s2893 :: SBool = if s1387 then s2892 else s2891-  s2894 :: SBool = s295 ^ s2893-  s2895 :: SBool = if s1419 then s2894 else s2893-  s2896 :: SBool = s283 ^ s2895-  s2897 :: SBool = if s1451 then s2896 else s2895-  s2898 :: SBool = s273 ^ s2897-  s2899 :: SBool = if s1483 then s2898 else s2897-  s2900 :: SBool = s265 ^ s2899-  s2901 :: SBool = if s1515 then s2900 else s2899-  s2902 :: SBool = s259 ^ s2901-  s2903 :: SBool = if s1547 then s2902 else s2901-  s2904 :: SBool = s7 & s2394-  s2905 :: SBool = s493 ^ s2904-  s2906 :: SBool = if s2426 then s2905 else s2904-  s2907 :: SBool = s463 ^ s2906-  s2908 :: SBool = if s2458 then s2907 else s2906-  s2909 :: SBool = s435 ^ s2908-  s2910 :: SBool = if s2490 then s2909 else s2908-  s2911 :: SBool = s409 ^ s2910-  s2912 :: SBool = if s2522 then s2911 else s2910-  s2913 :: SBool = s385 ^ s2912-  s2914 :: SBool = if s2554 then s2913 else s2912-  s2915 :: SBool = s363 ^ s2914-  s2916 :: SBool = if s2586 then s2915 else s2914-  s2917 :: SBool = s343 ^ s2916-  s2918 :: SBool = if s2618 then s2917 else s2916-  s2919 :: SBool = s325 ^ s2918-  s2920 :: SBool = if s2650 then s2919 else s2918-  s2921 :: SBool = s309 ^ s2920-  s2922 :: SBool = if s2682 then s2921 else s2920-  s2923 :: SBool = s295 ^ s2922-  s2924 :: SBool = if s2714 then s2923 else s2922-  s2925 :: SBool = s283 ^ s2924-  s2926 :: SBool = if s2746 then s2925 else s2924-  s2927 :: SBool = s273 ^ s2926-  s2928 :: SBool = if s2778 then s2927 else s2926-  s2929 :: SBool = s265 ^ s2928-  s2930 :: SBool = if s2810 then s2929 else s2928-  s2931 :: SBool = s259 ^ s2930-  s2932 :: SBool = if s2842 then s2931 else s2930-  s2933 :: SBool = s2903 ^ s2932-  s2934 :: SBool = s7 & s1131-  s2935 :: SBool = s493 ^ s2934-  s2936 :: SBool = if s1163 then s2935 else s2934-  s2937 :: SBool = s463 ^ s2936-  s2938 :: SBool = if s1195 then s2937 else s2936-  s2939 :: SBool = s435 ^ s2938-  s2940 :: SBool = if s1227 then s2939 else s2938-  s2941 :: SBool = s409 ^ s2940-  s2942 :: SBool = if s1259 then s2941 else s2940-  s2943 :: SBool = s385 ^ s2942-  s2944 :: SBool = if s1291 then s2943 else s2942-  s2945 :: SBool = s363 ^ s2944-  s2946 :: SBool = if s1323 then s2945 else s2944-  s2947 :: SBool = s343 ^ s2946-  s2948 :: SBool = if s1355 then s2947 else s2946-  s2949 :: SBool = s325 ^ s2948-  s2950 :: SBool = if s1387 then s2949 else s2948-  s2951 :: SBool = s309 ^ s2950-  s2952 :: SBool = if s1419 then s2951 else s2950-  s2953 :: SBool = s295 ^ s2952-  s2954 :: SBool = if s1451 then s2953 else s2952-  s2955 :: SBool = s283 ^ s2954-  s2956 :: SBool = if s1483 then s2955 else s2954-  s2957 :: SBool = s273 ^ s2956-  s2958 :: SBool = if s1515 then s2957 else s2956-  s2959 :: SBool = s265 ^ s2958-  s2960 :: SBool = if s1547 then s2959 else s2958-  s2961 :: SBool = s7 & s2426-  s2962 :: SBool = s493 ^ s2961-  s2963 :: SBool = if s2458 then s2962 else s2961-  s2964 :: SBool = s463 ^ s2963-  s2965 :: SBool = if s2490 then s2964 else s2963-  s2966 :: SBool = s435 ^ s2965-  s2967 :: SBool = if s2522 then s2966 else s2965-  s2968 :: SBool = s409 ^ s2967-  s2969 :: SBool = if s2554 then s2968 else s2967-  s2970 :: SBool = s385 ^ s2969-  s2971 :: SBool = if s2586 then s2970 else s2969-  s2972 :: SBool = s363 ^ s2971-  s2973 :: SBool = if s2618 then s2972 else s2971-  s2974 :: SBool = s343 ^ s2973-  s2975 :: SBool = if s2650 then s2974 else s2973-  s2976 :: SBool = s325 ^ s2975-  s2977 :: SBool = if s2682 then s2976 else s2975-  s2978 :: SBool = s309 ^ s2977-  s2979 :: SBool = if s2714 then s2978 else s2977-  s2980 :: SBool = s295 ^ s2979-  s2981 :: SBool = if s2746 then s2980 else s2979-  s2982 :: SBool = s283 ^ s2981-  s2983 :: SBool = if s2778 then s2982 else s2981-  s2984 :: SBool = s273 ^ s2983-  s2985 :: SBool = if s2810 then s2984 else s2983-  s2986 :: SBool = s265 ^ s2985-  s2987 :: SBool = if s2842 then s2986 else s2985-  s2988 :: SBool = s2960 ^ s2987-  s2989 :: SBool = s7 & s1163-  s2990 :: SBool = s493 ^ s2989-  s2991 :: SBool = if s1195 then s2990 else s2989-  s2992 :: SBool = s463 ^ s2991-  s2993 :: SBool = if s1227 then s2992 else s2991-  s2994 :: SBool = s435 ^ s2993-  s2995 :: SBool = if s1259 then s2994 else s2993-  s2996 :: SBool = s409 ^ s2995-  s2997 :: SBool = if s1291 then s2996 else s2995-  s2998 :: SBool = s385 ^ s2997-  s2999 :: SBool = if s1323 then s2998 else s2997-  s3000 :: SBool = s363 ^ s2999-  s3001 :: SBool = if s1355 then s3000 else s2999-  s3002 :: SBool = s343 ^ s3001-  s3003 :: SBool = if s1387 then s3002 else s3001-  s3004 :: SBool = s325 ^ s3003-  s3005 :: SBool = if s1419 then s3004 else s3003-  s3006 :: SBool = s309 ^ s3005-  s3007 :: SBool = if s1451 then s3006 else s3005-  s3008 :: SBool = s295 ^ s3007-  s3009 :: SBool = if s1483 then s3008 else s3007-  s3010 :: SBool = s283 ^ s3009-  s3011 :: SBool = if s1515 then s3010 else s3009-  s3012 :: SBool = s273 ^ s3011-  s3013 :: SBool = if s1547 then s3012 else s3011-  s3014 :: SBool = s7 & s2458-  s3015 :: SBool = s493 ^ s3014-  s3016 :: SBool = if s2490 then s3015 else s3014-  s3017 :: SBool = s463 ^ s3016-  s3018 :: SBool = if s2522 then s3017 else s3016-  s3019 :: SBool = s435 ^ s3018-  s3020 :: SBool = if s2554 then s3019 else s3018-  s3021 :: SBool = s409 ^ s3020-  s3022 :: SBool = if s2586 then s3021 else s3020-  s3023 :: SBool = s385 ^ s3022-  s3024 :: SBool = if s2618 then s3023 else s3022-  s3025 :: SBool = s363 ^ s3024-  s3026 :: SBool = if s2650 then s3025 else s3024-  s3027 :: SBool = s343 ^ s3026-  s3028 :: SBool = if s2682 then s3027 else s3026-  s3029 :: SBool = s325 ^ s3028-  s3030 :: SBool = if s2714 then s3029 else s3028-  s3031 :: SBool = s309 ^ s3030-  s3032 :: SBool = if s2746 then s3031 else s3030-  s3033 :: SBool = s295 ^ s3032-  s3034 :: SBool = if s2778 then s3033 else s3032-  s3035 :: SBool = s283 ^ s3034-  s3036 :: SBool = if s2810 then s3035 else s3034-  s3037 :: SBool = s273 ^ s3036-  s3038 :: SBool = if s2842 then s3037 else s3036-  s3039 :: SBool = s3013 ^ s3038-  s3040 :: SBool = s7 & s1195-  s3041 :: SBool = s493 ^ s3040-  s3042 :: SBool = if s1227 then s3041 else s3040-  s3043 :: SBool = s463 ^ s3042-  s3044 :: SBool = if s1259 then s3043 else s3042-  s3045 :: SBool = s435 ^ s3044-  s3046 :: SBool = if s1291 then s3045 else s3044-  s3047 :: SBool = s409 ^ s3046-  s3048 :: SBool = if s1323 then s3047 else s3046-  s3049 :: SBool = s385 ^ s3048-  s3050 :: SBool = if s1355 then s3049 else s3048-  s3051 :: SBool = s363 ^ s3050-  s3052 :: SBool = if s1387 then s3051 else s3050-  s3053 :: SBool = s343 ^ s3052-  s3054 :: SBool = if s1419 then s3053 else s3052-  s3055 :: SBool = s325 ^ s3054-  s3056 :: SBool = if s1451 then s3055 else s3054-  s3057 :: SBool = s309 ^ s3056-  s3058 :: SBool = if s1483 then s3057 else s3056-  s3059 :: SBool = s295 ^ s3058-  s3060 :: SBool = if s1515 then s3059 else s3058-  s3061 :: SBool = s283 ^ s3060-  s3062 :: SBool = if s1547 then s3061 else s3060-  s3063 :: SBool = s7 & s2490-  s3064 :: SBool = s493 ^ s3063-  s3065 :: SBool = if s2522 then s3064 else s3063-  s3066 :: SBool = s463 ^ s3065-  s3067 :: SBool = if s2554 then s3066 else s3065-  s3068 :: SBool = s435 ^ s3067-  s3069 :: SBool = if s2586 then s3068 else s3067-  s3070 :: SBool = s409 ^ s3069-  s3071 :: SBool = if s2618 then s3070 else s3069-  s3072 :: SBool = s385 ^ s3071-  s3073 :: SBool = if s2650 then s3072 else s3071-  s3074 :: SBool = s363 ^ s3073-  s3075 :: SBool = if s2682 then s3074 else s3073-  s3076 :: SBool = s343 ^ s3075-  s3077 :: SBool = if s2714 then s3076 else s3075-  s3078 :: SBool = s325 ^ s3077-  s3079 :: SBool = if s2746 then s3078 else s3077-  s3080 :: SBool = s309 ^ s3079-  s3081 :: SBool = if s2778 then s3080 else s3079-  s3082 :: SBool = s295 ^ s3081-  s3083 :: SBool = if s2810 then s3082 else s3081-  s3084 :: SBool = s283 ^ s3083-  s3085 :: SBool = if s2842 then s3084 else s3083-  s3086 :: SBool = s3062 ^ s3085-  s3087 :: SBool = s7 & s1227-  s3088 :: SBool = s493 ^ s3087-  s3089 :: SBool = if s1259 then s3088 else s3087-  s3090 :: SBool = s463 ^ s3089-  s3091 :: SBool = if s1291 then s3090 else s3089-  s3092 :: SBool = s435 ^ s3091-  s3093 :: SBool = if s1323 then s3092 else s3091-  s3094 :: SBool = s409 ^ s3093-  s3095 :: SBool = if s1355 then s3094 else s3093-  s3096 :: SBool = s385 ^ s3095-  s3097 :: SBool = if s1387 then s3096 else s3095-  s3098 :: SBool = s363 ^ s3097-  s3099 :: SBool = if s1419 then s3098 else s3097-  s3100 :: SBool = s343 ^ s3099-  s3101 :: SBool = if s1451 then s3100 else s3099-  s3102 :: SBool = s325 ^ s3101-  s3103 :: SBool = if s1483 then s3102 else s3101-  s3104 :: SBool = s309 ^ s3103-  s3105 :: SBool = if s1515 then s3104 else s3103-  s3106 :: SBool = s295 ^ s3105-  s3107 :: SBool = if s1547 then s3106 else s3105-  s3108 :: SBool = s7 & s2522-  s3109 :: SBool = s493 ^ s3108-  s3110 :: SBool = if s2554 then s3109 else s3108-  s3111 :: SBool = s463 ^ s3110-  s3112 :: SBool = if s2586 then s3111 else s3110-  s3113 :: SBool = s435 ^ s3112-  s3114 :: SBool = if s2618 then s3113 else s3112-  s3115 :: SBool = s409 ^ s3114-  s3116 :: SBool = if s2650 then s3115 else s3114-  s3117 :: SBool = s385 ^ s3116-  s3118 :: SBool = if s2682 then s3117 else s3116-  s3119 :: SBool = s363 ^ s3118-  s3120 :: SBool = if s2714 then s3119 else s3118-  s3121 :: SBool = s343 ^ s3120-  s3122 :: SBool = if s2746 then s3121 else s3120-  s3123 :: SBool = s325 ^ s3122-  s3124 :: SBool = if s2778 then s3123 else s3122-  s3125 :: SBool = s309 ^ s3124-  s3126 :: SBool = if s2810 then s3125 else s3124-  s3127 :: SBool = s295 ^ s3126-  s3128 :: SBool = if s2842 then s3127 else s3126-  s3129 :: SBool = s3107 ^ s3128-  s3130 :: SBool = s7 & s1259-  s3131 :: SBool = s493 ^ s3130-  s3132 :: SBool = if s1291 then s3131 else s3130-  s3133 :: SBool = s463 ^ s3132-  s3134 :: SBool = if s1323 then s3133 else s3132-  s3135 :: SBool = s435 ^ s3134-  s3136 :: SBool = if s1355 then s3135 else s3134-  s3137 :: SBool = s409 ^ s3136-  s3138 :: SBool = if s1387 then s3137 else s3136-  s3139 :: SBool = s385 ^ s3138-  s3140 :: SBool = if s1419 then s3139 else s3138-  s3141 :: SBool = s363 ^ s3140-  s3142 :: SBool = if s1451 then s3141 else s3140-  s3143 :: SBool = s343 ^ s3142-  s3144 :: SBool = if s1483 then s3143 else s3142-  s3145 :: SBool = s325 ^ s3144-  s3146 :: SBool = if s1515 then s3145 else s3144-  s3147 :: SBool = s309 ^ s3146-  s3148 :: SBool = if s1547 then s3147 else s3146-  s3149 :: SBool = s7 & s2554-  s3150 :: SBool = s493 ^ s3149-  s3151 :: SBool = if s2586 then s3150 else s3149-  s3152 :: SBool = s463 ^ s3151-  s3153 :: SBool = if s2618 then s3152 else s3151-  s3154 :: SBool = s435 ^ s3153-  s3155 :: SBool = if s2650 then s3154 else s3153-  s3156 :: SBool = s409 ^ s3155-  s3157 :: SBool = if s2682 then s3156 else s3155-  s3158 :: SBool = s385 ^ s3157-  s3159 :: SBool = if s2714 then s3158 else s3157-  s3160 :: SBool = s363 ^ s3159-  s3161 :: SBool = if s2746 then s3160 else s3159-  s3162 :: SBool = s343 ^ s3161-  s3163 :: SBool = if s2778 then s3162 else s3161-  s3164 :: SBool = s325 ^ s3163-  s3165 :: SBool = if s2810 then s3164 else s3163-  s3166 :: SBool = s309 ^ s3165-  s3167 :: SBool = if s2842 then s3166 else s3165-  s3168 :: SBool = s3148 ^ s3167-  s3169 :: SBool = s7 & s1291-  s3170 :: SBool = s493 ^ s3169-  s3171 :: SBool = if s1323 then s3170 else s3169-  s3172 :: SBool = s463 ^ s3171-  s3173 :: SBool = if s1355 then s3172 else s3171-  s3174 :: SBool = s435 ^ s3173-  s3175 :: SBool = if s1387 then s3174 else s3173-  s3176 :: SBool = s409 ^ s3175-  s3177 :: SBool = if s1419 then s3176 else s3175-  s3178 :: SBool = s385 ^ s3177-  s3179 :: SBool = if s1451 then s3178 else s3177-  s3180 :: SBool = s363 ^ s3179-  s3181 :: SBool = if s1483 then s3180 else s3179-  s3182 :: SBool = s343 ^ s3181-  s3183 :: SBool = if s1515 then s3182 else s3181-  s3184 :: SBool = s325 ^ s3183-  s3185 :: SBool = if s1547 then s3184 else s3183-  s3186 :: SBool = s7 & s2586-  s3187 :: SBool = s493 ^ s3186-  s3188 :: SBool = if s2618 then s3187 else s3186-  s3189 :: SBool = s463 ^ s3188-  s3190 :: SBool = if s2650 then s3189 else s3188-  s3191 :: SBool = s435 ^ s3190-  s3192 :: SBool = if s2682 then s3191 else s3190-  s3193 :: SBool = s409 ^ s3192-  s3194 :: SBool = if s2714 then s3193 else s3192-  s3195 :: SBool = s385 ^ s3194-  s3196 :: SBool = if s2746 then s3195 else s3194-  s3197 :: SBool = s363 ^ s3196-  s3198 :: SBool = if s2778 then s3197 else s3196-  s3199 :: SBool = s343 ^ s3198-  s3200 :: SBool = if s2810 then s3199 else s3198-  s3201 :: SBool = s325 ^ s3200-  s3202 :: SBool = if s2842 then s3201 else s3200-  s3203 :: SBool = s3185 ^ s3202-  s3204 :: SBool = s7 & s1323-  s3205 :: SBool = s493 ^ s3204-  s3206 :: SBool = if s1355 then s3205 else s3204-  s3207 :: SBool = s463 ^ s3206-  s3208 :: SBool = if s1387 then s3207 else s3206-  s3209 :: SBool = s435 ^ s3208-  s3210 :: SBool = if s1419 then s3209 else s3208-  s3211 :: SBool = s409 ^ s3210-  s3212 :: SBool = if s1451 then s3211 else s3210-  s3213 :: SBool = s385 ^ s3212-  s3214 :: SBool = if s1483 then s3213 else s3212-  s3215 :: SBool = s363 ^ s3214-  s3216 :: SBool = if s1515 then s3215 else s3214-  s3217 :: SBool = s343 ^ s3216-  s3218 :: SBool = if s1547 then s3217 else s3216-  s3219 :: SBool = s7 & s2618-  s3220 :: SBool = s493 ^ s3219-  s3221 :: SBool = if s2650 then s3220 else s3219-  s3222 :: SBool = s463 ^ s3221-  s3223 :: SBool = if s2682 then s3222 else s3221-  s3224 :: SBool = s435 ^ s3223-  s3225 :: SBool = if s2714 then s3224 else s3223-  s3226 :: SBool = s409 ^ s3225-  s3227 :: SBool = if s2746 then s3226 else s3225-  s3228 :: SBool = s385 ^ s3227-  s3229 :: SBool = if s2778 then s3228 else s3227-  s3230 :: SBool = s363 ^ s3229-  s3231 :: SBool = if s2810 then s3230 else s3229-  s3232 :: SBool = s343 ^ s3231-  s3233 :: SBool = if s2842 then s3232 else s3231-  s3234 :: SBool = s3218 ^ s3233-  s3235 :: SBool = s7 & s1355-  s3236 :: SBool = s493 ^ s3235-  s3237 :: SBool = if s1387 then s3236 else s3235-  s3238 :: SBool = s463 ^ s3237-  s3239 :: SBool = if s1419 then s3238 else s3237-  s3240 :: SBool = s435 ^ s3239-  s3241 :: SBool = if s1451 then s3240 else s3239-  s3242 :: SBool = s409 ^ s3241-  s3243 :: SBool = if s1483 then s3242 else s3241-  s3244 :: SBool = s385 ^ s3243-  s3245 :: SBool = if s1515 then s3244 else s3243-  s3246 :: SBool = s363 ^ s3245-  s3247 :: SBool = if s1547 then s3246 else s3245-  s3248 :: SBool = s7 & s2650-  s3249 :: SBool = s493 ^ s3248-  s3250 :: SBool = if s2682 then s3249 else s3248-  s3251 :: SBool = s463 ^ s3250-  s3252 :: SBool = if s2714 then s3251 else s3250-  s3253 :: SBool = s435 ^ s3252-  s3254 :: SBool = if s2746 then s3253 else s3252-  s3255 :: SBool = s409 ^ s3254-  s3256 :: SBool = if s2778 then s3255 else s3254-  s3257 :: SBool = s385 ^ s3256-  s3258 :: SBool = if s2810 then s3257 else s3256-  s3259 :: SBool = s363 ^ s3258-  s3260 :: SBool = if s2842 then s3259 else s3258-  s3261 :: SBool = s3247 ^ s3260-  s3262 :: SBool = s7 & s1387-  s3263 :: SBool = s493 ^ s3262-  s3264 :: SBool = if s1419 then s3263 else s3262-  s3265 :: SBool = s463 ^ s3264-  s3266 :: SBool = if s1451 then s3265 else s3264-  s3267 :: SBool = s435 ^ s3266-  s3268 :: SBool = if s1483 then s3267 else s3266-  s3269 :: SBool = s409 ^ s3268-  s3270 :: SBool = if s1515 then s3269 else s3268-  s3271 :: SBool = s385 ^ s3270-  s3272 :: SBool = if s1547 then s3271 else s3270-  s3273 :: SBool = s7 & s2682-  s3274 :: SBool = s493 ^ s3273-  s3275 :: SBool = if s2714 then s3274 else s3273-  s3276 :: SBool = s463 ^ s3275-  s3277 :: SBool = if s2746 then s3276 else s3275-  s3278 :: SBool = s435 ^ s3277-  s3279 :: SBool = if s2778 then s3278 else s3277-  s3280 :: SBool = s409 ^ s3279-  s3281 :: SBool = if s2810 then s3280 else s3279-  s3282 :: SBool = s385 ^ s3281-  s3283 :: SBool = if s2842 then s3282 else s3281-  s3284 :: SBool = s3272 ^ s3283-  s3285 :: SBool = s7 & s1419-  s3286 :: SBool = s493 ^ s3285-  s3287 :: SBool = if s1451 then s3286 else s3285-  s3288 :: SBool = s463 ^ s3287-  s3289 :: SBool = if s1483 then s3288 else s3287-  s3290 :: SBool = s435 ^ s3289-  s3291 :: SBool = if s1515 then s3290 else s3289-  s3292 :: SBool = s409 ^ s3291-  s3293 :: SBool = if s1547 then s3292 else s3291-  s3294 :: SBool = s7 & s2714-  s3295 :: SBool = s493 ^ s3294-  s3296 :: SBool = if s2746 then s3295 else s3294-  s3297 :: SBool = s463 ^ s3296-  s3298 :: SBool = if s2778 then s3297 else s3296-  s3299 :: SBool = s435 ^ s3298-  s3300 :: SBool = if s2810 then s3299 else s3298-  s3301 :: SBool = s409 ^ s3300-  s3302 :: SBool = if s2842 then s3301 else s3300-  s3303 :: SBool = s3293 ^ s3302-  s3304 :: SBool = s7 & s1451-  s3305 :: SBool = s493 ^ s3304-  s3306 :: SBool = if s1483 then s3305 else s3304-  s3307 :: SBool = s463 ^ s3306-  s3308 :: SBool = if s1515 then s3307 else s3306-  s3309 :: SBool = s435 ^ s3308-  s3310 :: SBool = if s1547 then s3309 else s3308-  s3311 :: SBool = s7 & s2746-  s3312 :: SBool = s493 ^ s3311-  s3313 :: SBool = if s2778 then s3312 else s3311-  s3314 :: SBool = s463 ^ s3313-  s3315 :: SBool = if s2810 then s3314 else s3313-  s3316 :: SBool = s435 ^ s3315-  s3317 :: SBool = if s2842 then s3316 else s3315-  s3318 :: SBool = s3310 ^ s3317-  s3319 :: SBool = s7 & s1483-  s3320 :: SBool = s493 ^ s3319-  s3321 :: SBool = if s1515 then s3320 else s3319-  s3322 :: SBool = s463 ^ s3321-  s3323 :: SBool = if s1547 then s3322 else s3321-  s3324 :: SBool = s7 & s2778-  s3325 :: SBool = s493 ^ s3324-  s3326 :: SBool = if s2810 then s3325 else s3324-  s3327 :: SBool = s463 ^ s3326-  s3328 :: SBool = if s2842 then s3327 else s3326-  s3329 :: SBool = s3323 ^ s3328-  s3330 :: SBool = s7 & s1515-  s3331 :: SBool = s493 ^ s3330-  s3332 :: SBool = if s1547 then s3331 else s3330-  s3333 :: SBool = s7 & s2810-  s3334 :: SBool = s493 ^ s3333-  s3335 :: SBool = if s2842 then s3334 else s3333-  s3336 :: SBool = s3332 ^ s3335-  s3337 :: SBool = s7 & s1547-  s3338 :: SBool = s7 & s2842-  s3339 :: SBool = s3337 ^ s3338-  s3341 :: SWord8 = if s3339 then s18 else s3340-  s3342 :: SWord8 = s18 + s3341-  s3343 :: SWord8 = if s3336 then s3342 else s3341-  s3344 :: SWord8 = s18 + s3343-  s3345 :: SWord8 = if s3329 then s3344 else s3343-  s3346 :: SWord8 = s18 + s3345-  s3347 :: SWord8 = if s3318 then s3346 else s3345-  s3348 :: SWord8 = s18 + s3347-  s3349 :: SWord8 = if s3303 then s3348 else s3347-  s3350 :: SWord8 = s18 + s3349-  s3351 :: SWord8 = if s3284 then s3350 else s3349-  s3352 :: SWord8 = s18 + s3351-  s3353 :: SWord8 = if s3261 then s3352 else s3351-  s3354 :: SWord8 = s18 + s3353-  s3355 :: SWord8 = if s3234 then s3354 else s3353-  s3356 :: SWord8 = s18 + s3355-  s3357 :: SWord8 = if s3203 then s3356 else s3355-  s3358 :: SWord8 = s18 + s3357-  s3359 :: SWord8 = if s3168 then s3358 else s3357-  s3360 :: SWord8 = s18 + s3359-  s3361 :: SWord8 = if s3129 then s3360 else s3359-  s3362 :: SWord8 = s18 + s3361-  s3363 :: SWord8 = if s3086 then s3362 else s3361-  s3364 :: SWord8 = s18 + s3363-  s3365 :: SWord8 = if s3039 then s3364 else s3363-  s3366 :: SWord8 = s18 + s3365-  s3367 :: SWord8 = if s2988 then s3366 else s3365-  s3368 :: SWord8 = s18 + s3367-  s3369 :: SWord8 = if s2933 then s3368 else s3367-  s3370 :: SWord8 = s18 + s3369-  s3371 :: SWord8 = if s2874 then s3370 else s3369-  s3372 :: SWord8 = s18 + s3371-  s3373 :: SWord8 = if s253 then s3372 else s3371-  s3374 :: SWord8 = s18 + s3373-  s3375 :: SWord8 = if s248 then s3374 else s3373-  s3376 :: SWord8 = s18 + s3375-  s3377 :: SWord8 = if s243 then s3376 else s3375-  s3378 :: SWord8 = s18 + s3377-  s3379 :: SWord8 = if s238 then s3378 else s3377-  s3380 :: SWord8 = s18 + s3379-  s3381 :: SWord8 = if s233 then s3380 else s3379-  s3382 :: SWord8 = s18 + s3381-  s3383 :: SWord8 = if s228 then s3382 else s3381-  s3384 :: SWord8 = s18 + s3383-  s3385 :: SWord8 = if s223 then s3384 else s3383-  s3386 :: SWord8 = s18 + s3385-  s3387 :: SWord8 = if s218 then s3386 else s3385-  s3388 :: SWord8 = s18 + s3387-  s3389 :: SWord8 = if s213 then s3388 else s3387-  s3390 :: SWord8 = s18 + s3389-  s3391 :: SWord8 = if s208 then s3390 else s3389-  s3392 :: SWord8 = s18 + s3391-  s3393 :: SWord8 = if s203 then s3392 else s3391-  s3394 :: SWord8 = s18 + s3393-  s3395 :: SWord8 = if s198 then s3394 else s3393-  s3396 :: SWord8 = s18 + s3395-  s3397 :: SWord8 = if s193 then s3396 else s3395-  s3398 :: SWord8 = s18 + s3397-  s3399 :: SWord8 = if s188 then s3398 else s3397-  s3400 :: SWord8 = s18 + s3399-  s3401 :: SWord8 = if s183 then s3400 else s3399-  s3402 :: SWord8 = s18 + s3401-  s3403 :: SWord8 = if s178 then s3402 else s3401-  s3404 :: SWord8 = s18 + s3403-  s3405 :: SWord8 = if s173 then s3404 else s3403-  s3406 :: SWord8 = s18 + s3405-  s3407 :: SWord8 = if s168 then s3406 else s3405-  s3408 :: SWord8 = s18 + s3407-  s3409 :: SWord8 = if s163 then s3408 else s3407-  s3410 :: SWord8 = s18 + s3409-  s3411 :: SWord8 = if s158 then s3410 else s3409-  s3412 :: SWord8 = s18 + s3411-  s3413 :: SWord8 = if s153 then s3412 else s3411-  s3414 :: SWord8 = s18 + s3413-  s3415 :: SWord8 = if s148 then s3414 else s3413-  s3416 :: SWord8 = s18 + s3415-  s3417 :: SWord8 = if s143 then s3416 else s3415-  s3418 :: SWord8 = s18 + s3417-  s3419 :: SWord8 = if s138 then s3418 else s3417-  s3420 :: SWord8 = s18 + s3419-  s3421 :: SWord8 = if s133 then s3420 else s3419-  s3422 :: SWord8 = s18 + s3421-  s3423 :: SWord8 = if s128 then s3422 else s3421-  s3424 :: SWord8 = s18 + s3423-  s3425 :: SWord8 = if s123 then s3424 else s3423-  s3426 :: SWord8 = s18 + s3425-  s3427 :: SWord8 = if s118 then s3426 else s3425-  s3428 :: SWord8 = s18 + s3427-  s3429 :: SWord8 = if s113 then s3428 else s3427-  s3430 :: SWord8 = s18 + s3429-  s3431 :: SWord8 = if s108 then s3430 else s3429-  s3432 :: SWord8 = s18 + s3431-  s3433 :: SWord8 = if s103 then s3432 else s3431-  s3434 :: SWord8 = s18 + s3433-  s3435 :: SWord8 = if s98 then s3434 else s3433-  s3436 :: SWord8 = s18 + s3435-  s3437 :: SWord8 = if s93 then s3436 else s3435-  s3438 :: SWord8 = s18 + s3437-  s3439 :: SWord8 = if s88 then s3438 else s3437-  s3440 :: SWord8 = s18 + s3439-  s3441 :: SWord8 = if s83 then s3440 else s3439-  s3442 :: SWord8 = s18 + s3441-  s3443 :: SWord8 = if s78 then s3442 else s3441-  s3444 :: SWord8 = s18 + s3443-  s3445 :: SWord8 = if s73 then s3444 else s3443-  s3446 :: SWord8 = s18 + s3445-  s3447 :: SWord8 = if s68 then s3446 else s3445-  s3448 :: SWord8 = s18 + s3447-  s3449 :: SWord8 = if s63 then s3448 else s3447-  s3450 :: SWord8 = s18 + s3449-  s3451 :: SWord8 = if s58 then s3450 else s3449-  s3452 :: SWord8 = s18 + s3451-  s3453 :: SWord8 = if s53 then s3452 else s3451-  s3454 :: SWord8 = s18 + s3453-  s3455 :: SWord8 = if s48 then s3454 else s3453-  s3456 :: SWord8 = s18 + s3455-  s3457 :: SWord8 = if s43 then s3456 else s3455-  s3458 :: SWord8 = s18 + s3457-  s3459 :: SWord8 = if s38 then s3458 else s3457-  s3460 :: SWord8 = s18 + s3459-  s3461 :: SWord8 = if s33 then s3460 else s3459-  s3462 :: SWord8 = s18 + s3461-  s3463 :: SWord8 = if s28 then s3462 else s3461-  s3464 :: SWord8 = s18 + s3463-  s3465 :: SWord8 = if s23 then s3464 else s3463-  s3466 :: SWord8 = s18 + s3465-  s3467 :: SWord8 = if s17 then s3466 else s3465-  s3469 :: SBool = s3467 >= s3468-  s3470 :: SBool = s12 | s3469-  s3471 :: SBool = s7 & s3470-CONSTRAINTS-ASSERTIONS-OUTPUTS-  s3471+  s1 :: SWord48, aliasing "sent"+  s2 :: SWord48, aliasing "received"+CONSTANTS+TABLES+ARRAYS+UNINTERPRETED CONSTANTS+USER GIVEN CODE SEGMENTS+AXIOMS+DEFINE+CONSTRAINTS+ASSERTIONS+OUTPUTS
SBVTestSuite/GoldFiles/foldlABC1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/foldlABC2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/foldlABC3.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/foldrAB1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/foldrAB2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/foldrAB3.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/freshVars.gold view
@@ -112,15 +112,19 @@ [GOOD] (declare-fun s62 () String) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-fun s63 () (Seq Int)) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-fun s64 () (Seq (Seq Int))) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-fun s65 () (Seq (_ BitVec 8))) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-fun s66 () (Seq (Seq (_ BitVec 16)))) [GOOD] (define-fun s67 () String "hello") [GOOD] (define-fun s68 () Bool (= s62 s67))
SBVTestSuite/GoldFiles/mapNoFailure.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/mapWithFailure.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/maxlWithFailure.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/maxrWithFailure.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/merge.gold view
@@ -80,7 +80,7 @@   printf("Contents of input array xs:\n");   int xs_ctr;   for(xs_ctr = 0; xs_ctr < 5 ; ++xs_ctr)-    printf("  xs[%d] = %"PRIu8"\n", xs_ctr ,xs[xs_ctr]);+    printf("  xs[%1d] = %"PRIu8"\n", xs_ctr ,xs[xs_ctr]);    SWord8 ys[5]; @@ -89,7 +89,7 @@   printf("merge(xs, ys) ->\n");   int ys_ctr;   for(ys_ctr = 0; ys_ctr < 5 ; ++ys_ctr)-    printf("  ys[%d] = %"PRIu8"\n", ys_ctr ,ys[ys_ctr]);+    printf("  ys[%1d] = %"PRIu8"\n", ys_ctr ,ys[ys_ctr]);    return 0; }
SBVTestSuite/GoldFiles/pareto1.gold view
@@ -5,29 +5,29 @@   max_x_plus_y = 0 :: Integer   min_y        = 0 :: Integer Pareto front #2: Optimal model:-  x            = 1 :: Integer-  y            = 0 :: Integer-  min_x        = 1 :: Integer-  max_x_plus_y = 1 :: Integer-  min_y        = 0 :: Integer-Pareto front #3: Optimal model:   x            = 0 :: Integer-  y            = 2 :: Integer+  y            = 1 :: Integer   min_x        = 0 :: Integer-  max_x_plus_y = 2 :: Integer-  min_y        = 2 :: Integer-Pareto front #4: Optimal model:+  max_x_plus_y = 1 :: Integer+  min_y        = 1 :: Integer+Pareto front #3: Optimal model:   x            = 1 :: Integer   y            = 1 :: Integer   min_x        = 1 :: Integer   max_x_plus_y = 2 :: Integer   min_y        = 1 :: Integer+Pareto front #4: Optimal model:+  x            = 1 :: Integer+  y            = 0 :: Integer+  min_x        = 1 :: Integer+  max_x_plus_y = 1 :: Integer+  min_y        = 0 :: Integer Pareto front #5: Optimal model:   x            = 0 :: Integer-  y            = 1 :: Integer+  y            = 2 :: Integer   min_x        = 0 :: Integer-  max_x_plus_y = 1 :: Integer-  min_y        = 1 :: Integer+  max_x_plus_y = 2 :: Integer+  min_y        = 2 :: Integer Pareto front #6: Optimal model:   x            = 1 :: Integer   y            = 2 :: Integer@@ -65,17 +65,17 @@   max_x_plus_y = 4 :: Integer   min_y        = 0 :: Integer Pareto front #12: Optimal model:-  x            = 4 :: Integer-  y            = 1 :: Integer-  min_x        = 4 :: Integer-  max_x_plus_y = 5 :: Integer-  min_y        = 1 :: Integer-Pareto front #13: Optimal model:   x            = 5 :: Integer   y            = 0 :: Integer   min_x        = 5 :: Integer   max_x_plus_y = 5 :: Integer   min_y        = 0 :: Integer+Pareto front #13: Optimal model:+  x            = 4 :: Integer+  y            = 1 :: Integer+  min_x        = 4 :: Integer+  max_x_plus_y = 5 :: Integer+  min_y        = 1 :: Integer Pareto front #14: Optimal model:   x            = 5 :: Integer   y            = 1 :: Integer
SBVTestSuite/GoldFiles/query_Chars1.gold view
@@ -20,7 +20,7 @@ [GOOD] ; --- uninterpreted constants --- [GOOD] ; --- user given axioms --- [GOOD] ; --- formula ----[GOOD] (define-fun s1 () Int (+ (ite (= ((_ extract 0 0) s0) #b1) 1 0) (ite (= ((_ extract 1 1) s0) #b1) 2 0) (ite (= ((_ extract 2 2) s0) #b1) 4 0) (ite (= ((_ extract 3 3) s0) #b1) 8 0) (ite (= ((_ extract 4 4) s0) #b1) 16 0) (ite (= ((_ extract 5 5) s0) #b1) 32 0) (ite (= ((_ extract 6 6) s0) #b1) 64 0) (ite (= ((_ extract 7 7) s0) #b1) 128 0)))+[GOOD] (define-fun s1 () Int (bv2nat s0)) [GOOD] (define-fun s3 () Bool (>= s1 s2)) [GOOD] (define-fun s5 () Bool (< s1 s4)) [GOOD] (assert s3)
SBVTestSuite/GoldFiles/query_ListOfMaybe.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_ListOfSum.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_Lists1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_Maybe.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_SumMaybeBoth.gold view
@@ -19,12 +19,14 @@ [GOOD] ; --- formula --- [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVEither 2)) ((par (T1 T2)                                            ((left_SBVEither  (get_left_SBVEither  T1))                                             (right_SBVEither (get_right_SBVEither T2)))))) [GOOD] (declare-fun s0 () (SBVEither Int Int)) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVMaybe 1)) ((par (T)                                            ((nothing_SBVMaybe)                                             (just_SBVMaybe (get_just_SBVMaybe T))))))
SBVTestSuite/GoldFiles/query_Sums.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_Tuples1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_Tuples2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/query_sumMergeEither1.gold view
@@ -19,6 +19,7 @@ [GOOD] ; --- formula --- [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVEither 2)) ((par (T1 T2)                                            ((left_SBVEither  (get_left_SBVEither  T1))                                             (right_SBVEither (get_right_SBVEither T2))))))
SBVTestSuite/GoldFiles/query_sumMergeEither2.gold view
@@ -19,6 +19,7 @@ [GOOD] ; --- formula --- [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVEither 2)) ((par (T1 T2)                                            ((left_SBVEither  (get_left_SBVEither  T1))                                             (right_SBVEither (get_right_SBVEither T2))))))
SBVTestSuite/GoldFiles/query_sumMergeMaybe1.gold view
@@ -19,6 +19,7 @@ [GOOD] ; --- formula --- [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVMaybe 1)) ((par (T)                                            ((nothing_SBVMaybe)                                             (just_SBVMaybe (get_just_SBVMaybe T))))))
SBVTestSuite/GoldFiles/query_sumMergeMaybe2.gold view
@@ -19,6 +19,7 @@ [GOOD] ; --- formula --- [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVMaybe 1)) ((par (T)                                            ((nothing_SBVMaybe)                                             (just_SBVMaybe (get_just_SBVMaybe T))))))
SBVTestSuite/GoldFiles/query_uiSat_test1.gold view
@@ -27,6 +27,7 @@ [RECV] sat [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [SEND] (get-value (q1)) [RECV] ((q1 (lambda ((x!1 Bool)) x!1))) 
SBVTestSuite/GoldFiles/query_uiSat_test2.gold view
@@ -29,8 +29,9 @@ [RECV] sat [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 (not x!2)) (and x!1 x!2)))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1)))))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))
SBVTestSuite/GoldFiles/query_uisatex1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---@@ -115,41 +116,39 @@ [RECV] ((s0 0)) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Int))-         (ite (= x!1 0) 1 (ite (= x!1 (- 3)) 9 (ite (= x!1 3) 75 12))))))+[RECV] ((q1 (store (store (store ((as const Array) 12) 3 75) (- 3) 9) 0 1))) [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Int))-         (ite (and (not x!1) (= x!2 12)) 3 (ite (and (not x!1) (= x!2 7)) 6 5)))))+[RECV] ((q2 (store (store ((as const Array) 5) false 7 6) false 12 3))) [SEND] (get-value (q3))-[RECV] ((q3 (lambda ((x!1 (_ FloatingPoint 8 24)) (x!2 Bool) (x!3 Int))-         (ite (and (= x!1 (fp #b0 #x82 #b00110011001100110011010)) (not x!2) (= x!3 8))-              (_ +oo 8 24)-              (ite (and (= x!1 (fp #b0 #x82 #b00110011001100110011010))-                        x!2-                        (= x!3 121))-                   (_ -zero 8 24)-                   (fp #b0 #x82 #b00010011001100110011010))))))+[RECV] ((q3 (store (store ((as const Array) (fp #b0 #x82 #b00010011001100110011010))+                     (fp #b0 #x82 #b00110011001100110011010)+                     true+                     121+                     (_ -zero 8 24))+              (fp #b0 #x82 #b00110011001100110011010)+              false+              8+              (_ +oo 8 24)))) [SEND] (get-value (q4))-[RECV] ((q4 (lambda ((x!1 (_ BitVec 8)) (x!2 String))-         (ite (and (= x!1 #x72) (= x!2 "foo"))-              (fp #b0 #x80 #b11000000000000000000000)-              (ite (and (= x!1 #x63) (= x!2 "tey"))-                   (fp #b0 #x85 #b01110000000000000000000)-                   (fp #b0 #x85 #b00111000000000000000000))))))+[RECV] ((q4 (store (store ((as const Array) (fp #b0 #x85 #b00111000000000000000000))+                     #x63+                     "tey"+                     (fp #b0 #x85 #b01110000000000000000000))+              #x72+              "foo"+              (fp #b0 #x80 #b11000000000000000000000)))) [SEND] (get-value (q5))-[RECV] ((q5 (lambda ((x!1 (Seq Int)) (x!2 (Seq (_ FloatingPoint 8 24))))-         (ite (and (= x!1 (seq.unit 5))-                   (= x!2-                      (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))-                              (seq.unit (_ +zero 8 24)))))-              210-              (ite (and (= x!1 (seq.++ (seq.unit 9) (seq.unit 5)))-                        (= x!2-                           (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))-                                   (seq.unit (fp #b0 #x82 #b00100000000000000000000)))))-                   21-                   7)))))+[RECV] ((q5 (store (store ((as const Array) 7)+                     (seq.++ (seq.unit 9) (seq.unit 5))+                     (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))+                             (seq.unit (fp #b0 #x82 #b00100000000000000000000)))+                     21)+              (seq.unit 5)+              (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))+                      (seq.unit (_ +zero 8 24)))+              210))) *** Solver   : Z3 *** Exit code: ExitSuccess 
SBVTestSuite/GoldFiles/query_uisatex2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---@@ -117,42 +118,39 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Int))-         (ite (= x!1 0) 1 (ite (= x!1 (- 3)) 9 (ite (= x!1 3) 75 12))))))+[RECV] ((q1 (store (store (store ((as const Array) 12) 3 75) (- 3) 9) 0 1))) [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Int))-         (ite (and (not x!1) (= x!2 12)) 3 (ite (and (not x!1) (= x!2 7)) 6 5)))))+[RECV] ((q2 (store (store ((as const Array) 5) false 7 6) false 12 3))) [SEND] (get-value (q3))-[RECV] ((q3 (lambda ((x!1 (_ FloatingPoint 8 24)) (x!2 Bool) (x!3 Int))-         (ite (and (= x!1 (fp #b0 #x82 #b00110011001100110011010)) (not x!2) (= x!3 8))-              (_ +oo 8 24)-              (ite (and (= x!1 (fp #b0 #x82 #b00110011001100110011010))-                        x!2-                        (= x!3 121))-                   (_ -zero 8 24)-                   (fp #b0 #x82 #b00010011001100110011010))))))+[RECV] ((q3 (store (store ((as const Array) (fp #b0 #x82 #b00010011001100110011010))+                     (fp #b0 #x82 #b00110011001100110011010)+                     true+                     121+                     (_ -zero 8 24))+              (fp #b0 #x82 #b00110011001100110011010)+              false+              8+              (_ +oo 8 24)))) [SEND] (get-value (q4))-[RECV] ((q4 (lambda ((x!1 (_ BitVec 8)) (x!2 String))-         (ite (and (= x!1 #x72) (= x!2 "foo"))-              (fp #b0 #x80 #b11000000000000000000000)-              (ite (and (= x!1 #x63) (= x!2 "tey"))-                   (fp #b0 #x85 #b01110000000000000000000)-                   (fp #b0 #x85 #b00111000000000000000000))))))+[RECV] ((q4 (store (store ((as const Array) (fp #b0 #x85 #b00111000000000000000000))+                     #x63+                     "tey"+                     (fp #b0 #x85 #b01110000000000000000000))+              #x72+              "foo"+              (fp #b0 #x80 #b11000000000000000000000)))) [SEND] (get-value (q5))-[RECV] ((q5 (lambda ((x!1 (Seq Int)) (x!2 (Seq (_ FloatingPoint 8 24))))-         (ite (and (= x!1 (seq.unit 5))-                   (= x!2-                      (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))-                              (seq.unit (_ +zero 8 24)))))-              210-              (ite (and (= x!1 (seq.++ (seq.unit 9) (seq.unit 5)))-                        (= x!2-                           (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))-                                   (seq.unit (fp #b0 #x82 #b00100000000000000000000)))))-                   21-                   7)))))+[RECV] ((q5 (store (store ((as const Array) 7)+                     (seq.++ (seq.unit 9) (seq.unit 5))+                     (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))+                             (seq.unit (fp #b0 #x82 #b00100000000000000000000)))+                     21)+              (seq.unit 5)+              (seq.++ (seq.unit (fp #b0 #x82 #b00000110011001100110011))+                      (seq.unit (_ +zero 8 24)))+              210))) [SEND] (get-value (q6))-[RECV] ((q6 ((as const Array) false)))+[RECV] ((q6 (_ as-array q6))) *** Solver   : Z3 *** Exit code: ExitSuccess 
SBVTestSuite/GoldFiles/reverse.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/reverseAlt10.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples3.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples4.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples5.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples6.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples7.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/seqExamples8.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_compl1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_delete1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_diff1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_disj1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_empty1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_full1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_insert1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_intersect1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_member1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_notMember1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_psubset1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/set_subset1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
+ SBVTestSuite/GoldFiles/set_tupleSet.gold view
@@ -0,0 +1,40 @@+** Calling: z3 -nw -in -smt2+[GOOD] ; Automatically generated by SBV. Do not edit.+[GOOD] (set-option :print-success true)+[GOOD] (set-option :global-declarations true)+[GOOD] (set-option :smtlib2_compliant true)+[GOOD] (set-option :diagnostic-output-channel "stdout")+[GOOD] (set-option :produce-models true)+[GOOD] (set-option :pp.max_depth      4294967295)+[GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      )+[GOOD] (set-logic ALL) ; has tuples, using catch-all.+[GOOD] ; --- uninterpreted sorts ---+[GOOD] ; --- tuples ---+[GOOD] (declare-datatypes ((SBVTuple2 2)) ((par (T1 T2)+                                           ((mkSBVTuple2 (proj_1_SBVTuple2 T1)+                                                         (proj_2_SBVTuple2 T2))))))+[GOOD] ; --- sums ---+[GOOD] ; --- literal constants ---+[GOOD] (define-fun s1 () (SBVTuple2 (Array Bool Bool) (Array Bool Bool)) (mkSBVTuple2 ((as const (Array Bool Bool)) false) ((as const (Array Bool Bool)) false)))+[GOOD] ; --- skolem constants ---+[GOOD] (declare-fun s0 () (SBVTuple2 (Array Bool Bool) (Array Bool Bool)))+[GOOD] ; --- constant tables ---+[GOOD] ; --- skolemized tables ---+[GOOD] ; --- arrays ---+[GOOD] ; --- uninterpreted constants ---+[GOOD] ; --- user given axioms ---+[GOOD] ; --- formula ---+[GOOD] (define-fun s2 () Bool (distinct s0 s1))+[GOOD] (assert s2)+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (s0))+[RECV] ((s0 (mkSBVTuple2 (lambda ((x!1 Bool)) (not x!1)) (lambda ((x!1 Bool)) x!1))))+*** Solver   : Z3+*** Exit code: ExitSuccess++FINAL:+Satisfiable. Model:+  s0 = (U - {True},{True}) :: ({Bool}, {Bool})+DONE!
SBVTestSuite/GoldFiles/set_uninterp1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has user-defined sorts, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] (declare-datatypes ((E 0)) (((A) (B) (C))))@@ -47,7 +48,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (or (= x!1 B) (= x!1 A)))))+[RECV] ((s0 (store (store ((as const (Array E Bool)) false) B true) A true))) [GOOD] (define-fun s7 () (Array E Bool) (store (store ((as const (Array E Bool)) false) B true) A true)) [GOOD] (define-fun s8 () Bool (= s0 s7)) [GOOD] (define-fun s9 () Bool (not s8))@@ -56,8 +57,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (or (= x!1 B) (= x!1 C) (= x!1 A)))))-[GOOD] (define-fun s10 () (Array E Bool) (store (store (store ((as const (Array E Bool)) false) C true) B true) A true))+[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) B true)))+[GOOD] (define-fun s10 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) B true)) [GOOD] (define-fun s11 () Bool (= s0 s10)) [GOOD] (define-fun s12 () Bool (not s11)) [GOOD] (assert s12)@@ -65,8 +66,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (or (= x!1 B) (= x!1 C)))))-[GOOD] (define-fun s13 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) B true))+[RECV] ((s0 (store (store (store ((as const (Array E Bool)) false) C true) B true) A true)))+[GOOD] (define-fun s13 () (Array E Bool) (store (store (store ((as const (Array E Bool)) false) C true) B true) A true)) [GOOD] (define-fun s14 () Bool (= s0 s13)) [GOOD] (define-fun s15 () Bool (not s14)) [GOOD] (assert s15)@@ -83,8 +84,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (= x!1 C))))-[GOOD] (define-fun s19 () (Array E Bool) (store ((as const (Array E Bool)) false) C true))+[RECV] ((s0 (store (store ((as const (Array E Bool)) false) C true) A true)))+[GOOD] (define-fun s19 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) A true)) [GOOD] (define-fun s20 () Bool (= s0 s19)) [GOOD] (define-fun s21 () Bool (not s20)) [GOOD] (assert s21)@@ -92,8 +93,8 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (lambda ((x!1 E)) (or (= x!1 A) (= x!1 C)))))-[GOOD] (define-fun s22 () (Array E Bool) (store (store ((as const (Array E Bool)) false) C true) A true))+[RECV] ((s0 (lambda ((x!1 E)) (= x!1 C))))+[GOOD] (define-fun s22 () (Array E Bool) (store ((as const (Array E Bool)) false) C true)) [GOOD] (define-fun s23 () Bool (= s0 s22)) [GOOD] (define-fun s24 () Bool (not s23)) [GOOD] (assert s24)@@ -111,14 +112,14 @@ Solution #3:   s0 = {A,B} :: {E} Solution #4:-  s0 = {A,B,C} :: {E}-Solution #5:   s0 = {B,C} :: {E}+Solution #5:+  s0 = {A,B,C} :: {E} Solution #6:   s0 = {A} :: {E} Solution #7:-  s0 = {C} :: {E}-Solution #8:   s0 = {A,C} :: {E}+Solution #8:+  s0 = {C} :: {E} Found 8 different solutions. DONE!
SBVTestSuite/GoldFiles/set_uninterp2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has user-defined sorts, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] (declare-datatypes ((E 0)) (((A) (B) (C))))
SBVTestSuite/GoldFiles/set_union1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has sets, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
+ SBVTestSuite/GoldFiles/sha256HashBlock.gold view
@@ -0,0 +1,2589 @@+== BEGIN: "Makefile" ================+# Makefile for sha256HashBlock. Automatically generated by SBV. Do not edit!++# include any user-defined .mk file in the current directory.+-include *.mk++CC?=gcc+CCFLAGS?=-Wall -O3 -DNDEBUG -fomit-frame-pointer++all: sha256HashBlock_driver++sha256HashBlock.o: sha256HashBlock.c sha256HashBlock.h+	${CC} ${CCFLAGS} -c $< -o $@++sha256HashBlock_driver.o: sha256HashBlock_driver.c+	${CC} ${CCFLAGS} -c $< -o $@++sha256HashBlock_driver: sha256HashBlock.o sha256HashBlock_driver.o+	${CC} ${CCFLAGS} $^ -o $@++clean:+	rm -f *.o++veryclean: clean+	rm -f sha256HashBlock_driver+== END: "Makefile" ==================+== BEGIN: "sha256HashBlock.h" ================+/* Header file for sha256HashBlock. Automatically generated by SBV. Do not edit! */++#ifndef __sha256HashBlock__HEADER_INCLUDED__+#define __sha256HashBlock__HEADER_INCLUDED__++#include <stdio.h>+#include <stdlib.h>+#include <inttypes.h>+#include <stdint.h>+#include <stdbool.h>+#include <string.h>+#include <math.h>++/* The boolean type */+typedef bool SBool;++/* The float type */+typedef float SFloat;++/* The double type */+typedef double SDouble;++/* Unsigned bit-vectors */+typedef uint8_t  SWord8;+typedef uint16_t SWord16;+typedef uint32_t SWord32;+typedef uint64_t SWord64;++/* Signed bit-vectors */+typedef int8_t  SInt8;+typedef int16_t SInt16;+typedef int32_t SInt32;+typedef int64_t SInt64;++/* Entry point prototype: */+void sha256HashBlock(const SWord8 *hIn, const SWord8 *block,+                     SWord8 *hash);++#endif /* __sha256HashBlock__HEADER_INCLUDED__ */+== END: "sha256HashBlock.h" ==================+== BEGIN: "sha256HashBlock_driver.c" ================+/* Example driver program for sha256HashBlock. */+/* Automatically generated by SBV. Edit as you see fit! */++#include <stdio.h>+#include "sha256HashBlock.h"++int main(void)+{+  const SWord8 hIn[32] = {+      0x6a, 0x09, 0xe6, 0x67, 0xbb, 0x67, 0xae, 0x85, 0x3c, 0x6e, 0xf3,+      0x72, 0xa5, 0x4f, 0xf5, 0x3a, 0x51, 0x0e, 0x52, 0x7f, 0x9b, 0x05,+      0x68, 0x8c, 0x1f, 0x83, 0xd9, 0xab, 0x5b, 0xe0, 0xcd, 0x19+  };++  printf("Contents of input array hIn:\n");+  int hIn_ctr;+  for(hIn_ctr = 0; hIn_ctr < 32 ; ++hIn_ctr)+    printf("  hIn[%2d] = 0x%02"PRIx8"\n", hIn_ctr ,hIn[hIn_ctr]);++  const SWord8 block[64] = {+      0x53, 0x42, 0x56, 0x20, 0x67, 0x6f, 0x65, 0x73, 0x20, 0x53, 0x48,+      0x41, 0x32, 0x35, 0x36, 0x21, 0x21, 0x80, 0x00, 0x00, 0x00, 0x00,+      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,+      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88+  };++  printf("Contents of input array block:\n");+  int block_ctr;+  for(block_ctr = 0; block_ctr < 64 ; ++block_ctr)+    printf("  block[%2d] = 0x%02"PRIx8"\n", block_ctr ,block[block_ctr]);++  SWord8 hash[32];++  sha256HashBlock(hIn, block, hash);++  printf("sha256HashBlock(hIn, block, hash) ->\n");+  int hash_ctr;+  for(hash_ctr = 0; hash_ctr < 32 ; ++hash_ctr)+    printf("  hash[%2d] = 0x%02"PRIx8"\n", hash_ctr ,hash[hash_ctr]);++  return 0;+}+== END: "sha256HashBlock_driver.c" ==================+== BEGIN: "sha256HashBlock.c" ================+/* File: "sha256HashBlock.c". Automatically generated by SBV. Do not edit! */++#include "sha256HashBlock.h"++void sha256HashBlock(const SWord8 *hIn, const SWord8 *block,+                     SWord8 *hash)+{+  const SWord8  s0 = hIn[0];+  const SWord8  s1 = hIn[1];+  const SWord8  s2 = hIn[2];+  const SWord8  s3 = hIn[3];+  const SWord8  s4 = hIn[4];+  const SWord8  s5 = hIn[5];+  const SWord8  s6 = hIn[6];+  const SWord8  s7 = hIn[7];+  const SWord8  s8 = hIn[8];+  const SWord8  s9 = hIn[9];+  const SWord8  s10 = hIn[10];+  const SWord8  s11 = hIn[11];+  const SWord8  s12 = hIn[12];+  const SWord8  s13 = hIn[13];+  const SWord8  s14 = hIn[14];+  const SWord8  s15 = hIn[15];+  const SWord8  s16 = hIn[16];+  const SWord8  s17 = hIn[17];+  const SWord8  s18 = hIn[18];+  const SWord8  s19 = hIn[19];+  const SWord8  s20 = hIn[20];+  const SWord8  s21 = hIn[21];+  const SWord8  s22 = hIn[22];+  const SWord8  s23 = hIn[23];+  const SWord8  s24 = hIn[24];+  const SWord8  s25 = hIn[25];+  const SWord8  s26 = hIn[26];+  const SWord8  s27 = hIn[27];+  const SWord8  s28 = hIn[28];+  const SWord8  s29 = hIn[29];+  const SWord8  s30 = hIn[30];+  const SWord8  s31 = hIn[31];+  const SWord8  s32 = block[0];+  const SWord8  s33 = block[1];+  const SWord8  s34 = block[2];+  const SWord8  s35 = block[3];+  const SWord8  s36 = block[4];+  const SWord8  s37 = block[5];+  const SWord8  s38 = block[6];+  const SWord8  s39 = block[7];+  const SWord8  s40 = block[8];+  const SWord8  s41 = block[9];+  const SWord8  s42 = block[10];+  const SWord8  s43 = block[11];+  const SWord8  s44 = block[12];+  const SWord8  s45 = block[13];+  const SWord8  s46 = block[14];+  const SWord8  s47 = block[15];+  const SWord8  s48 = block[16];+  const SWord8  s49 = block[17];+  const SWord8  s50 = block[18];+  const SWord8  s51 = block[19];+  const SWord8  s52 = block[20];+  const SWord8  s53 = block[21];+  const SWord8  s54 = block[22];+  const SWord8  s55 = block[23];+  const SWord8  s56 = block[24];+  const SWord8  s57 = block[25];+  const SWord8  s58 = block[26];+  const SWord8  s59 = block[27];+  const SWord8  s60 = block[28];+  const SWord8  s61 = block[29];+  const SWord8  s62 = block[30];+  const SWord8  s63 = block[31];+  const SWord8  s64 = block[32];+  const SWord8  s65 = block[33];+  const SWord8  s66 = block[34];+  const SWord8  s67 = block[35];+  const SWord8  s68 = block[36];+  const SWord8  s69 = block[37];+  const SWord8  s70 = block[38];+  const SWord8  s71 = block[39];+  const SWord8  s72 = block[40];+  const SWord8  s73 = block[41];+  const SWord8  s74 = block[42];+  const SWord8  s75 = block[43];+  const SWord8  s76 = block[44];+  const SWord8  s77 = block[45];+  const SWord8  s78 = block[46];+  const SWord8  s79 = block[47];+  const SWord8  s80 = block[48];+  const SWord8  s81 = block[49];+  const SWord8  s82 = block[50];+  const SWord8  s83 = block[51];+  const SWord8  s84 = block[52];+  const SWord8  s85 = block[53];+  const SWord8  s86 = block[54];+  const SWord8  s87 = block[55];+  const SWord8  s88 = block[56];+  const SWord8  s89 = block[57];+  const SWord8  s90 = block[58];+  const SWord8  s91 = block[59];+  const SWord8  s92 = block[60];+  const SWord8  s93 = block[61];+  const SWord8  s94 = block[62];+  const SWord8  s95 = block[63];+  const SWord16 s96 = (((SWord16) s0) << 8) | ((SWord16) s1);+  const SWord16 s97 = (((SWord16) s2) << 8) | ((SWord16) s3);+  const SWord32 s98 = (((SWord32) s96) << 16) | ((SWord32) s97);+  const SWord16 s99 = (((SWord16) s16) << 8) | ((SWord16) s17);+  const SWord16 s100 = (((SWord16) s18) << 8) | ((SWord16) s19);+  const SWord32 s101 = (((SWord32) s99) << 16) | ((SWord32) s100);+  const SWord16 s102 = (((SWord16) s4) << 8) | ((SWord16) s5);+  const SWord16 s103 = (((SWord16) s6) << 8) | ((SWord16) s7);+  const SWord32 s104 = (((SWord32) s102) << 16) | ((SWord32) s103);+  const SWord16 s105 = (((SWord16) s20) << 8) | ((SWord16) s21);+  const SWord16 s106 = (((SWord16) s22) << 8) | ((SWord16) s23);+  const SWord32 s107 = (((SWord32) s105) << 16) | ((SWord32) s106);+  const SWord16 s108 = (((SWord16) s8) << 8) | ((SWord16) s9);+  const SWord16 s109 = (((SWord16) s10) << 8) | ((SWord16) s11);+  const SWord32 s110 = (((SWord32) s108) << 16) | ((SWord32) s109);+  const SWord16 s111 = (((SWord16) s24) << 8) | ((SWord16) s25);+  const SWord16 s112 = (((SWord16) s26) << 8) | ((SWord16) s27);+  const SWord32 s113 = (((SWord32) s111) << 16) | ((SWord32) s112);+  const SWord16 s114 = (((SWord16) s12) << 8) | ((SWord16) s13);+  const SWord16 s115 = (((SWord16) s14) << 8) | ((SWord16) s15);+  const SWord32 s116 = (((SWord32) s114) << 16) | ((SWord32) s115);+  const SWord16 s117 = (((SWord16) s28) << 8) | ((SWord16) s29);+  const SWord16 s118 = (((SWord16) s30) << 8) | ((SWord16) s31);+  const SWord32 s119 = (((SWord32) s117) << 16) | ((SWord32) s118);+  const SWord32 s120 = (s101 >> 6) | (s101 << 26);+  const SWord32 s121 = (s101 >> 11) | (s101 << 21);+  const SWord32 s122 = s120 ^ s121;+  const SWord32 s123 = (s101 >> 25) | (s101 << 7);+  const SWord32 s124 = s122 ^ s123;+  const SWord32 s125 = s119 + s124;+  const SWord32 s126 = s101 & s107;+  const SWord32 s127 = ~s101;+  const SWord32 s128 = s113 & s127;+  const SWord32 s129 = s126 ^ s128;+  const SWord32 s130 = s125 + s129;+  const SWord32 s132 = s130 + 0x428a2f98UL;+  const SWord16 s133 = (((SWord16) s32) << 8) | ((SWord16) s33);+  const SWord16 s134 = (((SWord16) s34) << 8) | ((SWord16) s35);+  const SWord32 s135 = (((SWord32) s133) << 16) | ((SWord32) s134);+  const SWord32 s136 = s132 + s135;+  const SWord32 s137 = s116 + s136;+  const SWord32 s138 = (s137 >> 6) | (s137 << 26);+  const SWord32 s139 = (s137 >> 11) | (s137 << 21);+  const SWord32 s140 = s138 ^ s139;+  const SWord32 s141 = (s137 >> 25) | (s137 << 7);+  const SWord32 s142 = s140 ^ s141;+  const SWord32 s143 = s113 + s142;+  const SWord32 s144 = s101 & s137;+  const SWord32 s145 = ~s137;+  const SWord32 s146 = s107 & s145;+  const SWord32 s147 = s144 ^ s146;+  const SWord32 s148 = s143 + s147;+  const SWord32 s150 = s148 + 0x71374491UL;+  const SWord16 s151 = (((SWord16) s36) << 8) | ((SWord16) s37);+  const SWord16 s152 = (((SWord16) s38) << 8) | ((SWord16) s39);+  const SWord32 s153 = (((SWord32) s151) << 16) | ((SWord32) s152);+  const SWord32 s154 = s150 + s153;+  const SWord32 s155 = s110 + s154;+  const SWord32 s156 = (s155 >> 6) | (s155 << 26);+  const SWord32 s157 = (s155 >> 11) | (s155 << 21);+  const SWord32 s158 = s156 ^ s157;+  const SWord32 s159 = (s155 >> 25) | (s155 << 7);+  const SWord32 s160 = s158 ^ s159;+  const SWord32 s161 = s107 + s160;+  const SWord32 s162 = s137 & s155;+  const SWord32 s163 = ~s155;+  const SWord32 s164 = s101 & s163;+  const SWord32 s165 = s162 ^ s164;+  const SWord32 s166 = s161 + s165;+  const SWord32 s168 = s166 + 0xb5c0fbcfUL;+  const SWord16 s169 = (((SWord16) s40) << 8) | ((SWord16) s41);+  const SWord16 s170 = (((SWord16) s42) << 8) | ((SWord16) s43);+  const SWord32 s171 = (((SWord32) s169) << 16) | ((SWord32) s170);+  const SWord32 s172 = s168 + s171;+  const SWord32 s173 = s104 + s172;+  const SWord32 s174 = (s173 >> 6) | (s173 << 26);+  const SWord32 s175 = (s173 >> 11) | (s173 << 21);+  const SWord32 s176 = s174 ^ s175;+  const SWord32 s177 = (s173 >> 25) | (s173 << 7);+  const SWord32 s178 = s176 ^ s177;+  const SWord32 s179 = s101 + s178;+  const SWord32 s180 = s155 & s173;+  const SWord32 s181 = ~s173;+  const SWord32 s182 = s137 & s181;+  const SWord32 s183 = s180 ^ s182;+  const SWord32 s184 = s179 + s183;+  const SWord32 s186 = s184 + 0xe9b5dba5UL;+  const SWord16 s187 = (((SWord16) s44) << 8) | ((SWord16) s45);+  const SWord16 s188 = (((SWord16) s46) << 8) | ((SWord16) s47);+  const SWord32 s189 = (((SWord32) s187) << 16) | ((SWord32) s188);+  const SWord32 s190 = s186 + s189;+  const SWord32 s191 = s98 + s190;+  const SWord32 s192 = (s98 >> 2) | (s98 << 30);+  const SWord32 s193 = (s98 >> 13) | (s98 << 19);+  const SWord32 s194 = s192 ^ s193;+  const SWord32 s195 = (s98 >> 22) | (s98 << 10);+  const SWord32 s196 = s194 ^ s195;+  const SWord32 s197 = s98 & s104;+  const SWord32 s198 = s98 & s110;+  const SWord32 s199 = s197 ^ s198;+  const SWord32 s200 = s104 & s110;+  const SWord32 s201 = s199 ^ s200;+  const SWord32 s202 = s196 + s201;+  const SWord32 s203 = s136 + s202;+  const SWord32 s204 = (s203 >> 2) | (s203 << 30);+  const SWord32 s205 = (s203 >> 13) | (s203 << 19);+  const SWord32 s206 = s204 ^ s205;+  const SWord32 s207 = (s203 >> 22) | (s203 << 10);+  const SWord32 s208 = s206 ^ s207;+  const SWord32 s209 = s98 & s203;+  const SWord32 s210 = s104 & s203;+  const SWord32 s211 = s209 ^ s210;+  const SWord32 s212 = s197 ^ s211;+  const SWord32 s213 = s208 + s212;+  const SWord32 s214 = s154 + s213;+  const SWord32 s215 = (s214 >> 2) | (s214 << 30);+  const SWord32 s216 = (s214 >> 13) | (s214 << 19);+  const SWord32 s217 = s215 ^ s216;+  const SWord32 s218 = (s214 >> 22) | (s214 << 10);+  const SWord32 s219 = s217 ^ s218;+  const SWord32 s220 = s203 & s214;+  const SWord32 s221 = s98 & s214;+  const SWord32 s222 = s220 ^ s221;+  const SWord32 s223 = s209 ^ s222;+  const SWord32 s224 = s219 + s223;+  const SWord32 s225 = s172 + s224;+  const SWord32 s226 = (s191 >> 6) | (s191 << 26);+  const SWord32 s227 = (s191 >> 11) | (s191 << 21);+  const SWord32 s228 = s226 ^ s227;+  const SWord32 s229 = (s191 >> 25) | (s191 << 7);+  const SWord32 s230 = s228 ^ s229;+  const SWord32 s231 = s137 + s230;+  const SWord32 s232 = s173 & s191;+  const SWord32 s233 = ~s191;+  const SWord32 s234 = s155 & s233;+  const SWord32 s235 = s232 ^ s234;+  const SWord32 s236 = s231 + s235;+  const SWord32 s238 = s236 + 0x3956c25bUL;+  const SWord16 s239 = (((SWord16) s48) << 8) | ((SWord16) s49);+  const SWord16 s240 = (((SWord16) s50) << 8) | ((SWord16) s51);+  const SWord32 s241 = (((SWord32) s239) << 16) | ((SWord32) s240);+  const SWord32 s242 = s238 + s241;+  const SWord32 s243 = s203 + s242;+  const SWord32 s244 = (s243 >> 6) | (s243 << 26);+  const SWord32 s245 = (s243 >> 11) | (s243 << 21);+  const SWord32 s246 = s244 ^ s245;+  const SWord32 s247 = (s243 >> 25) | (s243 << 7);+  const SWord32 s248 = s246 ^ s247;+  const SWord32 s249 = s155 + s248;+  const SWord32 s250 = s191 & s243;+  const SWord32 s251 = ~s243;+  const SWord32 s252 = s173 & s251;+  const SWord32 s253 = s250 ^ s252;+  const SWord32 s254 = s249 + s253;+  const SWord32 s256 = s254 + 0x59f111f1UL;+  const SWord16 s257 = (((SWord16) s52) << 8) | ((SWord16) s53);+  const SWord16 s258 = (((SWord16) s54) << 8) | ((SWord16) s55);+  const SWord32 s259 = (((SWord32) s257) << 16) | ((SWord32) s258);+  const SWord32 s260 = s256 + s259;+  const SWord32 s261 = s214 + s260;+  const SWord32 s262 = (s261 >> 6) | (s261 << 26);+  const SWord32 s263 = (s261 >> 11) | (s261 << 21);+  const SWord32 s264 = s262 ^ s263;+  const SWord32 s265 = (s261 >> 25) | (s261 << 7);+  const SWord32 s266 = s264 ^ s265;+  const SWord32 s267 = s173 + s266;+  const SWord32 s268 = s243 & s261;+  const SWord32 s269 = ~s261;+  const SWord32 s270 = s191 & s269;+  const SWord32 s271 = s268 ^ s270;+  const SWord32 s272 = s267 + s271;+  const SWord32 s274 = s272 + 0x923f82a4UL;+  const SWord16 s275 = (((SWord16) s56) << 8) | ((SWord16) s57);+  const SWord16 s276 = (((SWord16) s58) << 8) | ((SWord16) s59);+  const SWord32 s277 = (((SWord32) s275) << 16) | ((SWord32) s276);+  const SWord32 s278 = s274 + s277;+  const SWord32 s279 = s225 + s278;+  const SWord32 s280 = (s279 >> 6) | (s279 << 26);+  const SWord32 s281 = (s279 >> 11) | (s279 << 21);+  const SWord32 s282 = s280 ^ s281;+  const SWord32 s283 = (s279 >> 25) | (s279 << 7);+  const SWord32 s284 = s282 ^ s283;+  const SWord32 s285 = s191 + s284;+  const SWord32 s286 = s261 & s279;+  const SWord32 s287 = ~s279;+  const SWord32 s288 = s243 & s287;+  const SWord32 s289 = s286 ^ s288;+  const SWord32 s290 = s285 + s289;+  const SWord32 s292 = s290 + 0xab1c5ed5UL;+  const SWord16 s293 = (((SWord16) s60) << 8) | ((SWord16) s61);+  const SWord16 s294 = (((SWord16) s62) << 8) | ((SWord16) s63);+  const SWord32 s295 = (((SWord32) s293) << 16) | ((SWord32) s294);+  const SWord32 s296 = s292 + s295;+  const SWord32 s297 = (s225 >> 2) | (s225 << 30);+  const SWord32 s298 = (s225 >> 13) | (s225 << 19);+  const SWord32 s299 = s297 ^ s298;+  const SWord32 s300 = (s225 >> 22) | (s225 << 10);+  const SWord32 s301 = s299 ^ s300;+  const SWord32 s302 = s214 & s225;+  const SWord32 s303 = s203 & s225;+  const SWord32 s304 = s302 ^ s303;+  const SWord32 s305 = s220 ^ s304;+  const SWord32 s306 = s301 + s305;+  const SWord32 s307 = s190 + s306;+  const SWord32 s308 = (s307 >> 2) | (s307 << 30);+  const SWord32 s309 = (s307 >> 13) | (s307 << 19);+  const SWord32 s310 = s308 ^ s309;+  const SWord32 s311 = (s307 >> 22) | (s307 << 10);+  const SWord32 s312 = s310 ^ s311;+  const SWord32 s313 = s225 & s307;+  const SWord32 s314 = s214 & s307;+  const SWord32 s315 = s313 ^ s314;+  const SWord32 s316 = s302 ^ s315;+  const SWord32 s317 = s312 + s316;+  const SWord32 s318 = s242 + s317;+  const SWord32 s319 = (s318 >> 2) | (s318 << 30);+  const SWord32 s320 = (s318 >> 13) | (s318 << 19);+  const SWord32 s321 = s319 ^ s320;+  const SWord32 s322 = (s318 >> 22) | (s318 << 10);+  const SWord32 s323 = s321 ^ s322;+  const SWord32 s324 = s307 & s318;+  const SWord32 s325 = s225 & s318;+  const SWord32 s326 = s324 ^ s325;+  const SWord32 s327 = s313 ^ s326;+  const SWord32 s328 = s323 + s327;+  const SWord32 s329 = s260 + s328;+  const SWord32 s330 = (s329 >> 2) | (s329 << 30);+  const SWord32 s331 = (s329 >> 13) | (s329 << 19);+  const SWord32 s332 = s330 ^ s331;+  const SWord32 s333 = (s329 >> 22) | (s329 << 10);+  const SWord32 s334 = s332 ^ s333;+  const SWord32 s335 = s318 & s329;+  const SWord32 s336 = s307 & s329;+  const SWord32 s337 = s335 ^ s336;+  const SWord32 s338 = s324 ^ s337;+  const SWord32 s339 = s334 + s338;+  const SWord32 s340 = s278 + s339;+  const SWord32 s341 = (s340 >> 2) | (s340 << 30);+  const SWord32 s342 = (s340 >> 13) | (s340 << 19);+  const SWord32 s343 = s341 ^ s342;+  const SWord32 s344 = (s340 >> 22) | (s340 << 10);+  const SWord32 s345 = s343 ^ s344;+  const SWord32 s346 = s329 & s340;+  const SWord32 s347 = s318 & s340;+  const SWord32 s348 = s346 ^ s347;+  const SWord32 s349 = s335 ^ s348;+  const SWord32 s350 = s345 + s349;+  const SWord32 s351 = s296 + s350;+  const SWord32 s352 = s296 + s307;+  const SWord32 s353 = (s352 >> 6) | (s352 << 26);+  const SWord32 s354 = (s352 >> 11) | (s352 << 21);+  const SWord32 s355 = s353 ^ s354;+  const SWord32 s356 = (s352 >> 25) | (s352 << 7);+  const SWord32 s357 = s355 ^ s356;+  const SWord32 s358 = s243 + s357;+  const SWord32 s359 = s279 & s352;+  const SWord32 s360 = ~s352;+  const SWord32 s361 = s261 & s360;+  const SWord32 s362 = s359 ^ s361;+  const SWord32 s363 = s358 + s362;+  const SWord32 s365 = s363 + 0xd807aa98UL;+  const SWord16 s366 = (((SWord16) s64) << 8) | ((SWord16) s65);+  const SWord16 s367 = (((SWord16) s66) << 8) | ((SWord16) s67);+  const SWord32 s368 = (((SWord32) s366) << 16) | ((SWord32) s367);+  const SWord32 s369 = s365 + s368;+  const SWord32 s370 = s318 + s369;+  const SWord32 s371 = (s370 >> 6) | (s370 << 26);+  const SWord32 s372 = (s370 >> 11) | (s370 << 21);+  const SWord32 s373 = s371 ^ s372;+  const SWord32 s374 = (s370 >> 25) | (s370 << 7);+  const SWord32 s375 = s373 ^ s374;+  const SWord32 s376 = s261 + s375;+  const SWord32 s377 = s352 & s370;+  const SWord32 s378 = ~s370;+  const SWord32 s379 = s279 & s378;+  const SWord32 s380 = s377 ^ s379;+  const SWord32 s381 = s376 + s380;+  const SWord32 s383 = s381 + 0x12835b01UL;+  const SWord16 s384 = (((SWord16) s68) << 8) | ((SWord16) s69);+  const SWord16 s385 = (((SWord16) s70) << 8) | ((SWord16) s71);+  const SWord32 s386 = (((SWord32) s384) << 16) | ((SWord32) s385);+  const SWord32 s387 = s383 + s386;+  const SWord32 s388 = s329 + s387;+  const SWord32 s389 = (s388 >> 6) | (s388 << 26);+  const SWord32 s390 = (s388 >> 11) | (s388 << 21);+  const SWord32 s391 = s389 ^ s390;+  const SWord32 s392 = (s388 >> 25) | (s388 << 7);+  const SWord32 s393 = s391 ^ s392;+  const SWord32 s394 = s279 + s393;+  const SWord32 s395 = s370 & s388;+  const SWord32 s396 = ~s388;+  const SWord32 s397 = s352 & s396;+  const SWord32 s398 = s395 ^ s397;+  const SWord32 s399 = s394 + s398;+  const SWord32 s401 = s399 + 0x243185beUL;+  const SWord16 s402 = (((SWord16) s72) << 8) | ((SWord16) s73);+  const SWord16 s403 = (((SWord16) s74) << 8) | ((SWord16) s75);+  const SWord32 s404 = (((SWord32) s402) << 16) | ((SWord32) s403);+  const SWord32 s405 = s401 + s404;+  const SWord32 s406 = s340 + s405;+  const SWord32 s407 = (s406 >> 6) | (s406 << 26);+  const SWord32 s408 = (s406 >> 11) | (s406 << 21);+  const SWord32 s409 = s407 ^ s408;+  const SWord32 s410 = (s406 >> 25) | (s406 << 7);+  const SWord32 s411 = s409 ^ s410;+  const SWord32 s412 = s352 + s411;+  const SWord32 s413 = s388 & s406;+  const SWord32 s414 = ~s406;+  const SWord32 s415 = s370 & s414;+  const SWord32 s416 = s413 ^ s415;+  const SWord32 s417 = s412 + s416;+  const SWord32 s419 = s417 + 0x550c7dc3UL;+  const SWord16 s420 = (((SWord16) s76) << 8) | ((SWord16) s77);+  const SWord16 s421 = (((SWord16) s78) << 8) | ((SWord16) s79);+  const SWord32 s422 = (((SWord32) s420) << 16) | ((SWord32) s421);+  const SWord32 s423 = s419 + s422;+  const SWord32 s424 = s351 + s423;+  const SWord32 s425 = (s351 >> 2) | (s351 << 30);+  const SWord32 s426 = (s351 >> 13) | (s351 << 19);+  const SWord32 s427 = s425 ^ s426;+  const SWord32 s428 = (s351 >> 22) | (s351 << 10);+  const SWord32 s429 = s427 ^ s428;+  const SWord32 s430 = s340 & s351;+  const SWord32 s431 = s329 & s351;+  const SWord32 s432 = s430 ^ s431;+  const SWord32 s433 = s346 ^ s432;+  const SWord32 s434 = s429 + s433;+  const SWord32 s435 = s369 + s434;+  const SWord32 s436 = (s435 >> 2) | (s435 << 30);+  const SWord32 s437 = (s435 >> 13) | (s435 << 19);+  const SWord32 s438 = s436 ^ s437;+  const SWord32 s439 = (s435 >> 22) | (s435 << 10);+  const SWord32 s440 = s438 ^ s439;+  const SWord32 s441 = s351 & s435;+  const SWord32 s442 = s340 & s435;+  const SWord32 s443 = s441 ^ s442;+  const SWord32 s444 = s430 ^ s443;+  const SWord32 s445 = s440 + s444;+  const SWord32 s446 = s387 + s445;+  const SWord32 s447 = (s446 >> 2) | (s446 << 30);+  const SWord32 s448 = (s446 >> 13) | (s446 << 19);+  const SWord32 s449 = s447 ^ s448;+  const SWord32 s450 = (s446 >> 22) | (s446 << 10);+  const SWord32 s451 = s449 ^ s450;+  const SWord32 s452 = s435 & s446;+  const SWord32 s453 = s351 & s446;+  const SWord32 s454 = s452 ^ s453;+  const SWord32 s455 = s441 ^ s454;+  const SWord32 s456 = s451 + s455;+  const SWord32 s457 = s405 + s456;+  const SWord32 s458 = (s424 >> 6) | (s424 << 26);+  const SWord32 s459 = (s424 >> 11) | (s424 << 21);+  const SWord32 s460 = s458 ^ s459;+  const SWord32 s461 = (s424 >> 25) | (s424 << 7);+  const SWord32 s462 = s460 ^ s461;+  const SWord32 s463 = s370 + s462;+  const SWord32 s464 = s406 & s424;+  const SWord32 s465 = ~s424;+  const SWord32 s466 = s388 & s465;+  const SWord32 s467 = s464 ^ s466;+  const SWord32 s468 = s463 + s467;+  const SWord32 s470 = s468 + 0x72be5d74UL;+  const SWord16 s471 = (((SWord16) s80) << 8) | ((SWord16) s81);+  const SWord16 s472 = (((SWord16) s82) << 8) | ((SWord16) s83);+  const SWord32 s473 = (((SWord32) s471) << 16) | ((SWord32) s472);+  const SWord32 s474 = s470 + s473;+  const SWord32 s475 = s435 + s474;+  const SWord32 s476 = (s475 >> 6) | (s475 << 26);+  const SWord32 s477 = (s475 >> 11) | (s475 << 21);+  const SWord32 s478 = s476 ^ s477;+  const SWord32 s479 = (s475 >> 25) | (s475 << 7);+  const SWord32 s480 = s478 ^ s479;+  const SWord32 s481 = s388 + s480;+  const SWord32 s482 = s424 & s475;+  const SWord32 s483 = ~s475;+  const SWord32 s484 = s406 & s483;+  const SWord32 s485 = s482 ^ s484;+  const SWord32 s486 = s481 + s485;+  const SWord32 s488 = s486 + 0x80deb1feUL;+  const SWord16 s489 = (((SWord16) s84) << 8) | ((SWord16) s85);+  const SWord16 s490 = (((SWord16) s86) << 8) | ((SWord16) s87);+  const SWord32 s491 = (((SWord32) s489) << 16) | ((SWord32) s490);+  const SWord32 s492 = s488 + s491;+  const SWord32 s493 = s446 + s492;+  const SWord32 s494 = (s493 >> 6) | (s493 << 26);+  const SWord32 s495 = (s493 >> 11) | (s493 << 21);+  const SWord32 s496 = s494 ^ s495;+  const SWord32 s497 = (s493 >> 25) | (s493 << 7);+  const SWord32 s498 = s496 ^ s497;+  const SWord32 s499 = s406 + s498;+  const SWord32 s500 = s475 & s493;+  const SWord32 s501 = ~s493;+  const SWord32 s502 = s424 & s501;+  const SWord32 s503 = s500 ^ s502;+  const SWord32 s504 = s499 + s503;+  const SWord32 s506 = s504 + 0x9bdc06a7UL;+  const SWord16 s507 = (((SWord16) s88) << 8) | ((SWord16) s89);+  const SWord16 s508 = (((SWord16) s90) << 8) | ((SWord16) s91);+  const SWord32 s509 = (((SWord32) s507) << 16) | ((SWord32) s508);+  const SWord32 s510 = s506 + s509;+  const SWord32 s511 = s457 + s510;+  const SWord32 s512 = (s511 >> 6) | (s511 << 26);+  const SWord32 s513 = (s511 >> 11) | (s511 << 21);+  const SWord32 s514 = s512 ^ s513;+  const SWord32 s515 = (s511 >> 25) | (s511 << 7);+  const SWord32 s516 = s514 ^ s515;+  const SWord32 s517 = s424 + s516;+  const SWord32 s518 = s493 & s511;+  const SWord32 s519 = ~s511;+  const SWord32 s520 = s475 & s519;+  const SWord32 s521 = s518 ^ s520;+  const SWord32 s522 = s517 + s521;+  const SWord32 s524 = s522 + 0xc19bf174UL;+  const SWord16 s525 = (((SWord16) s92) << 8) | ((SWord16) s93);+  const SWord16 s526 = (((SWord16) s94) << 8) | ((SWord16) s95);+  const SWord32 s527 = (((SWord32) s525) << 16) | ((SWord32) s526);+  const SWord32 s528 = s524 + s527;+  const SWord32 s529 = (s457 >> 2) | (s457 << 30);+  const SWord32 s530 = (s457 >> 13) | (s457 << 19);+  const SWord32 s531 = s529 ^ s530;+  const SWord32 s532 = (s457 >> 22) | (s457 << 10);+  const SWord32 s533 = s531 ^ s532;+  const SWord32 s534 = s446 & s457;+  const SWord32 s535 = s435 & s457;+  const SWord32 s536 = s534 ^ s535;+  const SWord32 s537 = s452 ^ s536;+  const SWord32 s538 = s533 + s537;+  const SWord32 s539 = s423 + s538;+  const SWord32 s540 = (s539 >> 2) | (s539 << 30);+  const SWord32 s541 = (s539 >> 13) | (s539 << 19);+  const SWord32 s542 = s540 ^ s541;+  const SWord32 s543 = (s539 >> 22) | (s539 << 10);+  const SWord32 s544 = s542 ^ s543;+  const SWord32 s545 = s457 & s539;+  const SWord32 s546 = s446 & s539;+  const SWord32 s547 = s545 ^ s546;+  const SWord32 s548 = s534 ^ s547;+  const SWord32 s549 = s544 + s548;+  const SWord32 s550 = s474 + s549;+  const SWord32 s551 = (s550 >> 2) | (s550 << 30);+  const SWord32 s552 = (s550 >> 13) | (s550 << 19);+  const SWord32 s553 = s551 ^ s552;+  const SWord32 s554 = (s550 >> 22) | (s550 << 10);+  const SWord32 s555 = s553 ^ s554;+  const SWord32 s556 = s539 & s550;+  const SWord32 s557 = s457 & s550;+  const SWord32 s558 = s556 ^ s557;+  const SWord32 s559 = s545 ^ s558;+  const SWord32 s560 = s555 + s559;+  const SWord32 s561 = s492 + s560;+  const SWord32 s562 = (s561 >> 2) | (s561 << 30);+  const SWord32 s563 = (s561 >> 13) | (s561 << 19);+  const SWord32 s564 = s562 ^ s563;+  const SWord32 s565 = (s561 >> 22) | (s561 << 10);+  const SWord32 s566 = s564 ^ s565;+  const SWord32 s567 = s550 & s561;+  const SWord32 s568 = s539 & s561;+  const SWord32 s569 = s567 ^ s568;+  const SWord32 s570 = s556 ^ s569;+  const SWord32 s571 = s566 + s570;+  const SWord32 s572 = s510 + s571;+  const SWord32 s573 = (s572 >> 2) | (s572 << 30);+  const SWord32 s574 = (s572 >> 13) | (s572 << 19);+  const SWord32 s575 = s573 ^ s574;+  const SWord32 s576 = (s572 >> 22) | (s572 << 10);+  const SWord32 s577 = s575 ^ s576;+  const SWord32 s578 = s561 & s572;+  const SWord32 s579 = s550 & s572;+  const SWord32 s580 = s578 ^ s579;+  const SWord32 s581 = s567 ^ s580;+  const SWord32 s582 = s577 + s581;+  const SWord32 s583 = s528 + s582;+  const SWord32 s584 = s528 + s539;+  const SWord32 s585 = (s584 >> 6) | (s584 << 26);+  const SWord32 s586 = (s584 >> 11) | (s584 << 21);+  const SWord32 s587 = s585 ^ s586;+  const SWord32 s588 = (s584 >> 25) | (s584 << 7);+  const SWord32 s589 = s587 ^ s588;+  const SWord32 s590 = s475 + s589;+  const SWord32 s591 = s511 & s584;+  const SWord32 s592 = ~s584;+  const SWord32 s593 = s493 & s592;+  const SWord32 s594 = s591 ^ s593;+  const SWord32 s595 = s590 + s594;+  const SWord32 s597 = s595 + 0xe49b69c1UL;+  const SWord32 s598 = (s509 >> 17) | (s509 << 15);+  const SWord32 s599 = (s509 >> 19) | (s509 << 13);+  const SWord32 s600 = s598 ^ s599;+  const SWord32 s602 = s509 >> 10;+  const SWord32 s603 = s600 ^ s602;+  const SWord32 s604 = s386 + s603;+  const SWord32 s605 = (s153 >> 7) | (s153 << 25);+  const SWord32 s606 = (s153 >> 18) | (s153 << 14);+  const SWord32 s607 = s605 ^ s606;+  const SWord32 s609 = s153 >> 3;+  const SWord32 s610 = s607 ^ s609;+  const SWord32 s611 = s604 + s610;+  const SWord32 s612 = s135 + s611;+  const SWord32 s613 = s597 + s612;+  const SWord32 s614 = s550 + s613;+  const SWord32 s615 = (s614 >> 6) | (s614 << 26);+  const SWord32 s616 = (s614 >> 11) | (s614 << 21);+  const SWord32 s617 = s615 ^ s616;+  const SWord32 s618 = (s614 >> 25) | (s614 << 7);+  const SWord32 s619 = s617 ^ s618;+  const SWord32 s620 = s493 + s619;+  const SWord32 s621 = s584 & s614;+  const SWord32 s622 = ~s614;+  const SWord32 s623 = s511 & s622;+  const SWord32 s624 = s621 ^ s623;+  const SWord32 s625 = s620 + s624;+  const SWord32 s627 = s625 + 0xefbe4786UL;+  const SWord32 s628 = (s527 >> 17) | (s527 << 15);+  const SWord32 s629 = (s527 >> 19) | (s527 << 13);+  const SWord32 s630 = s628 ^ s629;+  const SWord32 s631 = s527 >> 10;+  const SWord32 s632 = s630 ^ s631;+  const SWord32 s633 = s404 + s632;+  const SWord32 s634 = (s171 >> 7) | (s171 << 25);+  const SWord32 s635 = (s171 >> 18) | (s171 << 14);+  const SWord32 s636 = s634 ^ s635;+  const SWord32 s637 = s171 >> 3;+  const SWord32 s638 = s636 ^ s637;+  const SWord32 s639 = s633 + s638;+  const SWord32 s640 = s153 + s639;+  const SWord32 s641 = s627 + s640;+  const SWord32 s642 = s561 + s641;+  const SWord32 s643 = (s642 >> 6) | (s642 << 26);+  const SWord32 s644 = (s642 >> 11) | (s642 << 21);+  const SWord32 s645 = s643 ^ s644;+  const SWord32 s646 = (s642 >> 25) | (s642 << 7);+  const SWord32 s647 = s645 ^ s646;+  const SWord32 s648 = s511 + s647;+  const SWord32 s649 = s614 & s642;+  const SWord32 s650 = ~s642;+  const SWord32 s651 = s584 & s650;+  const SWord32 s652 = s649 ^ s651;+  const SWord32 s653 = s648 + s652;+  const SWord32 s655 = s653 + 0x0fc19dc6UL;+  const SWord32 s656 = (s612 >> 17) | (s612 << 15);+  const SWord32 s657 = (s612 >> 19) | (s612 << 13);+  const SWord32 s658 = s656 ^ s657;+  const SWord32 s659 = s612 >> 10;+  const SWord32 s660 = s658 ^ s659;+  const SWord32 s661 = s422 + s660;+  const SWord32 s662 = (s189 >> 7) | (s189 << 25);+  const SWord32 s663 = (s189 >> 18) | (s189 << 14);+  const SWord32 s664 = s662 ^ s663;+  const SWord32 s665 = s189 >> 3;+  const SWord32 s666 = s664 ^ s665;+  const SWord32 s667 = s661 + s666;+  const SWord32 s668 = s171 + s667;+  const SWord32 s669 = s655 + s668;+  const SWord32 s670 = s572 + s669;+  const SWord32 s671 = (s670 >> 6) | (s670 << 26);+  const SWord32 s672 = (s670 >> 11) | (s670 << 21);+  const SWord32 s673 = s671 ^ s672;+  const SWord32 s674 = (s670 >> 25) | (s670 << 7);+  const SWord32 s675 = s673 ^ s674;+  const SWord32 s676 = s584 + s675;+  const SWord32 s677 = s642 & s670;+  const SWord32 s678 = ~s670;+  const SWord32 s679 = s614 & s678;+  const SWord32 s680 = s677 ^ s679;+  const SWord32 s681 = s676 + s680;+  const SWord32 s683 = s681 + 0x240ca1ccUL;+  const SWord32 s684 = (s640 >> 17) | (s640 << 15);+  const SWord32 s685 = (s640 >> 19) | (s640 << 13);+  const SWord32 s686 = s684 ^ s685;+  const SWord32 s687 = s640 >> 10;+  const SWord32 s688 = s686 ^ s687;+  const SWord32 s689 = s473 + s688;+  const SWord32 s690 = (s241 >> 7) | (s241 << 25);+  const SWord32 s691 = (s241 >> 18) | (s241 << 14);+  const SWord32 s692 = s690 ^ s691;+  const SWord32 s693 = s241 >> 3;+  const SWord32 s694 = s692 ^ s693;+  const SWord32 s695 = s689 + s694;+  const SWord32 s696 = s189 + s695;+  const SWord32 s697 = s683 + s696;+  const SWord32 s698 = s583 + s697;+  const SWord32 s699 = (s583 >> 2) | (s583 << 30);+  const SWord32 s700 = (s583 >> 13) | (s583 << 19);+  const SWord32 s701 = s699 ^ s700;+  const SWord32 s702 = (s583 >> 22) | (s583 << 10);+  const SWord32 s703 = s701 ^ s702;+  const SWord32 s704 = s572 & s583;+  const SWord32 s705 = s561 & s583;+  const SWord32 s706 = s704 ^ s705;+  const SWord32 s707 = s578 ^ s706;+  const SWord32 s708 = s703 + s707;+  const SWord32 s709 = s613 + s708;+  const SWord32 s710 = (s709 >> 2) | (s709 << 30);+  const SWord32 s711 = (s709 >> 13) | (s709 << 19);+  const SWord32 s712 = s710 ^ s711;+  const SWord32 s713 = (s709 >> 22) | (s709 << 10);+  const SWord32 s714 = s712 ^ s713;+  const SWord32 s715 = s583 & s709;+  const SWord32 s716 = s572 & s709;+  const SWord32 s717 = s715 ^ s716;+  const SWord32 s718 = s704 ^ s717;+  const SWord32 s719 = s714 + s718;+  const SWord32 s720 = s641 + s719;+  const SWord32 s721 = (s720 >> 2) | (s720 << 30);+  const SWord32 s722 = (s720 >> 13) | (s720 << 19);+  const SWord32 s723 = s721 ^ s722;+  const SWord32 s724 = (s720 >> 22) | (s720 << 10);+  const SWord32 s725 = s723 ^ s724;+  const SWord32 s726 = s709 & s720;+  const SWord32 s727 = s583 & s720;+  const SWord32 s728 = s726 ^ s727;+  const SWord32 s729 = s715 ^ s728;+  const SWord32 s730 = s725 + s729;+  const SWord32 s731 = s669 + s730;+  const SWord32 s732 = (s698 >> 6) | (s698 << 26);+  const SWord32 s733 = (s698 >> 11) | (s698 << 21);+  const SWord32 s734 = s732 ^ s733;+  const SWord32 s735 = (s698 >> 25) | (s698 << 7);+  const SWord32 s736 = s734 ^ s735;+  const SWord32 s737 = s614 + s736;+  const SWord32 s738 = s670 & s698;+  const SWord32 s739 = ~s698;+  const SWord32 s740 = s642 & s739;+  const SWord32 s741 = s738 ^ s740;+  const SWord32 s742 = s737 + s741;+  const SWord32 s744 = s742 + 0x2de92c6fUL;+  const SWord32 s745 = (s668 >> 17) | (s668 << 15);+  const SWord32 s746 = (s668 >> 19) | (s668 << 13);+  const SWord32 s747 = s745 ^ s746;+  const SWord32 s748 = s668 >> 10;+  const SWord32 s749 = s747 ^ s748;+  const SWord32 s750 = s491 + s749;+  const SWord32 s751 = (s259 >> 7) | (s259 << 25);+  const SWord32 s752 = (s259 >> 18) | (s259 << 14);+  const SWord32 s753 = s751 ^ s752;+  const SWord32 s754 = s259 >> 3;+  const SWord32 s755 = s753 ^ s754;+  const SWord32 s756 = s750 + s755;+  const SWord32 s757 = s241 + s756;+  const SWord32 s758 = s744 + s757;+  const SWord32 s759 = s709 + s758;+  const SWord32 s760 = (s759 >> 6) | (s759 << 26);+  const SWord32 s761 = (s759 >> 11) | (s759 << 21);+  const SWord32 s762 = s760 ^ s761;+  const SWord32 s763 = (s759 >> 25) | (s759 << 7);+  const SWord32 s764 = s762 ^ s763;+  const SWord32 s765 = s642 + s764;+  const SWord32 s766 = s698 & s759;+  const SWord32 s767 = ~s759;+  const SWord32 s768 = s670 & s767;+  const SWord32 s769 = s766 ^ s768;+  const SWord32 s770 = s765 + s769;+  const SWord32 s772 = s770 + 0x4a7484aaUL;+  const SWord32 s773 = (s696 >> 17) | (s696 << 15);+  const SWord32 s774 = (s696 >> 19) | (s696 << 13);+  const SWord32 s775 = s773 ^ s774;+  const SWord32 s776 = s696 >> 10;+  const SWord32 s777 = s775 ^ s776;+  const SWord32 s778 = s509 + s777;+  const SWord32 s779 = (s277 >> 7) | (s277 << 25);+  const SWord32 s780 = (s277 >> 18) | (s277 << 14);+  const SWord32 s781 = s779 ^ s780;+  const SWord32 s782 = s277 >> 3;+  const SWord32 s783 = s781 ^ s782;+  const SWord32 s784 = s778 + s783;+  const SWord32 s785 = s259 + s784;+  const SWord32 s786 = s772 + s785;+  const SWord32 s787 = s720 + s786;+  const SWord32 s788 = (s787 >> 6) | (s787 << 26);+  const SWord32 s789 = (s787 >> 11) | (s787 << 21);+  const SWord32 s790 = s788 ^ s789;+  const SWord32 s791 = (s787 >> 25) | (s787 << 7);+  const SWord32 s792 = s790 ^ s791;+  const SWord32 s793 = s670 + s792;+  const SWord32 s794 = s759 & s787;+  const SWord32 s795 = ~s787;+  const SWord32 s796 = s698 & s795;+  const SWord32 s797 = s794 ^ s796;+  const SWord32 s798 = s793 + s797;+  const SWord32 s800 = s798 + 0x5cb0a9dcUL;+  const SWord32 s801 = (s757 >> 17) | (s757 << 15);+  const SWord32 s802 = (s757 >> 19) | (s757 << 13);+  const SWord32 s803 = s801 ^ s802;+  const SWord32 s804 = s757 >> 10;+  const SWord32 s805 = s803 ^ s804;+  const SWord32 s806 = s527 + s805;+  const SWord32 s807 = (s295 >> 7) | (s295 << 25);+  const SWord32 s808 = (s295 >> 18) | (s295 << 14);+  const SWord32 s809 = s807 ^ s808;+  const SWord32 s810 = s295 >> 3;+  const SWord32 s811 = s809 ^ s810;+  const SWord32 s812 = s806 + s811;+  const SWord32 s813 = s277 + s812;+  const SWord32 s814 = s800 + s813;+  const SWord32 s815 = s731 + s814;+  const SWord32 s816 = (s815 >> 6) | (s815 << 26);+  const SWord32 s817 = (s815 >> 11) | (s815 << 21);+  const SWord32 s818 = s816 ^ s817;+  const SWord32 s819 = (s815 >> 25) | (s815 << 7);+  const SWord32 s820 = s818 ^ s819;+  const SWord32 s821 = s698 + s820;+  const SWord32 s822 = s787 & s815;+  const SWord32 s823 = ~s815;+  const SWord32 s824 = s759 & s823;+  const SWord32 s825 = s822 ^ s824;+  const SWord32 s826 = s821 + s825;+  const SWord32 s828 = s826 + 0x76f988daUL;+  const SWord32 s829 = (s785 >> 17) | (s785 << 15);+  const SWord32 s830 = (s785 >> 19) | (s785 << 13);+  const SWord32 s831 = s829 ^ s830;+  const SWord32 s832 = s785 >> 10;+  const SWord32 s833 = s831 ^ s832;+  const SWord32 s834 = s612 + s833;+  const SWord32 s835 = (s368 >> 7) | (s368 << 25);+  const SWord32 s836 = (s368 >> 18) | (s368 << 14);+  const SWord32 s837 = s835 ^ s836;+  const SWord32 s838 = s368 >> 3;+  const SWord32 s839 = s837 ^ s838;+  const SWord32 s840 = s834 + s839;+  const SWord32 s841 = s295 + s840;+  const SWord32 s842 = s828 + s841;+  const SWord32 s843 = (s731 >> 2) | (s731 << 30);+  const SWord32 s844 = (s731 >> 13) | (s731 << 19);+  const SWord32 s845 = s843 ^ s844;+  const SWord32 s846 = (s731 >> 22) | (s731 << 10);+  const SWord32 s847 = s845 ^ s846;+  const SWord32 s848 = s720 & s731;+  const SWord32 s849 = s709 & s731;+  const SWord32 s850 = s848 ^ s849;+  const SWord32 s851 = s726 ^ s850;+  const SWord32 s852 = s847 + s851;+  const SWord32 s853 = s697 + s852;+  const SWord32 s854 = (s853 >> 2) | (s853 << 30);+  const SWord32 s855 = (s853 >> 13) | (s853 << 19);+  const SWord32 s856 = s854 ^ s855;+  const SWord32 s857 = (s853 >> 22) | (s853 << 10);+  const SWord32 s858 = s856 ^ s857;+  const SWord32 s859 = s731 & s853;+  const SWord32 s860 = s720 & s853;+  const SWord32 s861 = s859 ^ s860;+  const SWord32 s862 = s848 ^ s861;+  const SWord32 s863 = s858 + s862;+  const SWord32 s864 = s758 + s863;+  const SWord32 s865 = (s864 >> 2) | (s864 << 30);+  const SWord32 s866 = (s864 >> 13) | (s864 << 19);+  const SWord32 s867 = s865 ^ s866;+  const SWord32 s868 = (s864 >> 22) | (s864 << 10);+  const SWord32 s869 = s867 ^ s868;+  const SWord32 s870 = s853 & s864;+  const SWord32 s871 = s731 & s864;+  const SWord32 s872 = s870 ^ s871;+  const SWord32 s873 = s859 ^ s872;+  const SWord32 s874 = s869 + s873;+  const SWord32 s875 = s786 + s874;+  const SWord32 s876 = (s875 >> 2) | (s875 << 30);+  const SWord32 s877 = (s875 >> 13) | (s875 << 19);+  const SWord32 s878 = s876 ^ s877;+  const SWord32 s879 = (s875 >> 22) | (s875 << 10);+  const SWord32 s880 = s878 ^ s879;+  const SWord32 s881 = s864 & s875;+  const SWord32 s882 = s853 & s875;+  const SWord32 s883 = s881 ^ s882;+  const SWord32 s884 = s870 ^ s883;+  const SWord32 s885 = s880 + s884;+  const SWord32 s886 = s814 + s885;+  const SWord32 s887 = (s886 >> 2) | (s886 << 30);+  const SWord32 s888 = (s886 >> 13) | (s886 << 19);+  const SWord32 s889 = s887 ^ s888;+  const SWord32 s890 = (s886 >> 22) | (s886 << 10);+  const SWord32 s891 = s889 ^ s890;+  const SWord32 s892 = s875 & s886;+  const SWord32 s893 = s864 & s886;+  const SWord32 s894 = s892 ^ s893;+  const SWord32 s895 = s881 ^ s894;+  const SWord32 s896 = s891 + s895;+  const SWord32 s897 = s842 + s896;+  const SWord32 s898 = s842 + s853;+  const SWord32 s899 = (s898 >> 6) | (s898 << 26);+  const SWord32 s900 = (s898 >> 11) | (s898 << 21);+  const SWord32 s901 = s899 ^ s900;+  const SWord32 s902 = (s898 >> 25) | (s898 << 7);+  const SWord32 s903 = s901 ^ s902;+  const SWord32 s904 = s759 + s903;+  const SWord32 s905 = s815 & s898;+  const SWord32 s906 = ~s898;+  const SWord32 s907 = s787 & s906;+  const SWord32 s908 = s905 ^ s907;+  const SWord32 s909 = s904 + s908;+  const SWord32 s911 = s909 + 0x983e5152UL;+  const SWord32 s912 = (s813 >> 17) | (s813 << 15);+  const SWord32 s913 = (s813 >> 19) | (s813 << 13);+  const SWord32 s914 = s912 ^ s913;+  const SWord32 s915 = s813 >> 10;+  const SWord32 s916 = s914 ^ s915;+  const SWord32 s917 = s640 + s916;+  const SWord32 s918 = (s386 >> 7) | (s386 << 25);+  const SWord32 s919 = (s386 >> 18) | (s386 << 14);+  const SWord32 s920 = s918 ^ s919;+  const SWord32 s921 = s386 >> 3;+  const SWord32 s922 = s920 ^ s921;+  const SWord32 s923 = s917 + s922;+  const SWord32 s924 = s368 + s923;+  const SWord32 s925 = s911 + s924;+  const SWord32 s926 = s864 + s925;+  const SWord32 s927 = (s926 >> 6) | (s926 << 26);+  const SWord32 s928 = (s926 >> 11) | (s926 << 21);+  const SWord32 s929 = s927 ^ s928;+  const SWord32 s930 = (s926 >> 25) | (s926 << 7);+  const SWord32 s931 = s929 ^ s930;+  const SWord32 s932 = s787 + s931;+  const SWord32 s933 = s898 & s926;+  const SWord32 s934 = ~s926;+  const SWord32 s935 = s815 & s934;+  const SWord32 s936 = s933 ^ s935;+  const SWord32 s937 = s932 + s936;+  const SWord32 s939 = s937 + 0xa831c66dUL;+  const SWord32 s940 = (s841 >> 17) | (s841 << 15);+  const SWord32 s941 = (s841 >> 19) | (s841 << 13);+  const SWord32 s942 = s940 ^ s941;+  const SWord32 s943 = s841 >> 10;+  const SWord32 s944 = s942 ^ s943;+  const SWord32 s945 = s668 + s944;+  const SWord32 s946 = (s404 >> 7) | (s404 << 25);+  const SWord32 s947 = (s404 >> 18) | (s404 << 14);+  const SWord32 s948 = s946 ^ s947;+  const SWord32 s949 = s404 >> 3;+  const SWord32 s950 = s948 ^ s949;+  const SWord32 s951 = s945 + s950;+  const SWord32 s952 = s386 + s951;+  const SWord32 s953 = s939 + s952;+  const SWord32 s954 = s875 + s953;+  const SWord32 s955 = (s954 >> 6) | (s954 << 26);+  const SWord32 s956 = (s954 >> 11) | (s954 << 21);+  const SWord32 s957 = s955 ^ s956;+  const SWord32 s958 = (s954 >> 25) | (s954 << 7);+  const SWord32 s959 = s957 ^ s958;+  const SWord32 s960 = s815 + s959;+  const SWord32 s961 = s926 & s954;+  const SWord32 s962 = ~s954;+  const SWord32 s963 = s898 & s962;+  const SWord32 s964 = s961 ^ s963;+  const SWord32 s965 = s960 + s964;+  const SWord32 s967 = s965 + 0xb00327c8UL;+  const SWord32 s968 = (s924 >> 17) | (s924 << 15);+  const SWord32 s969 = (s924 >> 19) | (s924 << 13);+  const SWord32 s970 = s968 ^ s969;+  const SWord32 s971 = s924 >> 10;+  const SWord32 s972 = s970 ^ s971;+  const SWord32 s973 = s696 + s972;+  const SWord32 s974 = (s422 >> 7) | (s422 << 25);+  const SWord32 s975 = (s422 >> 18) | (s422 << 14);+  const SWord32 s976 = s974 ^ s975;+  const SWord32 s977 = s422 >> 3;+  const SWord32 s978 = s976 ^ s977;+  const SWord32 s979 = s973 + s978;+  const SWord32 s980 = s404 + s979;+  const SWord32 s981 = s967 + s980;+  const SWord32 s982 = s886 + s981;+  const SWord32 s983 = (s982 >> 6) | (s982 << 26);+  const SWord32 s984 = (s982 >> 11) | (s982 << 21);+  const SWord32 s985 = s983 ^ s984;+  const SWord32 s986 = (s982 >> 25) | (s982 << 7);+  const SWord32 s987 = s985 ^ s986;+  const SWord32 s988 = s898 + s987;+  const SWord32 s989 = s954 & s982;+  const SWord32 s990 = ~s982;+  const SWord32 s991 = s926 & s990;+  const SWord32 s992 = s989 ^ s991;+  const SWord32 s993 = s988 + s992;+  const SWord32 s995 = s993 + 0xbf597fc7UL;+  const SWord32 s996 = (s952 >> 17) | (s952 << 15);+  const SWord32 s997 = (s952 >> 19) | (s952 << 13);+  const SWord32 s998 = s996 ^ s997;+  const SWord32 s999 = s952 >> 10;+  const SWord32 s1000 = s998 ^ s999;+  const SWord32 s1001 = s757 + s1000;+  const SWord32 s1002 = (s473 >> 7) | (s473 << 25);+  const SWord32 s1003 = (s473 >> 18) | (s473 << 14);+  const SWord32 s1004 = s1002 ^ s1003;+  const SWord32 s1005 = s473 >> 3;+  const SWord32 s1006 = s1004 ^ s1005;+  const SWord32 s1007 = s1001 + s1006;+  const SWord32 s1008 = s422 + s1007;+  const SWord32 s1009 = s995 + s1008;+  const SWord32 s1010 = s897 + s1009;+  const SWord32 s1011 = (s897 >> 2) | (s897 << 30);+  const SWord32 s1012 = (s897 >> 13) | (s897 << 19);+  const SWord32 s1013 = s1011 ^ s1012;+  const SWord32 s1014 = (s897 >> 22) | (s897 << 10);+  const SWord32 s1015 = s1013 ^ s1014;+  const SWord32 s1016 = s886 & s897;+  const SWord32 s1017 = s875 & s897;+  const SWord32 s1018 = s1016 ^ s1017;+  const SWord32 s1019 = s892 ^ s1018;+  const SWord32 s1020 = s1015 + s1019;+  const SWord32 s1021 = s925 + s1020;+  const SWord32 s1022 = (s1021 >> 2) | (s1021 << 30);+  const SWord32 s1023 = (s1021 >> 13) | (s1021 << 19);+  const SWord32 s1024 = s1022 ^ s1023;+  const SWord32 s1025 = (s1021 >> 22) | (s1021 << 10);+  const SWord32 s1026 = s1024 ^ s1025;+  const SWord32 s1027 = s897 & s1021;+  const SWord32 s1028 = s886 & s1021;+  const SWord32 s1029 = s1027 ^ s1028;+  const SWord32 s1030 = s1016 ^ s1029;+  const SWord32 s1031 = s1026 + s1030;+  const SWord32 s1032 = s953 + s1031;+  const SWord32 s1033 = (s1032 >> 2) | (s1032 << 30);+  const SWord32 s1034 = (s1032 >> 13) | (s1032 << 19);+  const SWord32 s1035 = s1033 ^ s1034;+  const SWord32 s1036 = (s1032 >> 22) | (s1032 << 10);+  const SWord32 s1037 = s1035 ^ s1036;+  const SWord32 s1038 = s1021 & s1032;+  const SWord32 s1039 = s897 & s1032;+  const SWord32 s1040 = s1038 ^ s1039;+  const SWord32 s1041 = s1027 ^ s1040;+  const SWord32 s1042 = s1037 + s1041;+  const SWord32 s1043 = s981 + s1042;+  const SWord32 s1044 = (s1010 >> 6) | (s1010 << 26);+  const SWord32 s1045 = (s1010 >> 11) | (s1010 << 21);+  const SWord32 s1046 = s1044 ^ s1045;+  const SWord32 s1047 = (s1010 >> 25) | (s1010 << 7);+  const SWord32 s1048 = s1046 ^ s1047;+  const SWord32 s1049 = s926 + s1048;+  const SWord32 s1050 = s982 & s1010;+  const SWord32 s1051 = ~s1010;+  const SWord32 s1052 = s954 & s1051;+  const SWord32 s1053 = s1050 ^ s1052;+  const SWord32 s1054 = s1049 + s1053;+  const SWord32 s1056 = s1054 + 0xc6e00bf3UL;+  const SWord32 s1057 = (s980 >> 17) | (s980 << 15);+  const SWord32 s1058 = (s980 >> 19) | (s980 << 13);+  const SWord32 s1059 = s1057 ^ s1058;+  const SWord32 s1060 = s980 >> 10;+  const SWord32 s1061 = s1059 ^ s1060;+  const SWord32 s1062 = s785 + s1061;+  const SWord32 s1063 = (s491 >> 7) | (s491 << 25);+  const SWord32 s1064 = (s491 >> 18) | (s491 << 14);+  const SWord32 s1065 = s1063 ^ s1064;+  const SWord32 s1066 = s491 >> 3;+  const SWord32 s1067 = s1065 ^ s1066;+  const SWord32 s1068 = s1062 + s1067;+  const SWord32 s1069 = s473 + s1068;+  const SWord32 s1070 = s1056 + s1069;+  const SWord32 s1071 = s1021 + s1070;+  const SWord32 s1072 = (s1071 >> 6) | (s1071 << 26);+  const SWord32 s1073 = (s1071 >> 11) | (s1071 << 21);+  const SWord32 s1074 = s1072 ^ s1073;+  const SWord32 s1075 = (s1071 >> 25) | (s1071 << 7);+  const SWord32 s1076 = s1074 ^ s1075;+  const SWord32 s1077 = s954 + s1076;+  const SWord32 s1078 = s1010 & s1071;+  const SWord32 s1079 = ~s1071;+  const SWord32 s1080 = s982 & s1079;+  const SWord32 s1081 = s1078 ^ s1080;+  const SWord32 s1082 = s1077 + s1081;+  const SWord32 s1084 = s1082 + 0xd5a79147UL;+  const SWord32 s1085 = (s1008 >> 17) | (s1008 << 15);+  const SWord32 s1086 = (s1008 >> 19) | (s1008 << 13);+  const SWord32 s1087 = s1085 ^ s1086;+  const SWord32 s1088 = s1008 >> 10;+  const SWord32 s1089 = s1087 ^ s1088;+  const SWord32 s1090 = s813 + s1089;+  const SWord32 s1091 = (s509 >> 7) | (s509 << 25);+  const SWord32 s1092 = (s509 >> 18) | (s509 << 14);+  const SWord32 s1093 = s1091 ^ s1092;+  const SWord32 s1094 = s509 >> 3;+  const SWord32 s1095 = s1093 ^ s1094;+  const SWord32 s1096 = s1090 + s1095;+  const SWord32 s1097 = s491 + s1096;+  const SWord32 s1098 = s1084 + s1097;+  const SWord32 s1099 = s1032 + s1098;+  const SWord32 s1100 = (s1099 >> 6) | (s1099 << 26);+  const SWord32 s1101 = (s1099 >> 11) | (s1099 << 21);+  const SWord32 s1102 = s1100 ^ s1101;+  const SWord32 s1103 = (s1099 >> 25) | (s1099 << 7);+  const SWord32 s1104 = s1102 ^ s1103;+  const SWord32 s1105 = s982 + s1104;+  const SWord32 s1106 = s1071 & s1099;+  const SWord32 s1107 = ~s1099;+  const SWord32 s1108 = s1010 & s1107;+  const SWord32 s1109 = s1106 ^ s1108;+  const SWord32 s1110 = s1105 + s1109;+  const SWord32 s1112 = s1110 + 0x06ca6351UL;+  const SWord32 s1113 = (s1069 >> 17) | (s1069 << 15);+  const SWord32 s1114 = (s1069 >> 19) | (s1069 << 13);+  const SWord32 s1115 = s1113 ^ s1114;+  const SWord32 s1116 = s1069 >> 10;+  const SWord32 s1117 = s1115 ^ s1116;+  const SWord32 s1118 = s841 + s1117;+  const SWord32 s1119 = (s527 >> 7) | (s527 << 25);+  const SWord32 s1120 = (s527 >> 18) | (s527 << 14);+  const SWord32 s1121 = s1119 ^ s1120;+  const SWord32 s1122 = s527 >> 3;+  const SWord32 s1123 = s1121 ^ s1122;+  const SWord32 s1124 = s1118 + s1123;+  const SWord32 s1125 = s509 + s1124;+  const SWord32 s1126 = s1112 + s1125;+  const SWord32 s1127 = s1043 + s1126;+  const SWord32 s1128 = (s1127 >> 6) | (s1127 << 26);+  const SWord32 s1129 = (s1127 >> 11) | (s1127 << 21);+  const SWord32 s1130 = s1128 ^ s1129;+  const SWord32 s1131 = (s1127 >> 25) | (s1127 << 7);+  const SWord32 s1132 = s1130 ^ s1131;+  const SWord32 s1133 = s1010 + s1132;+  const SWord32 s1134 = s1099 & s1127;+  const SWord32 s1135 = ~s1127;+  const SWord32 s1136 = s1071 & s1135;+  const SWord32 s1137 = s1134 ^ s1136;+  const SWord32 s1138 = s1133 + s1137;+  const SWord32 s1140 = s1138 + 0x14292967UL;+  const SWord32 s1141 = (s1097 >> 17) | (s1097 << 15);+  const SWord32 s1142 = (s1097 >> 19) | (s1097 << 13);+  const SWord32 s1143 = s1141 ^ s1142;+  const SWord32 s1144 = s1097 >> 10;+  const SWord32 s1145 = s1143 ^ s1144;+  const SWord32 s1146 = s924 + s1145;+  const SWord32 s1147 = (s612 >> 7) | (s612 << 25);+  const SWord32 s1148 = (s612 >> 18) | (s612 << 14);+  const SWord32 s1149 = s1147 ^ s1148;+  const SWord32 s1150 = s612 >> 3;+  const SWord32 s1151 = s1149 ^ s1150;+  const SWord32 s1152 = s1146 + s1151;+  const SWord32 s1153 = s527 + s1152;+  const SWord32 s1154 = s1140 + s1153;+  const SWord32 s1155 = (s1043 >> 2) | (s1043 << 30);+  const SWord32 s1156 = (s1043 >> 13) | (s1043 << 19);+  const SWord32 s1157 = s1155 ^ s1156;+  const SWord32 s1158 = (s1043 >> 22) | (s1043 << 10);+  const SWord32 s1159 = s1157 ^ s1158;+  const SWord32 s1160 = s1032 & s1043;+  const SWord32 s1161 = s1021 & s1043;+  const SWord32 s1162 = s1160 ^ s1161;+  const SWord32 s1163 = s1038 ^ s1162;+  const SWord32 s1164 = s1159 + s1163;+  const SWord32 s1165 = s1009 + s1164;+  const SWord32 s1166 = (s1165 >> 2) | (s1165 << 30);+  const SWord32 s1167 = (s1165 >> 13) | (s1165 << 19);+  const SWord32 s1168 = s1166 ^ s1167;+  const SWord32 s1169 = (s1165 >> 22) | (s1165 << 10);+  const SWord32 s1170 = s1168 ^ s1169;+  const SWord32 s1171 = s1043 & s1165;+  const SWord32 s1172 = s1032 & s1165;+  const SWord32 s1173 = s1171 ^ s1172;+  const SWord32 s1174 = s1160 ^ s1173;+  const SWord32 s1175 = s1170 + s1174;+  const SWord32 s1176 = s1070 + s1175;+  const SWord32 s1177 = (s1176 >> 2) | (s1176 << 30);+  const SWord32 s1178 = (s1176 >> 13) | (s1176 << 19);+  const SWord32 s1179 = s1177 ^ s1178;+  const SWord32 s1180 = (s1176 >> 22) | (s1176 << 10);+  const SWord32 s1181 = s1179 ^ s1180;+  const SWord32 s1182 = s1165 & s1176;+  const SWord32 s1183 = s1043 & s1176;+  const SWord32 s1184 = s1182 ^ s1183;+  const SWord32 s1185 = s1171 ^ s1184;+  const SWord32 s1186 = s1181 + s1185;+  const SWord32 s1187 = s1098 + s1186;+  const SWord32 s1188 = (s1187 >> 2) | (s1187 << 30);+  const SWord32 s1189 = (s1187 >> 13) | (s1187 << 19);+  const SWord32 s1190 = s1188 ^ s1189;+  const SWord32 s1191 = (s1187 >> 22) | (s1187 << 10);+  const SWord32 s1192 = s1190 ^ s1191;+  const SWord32 s1193 = s1176 & s1187;+  const SWord32 s1194 = s1165 & s1187;+  const SWord32 s1195 = s1193 ^ s1194;+  const SWord32 s1196 = s1182 ^ s1195;+  const SWord32 s1197 = s1192 + s1196;+  const SWord32 s1198 = s1126 + s1197;+  const SWord32 s1199 = (s1198 >> 2) | (s1198 << 30);+  const SWord32 s1200 = (s1198 >> 13) | (s1198 << 19);+  const SWord32 s1201 = s1199 ^ s1200;+  const SWord32 s1202 = (s1198 >> 22) | (s1198 << 10);+  const SWord32 s1203 = s1201 ^ s1202;+  const SWord32 s1204 = s1187 & s1198;+  const SWord32 s1205 = s1176 & s1198;+  const SWord32 s1206 = s1204 ^ s1205;+  const SWord32 s1207 = s1193 ^ s1206;+  const SWord32 s1208 = s1203 + s1207;+  const SWord32 s1209 = s1154 + s1208;+  const SWord32 s1210 = s1154 + s1165;+  const SWord32 s1211 = (s1210 >> 6) | (s1210 << 26);+  const SWord32 s1212 = (s1210 >> 11) | (s1210 << 21);+  const SWord32 s1213 = s1211 ^ s1212;+  const SWord32 s1214 = (s1210 >> 25) | (s1210 << 7);+  const SWord32 s1215 = s1213 ^ s1214;+  const SWord32 s1216 = s1071 + s1215;+  const SWord32 s1217 = s1127 & s1210;+  const SWord32 s1218 = ~s1210;+  const SWord32 s1219 = s1099 & s1218;+  const SWord32 s1220 = s1217 ^ s1219;+  const SWord32 s1221 = s1216 + s1220;+  const SWord32 s1223 = s1221 + 0x27b70a85UL;+  const SWord32 s1224 = (s1125 >> 17) | (s1125 << 15);+  const SWord32 s1225 = (s1125 >> 19) | (s1125 << 13);+  const SWord32 s1226 = s1224 ^ s1225;+  const SWord32 s1227 = s1125 >> 10;+  const SWord32 s1228 = s1226 ^ s1227;+  const SWord32 s1229 = s952 + s1228;+  const SWord32 s1230 = (s640 >> 7) | (s640 << 25);+  const SWord32 s1231 = (s640 >> 18) | (s640 << 14);+  const SWord32 s1232 = s1230 ^ s1231;+  const SWord32 s1233 = s640 >> 3;+  const SWord32 s1234 = s1232 ^ s1233;+  const SWord32 s1235 = s1229 + s1234;+  const SWord32 s1236 = s612 + s1235;+  const SWord32 s1237 = s1223 + s1236;+  const SWord32 s1238 = s1176 + s1237;+  const SWord32 s1239 = (s1238 >> 6) | (s1238 << 26);+  const SWord32 s1240 = (s1238 >> 11) | (s1238 << 21);+  const SWord32 s1241 = s1239 ^ s1240;+  const SWord32 s1242 = (s1238 >> 25) | (s1238 << 7);+  const SWord32 s1243 = s1241 ^ s1242;+  const SWord32 s1244 = s1099 + s1243;+  const SWord32 s1245 = s1210 & s1238;+  const SWord32 s1246 = ~s1238;+  const SWord32 s1247 = s1127 & s1246;+  const SWord32 s1248 = s1245 ^ s1247;+  const SWord32 s1249 = s1244 + s1248;+  const SWord32 s1251 = s1249 + 0x2e1b2138UL;+  const SWord32 s1252 = (s1153 >> 17) | (s1153 << 15);+  const SWord32 s1253 = (s1153 >> 19) | (s1153 << 13);+  const SWord32 s1254 = s1252 ^ s1253;+  const SWord32 s1255 = s1153 >> 10;+  const SWord32 s1256 = s1254 ^ s1255;+  const SWord32 s1257 = s980 + s1256;+  const SWord32 s1258 = (s668 >> 7) | (s668 << 25);+  const SWord32 s1259 = (s668 >> 18) | (s668 << 14);+  const SWord32 s1260 = s1258 ^ s1259;+  const SWord32 s1261 = s668 >> 3;+  const SWord32 s1262 = s1260 ^ s1261;+  const SWord32 s1263 = s1257 + s1262;+  const SWord32 s1264 = s640 + s1263;+  const SWord32 s1265 = s1251 + s1264;+  const SWord32 s1266 = s1187 + s1265;+  const SWord32 s1267 = (s1266 >> 6) | (s1266 << 26);+  const SWord32 s1268 = (s1266 >> 11) | (s1266 << 21);+  const SWord32 s1269 = s1267 ^ s1268;+  const SWord32 s1270 = (s1266 >> 25) | (s1266 << 7);+  const SWord32 s1271 = s1269 ^ s1270;+  const SWord32 s1272 = s1127 + s1271;+  const SWord32 s1273 = s1238 & s1266;+  const SWord32 s1274 = ~s1266;+  const SWord32 s1275 = s1210 & s1274;+  const SWord32 s1276 = s1273 ^ s1275;+  const SWord32 s1277 = s1272 + s1276;+  const SWord32 s1279 = s1277 + 0x4d2c6dfcUL;+  const SWord32 s1280 = (s1236 >> 17) | (s1236 << 15);+  const SWord32 s1281 = (s1236 >> 19) | (s1236 << 13);+  const SWord32 s1282 = s1280 ^ s1281;+  const SWord32 s1283 = s1236 >> 10;+  const SWord32 s1284 = s1282 ^ s1283;+  const SWord32 s1285 = s1008 + s1284;+  const SWord32 s1286 = (s696 >> 7) | (s696 << 25);+  const SWord32 s1287 = (s696 >> 18) | (s696 << 14);+  const SWord32 s1288 = s1286 ^ s1287;+  const SWord32 s1289 = s696 >> 3;+  const SWord32 s1290 = s1288 ^ s1289;+  const SWord32 s1291 = s1285 + s1290;+  const SWord32 s1292 = s668 + s1291;+  const SWord32 s1293 = s1279 + s1292;+  const SWord32 s1294 = s1198 + s1293;+  const SWord32 s1295 = (s1294 >> 6) | (s1294 << 26);+  const SWord32 s1296 = (s1294 >> 11) | (s1294 << 21);+  const SWord32 s1297 = s1295 ^ s1296;+  const SWord32 s1298 = (s1294 >> 25) | (s1294 << 7);+  const SWord32 s1299 = s1297 ^ s1298;+  const SWord32 s1300 = s1210 + s1299;+  const SWord32 s1301 = s1266 & s1294;+  const SWord32 s1302 = ~s1294;+  const SWord32 s1303 = s1238 & s1302;+  const SWord32 s1304 = s1301 ^ s1303;+  const SWord32 s1305 = s1300 + s1304;+  const SWord32 s1307 = s1305 + 0x53380d13UL;+  const SWord32 s1308 = (s1264 >> 17) | (s1264 << 15);+  const SWord32 s1309 = (s1264 >> 19) | (s1264 << 13);+  const SWord32 s1310 = s1308 ^ s1309;+  const SWord32 s1311 = s1264 >> 10;+  const SWord32 s1312 = s1310 ^ s1311;+  const SWord32 s1313 = s1069 + s1312;+  const SWord32 s1314 = (s757 >> 7) | (s757 << 25);+  const SWord32 s1315 = (s757 >> 18) | (s757 << 14);+  const SWord32 s1316 = s1314 ^ s1315;+  const SWord32 s1317 = s757 >> 3;+  const SWord32 s1318 = s1316 ^ s1317;+  const SWord32 s1319 = s1313 + s1318;+  const SWord32 s1320 = s696 + s1319;+  const SWord32 s1321 = s1307 + s1320;+  const SWord32 s1322 = s1209 + s1321;+  const SWord32 s1323 = (s1209 >> 2) | (s1209 << 30);+  const SWord32 s1324 = (s1209 >> 13) | (s1209 << 19);+  const SWord32 s1325 = s1323 ^ s1324;+  const SWord32 s1326 = (s1209 >> 22) | (s1209 << 10);+  const SWord32 s1327 = s1325 ^ s1326;+  const SWord32 s1328 = s1198 & s1209;+  const SWord32 s1329 = s1187 & s1209;+  const SWord32 s1330 = s1328 ^ s1329;+  const SWord32 s1331 = s1204 ^ s1330;+  const SWord32 s1332 = s1327 + s1331;+  const SWord32 s1333 = s1237 + s1332;+  const SWord32 s1334 = (s1333 >> 2) | (s1333 << 30);+  const SWord32 s1335 = (s1333 >> 13) | (s1333 << 19);+  const SWord32 s1336 = s1334 ^ s1335;+  const SWord32 s1337 = (s1333 >> 22) | (s1333 << 10);+  const SWord32 s1338 = s1336 ^ s1337;+  const SWord32 s1339 = s1209 & s1333;+  const SWord32 s1340 = s1198 & s1333;+  const SWord32 s1341 = s1339 ^ s1340;+  const SWord32 s1342 = s1328 ^ s1341;+  const SWord32 s1343 = s1338 + s1342;+  const SWord32 s1344 = s1265 + s1343;+  const SWord32 s1345 = (s1344 >> 2) | (s1344 << 30);+  const SWord32 s1346 = (s1344 >> 13) | (s1344 << 19);+  const SWord32 s1347 = s1345 ^ s1346;+  const SWord32 s1348 = (s1344 >> 22) | (s1344 << 10);+  const SWord32 s1349 = s1347 ^ s1348;+  const SWord32 s1350 = s1333 & s1344;+  const SWord32 s1351 = s1209 & s1344;+  const SWord32 s1352 = s1350 ^ s1351;+  const SWord32 s1353 = s1339 ^ s1352;+  const SWord32 s1354 = s1349 + s1353;+  const SWord32 s1355 = s1293 + s1354;+  const SWord32 s1356 = (s1322 >> 6) | (s1322 << 26);+  const SWord32 s1357 = (s1322 >> 11) | (s1322 << 21);+  const SWord32 s1358 = s1356 ^ s1357;+  const SWord32 s1359 = (s1322 >> 25) | (s1322 << 7);+  const SWord32 s1360 = s1358 ^ s1359;+  const SWord32 s1361 = s1238 + s1360;+  const SWord32 s1362 = s1294 & s1322;+  const SWord32 s1363 = ~s1322;+  const SWord32 s1364 = s1266 & s1363;+  const SWord32 s1365 = s1362 ^ s1364;+  const SWord32 s1366 = s1361 + s1365;+  const SWord32 s1368 = s1366 + 0x650a7354UL;+  const SWord32 s1369 = (s1292 >> 17) | (s1292 << 15);+  const SWord32 s1370 = (s1292 >> 19) | (s1292 << 13);+  const SWord32 s1371 = s1369 ^ s1370;+  const SWord32 s1372 = s1292 >> 10;+  const SWord32 s1373 = s1371 ^ s1372;+  const SWord32 s1374 = s1097 + s1373;+  const SWord32 s1375 = (s785 >> 7) | (s785 << 25);+  const SWord32 s1376 = (s785 >> 18) | (s785 << 14);+  const SWord32 s1377 = s1375 ^ s1376;+  const SWord32 s1378 = s785 >> 3;+  const SWord32 s1379 = s1377 ^ s1378;+  const SWord32 s1380 = s1374 + s1379;+  const SWord32 s1381 = s757 + s1380;+  const SWord32 s1382 = s1368 + s1381;+  const SWord32 s1383 = s1333 + s1382;+  const SWord32 s1384 = (s1383 >> 6) | (s1383 << 26);+  const SWord32 s1385 = (s1383 >> 11) | (s1383 << 21);+  const SWord32 s1386 = s1384 ^ s1385;+  const SWord32 s1387 = (s1383 >> 25) | (s1383 << 7);+  const SWord32 s1388 = s1386 ^ s1387;+  const SWord32 s1389 = s1266 + s1388;+  const SWord32 s1390 = s1322 & s1383;+  const SWord32 s1391 = ~s1383;+  const SWord32 s1392 = s1294 & s1391;+  const SWord32 s1393 = s1390 ^ s1392;+  const SWord32 s1394 = s1389 + s1393;+  const SWord32 s1396 = s1394 + 0x766a0abbUL;+  const SWord32 s1397 = (s1320 >> 17) | (s1320 << 15);+  const SWord32 s1398 = (s1320 >> 19) | (s1320 << 13);+  const SWord32 s1399 = s1397 ^ s1398;+  const SWord32 s1400 = s1320 >> 10;+  const SWord32 s1401 = s1399 ^ s1400;+  const SWord32 s1402 = s1125 + s1401;+  const SWord32 s1403 = (s813 >> 7) | (s813 << 25);+  const SWord32 s1404 = (s813 >> 18) | (s813 << 14);+  const SWord32 s1405 = s1403 ^ s1404;+  const SWord32 s1406 = s813 >> 3;+  const SWord32 s1407 = s1405 ^ s1406;+  const SWord32 s1408 = s1402 + s1407;+  const SWord32 s1409 = s785 + s1408;+  const SWord32 s1410 = s1396 + s1409;+  const SWord32 s1411 = s1344 + s1410;+  const SWord32 s1412 = (s1411 >> 6) | (s1411 << 26);+  const SWord32 s1413 = (s1411 >> 11) | (s1411 << 21);+  const SWord32 s1414 = s1412 ^ s1413;+  const SWord32 s1415 = (s1411 >> 25) | (s1411 << 7);+  const SWord32 s1416 = s1414 ^ s1415;+  const SWord32 s1417 = s1294 + s1416;+  const SWord32 s1418 = s1383 & s1411;+  const SWord32 s1419 = ~s1411;+  const SWord32 s1420 = s1322 & s1419;+  const SWord32 s1421 = s1418 ^ s1420;+  const SWord32 s1422 = s1417 + s1421;+  const SWord32 s1424 = s1422 + 0x81c2c92eUL;+  const SWord32 s1425 = (s1381 >> 17) | (s1381 << 15);+  const SWord32 s1426 = (s1381 >> 19) | (s1381 << 13);+  const SWord32 s1427 = s1425 ^ s1426;+  const SWord32 s1428 = s1381 >> 10;+  const SWord32 s1429 = s1427 ^ s1428;+  const SWord32 s1430 = s1153 + s1429;+  const SWord32 s1431 = (s841 >> 7) | (s841 << 25);+  const SWord32 s1432 = (s841 >> 18) | (s841 << 14);+  const SWord32 s1433 = s1431 ^ s1432;+  const SWord32 s1434 = s841 >> 3;+  const SWord32 s1435 = s1433 ^ s1434;+  const SWord32 s1436 = s1430 + s1435;+  const SWord32 s1437 = s813 + s1436;+  const SWord32 s1438 = s1424 + s1437;+  const SWord32 s1439 = s1355 + s1438;+  const SWord32 s1440 = (s1439 >> 6) | (s1439 << 26);+  const SWord32 s1441 = (s1439 >> 11) | (s1439 << 21);+  const SWord32 s1442 = s1440 ^ s1441;+  const SWord32 s1443 = (s1439 >> 25) | (s1439 << 7);+  const SWord32 s1444 = s1442 ^ s1443;+  const SWord32 s1445 = s1322 + s1444;+  const SWord32 s1446 = s1411 & s1439;+  const SWord32 s1447 = ~s1439;+  const SWord32 s1448 = s1383 & s1447;+  const SWord32 s1449 = s1446 ^ s1448;+  const SWord32 s1450 = s1445 + s1449;+  const SWord32 s1452 = s1450 + 0x92722c85UL;+  const SWord32 s1453 = (s1409 >> 17) | (s1409 << 15);+  const SWord32 s1454 = (s1409 >> 19) | (s1409 << 13);+  const SWord32 s1455 = s1453 ^ s1454;+  const SWord32 s1456 = s1409 >> 10;+  const SWord32 s1457 = s1455 ^ s1456;+  const SWord32 s1458 = s1236 + s1457;+  const SWord32 s1459 = (s924 >> 7) | (s924 << 25);+  const SWord32 s1460 = (s924 >> 18) | (s924 << 14);+  const SWord32 s1461 = s1459 ^ s1460;+  const SWord32 s1462 = s924 >> 3;+  const SWord32 s1463 = s1461 ^ s1462;+  const SWord32 s1464 = s1458 + s1463;+  const SWord32 s1465 = s841 + s1464;+  const SWord32 s1466 = s1452 + s1465;+  const SWord32 s1467 = (s1355 >> 2) | (s1355 << 30);+  const SWord32 s1468 = (s1355 >> 13) | (s1355 << 19);+  const SWord32 s1469 = s1467 ^ s1468;+  const SWord32 s1470 = (s1355 >> 22) | (s1355 << 10);+  const SWord32 s1471 = s1469 ^ s1470;+  const SWord32 s1472 = s1344 & s1355;+  const SWord32 s1473 = s1333 & s1355;+  const SWord32 s1474 = s1472 ^ s1473;+  const SWord32 s1475 = s1350 ^ s1474;+  const SWord32 s1476 = s1471 + s1475;+  const SWord32 s1477 = s1321 + s1476;+  const SWord32 s1478 = (s1477 >> 2) | (s1477 << 30);+  const SWord32 s1479 = (s1477 >> 13) | (s1477 << 19);+  const SWord32 s1480 = s1478 ^ s1479;+  const SWord32 s1481 = (s1477 >> 22) | (s1477 << 10);+  const SWord32 s1482 = s1480 ^ s1481;+  const SWord32 s1483 = s1355 & s1477;+  const SWord32 s1484 = s1344 & s1477;+  const SWord32 s1485 = s1483 ^ s1484;+  const SWord32 s1486 = s1472 ^ s1485;+  const SWord32 s1487 = s1482 + s1486;+  const SWord32 s1488 = s1382 + s1487;+  const SWord32 s1489 = (s1488 >> 2) | (s1488 << 30);+  const SWord32 s1490 = (s1488 >> 13) | (s1488 << 19);+  const SWord32 s1491 = s1489 ^ s1490;+  const SWord32 s1492 = (s1488 >> 22) | (s1488 << 10);+  const SWord32 s1493 = s1491 ^ s1492;+  const SWord32 s1494 = s1477 & s1488;+  const SWord32 s1495 = s1355 & s1488;+  const SWord32 s1496 = s1494 ^ s1495;+  const SWord32 s1497 = s1483 ^ s1496;+  const SWord32 s1498 = s1493 + s1497;+  const SWord32 s1499 = s1410 + s1498;+  const SWord32 s1500 = (s1499 >> 2) | (s1499 << 30);+  const SWord32 s1501 = (s1499 >> 13) | (s1499 << 19);+  const SWord32 s1502 = s1500 ^ s1501;+  const SWord32 s1503 = (s1499 >> 22) | (s1499 << 10);+  const SWord32 s1504 = s1502 ^ s1503;+  const SWord32 s1505 = s1488 & s1499;+  const SWord32 s1506 = s1477 & s1499;+  const SWord32 s1507 = s1505 ^ s1506;+  const SWord32 s1508 = s1494 ^ s1507;+  const SWord32 s1509 = s1504 + s1508;+  const SWord32 s1510 = s1438 + s1509;+  const SWord32 s1511 = (s1510 >> 2) | (s1510 << 30);+  const SWord32 s1512 = (s1510 >> 13) | (s1510 << 19);+  const SWord32 s1513 = s1511 ^ s1512;+  const SWord32 s1514 = (s1510 >> 22) | (s1510 << 10);+  const SWord32 s1515 = s1513 ^ s1514;+  const SWord32 s1516 = s1499 & s1510;+  const SWord32 s1517 = s1488 & s1510;+  const SWord32 s1518 = s1516 ^ s1517;+  const SWord32 s1519 = s1505 ^ s1518;+  const SWord32 s1520 = s1515 + s1519;+  const SWord32 s1521 = s1466 + s1520;+  const SWord32 s1522 = s1466 + s1477;+  const SWord32 s1523 = (s1522 >> 6) | (s1522 << 26);+  const SWord32 s1524 = (s1522 >> 11) | (s1522 << 21);+  const SWord32 s1525 = s1523 ^ s1524;+  const SWord32 s1526 = (s1522 >> 25) | (s1522 << 7);+  const SWord32 s1527 = s1525 ^ s1526;+  const SWord32 s1528 = s1383 + s1527;+  const SWord32 s1529 = s1439 & s1522;+  const SWord32 s1530 = ~s1522;+  const SWord32 s1531 = s1411 & s1530;+  const SWord32 s1532 = s1529 ^ s1531;+  const SWord32 s1533 = s1528 + s1532;+  const SWord32 s1535 = s1533 + 0xa2bfe8a1UL;+  const SWord32 s1536 = (s1437 >> 17) | (s1437 << 15);+  const SWord32 s1537 = (s1437 >> 19) | (s1437 << 13);+  const SWord32 s1538 = s1536 ^ s1537;+  const SWord32 s1539 = s1437 >> 10;+  const SWord32 s1540 = s1538 ^ s1539;+  const SWord32 s1541 = s1264 + s1540;+  const SWord32 s1542 = (s952 >> 7) | (s952 << 25);+  const SWord32 s1543 = (s952 >> 18) | (s952 << 14);+  const SWord32 s1544 = s1542 ^ s1543;+  const SWord32 s1545 = s952 >> 3;+  const SWord32 s1546 = s1544 ^ s1545;+  const SWord32 s1547 = s1541 + s1546;+  const SWord32 s1548 = s924 + s1547;+  const SWord32 s1549 = s1535 + s1548;+  const SWord32 s1550 = s1488 + s1549;+  const SWord32 s1551 = (s1550 >> 6) | (s1550 << 26);+  const SWord32 s1552 = (s1550 >> 11) | (s1550 << 21);+  const SWord32 s1553 = s1551 ^ s1552;+  const SWord32 s1554 = (s1550 >> 25) | (s1550 << 7);+  const SWord32 s1555 = s1553 ^ s1554;+  const SWord32 s1556 = s1411 + s1555;+  const SWord32 s1557 = s1522 & s1550;+  const SWord32 s1558 = ~s1550;+  const SWord32 s1559 = s1439 & s1558;+  const SWord32 s1560 = s1557 ^ s1559;+  const SWord32 s1561 = s1556 + s1560;+  const SWord32 s1563 = s1561 + 0xa81a664bUL;+  const SWord32 s1564 = (s1465 >> 17) | (s1465 << 15);+  const SWord32 s1565 = (s1465 >> 19) | (s1465 << 13);+  const SWord32 s1566 = s1564 ^ s1565;+  const SWord32 s1567 = s1465 >> 10;+  const SWord32 s1568 = s1566 ^ s1567;+  const SWord32 s1569 = s1292 + s1568;+  const SWord32 s1570 = (s980 >> 7) | (s980 << 25);+  const SWord32 s1571 = (s980 >> 18) | (s980 << 14);+  const SWord32 s1572 = s1570 ^ s1571;+  const SWord32 s1573 = s980 >> 3;+  const SWord32 s1574 = s1572 ^ s1573;+  const SWord32 s1575 = s1569 + s1574;+  const SWord32 s1576 = s952 + s1575;+  const SWord32 s1577 = s1563 + s1576;+  const SWord32 s1578 = s1499 + s1577;+  const SWord32 s1579 = (s1578 >> 6) | (s1578 << 26);+  const SWord32 s1580 = (s1578 >> 11) | (s1578 << 21);+  const SWord32 s1581 = s1579 ^ s1580;+  const SWord32 s1582 = (s1578 >> 25) | (s1578 << 7);+  const SWord32 s1583 = s1581 ^ s1582;+  const SWord32 s1584 = s1439 + s1583;+  const SWord32 s1585 = s1550 & s1578;+  const SWord32 s1586 = ~s1578;+  const SWord32 s1587 = s1522 & s1586;+  const SWord32 s1588 = s1585 ^ s1587;+  const SWord32 s1589 = s1584 + s1588;+  const SWord32 s1591 = s1589 + 0xc24b8b70UL;+  const SWord32 s1592 = (s1548 >> 17) | (s1548 << 15);+  const SWord32 s1593 = (s1548 >> 19) | (s1548 << 13);+  const SWord32 s1594 = s1592 ^ s1593;+  const SWord32 s1595 = s1548 >> 10;+  const SWord32 s1596 = s1594 ^ s1595;+  const SWord32 s1597 = s1320 + s1596;+  const SWord32 s1598 = (s1008 >> 7) | (s1008 << 25);+  const SWord32 s1599 = (s1008 >> 18) | (s1008 << 14);+  const SWord32 s1600 = s1598 ^ s1599;+  const SWord32 s1601 = s1008 >> 3;+  const SWord32 s1602 = s1600 ^ s1601;+  const SWord32 s1603 = s1597 + s1602;+  const SWord32 s1604 = s980 + s1603;+  const SWord32 s1605 = s1591 + s1604;+  const SWord32 s1606 = s1510 + s1605;+  const SWord32 s1607 = (s1606 >> 6) | (s1606 << 26);+  const SWord32 s1608 = (s1606 >> 11) | (s1606 << 21);+  const SWord32 s1609 = s1607 ^ s1608;+  const SWord32 s1610 = (s1606 >> 25) | (s1606 << 7);+  const SWord32 s1611 = s1609 ^ s1610;+  const SWord32 s1612 = s1522 + s1611;+  const SWord32 s1613 = s1578 & s1606;+  const SWord32 s1614 = ~s1606;+  const SWord32 s1615 = s1550 & s1614;+  const SWord32 s1616 = s1613 ^ s1615;+  const SWord32 s1617 = s1612 + s1616;+  const SWord32 s1619 = s1617 + 0xc76c51a3UL;+  const SWord32 s1620 = (s1576 >> 17) | (s1576 << 15);+  const SWord32 s1621 = (s1576 >> 19) | (s1576 << 13);+  const SWord32 s1622 = s1620 ^ s1621;+  const SWord32 s1623 = s1576 >> 10;+  const SWord32 s1624 = s1622 ^ s1623;+  const SWord32 s1625 = s1381 + s1624;+  const SWord32 s1626 = (s1069 >> 7) | (s1069 << 25);+  const SWord32 s1627 = (s1069 >> 18) | (s1069 << 14);+  const SWord32 s1628 = s1626 ^ s1627;+  const SWord32 s1629 = s1069 >> 3;+  const SWord32 s1630 = s1628 ^ s1629;+  const SWord32 s1631 = s1625 + s1630;+  const SWord32 s1632 = s1008 + s1631;+  const SWord32 s1633 = s1619 + s1632;+  const SWord32 s1634 = s1521 + s1633;+  const SWord32 s1635 = (s1521 >> 2) | (s1521 << 30);+  const SWord32 s1636 = (s1521 >> 13) | (s1521 << 19);+  const SWord32 s1637 = s1635 ^ s1636;+  const SWord32 s1638 = (s1521 >> 22) | (s1521 << 10);+  const SWord32 s1639 = s1637 ^ s1638;+  const SWord32 s1640 = s1510 & s1521;+  const SWord32 s1641 = s1499 & s1521;+  const SWord32 s1642 = s1640 ^ s1641;+  const SWord32 s1643 = s1516 ^ s1642;+  const SWord32 s1644 = s1639 + s1643;+  const SWord32 s1645 = s1549 + s1644;+  const SWord32 s1646 = (s1645 >> 2) | (s1645 << 30);+  const SWord32 s1647 = (s1645 >> 13) | (s1645 << 19);+  const SWord32 s1648 = s1646 ^ s1647;+  const SWord32 s1649 = (s1645 >> 22) | (s1645 << 10);+  const SWord32 s1650 = s1648 ^ s1649;+  const SWord32 s1651 = s1521 & s1645;+  const SWord32 s1652 = s1510 & s1645;+  const SWord32 s1653 = s1651 ^ s1652;+  const SWord32 s1654 = s1640 ^ s1653;+  const SWord32 s1655 = s1650 + s1654;+  const SWord32 s1656 = s1577 + s1655;+  const SWord32 s1657 = (s1656 >> 2) | (s1656 << 30);+  const SWord32 s1658 = (s1656 >> 13) | (s1656 << 19);+  const SWord32 s1659 = s1657 ^ s1658;+  const SWord32 s1660 = (s1656 >> 22) | (s1656 << 10);+  const SWord32 s1661 = s1659 ^ s1660;+  const SWord32 s1662 = s1645 & s1656;+  const SWord32 s1663 = s1521 & s1656;+  const SWord32 s1664 = s1662 ^ s1663;+  const SWord32 s1665 = s1651 ^ s1664;+  const SWord32 s1666 = s1661 + s1665;+  const SWord32 s1667 = s1605 + s1666;+  const SWord32 s1668 = (s1634 >> 6) | (s1634 << 26);+  const SWord32 s1669 = (s1634 >> 11) | (s1634 << 21);+  const SWord32 s1670 = s1668 ^ s1669;+  const SWord32 s1671 = (s1634 >> 25) | (s1634 << 7);+  const SWord32 s1672 = s1670 ^ s1671;+  const SWord32 s1673 = s1550 + s1672;+  const SWord32 s1674 = s1606 & s1634;+  const SWord32 s1675 = ~s1634;+  const SWord32 s1676 = s1578 & s1675;+  const SWord32 s1677 = s1674 ^ s1676;+  const SWord32 s1678 = s1673 + s1677;+  const SWord32 s1680 = s1678 + 0xd192e819UL;+  const SWord32 s1681 = (s1604 >> 17) | (s1604 << 15);+  const SWord32 s1682 = (s1604 >> 19) | (s1604 << 13);+  const SWord32 s1683 = s1681 ^ s1682;+  const SWord32 s1684 = s1604 >> 10;+  const SWord32 s1685 = s1683 ^ s1684;+  const SWord32 s1686 = s1409 + s1685;+  const SWord32 s1687 = (s1097 >> 7) | (s1097 << 25);+  const SWord32 s1688 = (s1097 >> 18) | (s1097 << 14);+  const SWord32 s1689 = s1687 ^ s1688;+  const SWord32 s1690 = s1097 >> 3;+  const SWord32 s1691 = s1689 ^ s1690;+  const SWord32 s1692 = s1686 + s1691;+  const SWord32 s1693 = s1069 + s1692;+  const SWord32 s1694 = s1680 + s1693;+  const SWord32 s1695 = s1645 + s1694;+  const SWord32 s1696 = (s1695 >> 6) | (s1695 << 26);+  const SWord32 s1697 = (s1695 >> 11) | (s1695 << 21);+  const SWord32 s1698 = s1696 ^ s1697;+  const SWord32 s1699 = (s1695 >> 25) | (s1695 << 7);+  const SWord32 s1700 = s1698 ^ s1699;+  const SWord32 s1701 = s1578 + s1700;+  const SWord32 s1702 = s1634 & s1695;+  const SWord32 s1703 = ~s1695;+  const SWord32 s1704 = s1606 & s1703;+  const SWord32 s1705 = s1702 ^ s1704;+  const SWord32 s1706 = s1701 + s1705;+  const SWord32 s1708 = s1706 + 0xd6990624UL;+  const SWord32 s1709 = (s1632 >> 17) | (s1632 << 15);+  const SWord32 s1710 = (s1632 >> 19) | (s1632 << 13);+  const SWord32 s1711 = s1709 ^ s1710;+  const SWord32 s1712 = s1632 >> 10;+  const SWord32 s1713 = s1711 ^ s1712;+  const SWord32 s1714 = s1437 + s1713;+  const SWord32 s1715 = (s1125 >> 7) | (s1125 << 25);+  const SWord32 s1716 = (s1125 >> 18) | (s1125 << 14);+  const SWord32 s1717 = s1715 ^ s1716;+  const SWord32 s1718 = s1125 >> 3;+  const SWord32 s1719 = s1717 ^ s1718;+  const SWord32 s1720 = s1714 + s1719;+  const SWord32 s1721 = s1097 + s1720;+  const SWord32 s1722 = s1708 + s1721;+  const SWord32 s1723 = s1656 + s1722;+  const SWord32 s1724 = (s1723 >> 6) | (s1723 << 26);+  const SWord32 s1725 = (s1723 >> 11) | (s1723 << 21);+  const SWord32 s1726 = s1724 ^ s1725;+  const SWord32 s1727 = (s1723 >> 25) | (s1723 << 7);+  const SWord32 s1728 = s1726 ^ s1727;+  const SWord32 s1729 = s1606 + s1728;+  const SWord32 s1730 = s1695 & s1723;+  const SWord32 s1731 = ~s1723;+  const SWord32 s1732 = s1634 & s1731;+  const SWord32 s1733 = s1730 ^ s1732;+  const SWord32 s1734 = s1729 + s1733;+  const SWord32 s1736 = s1734 + 0xf40e3585UL;+  const SWord32 s1737 = (s1693 >> 17) | (s1693 << 15);+  const SWord32 s1738 = (s1693 >> 19) | (s1693 << 13);+  const SWord32 s1739 = s1737 ^ s1738;+  const SWord32 s1740 = s1693 >> 10;+  const SWord32 s1741 = s1739 ^ s1740;+  const SWord32 s1742 = s1465 + s1741;+  const SWord32 s1743 = (s1153 >> 7) | (s1153 << 25);+  const SWord32 s1744 = (s1153 >> 18) | (s1153 << 14);+  const SWord32 s1745 = s1743 ^ s1744;+  const SWord32 s1746 = s1153 >> 3;+  const SWord32 s1747 = s1745 ^ s1746;+  const SWord32 s1748 = s1742 + s1747;+  const SWord32 s1749 = s1125 + s1748;+  const SWord32 s1750 = s1736 + s1749;+  const SWord32 s1751 = s1667 + s1750;+  const SWord32 s1752 = (s1751 >> 6) | (s1751 << 26);+  const SWord32 s1753 = (s1751 >> 11) | (s1751 << 21);+  const SWord32 s1754 = s1752 ^ s1753;+  const SWord32 s1755 = (s1751 >> 25) | (s1751 << 7);+  const SWord32 s1756 = s1754 ^ s1755;+  const SWord32 s1757 = s1634 + s1756;+  const SWord32 s1758 = s1723 & s1751;+  const SWord32 s1759 = ~s1751;+  const SWord32 s1760 = s1695 & s1759;+  const SWord32 s1761 = s1758 ^ s1760;+  const SWord32 s1762 = s1757 + s1761;+  const SWord32 s1764 = s1762 + 0x106aa070UL;+  const SWord32 s1765 = (s1721 >> 17) | (s1721 << 15);+  const SWord32 s1766 = (s1721 >> 19) | (s1721 << 13);+  const SWord32 s1767 = s1765 ^ s1766;+  const SWord32 s1768 = s1721 >> 10;+  const SWord32 s1769 = s1767 ^ s1768;+  const SWord32 s1770 = s1548 + s1769;+  const SWord32 s1771 = (s1236 >> 7) | (s1236 << 25);+  const SWord32 s1772 = (s1236 >> 18) | (s1236 << 14);+  const SWord32 s1773 = s1771 ^ s1772;+  const SWord32 s1774 = s1236 >> 3;+  const SWord32 s1775 = s1773 ^ s1774;+  const SWord32 s1776 = s1770 + s1775;+  const SWord32 s1777 = s1153 + s1776;+  const SWord32 s1778 = s1764 + s1777;+  const SWord32 s1779 = (s1667 >> 2) | (s1667 << 30);+  const SWord32 s1780 = (s1667 >> 13) | (s1667 << 19);+  const SWord32 s1781 = s1779 ^ s1780;+  const SWord32 s1782 = (s1667 >> 22) | (s1667 << 10);+  const SWord32 s1783 = s1781 ^ s1782;+  const SWord32 s1784 = s1656 & s1667;+  const SWord32 s1785 = s1645 & s1667;+  const SWord32 s1786 = s1784 ^ s1785;+  const SWord32 s1787 = s1662 ^ s1786;+  const SWord32 s1788 = s1783 + s1787;+  const SWord32 s1789 = s1633 + s1788;+  const SWord32 s1790 = (s1789 >> 2) | (s1789 << 30);+  const SWord32 s1791 = (s1789 >> 13) | (s1789 << 19);+  const SWord32 s1792 = s1790 ^ s1791;+  const SWord32 s1793 = (s1789 >> 22) | (s1789 << 10);+  const SWord32 s1794 = s1792 ^ s1793;+  const SWord32 s1795 = s1667 & s1789;+  const SWord32 s1796 = s1656 & s1789;+  const SWord32 s1797 = s1795 ^ s1796;+  const SWord32 s1798 = s1784 ^ s1797;+  const SWord32 s1799 = s1794 + s1798;+  const SWord32 s1800 = s1694 + s1799;+  const SWord32 s1801 = (s1800 >> 2) | (s1800 << 30);+  const SWord32 s1802 = (s1800 >> 13) | (s1800 << 19);+  const SWord32 s1803 = s1801 ^ s1802;+  const SWord32 s1804 = (s1800 >> 22) | (s1800 << 10);+  const SWord32 s1805 = s1803 ^ s1804;+  const SWord32 s1806 = s1789 & s1800;+  const SWord32 s1807 = s1667 & s1800;+  const SWord32 s1808 = s1806 ^ s1807;+  const SWord32 s1809 = s1795 ^ s1808;+  const SWord32 s1810 = s1805 + s1809;+  const SWord32 s1811 = s1722 + s1810;+  const SWord32 s1812 = (s1811 >> 2) | (s1811 << 30);+  const SWord32 s1813 = (s1811 >> 13) | (s1811 << 19);+  const SWord32 s1814 = s1812 ^ s1813;+  const SWord32 s1815 = (s1811 >> 22) | (s1811 << 10);+  const SWord32 s1816 = s1814 ^ s1815;+  const SWord32 s1817 = s1800 & s1811;+  const SWord32 s1818 = s1789 & s1811;+  const SWord32 s1819 = s1817 ^ s1818;+  const SWord32 s1820 = s1806 ^ s1819;+  const SWord32 s1821 = s1816 + s1820;+  const SWord32 s1822 = s1750 + s1821;+  const SWord32 s1823 = (s1822 >> 2) | (s1822 << 30);+  const SWord32 s1824 = (s1822 >> 13) | (s1822 << 19);+  const SWord32 s1825 = s1823 ^ s1824;+  const SWord32 s1826 = (s1822 >> 22) | (s1822 << 10);+  const SWord32 s1827 = s1825 ^ s1826;+  const SWord32 s1828 = s1811 & s1822;+  const SWord32 s1829 = s1800 & s1822;+  const SWord32 s1830 = s1828 ^ s1829;+  const SWord32 s1831 = s1817 ^ s1830;+  const SWord32 s1832 = s1827 + s1831;+  const SWord32 s1833 = s1778 + s1832;+  const SWord32 s1834 = s1778 + s1789;+  const SWord32 s1835 = (s1834 >> 6) | (s1834 << 26);+  const SWord32 s1836 = (s1834 >> 11) | (s1834 << 21);+  const SWord32 s1837 = s1835 ^ s1836;+  const SWord32 s1838 = (s1834 >> 25) | (s1834 << 7);+  const SWord32 s1839 = s1837 ^ s1838;+  const SWord32 s1840 = s1695 + s1839;+  const SWord32 s1841 = s1751 & s1834;+  const SWord32 s1842 = ~s1834;+  const SWord32 s1843 = s1723 & s1842;+  const SWord32 s1844 = s1841 ^ s1843;+  const SWord32 s1845 = s1840 + s1844;+  const SWord32 s1847 = s1845 + 0x19a4c116UL;+  const SWord32 s1848 = (s1749 >> 17) | (s1749 << 15);+  const SWord32 s1849 = (s1749 >> 19) | (s1749 << 13);+  const SWord32 s1850 = s1848 ^ s1849;+  const SWord32 s1851 = s1749 >> 10;+  const SWord32 s1852 = s1850 ^ s1851;+  const SWord32 s1853 = s1576 + s1852;+  const SWord32 s1854 = (s1264 >> 7) | (s1264 << 25);+  const SWord32 s1855 = (s1264 >> 18) | (s1264 << 14);+  const SWord32 s1856 = s1854 ^ s1855;+  const SWord32 s1857 = s1264 >> 3;+  const SWord32 s1858 = s1856 ^ s1857;+  const SWord32 s1859 = s1853 + s1858;+  const SWord32 s1860 = s1236 + s1859;+  const SWord32 s1861 = s1847 + s1860;+  const SWord32 s1862 = s1800 + s1861;+  const SWord32 s1863 = (s1862 >> 6) | (s1862 << 26);+  const SWord32 s1864 = (s1862 >> 11) | (s1862 << 21);+  const SWord32 s1865 = s1863 ^ s1864;+  const SWord32 s1866 = (s1862 >> 25) | (s1862 << 7);+  const SWord32 s1867 = s1865 ^ s1866;+  const SWord32 s1868 = s1723 + s1867;+  const SWord32 s1869 = s1834 & s1862;+  const SWord32 s1870 = ~s1862;+  const SWord32 s1871 = s1751 & s1870;+  const SWord32 s1872 = s1869 ^ s1871;+  const SWord32 s1873 = s1868 + s1872;+  const SWord32 s1875 = s1873 + 0x1e376c08UL;+  const SWord32 s1876 = (s1777 >> 17) | (s1777 << 15);+  const SWord32 s1877 = (s1777 >> 19) | (s1777 << 13);+  const SWord32 s1878 = s1876 ^ s1877;+  const SWord32 s1879 = s1777 >> 10;+  const SWord32 s1880 = s1878 ^ s1879;+  const SWord32 s1881 = s1604 + s1880;+  const SWord32 s1882 = (s1292 >> 7) | (s1292 << 25);+  const SWord32 s1883 = (s1292 >> 18) | (s1292 << 14);+  const SWord32 s1884 = s1882 ^ s1883;+  const SWord32 s1885 = s1292 >> 3;+  const SWord32 s1886 = s1884 ^ s1885;+  const SWord32 s1887 = s1881 + s1886;+  const SWord32 s1888 = s1264 + s1887;+  const SWord32 s1889 = s1875 + s1888;+  const SWord32 s1890 = s1811 + s1889;+  const SWord32 s1891 = (s1890 >> 6) | (s1890 << 26);+  const SWord32 s1892 = (s1890 >> 11) | (s1890 << 21);+  const SWord32 s1893 = s1891 ^ s1892;+  const SWord32 s1894 = (s1890 >> 25) | (s1890 << 7);+  const SWord32 s1895 = s1893 ^ s1894;+  const SWord32 s1896 = s1751 + s1895;+  const SWord32 s1897 = s1862 & s1890;+  const SWord32 s1898 = ~s1890;+  const SWord32 s1899 = s1834 & s1898;+  const SWord32 s1900 = s1897 ^ s1899;+  const SWord32 s1901 = s1896 + s1900;+  const SWord32 s1903 = s1901 + 0x2748774cUL;+  const SWord32 s1904 = (s1860 >> 17) | (s1860 << 15);+  const SWord32 s1905 = (s1860 >> 19) | (s1860 << 13);+  const SWord32 s1906 = s1904 ^ s1905;+  const SWord32 s1907 = s1860 >> 10;+  const SWord32 s1908 = s1906 ^ s1907;+  const SWord32 s1909 = s1632 + s1908;+  const SWord32 s1910 = (s1320 >> 7) | (s1320 << 25);+  const SWord32 s1911 = (s1320 >> 18) | (s1320 << 14);+  const SWord32 s1912 = s1910 ^ s1911;+  const SWord32 s1913 = s1320 >> 3;+  const SWord32 s1914 = s1912 ^ s1913;+  const SWord32 s1915 = s1909 + s1914;+  const SWord32 s1916 = s1292 + s1915;+  const SWord32 s1917 = s1903 + s1916;+  const SWord32 s1918 = s1822 + s1917;+  const SWord32 s1919 = (s1918 >> 6) | (s1918 << 26);+  const SWord32 s1920 = (s1918 >> 11) | (s1918 << 21);+  const SWord32 s1921 = s1919 ^ s1920;+  const SWord32 s1922 = (s1918 >> 25) | (s1918 << 7);+  const SWord32 s1923 = s1921 ^ s1922;+  const SWord32 s1924 = s1834 + s1923;+  const SWord32 s1925 = s1890 & s1918;+  const SWord32 s1926 = ~s1918;+  const SWord32 s1927 = s1862 & s1926;+  const SWord32 s1928 = s1925 ^ s1927;+  const SWord32 s1929 = s1924 + s1928;+  const SWord32 s1931 = s1929 + 0x34b0bcb5UL;+  const SWord32 s1932 = (s1888 >> 17) | (s1888 << 15);+  const SWord32 s1933 = (s1888 >> 19) | (s1888 << 13);+  const SWord32 s1934 = s1932 ^ s1933;+  const SWord32 s1935 = s1888 >> 10;+  const SWord32 s1936 = s1934 ^ s1935;+  const SWord32 s1937 = s1693 + s1936;+  const SWord32 s1938 = (s1381 >> 7) | (s1381 << 25);+  const SWord32 s1939 = (s1381 >> 18) | (s1381 << 14);+  const SWord32 s1940 = s1938 ^ s1939;+  const SWord32 s1941 = s1381 >> 3;+  const SWord32 s1942 = s1940 ^ s1941;+  const SWord32 s1943 = s1937 + s1942;+  const SWord32 s1944 = s1320 + s1943;+  const SWord32 s1945 = s1931 + s1944;+  const SWord32 s1946 = s1833 + s1945;+  const SWord32 s1947 = (s1833 >> 2) | (s1833 << 30);+  const SWord32 s1948 = (s1833 >> 13) | (s1833 << 19);+  const SWord32 s1949 = s1947 ^ s1948;+  const SWord32 s1950 = (s1833 >> 22) | (s1833 << 10);+  const SWord32 s1951 = s1949 ^ s1950;+  const SWord32 s1952 = s1822 & s1833;+  const SWord32 s1953 = s1811 & s1833;+  const SWord32 s1954 = s1952 ^ s1953;+  const SWord32 s1955 = s1828 ^ s1954;+  const SWord32 s1956 = s1951 + s1955;+  const SWord32 s1957 = s1861 + s1956;+  const SWord32 s1958 = (s1957 >> 2) | (s1957 << 30);+  const SWord32 s1959 = (s1957 >> 13) | (s1957 << 19);+  const SWord32 s1960 = s1958 ^ s1959;+  const SWord32 s1961 = (s1957 >> 22) | (s1957 << 10);+  const SWord32 s1962 = s1960 ^ s1961;+  const SWord32 s1963 = s1833 & s1957;+  const SWord32 s1964 = s1822 & s1957;+  const SWord32 s1965 = s1963 ^ s1964;+  const SWord32 s1966 = s1952 ^ s1965;+  const SWord32 s1967 = s1962 + s1966;+  const SWord32 s1968 = s1889 + s1967;+  const SWord32 s1969 = (s1968 >> 2) | (s1968 << 30);+  const SWord32 s1970 = (s1968 >> 13) | (s1968 << 19);+  const SWord32 s1971 = s1969 ^ s1970;+  const SWord32 s1972 = (s1968 >> 22) | (s1968 << 10);+  const SWord32 s1973 = s1971 ^ s1972;+  const SWord32 s1974 = s1957 & s1968;+  const SWord32 s1975 = s1833 & s1968;+  const SWord32 s1976 = s1974 ^ s1975;+  const SWord32 s1977 = s1963 ^ s1976;+  const SWord32 s1978 = s1973 + s1977;+  const SWord32 s1979 = s1917 + s1978;+  const SWord32 s1980 = (s1946 >> 6) | (s1946 << 26);+  const SWord32 s1981 = (s1946 >> 11) | (s1946 << 21);+  const SWord32 s1982 = s1980 ^ s1981;+  const SWord32 s1983 = (s1946 >> 25) | (s1946 << 7);+  const SWord32 s1984 = s1982 ^ s1983;+  const SWord32 s1985 = s1862 + s1984;+  const SWord32 s1986 = s1918 & s1946;+  const SWord32 s1987 = ~s1946;+  const SWord32 s1988 = s1890 & s1987;+  const SWord32 s1989 = s1986 ^ s1988;+  const SWord32 s1990 = s1985 + s1989;+  const SWord32 s1992 = s1990 + 0x391c0cb3UL;+  const SWord32 s1993 = (s1916 >> 17) | (s1916 << 15);+  const SWord32 s1994 = (s1916 >> 19) | (s1916 << 13);+  const SWord32 s1995 = s1993 ^ s1994;+  const SWord32 s1996 = s1916 >> 10;+  const SWord32 s1997 = s1995 ^ s1996;+  const SWord32 s1998 = s1721 + s1997;+  const SWord32 s1999 = (s1409 >> 7) | (s1409 << 25);+  const SWord32 s2000 = (s1409 >> 18) | (s1409 << 14);+  const SWord32 s2001 = s1999 ^ s2000;+  const SWord32 s2002 = s1409 >> 3;+  const SWord32 s2003 = s2001 ^ s2002;+  const SWord32 s2004 = s1998 + s2003;+  const SWord32 s2005 = s1381 + s2004;+  const SWord32 s2006 = s1992 + s2005;+  const SWord32 s2007 = s1957 + s2006;+  const SWord32 s2008 = (s2007 >> 6) | (s2007 << 26);+  const SWord32 s2009 = (s2007 >> 11) | (s2007 << 21);+  const SWord32 s2010 = s2008 ^ s2009;+  const SWord32 s2011 = (s2007 >> 25) | (s2007 << 7);+  const SWord32 s2012 = s2010 ^ s2011;+  const SWord32 s2013 = s1890 + s2012;+  const SWord32 s2014 = s1946 & s2007;+  const SWord32 s2015 = ~s2007;+  const SWord32 s2016 = s1918 & s2015;+  const SWord32 s2017 = s2014 ^ s2016;+  const SWord32 s2018 = s2013 + s2017;+  const SWord32 s2020 = s2018 + 0x4ed8aa4aUL;+  const SWord32 s2021 = (s1944 >> 17) | (s1944 << 15);+  const SWord32 s2022 = (s1944 >> 19) | (s1944 << 13);+  const SWord32 s2023 = s2021 ^ s2022;+  const SWord32 s2024 = s1944 >> 10;+  const SWord32 s2025 = s2023 ^ s2024;+  const SWord32 s2026 = s1749 + s2025;+  const SWord32 s2027 = (s1437 >> 7) | (s1437 << 25);+  const SWord32 s2028 = (s1437 >> 18) | (s1437 << 14);+  const SWord32 s2029 = s2027 ^ s2028;+  const SWord32 s2030 = s1437 >> 3;+  const SWord32 s2031 = s2029 ^ s2030;+  const SWord32 s2032 = s2026 + s2031;+  const SWord32 s2033 = s1409 + s2032;+  const SWord32 s2034 = s2020 + s2033;+  const SWord32 s2035 = s1968 + s2034;+  const SWord32 s2036 = (s2035 >> 6) | (s2035 << 26);+  const SWord32 s2037 = (s2035 >> 11) | (s2035 << 21);+  const SWord32 s2038 = s2036 ^ s2037;+  const SWord32 s2039 = (s2035 >> 25) | (s2035 << 7);+  const SWord32 s2040 = s2038 ^ s2039;+  const SWord32 s2041 = s1918 + s2040;+  const SWord32 s2042 = s2007 & s2035;+  const SWord32 s2043 = ~s2035;+  const SWord32 s2044 = s1946 & s2043;+  const SWord32 s2045 = s2042 ^ s2044;+  const SWord32 s2046 = s2041 + s2045;+  const SWord32 s2048 = s2046 + 0x5b9cca4fUL;+  const SWord32 s2049 = (s2005 >> 17) | (s2005 << 15);+  const SWord32 s2050 = (s2005 >> 19) | (s2005 << 13);+  const SWord32 s2051 = s2049 ^ s2050;+  const SWord32 s2052 = s2005 >> 10;+  const SWord32 s2053 = s2051 ^ s2052;+  const SWord32 s2054 = s1777 + s2053;+  const SWord32 s2055 = (s1465 >> 7) | (s1465 << 25);+  const SWord32 s2056 = (s1465 >> 18) | (s1465 << 14);+  const SWord32 s2057 = s2055 ^ s2056;+  const SWord32 s2058 = s1465 >> 3;+  const SWord32 s2059 = s2057 ^ s2058;+  const SWord32 s2060 = s2054 + s2059;+  const SWord32 s2061 = s1437 + s2060;+  const SWord32 s2062 = s2048 + s2061;+  const SWord32 s2063 = s1979 + s2062;+  const SWord32 s2064 = (s2063 >> 6) | (s2063 << 26);+  const SWord32 s2065 = (s2063 >> 11) | (s2063 << 21);+  const SWord32 s2066 = s2064 ^ s2065;+  const SWord32 s2067 = (s2063 >> 25) | (s2063 << 7);+  const SWord32 s2068 = s2066 ^ s2067;+  const SWord32 s2069 = s1946 + s2068;+  const SWord32 s2070 = s2035 & s2063;+  const SWord32 s2071 = ~s2063;+  const SWord32 s2072 = s2007 & s2071;+  const SWord32 s2073 = s2070 ^ s2072;+  const SWord32 s2074 = s2069 + s2073;+  const SWord32 s2076 = s2074 + 0x682e6ff3UL;+  const SWord32 s2077 = (s2033 >> 17) | (s2033 << 15);+  const SWord32 s2078 = (s2033 >> 19) | (s2033 << 13);+  const SWord32 s2079 = s2077 ^ s2078;+  const SWord32 s2080 = s2033 >> 10;+  const SWord32 s2081 = s2079 ^ s2080;+  const SWord32 s2082 = s1860 + s2081;+  const SWord32 s2083 = (s1548 >> 7) | (s1548 << 25);+  const SWord32 s2084 = (s1548 >> 18) | (s1548 << 14);+  const SWord32 s2085 = s2083 ^ s2084;+  const SWord32 s2086 = s1548 >> 3;+  const SWord32 s2087 = s2085 ^ s2086;+  const SWord32 s2088 = s2082 + s2087;+  const SWord32 s2089 = s1465 + s2088;+  const SWord32 s2090 = s2076 + s2089;+  const SWord32 s2091 = (s1979 >> 2) | (s1979 << 30);+  const SWord32 s2092 = (s1979 >> 13) | (s1979 << 19);+  const SWord32 s2093 = s2091 ^ s2092;+  const SWord32 s2094 = (s1979 >> 22) | (s1979 << 10);+  const SWord32 s2095 = s2093 ^ s2094;+  const SWord32 s2096 = s1968 & s1979;+  const SWord32 s2097 = s1957 & s1979;+  const SWord32 s2098 = s2096 ^ s2097;+  const SWord32 s2099 = s1974 ^ s2098;+  const SWord32 s2100 = s2095 + s2099;+  const SWord32 s2101 = s1945 + s2100;+  const SWord32 s2102 = (s2101 >> 2) | (s2101 << 30);+  const SWord32 s2103 = (s2101 >> 13) | (s2101 << 19);+  const SWord32 s2104 = s2102 ^ s2103;+  const SWord32 s2105 = (s2101 >> 22) | (s2101 << 10);+  const SWord32 s2106 = s2104 ^ s2105;+  const SWord32 s2107 = s1979 & s2101;+  const SWord32 s2108 = s1968 & s2101;+  const SWord32 s2109 = s2107 ^ s2108;+  const SWord32 s2110 = s2096 ^ s2109;+  const SWord32 s2111 = s2106 + s2110;+  const SWord32 s2112 = s2006 + s2111;+  const SWord32 s2113 = (s2112 >> 2) | (s2112 << 30);+  const SWord32 s2114 = (s2112 >> 13) | (s2112 << 19);+  const SWord32 s2115 = s2113 ^ s2114;+  const SWord32 s2116 = (s2112 >> 22) | (s2112 << 10);+  const SWord32 s2117 = s2115 ^ s2116;+  const SWord32 s2118 = s2101 & s2112;+  const SWord32 s2119 = s1979 & s2112;+  const SWord32 s2120 = s2118 ^ s2119;+  const SWord32 s2121 = s2107 ^ s2120;+  const SWord32 s2122 = s2117 + s2121;+  const SWord32 s2123 = s2034 + s2122;+  const SWord32 s2124 = (s2123 >> 2) | (s2123 << 30);+  const SWord32 s2125 = (s2123 >> 13) | (s2123 << 19);+  const SWord32 s2126 = s2124 ^ s2125;+  const SWord32 s2127 = (s2123 >> 22) | (s2123 << 10);+  const SWord32 s2128 = s2126 ^ s2127;+  const SWord32 s2129 = s2112 & s2123;+  const SWord32 s2130 = s2101 & s2123;+  const SWord32 s2131 = s2129 ^ s2130;+  const SWord32 s2132 = s2118 ^ s2131;+  const SWord32 s2133 = s2128 + s2132;+  const SWord32 s2134 = s2062 + s2133;+  const SWord32 s2135 = (s2134 >> 2) | (s2134 << 30);+  const SWord32 s2136 = (s2134 >> 13) | (s2134 << 19);+  const SWord32 s2137 = s2135 ^ s2136;+  const SWord32 s2138 = (s2134 >> 22) | (s2134 << 10);+  const SWord32 s2139 = s2137 ^ s2138;+  const SWord32 s2140 = s2123 & s2134;+  const SWord32 s2141 = s2112 & s2134;+  const SWord32 s2142 = s2140 ^ s2141;+  const SWord32 s2143 = s2129 ^ s2142;+  const SWord32 s2144 = s2139 + s2143;+  const SWord32 s2145 = s2090 + s2144;+  const SWord32 s2146 = s2090 + s2101;+  const SWord32 s2147 = (s2146 >> 6) | (s2146 << 26);+  const SWord32 s2148 = (s2146 >> 11) | (s2146 << 21);+  const SWord32 s2149 = s2147 ^ s2148;+  const SWord32 s2150 = (s2146 >> 25) | (s2146 << 7);+  const SWord32 s2151 = s2149 ^ s2150;+  const SWord32 s2152 = s2007 + s2151;+  const SWord32 s2153 = s2063 & s2146;+  const SWord32 s2154 = ~s2146;+  const SWord32 s2155 = s2035 & s2154;+  const SWord32 s2156 = s2153 ^ s2155;+  const SWord32 s2157 = s2152 + s2156;+  const SWord32 s2159 = s2157 + 0x748f82eeUL;+  const SWord32 s2160 = (s2061 >> 17) | (s2061 << 15);+  const SWord32 s2161 = (s2061 >> 19) | (s2061 << 13);+  const SWord32 s2162 = s2160 ^ s2161;+  const SWord32 s2163 = s2061 >> 10;+  const SWord32 s2164 = s2162 ^ s2163;+  const SWord32 s2165 = s1888 + s2164;+  const SWord32 s2166 = (s1576 >> 7) | (s1576 << 25);+  const SWord32 s2167 = (s1576 >> 18) | (s1576 << 14);+  const SWord32 s2168 = s2166 ^ s2167;+  const SWord32 s2169 = s1576 >> 3;+  const SWord32 s2170 = s2168 ^ s2169;+  const SWord32 s2171 = s2165 + s2170;+  const SWord32 s2172 = s1548 + s2171;+  const SWord32 s2173 = s2159 + s2172;+  const SWord32 s2174 = s2112 + s2173;+  const SWord32 s2175 = (s2174 >> 6) | (s2174 << 26);+  const SWord32 s2176 = (s2174 >> 11) | (s2174 << 21);+  const SWord32 s2177 = s2175 ^ s2176;+  const SWord32 s2178 = (s2174 >> 25) | (s2174 << 7);+  const SWord32 s2179 = s2177 ^ s2178;+  const SWord32 s2180 = s2035 + s2179;+  const SWord32 s2181 = s2146 & s2174;+  const SWord32 s2182 = ~s2174;+  const SWord32 s2183 = s2063 & s2182;+  const SWord32 s2184 = s2181 ^ s2183;+  const SWord32 s2185 = s2180 + s2184;+  const SWord32 s2187 = s2185 + 0x78a5636fUL;+  const SWord32 s2188 = (s2089 >> 17) | (s2089 << 15);+  const SWord32 s2189 = (s2089 >> 19) | (s2089 << 13);+  const SWord32 s2190 = s2188 ^ s2189;+  const SWord32 s2191 = s2089 >> 10;+  const SWord32 s2192 = s2190 ^ s2191;+  const SWord32 s2193 = s1916 + s2192;+  const SWord32 s2194 = (s1604 >> 7) | (s1604 << 25);+  const SWord32 s2195 = (s1604 >> 18) | (s1604 << 14);+  const SWord32 s2196 = s2194 ^ s2195;+  const SWord32 s2197 = s1604 >> 3;+  const SWord32 s2198 = s2196 ^ s2197;+  const SWord32 s2199 = s2193 + s2198;+  const SWord32 s2200 = s1576 + s2199;+  const SWord32 s2201 = s2187 + s2200;+  const SWord32 s2202 = s2123 + s2201;+  const SWord32 s2203 = (s2202 >> 6) | (s2202 << 26);+  const SWord32 s2204 = (s2202 >> 11) | (s2202 << 21);+  const SWord32 s2205 = s2203 ^ s2204;+  const SWord32 s2206 = (s2202 >> 25) | (s2202 << 7);+  const SWord32 s2207 = s2205 ^ s2206;+  const SWord32 s2208 = s2063 + s2207;+  const SWord32 s2209 = s2174 & s2202;+  const SWord32 s2210 = ~s2202;+  const SWord32 s2211 = s2146 & s2210;+  const SWord32 s2212 = s2209 ^ s2211;+  const SWord32 s2213 = s2208 + s2212;+  const SWord32 s2215 = s2213 + 0x84c87814UL;+  const SWord32 s2216 = (s2172 >> 17) | (s2172 << 15);+  const SWord32 s2217 = (s2172 >> 19) | (s2172 << 13);+  const SWord32 s2218 = s2216 ^ s2217;+  const SWord32 s2219 = s2172 >> 10;+  const SWord32 s2220 = s2218 ^ s2219;+  const SWord32 s2221 = s1944 + s2220;+  const SWord32 s2222 = (s1632 >> 7) | (s1632 << 25);+  const SWord32 s2223 = (s1632 >> 18) | (s1632 << 14);+  const SWord32 s2224 = s2222 ^ s2223;+  const SWord32 s2225 = s1632 >> 3;+  const SWord32 s2226 = s2224 ^ s2225;+  const SWord32 s2227 = s2221 + s2226;+  const SWord32 s2228 = s1604 + s2227;+  const SWord32 s2229 = s2215 + s2228;+  const SWord32 s2230 = s2134 + s2229;+  const SWord32 s2231 = (s2230 >> 6) | (s2230 << 26);+  const SWord32 s2232 = (s2230 >> 11) | (s2230 << 21);+  const SWord32 s2233 = s2231 ^ s2232;+  const SWord32 s2234 = (s2230 >> 25) | (s2230 << 7);+  const SWord32 s2235 = s2233 ^ s2234;+  const SWord32 s2236 = s2146 + s2235;+  const SWord32 s2237 = s2202 & s2230;+  const SWord32 s2238 = ~s2230;+  const SWord32 s2239 = s2174 & s2238;+  const SWord32 s2240 = s2237 ^ s2239;+  const SWord32 s2241 = s2236 + s2240;+  const SWord32 s2243 = s2241 + 0x8cc70208UL;+  const SWord32 s2244 = (s2200 >> 17) | (s2200 << 15);+  const SWord32 s2245 = (s2200 >> 19) | (s2200 << 13);+  const SWord32 s2246 = s2244 ^ s2245;+  const SWord32 s2247 = s2200 >> 10;+  const SWord32 s2248 = s2246 ^ s2247;+  const SWord32 s2249 = s2005 + s2248;+  const SWord32 s2250 = (s1693 >> 7) | (s1693 << 25);+  const SWord32 s2251 = (s1693 >> 18) | (s1693 << 14);+  const SWord32 s2252 = s2250 ^ s2251;+  const SWord32 s2253 = s1693 >> 3;+  const SWord32 s2254 = s2252 ^ s2253;+  const SWord32 s2255 = s2249 + s2254;+  const SWord32 s2256 = s1632 + s2255;+  const SWord32 s2257 = s2243 + s2256;+  const SWord32 s2258 = s2145 + s2257;+  const SWord32 s2259 = (s2145 >> 2) | (s2145 << 30);+  const SWord32 s2260 = (s2145 >> 13) | (s2145 << 19);+  const SWord32 s2261 = s2259 ^ s2260;+  const SWord32 s2262 = (s2145 >> 22) | (s2145 << 10);+  const SWord32 s2263 = s2261 ^ s2262;+  const SWord32 s2264 = s2134 & s2145;+  const SWord32 s2265 = s2123 & s2145;+  const SWord32 s2266 = s2264 ^ s2265;+  const SWord32 s2267 = s2140 ^ s2266;+  const SWord32 s2268 = s2263 + s2267;+  const SWord32 s2269 = s2173 + s2268;+  const SWord32 s2270 = (s2269 >> 2) | (s2269 << 30);+  const SWord32 s2271 = (s2269 >> 13) | (s2269 << 19);+  const SWord32 s2272 = s2270 ^ s2271;+  const SWord32 s2273 = (s2269 >> 22) | (s2269 << 10);+  const SWord32 s2274 = s2272 ^ s2273;+  const SWord32 s2275 = s2145 & s2269;+  const SWord32 s2276 = s2134 & s2269;+  const SWord32 s2277 = s2275 ^ s2276;+  const SWord32 s2278 = s2264 ^ s2277;+  const SWord32 s2279 = s2274 + s2278;+  const SWord32 s2280 = s2201 + s2279;+  const SWord32 s2281 = (s2280 >> 2) | (s2280 << 30);+  const SWord32 s2282 = (s2280 >> 13) | (s2280 << 19);+  const SWord32 s2283 = s2281 ^ s2282;+  const SWord32 s2284 = (s2280 >> 22) | (s2280 << 10);+  const SWord32 s2285 = s2283 ^ s2284;+  const SWord32 s2286 = s2269 & s2280;+  const SWord32 s2287 = s2145 & s2280;+  const SWord32 s2288 = s2286 ^ s2287;+  const SWord32 s2289 = s2275 ^ s2288;+  const SWord32 s2290 = s2285 + s2289;+  const SWord32 s2291 = s2229 + s2290;+  const SWord32 s2292 = (s2258 >> 6) | (s2258 << 26);+  const SWord32 s2293 = (s2258 >> 11) | (s2258 << 21);+  const SWord32 s2294 = s2292 ^ s2293;+  const SWord32 s2295 = (s2258 >> 25) | (s2258 << 7);+  const SWord32 s2296 = s2294 ^ s2295;+  const SWord32 s2297 = s2174 + s2296;+  const SWord32 s2298 = s2230 & s2258;+  const SWord32 s2299 = ~s2258;+  const SWord32 s2300 = s2202 & s2299;+  const SWord32 s2301 = s2298 ^ s2300;+  const SWord32 s2302 = s2297 + s2301;+  const SWord32 s2304 = s2302 + 0x90befffaUL;+  const SWord32 s2305 = (s2228 >> 17) | (s2228 << 15);+  const SWord32 s2306 = (s2228 >> 19) | (s2228 << 13);+  const SWord32 s2307 = s2305 ^ s2306;+  const SWord32 s2308 = s2228 >> 10;+  const SWord32 s2309 = s2307 ^ s2308;+  const SWord32 s2310 = s2033 + s2309;+  const SWord32 s2311 = (s1721 >> 7) | (s1721 << 25);+  const SWord32 s2312 = (s1721 >> 18) | (s1721 << 14);+  const SWord32 s2313 = s2311 ^ s2312;+  const SWord32 s2314 = s1721 >> 3;+  const SWord32 s2315 = s2313 ^ s2314;+  const SWord32 s2316 = s2310 + s2315;+  const SWord32 s2317 = s1693 + s2316;+  const SWord32 s2318 = s2304 + s2317;+  const SWord32 s2319 = s2269 + s2318;+  const SWord32 s2320 = (s2319 >> 6) | (s2319 << 26);+  const SWord32 s2321 = (s2319 >> 11) | (s2319 << 21);+  const SWord32 s2322 = s2320 ^ s2321;+  const SWord32 s2323 = (s2319 >> 25) | (s2319 << 7);+  const SWord32 s2324 = s2322 ^ s2323;+  const SWord32 s2325 = s2202 + s2324;+  const SWord32 s2326 = s2258 & s2319;+  const SWord32 s2327 = ~s2319;+  const SWord32 s2328 = s2230 & s2327;+  const SWord32 s2329 = s2326 ^ s2328;+  const SWord32 s2330 = s2325 + s2329;+  const SWord32 s2332 = s2330 + 0xa4506cebUL;+  const SWord32 s2333 = (s2256 >> 17) | (s2256 << 15);+  const SWord32 s2334 = (s2256 >> 19) | (s2256 << 13);+  const SWord32 s2335 = s2333 ^ s2334;+  const SWord32 s2336 = s2256 >> 10;+  const SWord32 s2337 = s2335 ^ s2336;+  const SWord32 s2338 = s2061 + s2337;+  const SWord32 s2339 = (s1749 >> 7) | (s1749 << 25);+  const SWord32 s2340 = (s1749 >> 18) | (s1749 << 14);+  const SWord32 s2341 = s2339 ^ s2340;+  const SWord32 s2342 = s1749 >> 3;+  const SWord32 s2343 = s2341 ^ s2342;+  const SWord32 s2344 = s2338 + s2343;+  const SWord32 s2345 = s1721 + s2344;+  const SWord32 s2346 = s2332 + s2345;+  const SWord32 s2347 = s2280 + s2346;+  const SWord32 s2348 = (s2347 >> 6) | (s2347 << 26);+  const SWord32 s2349 = (s2347 >> 11) | (s2347 << 21);+  const SWord32 s2350 = s2348 ^ s2349;+  const SWord32 s2351 = (s2347 >> 25) | (s2347 << 7);+  const SWord32 s2352 = s2350 ^ s2351;+  const SWord32 s2353 = s2230 + s2352;+  const SWord32 s2354 = s2319 & s2347;+  const SWord32 s2355 = ~s2347;+  const SWord32 s2356 = s2258 & s2355;+  const SWord32 s2357 = s2354 ^ s2356;+  const SWord32 s2358 = s2353 + s2357;+  const SWord32 s2360 = s2358 + 0xbef9a3f7UL;+  const SWord32 s2361 = (s2317 >> 17) | (s2317 << 15);+  const SWord32 s2362 = (s2317 >> 19) | (s2317 << 13);+  const SWord32 s2363 = s2361 ^ s2362;+  const SWord32 s2364 = s2317 >> 10;+  const SWord32 s2365 = s2363 ^ s2364;+  const SWord32 s2366 = s2089 + s2365;+  const SWord32 s2367 = (s1777 >> 7) | (s1777 << 25);+  const SWord32 s2368 = (s1777 >> 18) | (s1777 << 14);+  const SWord32 s2369 = s2367 ^ s2368;+  const SWord32 s2370 = s1777 >> 3;+  const SWord32 s2371 = s2369 ^ s2370;+  const SWord32 s2372 = s2366 + s2371;+  const SWord32 s2373 = s1749 + s2372;+  const SWord32 s2374 = s2360 + s2373;+  const SWord32 s2375 = s2291 + s2374;+  const SWord32 s2376 = (s2375 >> 6) | (s2375 << 26);+  const SWord32 s2377 = (s2375 >> 11) | (s2375 << 21);+  const SWord32 s2378 = s2376 ^ s2377;+  const SWord32 s2379 = (s2375 >> 25) | (s2375 << 7);+  const SWord32 s2380 = s2378 ^ s2379;+  const SWord32 s2381 = s2258 + s2380;+  const SWord32 s2382 = s2347 & s2375;+  const SWord32 s2383 = ~s2375;+  const SWord32 s2384 = s2319 & s2383;+  const SWord32 s2385 = s2382 ^ s2384;+  const SWord32 s2386 = s2381 + s2385;+  const SWord32 s2388 = s2386 + 0xc67178f2UL;+  const SWord32 s2389 = (s2345 >> 17) | (s2345 << 15);+  const SWord32 s2390 = (s2345 >> 19) | (s2345 << 13);+  const SWord32 s2391 = s2389 ^ s2390;+  const SWord32 s2392 = s2345 >> 10;+  const SWord32 s2393 = s2391 ^ s2392;+  const SWord32 s2394 = s2172 + s2393;+  const SWord32 s2395 = (s1860 >> 7) | (s1860 << 25);+  const SWord32 s2396 = (s1860 >> 18) | (s1860 << 14);+  const SWord32 s2397 = s2395 ^ s2396;+  const SWord32 s2398 = s1860 >> 3;+  const SWord32 s2399 = s2397 ^ s2398;+  const SWord32 s2400 = s2394 + s2399;+  const SWord32 s2401 = s1777 + s2400;+  const SWord32 s2402 = s2388 + s2401;+  const SWord32 s2403 = (s2291 >> 2) | (s2291 << 30);+  const SWord32 s2404 = (s2291 >> 13) | (s2291 << 19);+  const SWord32 s2405 = s2403 ^ s2404;+  const SWord32 s2406 = (s2291 >> 22) | (s2291 << 10);+  const SWord32 s2407 = s2405 ^ s2406;+  const SWord32 s2408 = s2280 & s2291;+  const SWord32 s2409 = s2269 & s2291;+  const SWord32 s2410 = s2408 ^ s2409;+  const SWord32 s2411 = s2286 ^ s2410;+  const SWord32 s2412 = s2407 + s2411;+  const SWord32 s2413 = s2257 + s2412;+  const SWord32 s2414 = (s2413 >> 2) | (s2413 << 30);+  const SWord32 s2415 = (s2413 >> 13) | (s2413 << 19);+  const SWord32 s2416 = s2414 ^ s2415;+  const SWord32 s2417 = (s2413 >> 22) | (s2413 << 10);+  const SWord32 s2418 = s2416 ^ s2417;+  const SWord32 s2419 = s2291 & s2413;+  const SWord32 s2420 = s2280 & s2413;+  const SWord32 s2421 = s2419 ^ s2420;+  const SWord32 s2422 = s2408 ^ s2421;+  const SWord32 s2423 = s2418 + s2422;+  const SWord32 s2424 = s2318 + s2423;+  const SWord32 s2425 = (s2424 >> 2) | (s2424 << 30);+  const SWord32 s2426 = (s2424 >> 13) | (s2424 << 19);+  const SWord32 s2427 = s2425 ^ s2426;+  const SWord32 s2428 = (s2424 >> 22) | (s2424 << 10);+  const SWord32 s2429 = s2427 ^ s2428;+  const SWord32 s2430 = s2413 & s2424;+  const SWord32 s2431 = s2291 & s2424;+  const SWord32 s2432 = s2430 ^ s2431;+  const SWord32 s2433 = s2419 ^ s2432;+  const SWord32 s2434 = s2429 + s2433;+  const SWord32 s2435 = s2346 + s2434;+  const SWord32 s2436 = (s2435 >> 2) | (s2435 << 30);+  const SWord32 s2437 = (s2435 >> 13) | (s2435 << 19);+  const SWord32 s2438 = s2436 ^ s2437;+  const SWord32 s2439 = (s2435 >> 22) | (s2435 << 10);+  const SWord32 s2440 = s2438 ^ s2439;+  const SWord32 s2441 = s2424 & s2435;+  const SWord32 s2442 = s2413 & s2435;+  const SWord32 s2443 = s2441 ^ s2442;+  const SWord32 s2444 = s2430 ^ s2443;+  const SWord32 s2445 = s2440 + s2444;+  const SWord32 s2446 = s2374 + s2445;+  const SWord32 s2447 = (s2446 >> 2) | (s2446 << 30);+  const SWord32 s2448 = (s2446 >> 13) | (s2446 << 19);+  const SWord32 s2449 = s2447 ^ s2448;+  const SWord32 s2450 = (s2446 >> 22) | (s2446 << 10);+  const SWord32 s2451 = s2449 ^ s2450;+  const SWord32 s2452 = s2435 & s2446;+  const SWord32 s2453 = s2424 & s2446;+  const SWord32 s2454 = s2452 ^ s2453;+  const SWord32 s2455 = s2441 ^ s2454;+  const SWord32 s2456 = s2451 + s2455;+  const SWord32 s2457 = s2402 + s2456;+  const SWord32 s2458 = s98 + s2457;+  const SWord8  s2459 = (SWord8) (s2458 >> 24);+  const SWord8  s2460 = (SWord8) (s2458 >> 16);+  const SWord8  s2461 = (SWord8) (s2458 >> 8);+  const SWord8  s2462 = (SWord8) s2458;+  const SWord32 s2463 = s104 + s2446;+  const SWord8  s2464 = (SWord8) (s2463 >> 24);+  const SWord8  s2465 = (SWord8) (s2463 >> 16);+  const SWord8  s2466 = (SWord8) (s2463 >> 8);+  const SWord8  s2467 = (SWord8) s2463;+  const SWord32 s2468 = s110 + s2435;+  const SWord8  s2469 = (SWord8) (s2468 >> 24);+  const SWord8  s2470 = (SWord8) (s2468 >> 16);+  const SWord8  s2471 = (SWord8) (s2468 >> 8);+  const SWord8  s2472 = (SWord8) s2468;+  const SWord32 s2473 = s116 + s2424;+  const SWord8  s2474 = (SWord8) (s2473 >> 24);+  const SWord8  s2475 = (SWord8) (s2473 >> 16);+  const SWord8  s2476 = (SWord8) (s2473 >> 8);+  const SWord8  s2477 = (SWord8) s2473;+  const SWord32 s2478 = s2402 + s2413;+  const SWord32 s2479 = s101 + s2478;+  const SWord8  s2480 = (SWord8) (s2479 >> 24);+  const SWord8  s2481 = (SWord8) (s2479 >> 16);+  const SWord8  s2482 = (SWord8) (s2479 >> 8);+  const SWord8  s2483 = (SWord8) s2479;+  const SWord32 s2484 = s107 + s2375;+  const SWord8  s2485 = (SWord8) (s2484 >> 24);+  const SWord8  s2486 = (SWord8) (s2484 >> 16);+  const SWord8  s2487 = (SWord8) (s2484 >> 8);+  const SWord8  s2488 = (SWord8) s2484;+  const SWord32 s2489 = s113 + s2347;+  const SWord8  s2490 = (SWord8) (s2489 >> 24);+  const SWord8  s2491 = (SWord8) (s2489 >> 16);+  const SWord8  s2492 = (SWord8) (s2489 >> 8);+  const SWord8  s2493 = (SWord8) s2489;+  const SWord32 s2494 = s119 + s2319;+  const SWord8  s2495 = (SWord8) (s2494 >> 24);+  const SWord8  s2496 = (SWord8) (s2494 >> 16);+  const SWord8  s2497 = (SWord8) (s2494 >> 8);+  const SWord8  s2498 = (SWord8) s2494;++  hash[0] = s2459;+  hash[1] = s2460;+  hash[2] = s2461;+  hash[3] = s2462;+  hash[4] = s2464;+  hash[5] = s2465;+  hash[6] = s2466;+  hash[7] = s2467;+  hash[8] = s2469;+  hash[9] = s2470;+  hash[10] = s2471;+  hash[11] = s2472;+  hash[12] = s2474;+  hash[13] = s2475;+  hash[14] = s2476;+  hash[15] = s2477;+  hash[16] = s2480;+  hash[17] = s2481;+  hash[18] = s2482;+  hash[19] = s2483;+  hash[20] = s2485;+  hash[21] = s2486;+  hash[22] = s2487;+  hash[23] = s2488;+  hash[24] = s2490;+  hash[25] = s2491;+  hash[26] = s2492;+  hash[27] = s2493;+  hash[28] = s2495;+  hash[29] = s2496;+  hash[30] = s2497;+  hash[31] = s2498;+}+== END: "sha256HashBlock.c" ==================
SBVTestSuite/GoldFiles/sort.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumBimapPlus.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumEitherSat.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumLiftEither.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumLiftMaybe.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumMaybe.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumMaybeBoth.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumMergeEither1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumMergeEither2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumMergeMaybe1.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/sumMergeMaybe2.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/tuple_enum.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] (declare-datatypes ((E 0)) (((A) (B) (C))))@@ -58,6 +59,7 @@ [GOOD] (assert s23) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (declare-datatypes ((SBVTuple3 3)) ((par (T1 T2 T3)                                            ((mkSBVTuple3 (proj_1_SBVTuple3 T1)                                                          (proj_2_SBVTuple3 T2)
SBVTestSuite/GoldFiles/tuple_list.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/tuple_nested.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/tuple_swap.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
SBVTestSuite/GoldFiles/tuple_twoTwo.gold view
@@ -7,6 +7,7 @@ [GOOD] (set-option :produce-models true) [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) [GOOD] (set-logic ALL) ; has unbounded values, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples ---
+ SBVTestSuite/GoldFiles/tuple_unequal.gold view
@@ -0,0 +1,49 @@+** Calling: z3 -nw -in -smt2+[GOOD] ; Automatically generated by SBV. Do not edit.+[GOOD] (set-option :print-success true)+[GOOD] (set-option :global-declarations true)+[GOOD] (set-option :smtlib2_compliant true)+[GOOD] (set-option :diagnostic-output-channel "stdout")+[GOOD] (set-option :produce-models true)+[GOOD] (set-option :pp.max_depth      4294967295)+[GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      )+[GOOD] (set-logic ALL) ; has unbounded values, using catch-all.+[GOOD] ; --- uninterpreted sorts ---+[GOOD] ; --- tuples ---+[GOOD] (declare-datatypes ((SBVTuple2 2)) ((par (T1 T2)+                                           ((mkSBVTuple2 (proj_1_SBVTuple2 T1)+                                                         (proj_2_SBVTuple2 T2))))))+[GOOD] ; --- sums ---+[GOOD] ; --- literal constants ---+[GOOD] ; --- skolem constants ---+[GOOD] (declare-fun s0 () (SBVTuple2 Int Int))+[GOOD] (declare-fun s1 () (SBVTuple2 Int Int))+[GOOD] ; --- constant tables ---+[GOOD] ; --- skolemized tables ---+[GOOD] ; --- arrays ---+[GOOD] ; --- uninterpreted constants ---+[GOOD] ; --- user given axioms ---+[GOOD] ; --- formula ---+[GOOD] (define-fun s2 () Int (proj_1_SBVTuple2 s0))+[GOOD] (define-fun s3 () Int (proj_1_SBVTuple2 s1))+[GOOD] (define-fun s4 () Bool (< s2 s3))+[GOOD] (define-fun s5 () Bool (= s2 s3))+[GOOD] (define-fun s6 () Int (proj_2_SBVTuple2 s0))+[GOOD] (define-fun s7 () Int (proj_2_SBVTuple2 s1))+[GOOD] (define-fun s8 () Bool (< s6 s7))+[GOOD] (define-fun s9 () Bool (and s5 s8))+[GOOD] (define-fun s10 () Bool (or s4 s9))+[GOOD] (define-fun s11 () Bool (< s3 s2))+[GOOD] (define-fun s12 () Bool (< s7 s6))+[GOOD] (define-fun s13 () Bool (and s5 s12))+[GOOD] (define-fun s14 () Bool (or s11 s13))+[GOOD] (assert s10)+[GOOD] (assert s14)+[SEND] (check-sat)+[RECV] unsat+*** Solver   : Z3+*** Exit code: ExitSuccess++ FINAL: ()+DONE!
SBVTestSuite/GoldFiles/uiSat_test1.gold view
@@ -22,11 +22,12 @@ *** Checking Satisfiability, all solutions.. [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) Looking for solution 1 [SEND] (check-sat) [RECV] sat [SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))+[RECV] ((q1 (_ as-array q1))) [GOOD] (define-fun q1_model1 ((x!0 Bool)) Bool           false        )@@ -54,7 +55,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))+[RECV] ((q1 (store ((as const Array) true) true false))) [GOOD] (define-fun q1_model3 ((x!0 Bool)) Bool           (ite (and (= x!0 true)) false           true)
SBVTestSuite/GoldFiles/uiSat_test2.gold view
@@ -22,11 +22,12 @@ *** Checking Satisfiability, all solutions.. [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)+[GOOD] (set-option :model.inline_def  true      ) Looking for solution 1 [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))+[RECV] ((q2 (_ as-array q2))) [GOOD] (define-fun q2_model1 ((x!0 Bool) (x!1 Bool)) Bool           false        )@@ -54,7 +55,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) (not x!2))))))+[RECV] ((q2 (store ((as const Array) true) false false false))) [GOOD] (define-fun q2_model3 ((x!0 Bool) (x!1 Bool)) Bool           (ite (and (= x!0 false) (= x!1 false)) false           true)@@ -69,7 +70,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1)))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))@@ -92,7 +93,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1)))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))@@ -115,7 +116,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 (not x!2)) (and x!1 x!2)))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1)))))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))@@ -139,7 +140,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1))))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))@@ -162,7 +163,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!1) x!2) (and x!1 (not x!2))))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!2) x!1) (and x!2 (not x!1)))))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))@@ -186,7 +187,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!1) x!2) (and x!1 x!2)))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1))))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) false)) [SEND] (get-value ((q2 false true)))@@ -210,7 +211,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1))))) [SEND] (get-value ((q2 false false))) [RECV] (((q2 false false) true)) [SEND] (get-value ((q2 false true)))@@ -233,7 +234,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) x!2)))))+[RECV] ((q2 (store ((as const Array) true) false true false))) [GOOD] (define-fun q2_model11 ((x!0 Bool) (x!1 Bool)) Bool           (ite (and (= x!0 false) (= x!1 true)) false           true)@@ -248,20 +249,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 (not x!2))) (not (and (not x!1) x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))+[RECV] ((q2 (store (store ((as const Array) true) false true false) true false false))) [GOOD] (define-fun q2_model12 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))+          (ite (and (= x!0 true) (= x!1 false)) false+          (ite (and (= x!0 false) (= x!1 true)) false+          true))        ) [GOOD] (define-fun q2_model12_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -273,20 +265,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and x!1 (not x!2)) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false))) [GOOD] (define-fun q2_model13 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))+          (ite (and (= x!0 true) (= x!1 true)) false+          (ite (and (= x!0 false) (= x!1 true)) false+          true))        ) [GOOD] (define-fun q2_model13_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -298,20 +281,10 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 (not x!2))) (not (and x!1 x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))+[RECV] ((q2 (store ((as const Array) true) true true false))) [GOOD] (define-fun q2_model14 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))+          (ite (and (= x!0 true) (= x!1 true)) false+          true)        ) [GOOD] (define-fun q2_model14_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -323,7 +296,7 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 (not x!2))))))+[RECV] ((q2 (store ((as const Array) true) true false false))) [GOOD] (define-fun q2_model15 ((x!0 Bool) (x!1 Bool)) Bool           (ite (and (= x!0 true) (= x!1 false)) false           true)@@ -338,10 +311,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 x!2)))))+[RECV] ((q2 (store (store ((as const Array) true) true false false) true true false))) [GOOD] (define-fun q2_model16 ((x!0 Bool) (x!1 Bool)) Bool           (ite (and (= x!0 true) (= x!1 true)) false-          true)+          (ite (and (= x!0 true) (= x!1 false)) false+          true))        ) [GOOD] (define-fun q2_model16_reject () Bool           (exists ((x!0 Bool) (x!1 Bool))@@ -402,25 +376,25 @@   q2 _     _    = True  Solution #12:   q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False+  q2 True  False = False+  q2 False True  = False+  q2 _     _     = True  Solution #13:   q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False+  q2 True  True = False+  q2 False True = False+  q2 _     _    = True  Solution #14:   q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False+  q2 True True = False+  q2 _    _    = True  Solution #15:   q2 :: Bool -> Bool -> Bool   q2 True False = False   q2 _    _     = True  Solution #16:   q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True +  q2 True True  = False+  q2 True False = False+  q2 _    _     = True  Found 16 different solutions.
SBVTestSuite/GoldFiles/uiSat_test3.gold view
@@ -24,2612 +24,2540 @@ *** Checking Satisfiability, all solutions.. [GOOD] (set-option :pp.max_depth      4294967295) [GOOD] (set-option :pp.min_alias_size 4294967295)-Looking for solution 1-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model1 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model1_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model1 x!0))))-[GOOD] (define-fun q2_model1 ((x!0 Bool) (x!1 Bool)) Bool-          false-       )-[GOOD] (define-fun q2_model1_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model1 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_1 () Bool -               (or q1_model1_reject-                   q2_model1_reject-               ))-[GOOD] (assert uiFunRejector_model_1)-Looking for solution 2-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model2 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model2_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model2 x!0))))-[GOOD] (define-fun q2_model2 ((x!0 Bool) (x!1 Bool)) Bool-          false-       )-[GOOD] (define-fun q2_model2_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model2 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_2 () Bool -               (or q1_model2_reject-                   q2_model2_reject-               ))-[GOOD] (assert uiFunRejector_model_2)-Looking for solution 3-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model3 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model3_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model3 x!0))))-[GOOD] (define-fun q2_model3 ((x!0 Bool) (x!1 Bool)) Bool-          true-       )-[GOOD] (define-fun q2_model3_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model3 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_3 () Bool -               (or q1_model3_reject-                   q2_model3_reject-               ))-[GOOD] (assert uiFunRejector_model_3)-Looking for solution 4-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 (not x!2))))))-[GOOD] (define-fun q1_model4 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model4_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model4 x!0))))-[GOOD] (define-fun q2_model4 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model4_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model4 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_4 () Bool -               (or q1_model4_reject-                   q2_model4_reject-               ))-[GOOD] (assert uiFunRejector_model_4)-Looking for solution 5-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 (not x!2))))))-[GOOD] (define-fun q1_model5 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model5_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model5 x!0))))-[GOOD] (define-fun q2_model5 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model5_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model5 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_5 () Bool -               (or q1_model5_reject-                   q2_model5_reject-               ))-[GOOD] (assert uiFunRejector_model_5)-Looking for solution 6-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model6 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model6_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model6 x!0))))-[GOOD] (define-fun q2_model6 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model6_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model6 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_6 () Bool -               (or q1_model6_reject-                   q2_model6_reject-               ))-[GOOD] (assert uiFunRejector_model_6)-Looking for solution 7-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model7 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model7_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model7 x!0))))-[GOOD] (define-fun q2_model7 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model7_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model7 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_7 () Bool -               (or q1_model7_reject-                   q2_model7_reject-               ))-[GOOD] (assert uiFunRejector_model_7)-Looking for solution 8-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) x!2)))))-[GOOD] (define-fun q1_model8 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model8_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model8 x!0))))-[GOOD] (define-fun q2_model8 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model8_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model8 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_8 () Bool -               (or q1_model8_reject-                   q2_model8_reject-               ))-[GOOD] (assert uiFunRejector_model_8)-Looking for solution 9-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) x!2)))))-[GOOD] (define-fun q1_model9 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model9_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1        x!0)-                            (q1_model9 x!0))))-[GOOD] (define-fun q2_model9 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model9_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2        x!0 x!1)-                            (q2_model9 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_9 () Bool -               (or q1_model9_reject-                   q2_model9_reject-               ))-[GOOD] (assert uiFunRejector_model_9)-Looking for solution 10-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and (not x!1) x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model10 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model10_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model10 x!0))))-[GOOD] (define-fun q2_model10 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model10_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model10 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_10 () Bool -               (or q1_model10_reject-                   q2_model10_reject-               ))-[GOOD] (assert uiFunRejector_model_10)-Looking for solution 11-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and (not x!1) x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model11 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model11_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model11 x!0))))-[GOOD] (define-fun q2_model11 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model11_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model11 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_11 () Bool -               (or q1_model11_reject-                   q2_model11_reject-               ))-[GOOD] (assert uiFunRejector_model_11)-Looking for solution 12-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and (not x!1) x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model12 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model12_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model12 x!0))))-[GOOD] (define-fun q2_model12 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model12_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model12 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_12 () Bool -               (or q1_model12_reject-                   q2_model12_reject-               ))-[GOOD] (assert uiFunRejector_model_12)-Looking for solution 13-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and (not x!1) x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model13 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model13_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model13 x!0))))-[GOOD] (define-fun q2_model13 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model13_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model13 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_13 () Bool -               (or q1_model13_reject-                   q2_model13_reject-               ))-[GOOD] (assert uiFunRejector_model_13)-Looking for solution 14-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) x!2)))))-[GOOD] (define-fun q1_model14 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model14_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model14 x!0))))-[GOOD] (define-fun q2_model14 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model14_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model14 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_14 () Bool -               (or q1_model14_reject-                   q2_model14_reject-               ))-[GOOD] (assert uiFunRejector_model_14)-Looking for solution 15-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) x!2)))))-[GOOD] (define-fun q1_model15 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model15_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model15 x!0))))-[GOOD] (define-fun q2_model15 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model15_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model15 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_15 () Bool -               (or q1_model15_reject-                   q2_model15_reject-               ))-[GOOD] (assert uiFunRejector_model_15)-Looking for solution 16-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 x!2)))))-[GOOD] (define-fun q1_model16 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model16_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model16 x!0))))-[GOOD] (define-fun q2_model16 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model16_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model16 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_16 () Bool -               (or q1_model16_reject-                   q2_model16_reject-               ))-[GOOD] (assert uiFunRejector_model_16)-Looking for solution 17-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 x!2)))))-[GOOD] (define-fun q1_model17 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model17_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model17 x!0))))-[GOOD] (define-fun q2_model17 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model17_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model17 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_17 () Bool -               (or q1_model17_reject-                   q2_model17_reject-               ))-[GOOD] (assert uiFunRejector_model_17)-Looking for solution 18-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model18 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model18_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model18 x!0))))-[GOOD] (define-fun q2_model18 ((x!0 Bool) (x!1 Bool)) Bool-          true-       )-[GOOD] (define-fun q2_model18_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model18 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_18 () Bool -               (or q1_model18_reject-                   q2_model18_reject-               ))-[GOOD] (assert uiFunRejector_model_18)-Looking for solution 19-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model19 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model19_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model19 x!0))))-[GOOD] (define-fun q2_model19 ((x!0 Bool) (x!1 Bool)) Bool-          true-       )-[GOOD] (define-fun q2_model19_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model19 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_19 () Bool -               (or q1_model19_reject-                   q2_model19_reject-               ))-[GOOD] (assert uiFunRejector_model_19)-Looking for solution 20-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) true)))-[GOOD] (define-fun q1_model20 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model20_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model20 x!0))))-[GOOD] (define-fun q2_model20 ((x!0 Bool) (x!1 Bool)) Bool-          true-       )-[GOOD] (define-fun q2_model20_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model20 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_20 () Bool -               (or q1_model20_reject-                   q2_model20_reject-               ))-[GOOD] (assert uiFunRejector_model_20)-Looking for solution 21-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 x!2)))))-[GOOD] (define-fun q1_model21 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model21_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model21 x!0))))-[GOOD] (define-fun q2_model21 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model21_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model21 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_21 () Bool -               (or q1_model21_reject-                   q2_model21_reject-               ))-[GOOD] (assert uiFunRejector_model_21)-Looking for solution 22-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 x!2)))))-[GOOD] (define-fun q1_model22 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model22_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model22 x!0))))-[GOOD] (define-fun q2_model22 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) false-          true)-       )-[GOOD] (define-fun q2_model22_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model22 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_22 () Bool -               (or q1_model22_reject-                   q2_model22_reject-               ))-[GOOD] (assert uiFunRejector_model_22)-Looking for solution 23-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) (not x!2))))))-[GOOD] (define-fun q1_model23 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model23_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model23 x!0))))-[GOOD] (define-fun q2_model23 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model23_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model23 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_23 () Bool -               (or q1_model23_reject-                   q2_model23_reject-               ))-[GOOD] (assert uiFunRejector_model_23)-Looking for solution 24-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model24 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model24_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model24 x!0))))-[GOOD] (define-fun q2_model24 ((x!0 Bool) (x!1 Bool)) Bool-          false-       )-[GOOD] (define-fun q2_model24_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model24 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_24 () Bool -               (or q1_model24_reject-                   q2_model24_reject-               ))-[GOOD] (assert uiFunRejector_model_24)-Looking for solution 25-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model25 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model25_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model25 x!0))))-[GOOD] (define-fun q2_model25 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model25_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model25 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_25 () Bool -               (or q1_model25_reject-                   q2_model25_reject-               ))-[GOOD] (assert uiFunRejector_model_25)-Looking for solution 26-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) (not x!2))))))-[GOOD] (define-fun q1_model26 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model26_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model26 x!0))))-[GOOD] (define-fun q2_model26 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model26_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model26 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_26 () Bool -               (or q1_model26_reject-                   q2_model26_reject-               ))-[GOOD] (assert uiFunRejector_model_26)-Looking for solution 27-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and (not x!1) x!2)) (not (and (not x!1) (not x!2)))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model27 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model27_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model27 x!0))))-[GOOD] (define-fun q2_model27 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model27_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model27 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_27 () Bool -               (or q1_model27_reject-                   q2_model27_reject-               ))-[GOOD] (assert uiFunRejector_model_27)-Looking for solution 28-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model28 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model28_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model28 x!0))))-[GOOD] (define-fun q2_model28 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model28_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model28 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_28 () Bool -               (or q1_model28_reject-                   q2_model28_reject-               ))-[GOOD] (assert uiFunRejector_model_28)-Looking for solution 29-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model29 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model29_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model29 x!0))))-[GOOD] (define-fun q2_model29 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model29_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model29 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_29 () Bool -               (or q1_model29_reject-                   q2_model29_reject-               ))-[GOOD] (assert uiFunRejector_model_29)-Looking for solution 30-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model30 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model30_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model30 x!0))))-[GOOD] (define-fun q2_model30 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model30_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model30 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_30 () Bool -               (or q1_model30_reject-                   q2_model30_reject-               ))-[GOOD] (assert uiFunRejector_model_30)-Looking for solution 31-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model31 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model31_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model31 x!0))))-[GOOD] (define-fun q2_model31 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model31_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model31 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_31 () Bool -               (or q1_model31_reject-                   q2_model31_reject-               ))-[GOOD] (assert uiFunRejector_model_31)-Looking for solution 32-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model32 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model32_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model32 x!0))))-[GOOD] (define-fun q2_model32 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model32_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model32 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_32 () Bool -               (or q1_model32_reject-                   q2_model32_reject-               ))-[GOOD] (assert uiFunRejector_model_32)-Looking for solution 33-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 (not x!2)) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model33 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model33_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model33 x!0))))-[GOOD] (define-fun q2_model33 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model33_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model33 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_33 () Bool -               (or q1_model33_reject-                   q2_model33_reject-               ))-[GOOD] (assert uiFunRejector_model_33)-Looking for solution 34-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model34 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model34_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model34 x!0))))-[GOOD] (define-fun q2_model34 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model34_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model34 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_34 () Bool -               (or q1_model34_reject-                   q2_model34_reject-               ))-[GOOD] (assert uiFunRejector_model_34)-Looking for solution 35-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 (not x!2)) (and x!1 x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model35 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model35_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model35 x!0))))-[GOOD] (define-fun q2_model35 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model35_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model35 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_35 () Bool -               (or q1_model35_reject-                   q2_model35_reject-               ))-[GOOD] (assert uiFunRejector_model_35)-Looking for solution 36-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!1) x!2) (and x!1 x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model36 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model36_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model36 x!0))))-[GOOD] (define-fun q2_model36 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model36_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model36 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_36 () Bool -               (or q1_model36_reject-                   q2_model36_reject-               ))-[GOOD] (assert uiFunRejector_model_36)-Looking for solution 37-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model37 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model37_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model37 x!0))))-[GOOD] (define-fun q2_model37 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model37_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model37 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_37 () Bool -               (or q1_model37_reject-                   q2_model37_reject-               ))-[GOOD] (assert uiFunRejector_model_37)-Looking for solution 38-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) (not x!2))))))-[GOOD] (define-fun q1_model38 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model38_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model38 x!0))))-[GOOD] (define-fun q2_model38 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model38_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model38 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_38 () Bool -               (or q1_model38_reject-                   q2_model38_reject-               ))-[GOOD] (assert uiFunRejector_model_38)-Looking for solution 39-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and (not x!1) (not x!2)))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model39 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model39_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model39 x!0))))-[GOOD] (define-fun q2_model39 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model39_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model39 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_39 () Bool -               (or q1_model39_reject-                   q2_model39_reject-               ))-[GOOD] (assert uiFunRejector_model_39)-Looking for solution 40-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and (not x!1) (not x!2)))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model40 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model40_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model40 x!0))))-[GOOD] (define-fun q2_model40 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model40_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model40 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_40 () Bool -               (or q1_model40_reject-                   q2_model40_reject-               ))-[GOOD] (assert uiFunRejector_model_40)-Looking for solution 41-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and (not x!1) (not x!2))))))-[GOOD] (define-fun q1_model41 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model41_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model41 x!0))))-[GOOD] (define-fun q2_model41 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model41_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model41 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_41 () Bool -               (or q1_model41_reject-                   q2_model41_reject-               ))-[GOOD] (assert uiFunRejector_model_41)-Looking for solution 42-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model42 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model42_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model42 x!0))))-[GOOD] (define-fun q2_model42 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model42_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model42 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_42 () Bool -               (or q1_model42_reject-                   q2_model42_reject-               ))-[GOOD] (assert uiFunRejector_model_42)-Looking for solution 43-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model43 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model43_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model43 x!0))))-[GOOD] (define-fun q2_model43 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model43_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model43 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_43 () Bool -               (or q1_model43_reject-                   q2_model43_reject-               ))-[GOOD] (assert uiFunRejector_model_43)-Looking for solution 44-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 (not x!2))) (not (and (not x!1) (not x!2)))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model44 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model44_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model44 x!0))))-[GOOD] (define-fun q2_model44 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model44_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model44 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_44 () Bool -               (or q1_model44_reject-                   q2_model44_reject-               ))-[GOOD] (assert uiFunRejector_model_44)-Looking for solution 45-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 (not x!2))))))-[GOOD] (define-fun q1_model45 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model45_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model45 x!0))))-[GOOD] (define-fun q2_model45 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model45_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model45 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_45 () Bool -               (or q1_model45_reject-                   q2_model45_reject-               ))-[GOOD] (assert uiFunRejector_model_45)-Looking for solution 46-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (not (and x!1 (not x!2))))))-[GOOD] (define-fun q1_model46 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model46_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model46 x!0))))-[GOOD] (define-fun q2_model46 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) false-          true)-       )-[GOOD] (define-fun q2_model46_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model46 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_46 () Bool -               (or q1_model46_reject-                   q2_model46_reject-               ))-[GOOD] (assert uiFunRejector_model_46)-Looking for solution 47-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and x!1 x!2)) (not (and x!1 (not x!2)))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model47 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model47_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model47 x!0))))-[GOOD] (define-fun q2_model47 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model47_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model47 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_47 () Bool -               (or q1_model47_reject-                   q2_model47_reject-               ))-[GOOD] (assert uiFunRejector_model_47)-Looking for solution 48-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model48 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model48_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model48 x!0))))-[GOOD] (define-fun q2_model48 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model48_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model48 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_48 () Bool -               (or q1_model48_reject-                   q2_model48_reject-               ))-[GOOD] (assert uiFunRejector_model_48)-Looking for solution 49-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model49 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model49_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model49 x!0))))-[GOOD] (define-fun q2_model49 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model49_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model49 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_49 () Bool -               (or q1_model49_reject-                   q2_model49_reject-               ))-[GOOD] (assert uiFunRejector_model_49)-Looking for solution 50-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model50 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model50_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model50 x!0))))-[GOOD] (define-fun q2_model50 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model50_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model50 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_50 () Bool -               (or q1_model50_reject-                   q2_model50_reject-               ))-[GOOD] (assert uiFunRejector_model_50)-Looking for solution 51-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model51 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model51_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model51 x!0))))-[GOOD] (define-fun q2_model51 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model51_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model51 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_51 () Bool -               (or q1_model51_reject-                   q2_model51_reject-               ))-[GOOD] (assert uiFunRejector_model_51)-Looking for solution 52-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and (not x!1) x!2) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model52 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model52_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model52 x!0))))-[GOOD] (define-fun q2_model52 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model52_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model52 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_52 () Bool -               (or q1_model52_reject-                   q2_model52_reject-               ))-[GOOD] (assert uiFunRejector_model_52)-Looking for solution 53-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model53 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model53_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model53 x!0))))-[GOOD] (define-fun q2_model53 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model53_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model53 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_53 () Bool -               (or q1_model53_reject-                   q2_model53_reject-               ))-[GOOD] (assert uiFunRejector_model_53)-Looking for solution 54-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (and (not (and (not x!1) (not x!2))) (not (and x!1 x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model54 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model54_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model54 x!0))))-[GOOD] (define-fun q2_model54 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 true)) true-          (ite (and (= x!0 true) (= x!1 false)) true-          false))-       )-[GOOD] (define-fun q2_model54_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model54 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_54 () Bool -               (or q1_model54_reject-                   q2_model54_reject-               ))-[GOOD] (assert uiFunRejector_model_54)-Looking for solution 55-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 x!2))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model55 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model55_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model55 x!0))))-[GOOD] (define-fun q2_model55 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 true)) true-          false)-       )-[GOOD] (define-fun q2_model55_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model55 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_55 () Bool -               (or q1_model55_reject-                   q2_model55_reject-               ))-[GOOD] (assert uiFunRejector_model_55)-Looking for solution 56-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model56 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model56_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model56 x!0))))-[GOOD] (define-fun q2_model56 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model56_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model56 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_56 () Bool -               (or q1_model56_reject-                   q2_model56_reject-               ))-[GOOD] (assert uiFunRejector_model_56)-Looking for solution 57-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!1 (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model57 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model57_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model57 x!0))))-[GOOD] (define-fun q2_model57 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model57_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model57 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_57 () Bool -               (or q1_model57_reject-                   q2_model57_reject-               ))-[GOOD] (assert uiFunRejector_model_57)-Looking for solution 58-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) true)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model58 ((x!0 Bool)) Bool-          true-       )-[GOOD] (define-fun q1_model58_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model58 x!0))))-[GOOD] (define-fun q2_model58 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model58_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model58 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_58 () Bool -               (or q1_model58_reject-                   q2_model58_reject-               ))-[GOOD] (assert uiFunRejector_model_58)-Looking for solution 59-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and x!1 (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) false))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) true))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model59 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model59_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model59 x!0))))-[GOOD] (define-fun q2_model59 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 true) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model59_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model59 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_59 () Bool -               (or q1_model59_reject-                   q2_model59_reject-               ))-[GOOD] (assert uiFunRejector_model_59)-Looking for solution 60-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))-[SEND] (get-value (q2))-[RECV] ((q2 ((as const Array) false)))-[GOOD] (define-fun q1_model60 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) false-          true)-       )-[GOOD] (define-fun q1_model60_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model60 x!0))))-[GOOD] (define-fun q2_model60 ((x!0 Bool) (x!1 Bool)) Bool-          false-       )-[GOOD] (define-fun q2_model60_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model60 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_60 () Bool -               (or q1_model60_reject-                   q2_model60_reject-               ))-[GOOD] (assert uiFunRejector_model_60)-Looking for solution 61-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!1) (not x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model61 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model61_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model61 x!0))))-[GOOD] (define-fun q2_model61 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          false)-       )-[GOOD] (define-fun q2_model61_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model61 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_61 () Bool -               (or q1_model61_reject-                   q2_model61_reject-               ))-[GOOD] (assert uiFunRejector_model_61)-Looking for solution 62-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and (not x!1) (not x!2)) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model62 ((x!0 Bool)) Bool-          (ite (and (= x!0 true)) true-          false)-       )-[GOOD] (define-fun q1_model62_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model62 x!0))))-[GOOD] (define-fun q2_model62 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model62_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model62 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_62 () Bool -               (or q1_model62_reject-                   q2_model62_reject-               ))-[GOOD] (assert uiFunRejector_model_62)-Looking for solution 63-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))-         (or (and (not x!1) (not x!2)) (and (not x!1) x!2)))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) true))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) false))-[GOOD] (define-fun q1_model63 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model63_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model63 x!0))))-[GOOD] (define-fun q2_model63 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 false) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model63_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model63 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_63 () Bool -               (or q1_model63_reject-                   q2_model63_reject-               ))-[GOOD] (assert uiFunRejector_model_63)-Looking for solution 64-[SEND] (check-sat)-[RECV] sat-[SEND] (get-value (q1))-[RECV] ((q1 ((as const Array) false)))-[SEND] (get-value (q2))-[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!1 x!2) (and (not x!1) (not x!2))))))-[SEND] (get-value ((q2 false false)))-[RECV] (((q2 false false) true))-[SEND] (get-value ((q2 false true)))-[RECV] (((q2 false true) false))-[SEND] (get-value ((q2 true false)))-[RECV] (((q2 true false) false))-[SEND] (get-value ((q2 true true)))-[RECV] (((q2 true true) true))-[GOOD] (define-fun q1_model64 ((x!0 Bool)) Bool-          false-       )-[GOOD] (define-fun q1_model64_reject () Bool-          (exists ((x!0 Bool))-                  (distinct (q1         x!0)-                            (q1_model64 x!0))))-[GOOD] (define-fun q2_model64 ((x!0 Bool) (x!1 Bool)) Bool-          (ite (and (= x!0 false) (= x!1 false)) true-          (ite (and (= x!0 true) (= x!1 true)) true-          false))-       )-[GOOD] (define-fun q2_model64_reject () Bool-          (exists ((x!0 Bool) (x!1 Bool))-                  (distinct (q2         x!0 x!1)-                            (q2_model64 x!0 x!1))))-[GOOD] (define-fun uiFunRejector_model_64 () Bool -               (or q1_model64_reject-                   q2_model64_reject-               ))-[GOOD] (assert uiFunRejector_model_64)-Looking for solution 65-[SEND] (check-sat)-[RECV] unsat-*** Solver   : Z3-*** Exit code: ExitSuccess--RESULT: Solution #1:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #2:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #3:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #4:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #5:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #6:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #7:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False-Solution #8:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #9:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #10:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False-Solution #11:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False-Solution #12:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False-Solution #13:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  False = True -  q2 _     _     = False-Solution #14:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #15:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True = False-  q2 _     _    = True -Solution #16:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #17:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #18:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #19:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #20:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = True-Solution #21:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #22:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True True = False-  q2 _    _    = True -Solution #23:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #24:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #25:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #26:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #27:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #28:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #29:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #30:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #31:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #32:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 True  True = True -  q2 _     _    = False-Solution #33:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True  = True -  q2 True  False = True -  q2 _     _     = False-Solution #34:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #35:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #36:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 True  True = True -  q2 _     _    = False-Solution #37:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #38:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #39:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True  = True -  q2 True  False = True -  q2 _     _     = False-Solution #40:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True  = True -  q2 True  False = True -  q2 _     _     = False-Solution #41:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = False-  q2 _     _     = True -Solution #42:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 _     _    = False-Solution #43:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 True  True = True -  q2 _     _    = False-Solution #44:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False True = True -  q2 True  True = True -  q2 _     _    = False-Solution #45:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #46:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = False-  q2 _    _     = True -Solution #47:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False-Solution #48:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #49:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False-Solution #50:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 True  True  = True -  q2 _     _     = False-Solution #51:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #52:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False-Solution #53:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #54:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False True  = True -  q2 True  False = True -  q2 _     _     = False-Solution #55:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True True = True -  q2 _    _    = False-Solution #56:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #57:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 _    _     = False-Solution #58:-  q1 :: Bool -> Bool-  q1 _ = True--  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #59:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 True False = True -  q2 True True  = True -  q2 _    _     = False-Solution #60:-  q1 :: Bool -> Bool-  q1 True = False-  q1 _    = True --  q2 :: Bool -> Bool -> Bool-  q2 _ _ = False-Solution #61:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 _     _     = False-Solution #62:-  q1 :: Bool -> Bool-  q1 True = True -  q1 _    = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False-Solution #63:-  q1 :: Bool -> Bool-  q1 _ = False--  q2 :: Bool -> Bool -> Bool-  q2 False False = True -  q2 False True  = True -  q2 _     _     = False-Solution #64:-  q1 :: Bool -> Bool-  q1 _ = False+[GOOD] (set-option :model.inline_def  true      )+Looking for solution 1+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (_ as-array q1)))+[SEND] (get-value (q2))+[RECV] ((q2 (_ as-array q2)))+[GOOD] (define-fun q1_model1 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model1_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model1 x!0))))+[GOOD] (define-fun q2_model1 ((x!0 Bool) (x!1 Bool)) Bool+          false+       )+[GOOD] (define-fun q2_model1_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model1 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_1 () Bool +               (or q1_model1_reject+                   q2_model1_reject+               ))+[GOOD] (assert uiFunRejector_model_1)+Looking for solution 2+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (_ as-array q2)))+[GOOD] (define-fun q1_model2 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model2_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model2 x!0))))+[GOOD] (define-fun q2_model2 ((x!0 Bool) (x!1 Bool)) Bool+          false+       )+[GOOD] (define-fun q2_model2_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model2 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_2 () Bool +               (or q1_model2_reject+                   q2_model2_reject+               ))+[GOOD] (assert uiFunRejector_model_2)+Looking for solution 3+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model3 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model3_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model3 x!0))))+[GOOD] (define-fun q2_model3 ((x!0 Bool) (x!1 Bool)) Bool+          true+       )+[GOOD] (define-fun q2_model3_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model3 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_3 () Bool +               (or q1_model3_reject+                   q2_model3_reject+               ))+[GOOD] (assert uiFunRejector_model_3)+Looking for solution 4+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model4 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model4_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model4 x!0))))+[GOOD] (define-fun q2_model4 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model4_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model4 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_4 () Bool +               (or q1_model4_reject+                   q2_model4_reject+               ))+[GOOD] (assert uiFunRejector_model_4)+Looking for solution 5+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model5 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model5_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model5 x!0))))+[GOOD] (define-fun q2_model5 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model5_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model5 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_5 () Bool +               (or q1_model5_reject+                   q2_model5_reject+               ))+[GOOD] (assert uiFunRejector_model_5)+Looking for solution 6+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model6 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model6_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model6 x!0))))+[GOOD] (define-fun q2_model6 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model6_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model6 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_6 () Bool +               (or q1_model6_reject+                   q2_model6_reject+               ))+[GOOD] (assert uiFunRejector_model_6)+Looking for solution 7+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model7 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model7_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model7 x!0))))+[GOOD] (define-fun q2_model7 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model7_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model7 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_7 () Bool +               (or q1_model7_reject+                   q2_model7_reject+               ))+[GOOD] (assert uiFunRejector_model_7)+Looking for solution 8+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model8 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model8_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model8 x!0))))+[GOOD] (define-fun q2_model8 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model8_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model8 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_8 () Bool +               (or q1_model8_reject+                   q2_model8_reject+               ))+[GOOD] (assert uiFunRejector_model_8)+Looking for solution 9+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model9 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model9_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1        x!0)+                            (q1_model9 x!0))))+[GOOD] (define-fun q2_model9 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model9_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2        x!0 x!1)+                            (q2_model9 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_9 () Bool +               (or q1_model9_reject+                   q2_model9_reject+               ))+[GOOD] (assert uiFunRejector_model_9)+Looking for solution 10+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model10 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model10_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model10 x!0))))+[GOOD] (define-fun q2_model10 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model10_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model10 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_10 () Bool +               (or q1_model10_reject+                   q2_model10_reject+               ))+[GOOD] (assert uiFunRejector_model_10)+Looking for solution 11+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true false false)))+[GOOD] (define-fun q1_model11 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model11_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model11 x!0))))+[GOOD] (define-fun q2_model11 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model11_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model11 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_11 () Bool +               (or q1_model11_reject+                   q2_model11_reject+               ))+[GOOD] (assert uiFunRejector_model_11)+Looking for solution 12+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) x!1) (and (not x!2) (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model12 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model12_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model12 x!0))))+[GOOD] (define-fun q2_model12 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 false) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model12_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model12 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_12 () Bool +               (or q1_model12_reject+                   q2_model12_reject+               ))+[GOOD] (assert uiFunRejector_model_12)+Looking for solution 13+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model13 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model13_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model13 x!0))))+[GOOD] (define-fun q2_model13 ((x!0 Bool) (x!1 Bool)) Bool+          true+       )+[GOOD] (define-fun q2_model13_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model13 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_13 () Bool +               (or q1_model13_reject+                   q2_model13_reject+               ))+[GOOD] (assert uiFunRejector_model_13)+Looking for solution 14+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model14 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model14_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model14 x!0))))+[GOOD] (define-fun q2_model14 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model14_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model14 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_14 () Bool +               (or q1_model14_reject+                   q2_model14_reject+               ))+[GOOD] (assert uiFunRejector_model_14)+Looking for solution 15+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model15 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model15_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model15 x!0))))+[GOOD] (define-fun q2_model15 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model15_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model15 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_15 () Bool +               (or q1_model15_reject+                   q2_model15_reject+               ))+[GOOD] (assert uiFunRejector_model_15)+Looking for solution 16+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model16 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model16_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model16 x!0))))+[GOOD] (define-fun q2_model16 ((x!0 Bool) (x!1 Bool)) Bool+          true+       )+[GOOD] (define-fun q2_model16_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model16 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_16 () Bool +               (or q1_model16_reject+                   q2_model16_reject+               ))+[GOOD] (assert uiFunRejector_model_16)+Looking for solution 17+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) true false false)))+[GOOD] (define-fun q1_model17 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model17_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model17 x!0))))+[GOOD] (define-fun q2_model17 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          (ite (and (= x!0 true) (= x!1 true)) false+          true))+       )+[GOOD] (define-fun q2_model17_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model17 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_17 () Bool +               (or q1_model17_reject+                   q2_model17_reject+               ))+[GOOD] (assert uiFunRejector_model_17)+Looking for solution 18+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) true false false)))+[GOOD] (define-fun q1_model18 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model18_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model18 x!0))))+[GOOD] (define-fun q2_model18 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          (ite (and (= x!0 true) (= x!1 true)) false+          true))+       )+[GOOD] (define-fun q2_model18_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model18 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_18 () Bool +               (or q1_model18_reject+                   q2_model18_reject+               ))+[GOOD] (assert uiFunRejector_model_18)+Looking for solution 19+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model19 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model19_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model19 x!0))))+[GOOD] (define-fun q2_model19 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model19_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model19 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_19 () Bool +               (or q1_model19_reject+                   q2_model19_reject+               ))+[GOOD] (assert uiFunRejector_model_19)+Looking for solution 20+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) true)))+[GOOD] (define-fun q1_model20 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model20_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model20 x!0))))+[GOOD] (define-fun q2_model20 ((x!0 Bool) (x!1 Bool)) Bool+          true+       )+[GOOD] (define-fun q2_model20_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model20 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_20 () Bool +               (or q1_model20_reject+                   q2_model20_reject+               ))+[GOOD] (assert uiFunRejector_model_20)+Looking for solution 21+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model21 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model21_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model21 x!0))))+[GOOD] (define-fun q2_model21 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model21_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model21 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_21 () Bool +               (or q1_model21_reject+                   q2_model21_reject+               ))+[GOOD] (assert uiFunRejector_model_21)+Looking for solution 22+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model22 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model22_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model22 x!0))))+[GOOD] (define-fun q2_model22 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model22_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model22 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_22 () Bool +               (or q1_model22_reject+                   q2_model22_reject+               ))+[GOOD] (assert uiFunRejector_model_22)+Looking for solution 23+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false true false) true true false)))+[GOOD] (define-fun q1_model23 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model23_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model23 x!0))))+[GOOD] (define-fun q2_model23 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          (ite (and (= x!0 false) (= x!1 true)) false+          true))+       )+[GOOD] (define-fun q2_model23_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model23 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_23 () Bool +               (or q1_model23_reject+                   q2_model23_reject+               ))+[GOOD] (assert uiFunRejector_model_23)+Looking for solution 24+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model24 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model24_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model24 x!0))))+[GOOD] (define-fun q2_model24 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model24_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model24 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_24 () Bool +               (or q1_model24_reject+                   q2_model24_reject+               ))+[GOOD] (assert uiFunRejector_model_24)+Looking for solution 25+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true false false) false false false)))+[GOOD] (define-fun q1_model25 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model25_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model25 x!0))))+[GOOD] (define-fun q2_model25 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) false+          (ite (and (= x!0 true) (= x!1 false)) false+          true))+       )+[GOOD] (define-fun q2_model25_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model25 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_25 () Bool +               (or q1_model25_reject+                   q2_model25_reject+               ))+[GOOD] (assert uiFunRejector_model_25)+Looking for solution 26+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model26 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model26_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model26 x!0))))+[GOOD] (define-fun q2_model26 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model26_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model26 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_26 () Bool +               (or q1_model26_reject+                   q2_model26_reject+               ))+[GOOD] (assert uiFunRejector_model_26)+Looking for solution 27+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model27 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model27_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model27 x!0))))+[GOOD] (define-fun q2_model27 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model27_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model27 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_27 () Bool +               (or q1_model27_reject+                   q2_model27_reject+               ))+[GOOD] (assert uiFunRejector_model_27)+Looking for solution 28+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model28 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model28_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model28 x!0))))+[GOOD] (define-fun q2_model28 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model28_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model28 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_28 () Bool +               (or q1_model28_reject+                   q2_model28_reject+               ))+[GOOD] (assert uiFunRejector_model_28)+Looking for solution 29+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) true true false)))+[GOOD] (define-fun q1_model29 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model29_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model29 x!0))))+[GOOD] (define-fun q2_model29 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          (ite (and (= x!0 false) (= x!1 false)) false+          true))+       )+[GOOD] (define-fun q2_model29_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model29 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_29 () Bool +               (or q1_model29_reject+                   q2_model29_reject+               ))+[GOOD] (assert uiFunRejector_model_29)+Looking for solution 30+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) true true false) false true false)))+[GOOD] (define-fun q1_model30 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model30_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model30 x!0))))+[GOOD] (define-fun q2_model30 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) false+          (ite (and (= x!0 true) (= x!1 true)) false+          true))+       )+[GOOD] (define-fun q2_model30_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model30 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_30 () Bool +               (or q1_model30_reject+                   q2_model30_reject+               ))+[GOOD] (assert uiFunRejector_model_30)+Looking for solution 31+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model31 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model31_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model31 x!0))))+[GOOD] (define-fun q2_model31 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model31_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model31 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_31 () Bool +               (or q1_model31_reject+                   q2_model31_reject+               ))+[GOOD] (assert uiFunRejector_model_31)+Looking for solution 32+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model32 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model32_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model32 x!0))))+[GOOD] (define-fun q2_model32 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model32_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model32 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_32 () Bool +               (or q1_model32_reject+                   q2_model32_reject+               ))+[GOOD] (assert uiFunRejector_model_32)+Looking for solution 33+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model33 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model33_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model33 x!0))))+[GOOD] (define-fun q2_model33 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model33_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model33 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_33 () Bool +               (or q1_model33_reject+                   q2_model33_reject+               ))+[GOOD] (assert uiFunRejector_model_33)+Looking for solution 34+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model34 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model34_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model34 x!0))))+[GOOD] (define-fun q2_model34 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model34_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model34 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_34 () Bool +               (or q1_model34_reject+                   q2_model34_reject+               ))+[GOOD] (assert uiFunRejector_model_34)+Looking for solution 35+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) false)))+[GOOD] (define-fun q1_model35 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model35_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model35 x!0))))+[GOOD] (define-fun q2_model35 ((x!0 Bool) (x!1 Bool)) Bool+          false+       )+[GOOD] (define-fun q2_model35_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model35 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_35 () Bool +               (or q1_model35_reject+                   q2_model35_reject+               ))+[GOOD] (assert uiFunRejector_model_35)+Looking for solution 36+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false false false)))+[GOOD] (define-fun q1_model36 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model36_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model36 x!0))))+[GOOD] (define-fun q2_model36 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) false+          true)+       )+[GOOD] (define-fun q2_model36_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model36 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_36 () Bool +               (or q1_model36_reject+                   q2_model36_reject+               ))+[GOOD] (assert uiFunRejector_model_36)+Looking for solution 37+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model37 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model37_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model37 x!0))))+[GOOD] (define-fun q2_model37 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model37_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model37 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_37 () Bool +               (or q1_model37_reject+                   q2_model37_reject+               ))+[GOOD] (assert uiFunRejector_model_37)+Looking for solution 38+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) true true false)))+[GOOD] (define-fun q1_model38 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model38_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model38 x!0))))+[GOOD] (define-fun q2_model38 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          (ite (and (= x!0 false) (= x!1 false)) false+          true))+       )+[GOOD] (define-fun q2_model38_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model38 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_38 () Bool +               (or q1_model38_reject+                   q2_model38_reject+               ))+[GOOD] (assert uiFunRejector_model_38)+Looking for solution 39+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 ((as const Array) false)))+[GOOD] (define-fun q1_model39 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model39_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model39 x!0))))+[GOOD] (define-fun q2_model39 ((x!0 Bool) (x!1 Bool)) Bool+          false+       )+[GOOD] (define-fun q2_model39_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model39 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_39 () Bool +               (or q1_model39_reject+                   q2_model39_reject+               ))+[GOOD] (assert uiFunRejector_model_39)+Looking for solution 40+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model40 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model40_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model40 x!0))))+[GOOD] (define-fun q2_model40 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model40_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model40 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_40 () Bool +               (or q1_model40_reject+                   q2_model40_reject+               ))+[GOOD] (assert uiFunRejector_model_40)+Looking for solution 41+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model41 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model41_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model41 x!0))))+[GOOD] (define-fun q2_model41 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model41_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model41 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_41 () Bool +               (or q1_model41_reject+                   q2_model41_reject+               ))+[GOOD] (assert uiFunRejector_model_41)+Looking for solution 42+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model42 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model42_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model42 x!0))))+[GOOD] (define-fun q2_model42 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model42_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model42 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_42 () Bool +               (or q1_model42_reject+                   q2_model42_reject+               ))+[GOOD] (assert uiFunRejector_model_42)+Looking for solution 43+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model43 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model43_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model43 x!0))))+[GOOD] (define-fun q2_model43 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model43_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model43 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_43 () Bool +               (or q1_model43_reject+                   q2_model43_reject+               ))+[GOOD] (assert uiFunRejector_model_43)+Looking for solution 44+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model44 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model44_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model44 x!0))))+[GOOD] (define-fun q2_model44 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model44_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model44 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_44 () Bool +               (or q1_model44_reject+                   q2_model44_reject+               ))+[GOOD] (assert uiFunRejector_model_44)+Looking for solution 45+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model45 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model45_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model45 x!0))))+[GOOD] (define-fun q2_model45 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model45_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model45 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_45 () Bool +               (or q1_model45_reject+                   q2_model45_reject+               ))+[GOOD] (assert uiFunRejector_model_45)+Looking for solution 46+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model46 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model46_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model46 x!0))))+[GOOD] (define-fun q2_model46 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model46_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model46 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_46 () Bool +               (or q1_model46_reject+                   q2_model46_reject+               ))+[GOOD] (assert uiFunRejector_model_46)+Looking for solution 47+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model47 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model47_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model47 x!0))))+[GOOD] (define-fun q2_model47 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model47_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model47 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_47 () Bool +               (or q1_model47_reject+                   q2_model47_reject+               ))+[GOOD] (assert uiFunRejector_model_47)+Looking for solution 48+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model48 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model48_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model48 x!0))))+[GOOD] (define-fun q2_model48 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model48_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model48 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_48 () Bool +               (or q1_model48_reject+                   q2_model48_reject+               ))+[GOOD] (assert uiFunRejector_model_48)+Looking for solution 49+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!2) x!1) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model49 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model49_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model49 x!0))))+[GOOD] (define-fun q2_model49 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 false)) true+          false))+       )+[GOOD] (define-fun q2_model49_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model49 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_49 () Bool +               (or q1_model49_reject+                   q2_model49_reject+               ))+[GOOD] (assert uiFunRejector_model_49)+Looking for solution 50+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and (not x!2) x!1) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model50 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model50_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model50 x!0))))+[GOOD] (define-fun q2_model50 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          (ite (and (= x!0 true) (= x!1 false)) true+          false))+       )+[GOOD] (define-fun q2_model50_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model50 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_50 () Bool +               (or q1_model50_reject+                   q2_model50_reject+               ))+[GOOD] (assert uiFunRejector_model_50)+Looking for solution 51+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model51 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model51_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model51 x!0))))+[GOOD] (define-fun q2_model51 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model51_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model51 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_51 () Bool +               (or q1_model51_reject+                   q2_model51_reject+               ))+[GOOD] (assert uiFunRejector_model_51)+Looking for solution 52+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store (store ((as const Array) true) false false false) true false false)))+[GOOD] (define-fun q1_model52 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model52_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model52 x!0))))+[GOOD] (define-fun q2_model52 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 false)) false+          (ite (and (= x!0 false) (= x!1 false)) false+          true))+       )+[GOOD] (define-fun q2_model52_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model52 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_52 () Bool +               (or q1_model52_reject+                   q2_model52_reject+               ))+[GOOD] (assert uiFunRejector_model_52)+Looking for solution 53+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model53 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model53_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model53 x!0))))+[GOOD] (define-fun q2_model53 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 false)) true+          false))+       )+[GOOD] (define-fun q2_model53_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model53 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_53 () Bool +               (or q1_model53_reject+                   q2_model53_reject+               ))+[GOOD] (assert uiFunRejector_model_53)+Looking for solution 54+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and x!2 (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) true))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model54 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model54_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model54 x!0))))+[GOOD] (define-fun q2_model54 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 false)) true+          false))+       )+[GOOD] (define-fun q2_model54_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model54 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_54 () Bool +               (or q1_model54_reject+                   q2_model54_reject+               ))+[GOOD] (assert uiFunRejector_model_54)+Looking for solution 55+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) (not x!1))))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model55 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model55_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model55 x!0))))+[GOOD] (define-fun q2_model55 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model55_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model55 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_55 () Bool +               (or q1_model55_reject+                   q2_model55_reject+               ))+[GOOD] (assert uiFunRejector_model_55)+Looking for solution 56+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (lambda ((x!1 Bool)) x!1)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) false true false)))+[GOOD] (define-fun q1_model56 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) true+          false)+       )+[GOOD] (define-fun q1_model56_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model56 x!0))))+[GOOD] (define-fun q2_model56 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model56_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model56 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_56 () Bool +               (or q1_model56_reject+                   q2_model56_reject+               ))+[GOOD] (assert uiFunRejector_model_56)+Looking for solution 57+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model57 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model57_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model57 x!0))))+[GOOD] (define-fun q2_model57 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model57_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model57 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_57 () Bool +               (or q1_model57_reject+                   q2_model57_reject+               ))+[GOOD] (assert uiFunRejector_model_57)+Looking for solution 58+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model58 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model58_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model58 x!0))))+[GOOD] (define-fun q2_model58 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model58_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model58 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_58 () Bool +               (or q1_model58_reject+                   q2_model58_reject+               ))+[GOOD] (assert uiFunRejector_model_58)+Looking for solution 59+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and x!2 x!1))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) false))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model59 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model59_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model59 x!0))))+[GOOD] (define-fun q2_model59 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) true+          false)+       )+[GOOD] (define-fun q2_model59_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model59 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_59 () Bool +               (or q1_model59_reject+                   q2_model59_reject+               ))+[GOOD] (assert uiFunRejector_model_59)+Looking for solution 60+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 (store ((as const Array) true) true false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model60 ((x!0 Bool)) Bool+          (ite (and (= x!0 true)) false+          true)+       )+[GOOD] (define-fun q1_model60_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model60 x!0))))+[GOOD] (define-fun q2_model60 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model60_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model60 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_60 () Bool +               (or q1_model60_reject+                   q2_model60_reject+               ))+[GOOD] (assert uiFunRejector_model_60)+Looking for solution 61+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool))+         (or (and (not x!2) (not x!1)) (and (not x!2) x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) true))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model61 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model61_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model61 x!0))))+[GOOD] (define-fun q2_model61 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 false) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model61_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model61 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_61 () Bool +               (or q1_model61_reject+                   q2_model61_reject+               ))+[GOOD] (assert uiFunRejector_model_61)+Looking for solution 62+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (store ((as const Array) true) true true false)))+[GOOD] (define-fun q1_model62 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model62_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model62 x!0))))+[GOOD] (define-fun q2_model62 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 true) (= x!1 true)) false+          true)+       )+[GOOD] (define-fun q2_model62_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model62 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_62 () Bool +               (or q1_model62_reject+                   q2_model62_reject+               ))+[GOOD] (assert uiFunRejector_model_62)+Looking for solution 63+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) false)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (and (not x!2) (not x!1)))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) false))+[GOOD] (define-fun q1_model63 ((x!0 Bool)) Bool+          false+       )+[GOOD] (define-fun q1_model63_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model63 x!0))))+[GOOD] (define-fun q2_model63 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          false)+       )+[GOOD] (define-fun q2_model63_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model63 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_63 () Bool +               (or q1_model63_reject+                   q2_model63_reject+               ))+[GOOD] (assert uiFunRejector_model_63)+Looking for solution 64+[SEND] (check-sat)+[RECV] sat+[SEND] (get-value (q1))+[RECV] ((q1 ((as const Array) true)))+[SEND] (get-value (q2))+[RECV] ((q2 (lambda ((x!1 Bool) (x!2 Bool)) (or (and x!2 x!1) (and (not x!2) (not x!1))))))+[SEND] (get-value ((q2 false false)))+[RECV] (((q2 false false) true))+[SEND] (get-value ((q2 false true)))+[RECV] (((q2 false true) false))+[SEND] (get-value ((q2 true false)))+[RECV] (((q2 true false) false))+[SEND] (get-value ((q2 true true)))+[RECV] (((q2 true true) true))+[GOOD] (define-fun q1_model64 ((x!0 Bool)) Bool+          true+       )+[GOOD] (define-fun q1_model64_reject () Bool+          (exists ((x!0 Bool))+                  (distinct (q1         x!0)+                            (q1_model64 x!0))))+[GOOD] (define-fun q2_model64 ((x!0 Bool) (x!1 Bool)) Bool+          (ite (and (= x!0 false) (= x!1 false)) true+          (ite (and (= x!0 true) (= x!1 true)) true+          false))+       )+[GOOD] (define-fun q2_model64_reject () Bool+          (exists ((x!0 Bool) (x!1 Bool))+                  (distinct (q2         x!0 x!1)+                            (q2_model64 x!0 x!1))))+[GOOD] (define-fun uiFunRejector_model_64 () Bool +               (or q1_model64_reject+                   q2_model64_reject+               ))+[GOOD] (assert uiFunRejector_model_64)+Looking for solution 65+[SEND] (check-sat)+[RECV] unsat+*** Solver   : Z3+*** Exit code: ExitSuccess++RESULT: Solution #1:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #2:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #3:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #4:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #5:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #6:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #7:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  True  = True +  q2 _     _     = False+Solution #8:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  True  = True +  q2 _     _     = False+Solution #9:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  True  = True +  q2 _     _     = False+Solution #10:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #11:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 _    _     = True +Solution #12:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 False True  = True +  q2 _     _     = False+Solution #13:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #14:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #15:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #16:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #17:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 True True  = False+  q2 _    _     = True +Solution #18:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = False+  q2 True True  = False+  q2 _    _     = True +Solution #19:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #20:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = True+Solution #21:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #22:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #23:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True  True = False+  q2 False True = False+  q2 _     _    = True +Solution #24:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 True  True = True +  q2 _     _    = False+Solution #25:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 True  False = False+  q2 _     _     = True +Solution #26:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #27:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #28:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #29:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True  True  = False+  q2 False False = False+  q2 _     _     = True +Solution #30:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 True  True = False+  q2 _     _    = True +Solution #31:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #32:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 True True  = True +  q2 _    _     = False+Solution #33:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 True True  = True +  q2 _    _     = False+Solution #34:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #35:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #36:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = False+  q2 _     _     = True +Solution #37:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #38:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True  True  = False+  q2 False False = False+  q2 _     _     = True +Solution #39:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 _ _ = False+Solution #40:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #41:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #42:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 True  True = True +  q2 _     _    = False+Solution #43:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #44:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #45:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 True True  = True +  q2 _    _     = False+Solution #46:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #47:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 True True  = True +  q2 _    _     = False+Solution #48:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True False = True +  q2 _    _     = False+Solution #49:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False True  = True +  q2 True  False = True +  q2 _     _     = False+Solution #50:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True  = True +  q2 True  False = True +  q2 _     _     = False+Solution #51:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #52:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True  False = False+  q2 False False = False+  q2 _     _     = True +Solution #53:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  False = True +  q2 _     _     = False+Solution #54:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 True  False = True +  q2 _     _     = False+Solution #55:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #56:+  q1 :: Bool -> Bool+  q1 True = True +  q1 _    = False++  q2 :: Bool -> Bool -> Bool+  q2 False True = False+  q2 _     _    = True +Solution #57:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False True = True +  q2 _     _    = False+Solution #58:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #59:+  q1 :: Bool -> Bool+  q1 _ = True++  q2 :: Bool -> Bool -> Bool+  q2 True True = True +  q2 _    _    = False+Solution #60:+  q1 :: Bool -> Bool+  q1 True = False+  q1 _    = True ++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #61:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 False True  = True +  q2 _     _     = False+Solution #62:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 True True = False+  q2 _    _    = True +Solution #63:+  q1 :: Bool -> Bool+  q1 _ = False++  q2 :: Bool -> Bool -> Bool+  q2 False False = True +  q2 _     _     = False+Solution #64:+  q1 :: Bool -> Bool+  q1 _ = True    q2 :: Bool -> Bool -> Bool   q2 False False = True 
SBVTestSuite/GoldFiles/validate_1.gold view
@@ -25,11 +25,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (_ +zero 8 24)))+[RECV] ((s0 (fp #b0 #xfe #b11111111111111111111111))) *** Solver   : Z3 *** Exit code: ExitSuccess [VALIDATE] Validating the model. Assignment:-[VALIDATE]       x = 0.0 :: Float+[VALIDATE]       x = 3.4028235e38 :: Float [VALIDATE] There are no constraints to check. [VALIDATE] Validating outputs. @@ -38,7 +38,7 @@ ***  *** Assignment: *** -***       x = 0.0 :: Float+***       x = 3.4028235e38 :: Float ***  *** Not all floating point operations are supported concretely. *** @@ -48,4 +48,4 @@ *** Alleged model: *** *** Satisfiable. Model:-***   x = 0.0 :: Float+***   x = 3.4028235e38 :: Float
SBVTestSuite/GoldFiles/validate_2.gold view
@@ -25,11 +25,11 @@ [SEND] (check-sat) [RECV] sat [SEND] (get-value (s0))-[RECV] ((s0 (fp #b0 #x40 #b00000001000000000010000)))+[RECV] ((s0 (fp #b1 #x02 #b00000000000000000000000))) *** Solver   : Z3 *** Exit code: ExitSuccess [VALIDATE] Validating the model. Assignment:-[VALIDATE]       x = 1.0884394e-19 :: Float+[VALIDATE]       x = -2.3509887e-38 :: Float [VALIDATE] There are no constraints to check. [VALIDATE] Validating outputs. @@ -38,7 +38,7 @@ ***  *** Assignment: *** -***       x = 1.0884394e-19 :: Float+***       x = -2.3509887e-38 :: Float ***  *** Floating point FMA operation is not supported concretely. *** @@ -48,4 +48,4 @@ *** Alleged model: *** *** Satisfiable. Model:-***   x = 1.0884394e-19 :: Float+***   x = -2.3509887e-38 :: Float
SBVTestSuite/GoldFiles/validate_7.gold view
@@ -37,11 +37,13 @@ [VALIDATE] Validating the model. Assignment: [VALIDATE]       x =                -Infinity :: Float [VALIDATE]       y = <universally quantified> :: Float--EXCEPTION RAISED:-*** Data.SBV: Cannot validate models in the presence of universally quantified variable "y"-***-***   To turn validation off, use `cfg{validateModel = False}`-***-*** Validation engine is not capable of handling this case. Failed to validate.+[VALIDATE] NB. The following variable(s) are universally quantified: y+[VALIDATE]     We will assume that they are essentially zero for the purposes of validation.+[VALIDATE]     Note that this is a gross simplification of the model validation with universals!+[VALIDATE] There are no constraints to check.+[VALIDATE] Validating outputs.+[VALIDATE] All outputs are satisfied. Validation complete. +FINAL OUTPUT:+Satisfiable. Model:+  x = -Infinity :: Float
SBVTestSuite/SBVDocTest.hs view
@@ -9,6 +9,8 @@ -- Doctest interface for SBV testsuite ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Main (main) where  import System.FilePath.Glob (glob)@@ -31,7 +33,7 @@           case testEnv of             TestEnvLocal   -> runDocTest False False 100             TestEnvCI env  -> if testPercentage < 50-                              then do putStrLn $ "Test percentage below tresheold, skipping doctest: " ++ show testPercentage+                              then do putStrLn $ "Test percentage below threshold, skipping doctest: " ++ show testPercentage                                       exitSuccess                               else runDocTest (env == CIWindows) True testPercentage             TestEnvUnknown  -> do putStrLn "Unknown test environment, skipping doctests"
SBVTestSuite/SBVHLint.hs view
@@ -9,6 +9,8 @@ -- HLint interface for SBV testsuite ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module Main (main) where  import Utils.SBVTestFramework (getTestEnvironment, TestEnvironment(..))@@ -21,6 +23,7 @@     [ "Data"     , "SBVTestSuite"     , "-i", "Use otherwise"+    , "-i", "Parse error"     ]  main :: IO ()@@ -32,7 +35,7 @@     case testEnv of       TestEnvLocal   -> runHLint       TestEnvCI{}    -> if testPercentage < 50-                           then do putStrLn $ "Test percentage below tresheold, skipping hlint: " ++ show testPercentage+                           then do putStrLn $ "Test percentage below threshold, skipping hlint: " ++ show testPercentage                                    exitSuccess                            else runHLint       TestEnvUnknown -> do putStrLn "Unknown test environment, skipping hlint run"
SBVTestSuite/SBVTest.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Main(main) where  import Test.Tasty@@ -69,6 +71,7 @@ import qualified TestSuite.CRC.USB5 import qualified TestSuite.Crypto.AES import qualified TestSuite.Crypto.RC4+import qualified TestSuite.Crypto.SHA import qualified TestSuite.Existentials.CRCPolynomial import qualified TestSuite.GenTest.GenTests import qualified TestSuite.Optimization.AssertWithPenalty@@ -216,6 +219,7 @@                , TestSuite.CRC.USB5.tests                , TestSuite.Crypto.AES.tests                , TestSuite.Crypto.RC4.tests+               , TestSuite.Crypto.SHA.tests                , TestSuite.Existentials.CRCPolynomial.tests                , TestSuite.GenTest.GenTests.tests                , TestSuite.Optimization.AssertWithPenalty.tests
SBVTestSuite/TestSuite/Arrays/InitVals.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE Rank2Types #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Arrays.InitVals(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Arrays/Memory.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE Rank2Types #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Arrays.Memory(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Arrays/Query.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Arrays.Query(tests) where  import Data.SBV.Control
SBVTestSuite/TestSuite/Basics/AllSat.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE DeriveAnyClass     #-} {-# LANGUAGE DeriveDataTypeable #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.AllSat(tests) where  import Data.Generics
SBVTestSuite/TestSuite/Basics/ArithNoSolver.hs view
@@ -14,6 +14,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE TupleSections       #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.ArithNoSolver(tests) where  import qualified Data.Numbers.CrackNum as CN (wordToFloat, wordToDouble, floatToWord, doubleToWord)@@ -101,6 +103,9 @@      ++ zipWith pair [(show x, show y, x     `op` y)     | x <- iCs,  y <- iCs ] [x `opS` y | x <- siCs,  y <- siCs ]      ++ zipWith pair [(show x, show y, x     `op` y)     | x <- ss,   y <- ss  ] [x `opS` y | x <- sss,   y <- sss  ]      ++ zipWith pair [(show x, show y, toL x `op` toL y) | x <- ssl,  y <- ssl ] [x `opS` y | x <- ssl,   y <- ssl  ]+     ++ zipWith pair [(show x, show y, toL x `op` toL y) | x <- ssm,  y <- ssm ] [x `opS` y | x <- ssm,   y <- ssm  ]+     ++ zipWith pair [(show x, show y, toL x `op` toL y) | x <- sse,  y <- sse ] [x `opS` y | x <- sse,   y <- sse  ]+     ++ zipWith pair [(show x, show y, toL x `op` toL y) | x <- sst,  y <- sst ] [x `opS` y | x <- sst,   y <- sst  ]   where pair (x, y, a) b = (x, y, Just a == unliteral b)         mkTest (x, y, s) = testCase ("arithCF-" ++ nm ++ "." ++ x ++ "_" ++ y) (s `showsAs` "True")         toL x = fromMaybe (error "genBoolTest: Cannot extract a literal!") (unliteral x)@@ -757,4 +762,22 @@ ssl :: [SList Integer] ssl = map literal sl +-- Very rudimentary maybe, either, and, tuples+sm :: [Maybe Integer]+sm = [Nothing, Just (-5), Just 0, Just 5]++ssm :: [SMaybe Integer]+ssm = map literal sm++se :: [Either Integer Integer]+se = [Left 3, Right 5]++sse :: [SEither Integer Integer]+sse = map literal se++st :: [(Integer, Integer)]+st = [(1, 2), (-1, -5), (0, 9), (5, 5)]++sst :: [STuple Integer Integer]+sst = map literal st {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
SBVTestSuite/TestSuite/Basics/ArithSolver.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.ArithSolver(tests) where  import qualified Data.Numbers.CrackNum as RC (wordToFloat, wordToDouble, floatToWord, doubleToWord)@@ -93,22 +95,24 @@                                       return $ literal r .== a `op` b  genBoolTest :: String -> (forall a. Ord a => a -> a -> Bool) -> (forall a. OrdSymbolic a => a -> a -> SBool) -> [TestTree]-genBoolTest nm op opS = map mkTest $  [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- w8s,       y <- w8s      ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- w16s,      y <- w16s     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- w32s,      y <- w32s     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- w64s,      y <- w64s     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- i8s,       y <- i8s      ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- i16s,      y <- i16s     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- i32s,      y <- i32s     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- i64s,      y <- i64s     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- iUBs,      y <- iUBs     ]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                               x <- reducedCS, y <- reducedCS]-                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) | nm `elem` allowedStringComps, x <- ss,        y <- ss       ]-                                   ++ [(show x, show y, mkThm2L x y (x `op` y)) | nm `elem` allowedListComps  , x <- sl,        y <- sl       ]-  where -- Currently Z3 doesn't allow for string/list comparisons, so only test equals and distinct-        -- See: http://github.com/LeventErkok/sbv/issues/368 for tracking issue.-        allowedStringComps = ["==", "/="]-        allowedListComps   = ["==", "/="]+genBoolTest nm op opS = map mkTest $  [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- w8s,       y <- w8s      ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- w16s,      y <- w16s     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- w32s,      y <- w32s     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- w64s,      y <- w64s     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- i8s,       y <- i8s      ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- i16s,      y <- i16s     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- i32s,      y <- i32s     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- i64s,      y <- i64s     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- iUBs,      y <- iUBs     ]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- reducedCS, y <- reducedCS]+                                   ++ [(show x, show y, mkThm2  x y (x `op` y)) |                             x <- ss,        y <- ss       ]+                                   ++ [(show x, show y, mkThm2L x y (x `op` y)) | nm `elem` allowedListComps, x <- sl,        y <- sl       ]+                                   ++ [(show x, show y, mkThm2M x y (x `op` y)) |                             x <- sm,        y <- sm       ]+                                   ++ [(show x, show y, mkThm2E x y (x `op` y)) |                             x <- se,        y <- se       ]+                                   ++ [(show x, show y, mkThm2T x y (x `op` y)) |                             x <- st,        y <- st       ]+  where -- Currently Z3 doesn't allow for list comparisons, so only test equals and distinct+        -- And there's no way for us to desugar this like we do for tuple/maybe etc; since the datatype itself is recursive.+        allowedListComps = ["==", "/="]         mkTest (x, y, t) = testCase ("genBoolTest.arithmetic-" ++ nm ++ "." ++ x ++ "_" ++ y) (assert t)         mkThm2 x y r = isTheorem $ do [a, b] <- mapM free ["x", "y"]                                       constrain $ a .== literal x@@ -118,6 +122,18 @@                                        constrain $ a .== literal x                                        constrain $ b .== literal y                                        return $ literal r .== a `opS` b+        mkThm2M x y r = isTheorem $ do [a, b :: SMaybe Integer] <- mapM free ["x", "y"]+                                       constrain $ a .== literal x+                                       constrain $ b .== literal y+                                       return $ literal r .== a `opS` b+        mkThm2E x y r = isTheorem $ do [a, b :: SEither Integer Integer] <- mapM free ["x", "y"]+                                       constrain $ a .== literal x+                                       constrain $ b .== literal y+                                       return $ literal r .== a `opS` b+        mkThm2T x y r = isTheorem $ do [a, b :: STuple Integer Integer] <- mapM free ["x", "y"]+                                       constrain $ a .== literal x+                                       constrain $ b .== literal y+                                       return $ literal r .== a `opS` b  genUnTest :: Bool -> String -> (forall a. (Num a, Bits a) => a -> a) -> [TestTree] genUnTest unboundedOK nm op = map mkTest $  [(show x, mkThm x (op x)) | x <- w8s ]@@ -330,8 +346,12 @@                ++ [("fpIsEqualObject", show x, show y, mkThm2P fpIsEqualObject  x y (fpIsEqualObjectH x y)) | x <- vs, y <- vs]                ++ [("fpRem",           show x, show y, mkThm2  fpRem            x y (fpRemH           x y)) | x <- vsFPRem, y <- vsFPRem] +        -- Turning off fpRem tests for the time being. See: https://github.com/LeventErkok/sbv/issues/482+        issue482 = True+         -- TODO: For doubles fpRem takes too long, so we only do a subset         vsFPRem+          | issue482               = []           | origin == "genDoubles" = [nan, infinity, 0, 0.5, -infinity, -0, -0.5]           | True                   = vs @@ -800,5 +820,15 @@ -- Lists are the worst in coverage! sl :: [[Integer]] sl = [[], [0], [-1, 1], [-10, 0, 10], [3, 4, 5, 4, 5, 3]]++-- Ditto for maybe, either and tuple+sm :: [Maybe Integer]+sm = [Nothing, Just (-5), Just 0, Just 5]++se :: [Either Integer Integer]+se = [Left 3, Right 5]++st :: [(Integer, Integer)]+st = [(1, 2), (-1, -5), (0, 9), (5, 5)]  {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
SBVTestSuite/TestSuite/Basics/Assert.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE FlexibleContexts #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Assert(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/BarrelRotate.hs view
@@ -8,11 +8,13 @@ -- -- Test barrel rotates. --------------------------------------------------------------------------------+ {-# LANGUAGE FlexibleContexts    #-} {-# LANGUAGE RankNTypes          #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-}++{-# OPTIONS_GHC -Wall -Werror #-}  module TestSuite.Basics.BarrelRotate (tests)  where 
SBVTestSuite/TestSuite/Basics/BasicTests.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.BasicTests(tests) where  import Data.SBV.Internals hiding (forall, output)
SBVTestSuite/TestSuite/Basics/BoundedList.hs view
@@ -13,6 +13,8 @@ {-# LANGUAGE OverloadedLists            #-} {-# LANGUAGE ScopedTypeVariables        #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.BoundedList(tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Basics/DynSign.hs view
@@ -9,6 +9,8 @@ -- Test case for <http://github.com/GaloisInc/cryptol/issues/566> ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.DynSign(tests) where  import Utils.SBVTestFramework hiding (proveWith)
SBVTestSuite/TestSuite/Basics/Exceptions.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Exceptions(testsLocal, testsRemote)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Basics/GenBenchmark.hs view
@@ -9,6 +9,8 @@ -- Test the generateSMTBenchmark function. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.GenBenchmark(tests)  where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/Higher.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.Basics.Higher ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Higher(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/Index.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.Basics.Index ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Index(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/IteTest.hs view
@@ -9,6 +9,8 @@ -- Test various incarnations of laziness in ite ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.IteTest(tests)  where  import Data.SBV.Internals (Result)
SBVTestSuite/TestSuite/Basics/List.hs view
@@ -13,6 +13,8 @@ {-# LANGUAGE OverloadedLists     #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.List(tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Basics/ModelValidate.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.ModelValidate (testsABC, tests)  where  import qualified Control.Exception as C
SBVTestSuite/TestSuite/Basics/ProofTests.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.Basics.ProofTests ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.ProofTests(tests)  where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/PseudoBoolean.hs view
@@ -9,6 +9,8 @@ -- Test the pseudo-boolean functions ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.PseudoBoolean(tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Basics/QRem.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.Basics.QRem ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.QRem(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/Quantifiers.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE FlexibleContexts #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Quantifiers(tests) where  import Control.Monad (void)
SBVTestSuite/TestSuite/Basics/Recursive.hs view
@@ -9,6 +9,8 @@ -- Some recursive definitions. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Recursive(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/Set.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Set (tests)  where  import Data.SBV hiding (complement)@@ -22,6 +24,8 @@  import Data.SBV.Control +import Data.SBV.Tuple+ import Utils.SBVTestFramework hiding (complement)  data E = A | B | C@@ -66,6 +70,7 @@         , goldenCapturedIO "set_delete1"    $ tq $ templateBE  cCharA cSetAL delete         , goldenCapturedIO "set_member1"    $ tq $ templateBEB cCharA cSetAL member         , goldenCapturedIO "set_notMember1" $ tq $ templateBEB cCharA cSetAL notMember+        , goldenCapturedIO "set_tupleSet"   $ ta setOfTuples         ]     where ta tc goldFile    = record goldFile =<< tc defaultSMTCfg{verbose=True, redirectVerbose=Just goldFile}           tq tc goldFile    = record goldFile =<< runSMTWith defaultSMTCfg{verbose=True, redirectVerbose=Just goldFile} tc@@ -162,5 +167,11 @@                           query $ do ensureSat                                     (,,,) <$> getValue a <*> getValue b <*> getValue o1 <*> getValue o2++setOfTuples :: SMTConfig -> IO SatResult+setOfTuples cfg = satWith cfg $ do+    let x = tuple (empty :: SSet Bool, empty :: SSet Bool)+    y <- exists_+    return $ x ./= y  {-# ANN module ("HLint: ignore Reduce duplication" :: String) #-}
SBVTestSuite/TestSuite/Basics/SmallShifts.hs view
@@ -10,6 +10,8 @@ -- http://github.com/LeventErkok/sbv/issues/323 for the genesis. ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.SmallShifts(tests) where  import Utils.SBVTestFramework hiding (proveWith)
SBVTestSuite/TestSuite/Basics/SquashReals.hs view
@@ -9,6 +9,8 @@ -- Test the "squash" reals feature ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.SquashReals(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Basics/String.hs view
@@ -12,6 +12,8 @@  {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.String(tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Basics/Sum.hs view
@@ -13,6 +13,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Sum(tests)  where  import Prelude hiding (either)
SBVTestSuite/TestSuite/Basics/TOut.hs view
@@ -9,6 +9,8 @@ -- Test the basic timeout mechanism ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.TOut(tests)  where  import Documentation.SBV.Examples.Puzzles.Euler185
SBVTestSuite/TestSuite/Basics/Tuple.hs view
@@ -17,6 +17,8 @@ {-# LANGUAGE TemplateHaskell     #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.Tuple (tests)  where  import Data.SBV.Control@@ -40,6 +42,7 @@         , goldenCapturedIO "tuple_enum"       $ t enum         , goldenCapturedIO "tuple_unit"       $ t unit         , goldenCapturedIO "tuple_makePair"   $ t makePair+        , goldenCapturedIO "tuple_unequal"    $ t unequal         ]     where t tc goldFile = do r <- runSMTWith defaultSMTCfg{verbose=True, redirectVerbose=Just goldFile} tc                              appendFile goldFile ("\n FINAL: " ++ show r ++ "\nDONE!\n")@@ -88,7 +91,7 @@  enum :: Symbolic ([(E, [Bool])], (Word8, (E, Char, Float))) enum = do-   vTup1 :: SList (E, [Bool]) <- sTuple "v1"+   vTup1 :: SList (E, [Bool]) <- sList "v1"    q <- sBool "q"    constrain $ sNot q    constrain $ (vTup1 .!! 1)^._2 .== sTrue .: q .: L.nil@@ -119,5 +122,20 @@   [x, y] <- sIntegers ["x", "y"]   let xy = tuple (x, y)   constrain $ xy^._1 + xy^._2 .== 0++type TI = STuple Integer Integer++unequal :: Symbolic ()+unequal = do+   x :: TI <- free_+   y :: TI <- free_+   -- force unsat; we're simply testing we can generate the tuple inequality here+   constrain $ x .< y+   constrain $ x .> y++   query $ do cs <- checkSat+              case cs of+                Unsat -> return ()+                _     -> error "did not expect this!"  {-# ANN module ("HLint: ignore Use ." :: String) #-}
SBVTestSuite/TestSuite/Basics/UISat.hs view
@@ -9,6 +9,8 @@ -- Testing UI function sat examples ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Basics.UISat(tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/BitPrecise/BitTricks.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.BitPrecise.BitTricks ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.BitPrecise.BitTricks(tests) where  import Documentation.SBV.Examples.BitPrecise.BitTricks
SBVTestSuite/TestSuite/BitPrecise/Legato.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.BitPrecise.Legato ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.BitPrecise.Legato(tests) where  import Data.SBV.Internals hiding (free, output)
SBVTestSuite/TestSuite/BitPrecise/MergeSort.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.BitPrecise.MergeSort ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.BitPrecise.MergeSort(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/BitPrecise/PrefixSum.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.PrefixSum.PrefixSum ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.BitPrecise.PrefixSum(tests) where  import Documentation.SBV.Examples.BitPrecise.PrefixSum
SBVTestSuite/TestSuite/CRC/CCITT.hs view
@@ -9,44 +9,47 @@ -- Test suite for Examples.CRC.CCITT ----------------------------------------------------------------------------- +{-# LANGUAGE DataKinds        #-}+{-# LANGUAGE TypeApplications #-}++{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CRC.CCITT(tests) where  import Data.SBV.Tools.Polynomial- import Utils.SBVTestFramework +import Data.Proxy+ -- Test suite tests :: TestTree tests = testGroup "CRC.CCITT"   [ goldenVsStringShow "ccitt" crcPgm+  , testCase "ccit_good" (assertIsThm crcGood)   ]   where crcPgm = runSAT $ forAll_ crcGood >>= output --- We don't have native support for 48 bits in Data.SBV--- So, represent as 32 high-bits and 16 low-type SWord48 = (SWord32, SWord16)--extendData :: SWord48 -> SWord64-extendData (h, l) = h # l # 0+extendData :: SWord 48 -> SWord 64+extendData msg = fromBitsBE $ blastBE msg ++ replicate 16 sFalse -mkFrame :: SWord48 -> SWord64-mkFrame msg@(h, l) = h # l # crc_48_16 msg+mkFrame :: SWord 48 -> SWord 64+mkFrame msg = msg # crc_48_16 msg -crc_48_16 :: SWord48 -> SWord16+crc_48_16 :: SWord 48 -> SWord 16 crc_48_16 msg = res-  where msg64, divisor :: SWord64+  where msg64, divisor :: SWord 64         msg64   = extendData msg         divisor = polynomial [16, 12, 5, 0]         crc64 = pMod msg64 divisor-        (_, res) = split (snd (split crc64))+        res   = bvExtract (Proxy @15) (Proxy @0) crc64 -diffCount :: SWord64 -> SWord64 -> SWord8+diffCount :: SWord 64 -> SWord 64 -> SWord8 diffCount x y = count $ zipWith (.==) (blastLE x) (blastLE y)   where count []     = 0         count (b:bs) = let r = count bs in ite b r (1+r)  -- Claim: If there is an undetected corruption, it must be at least at 4 bits; i.e. HD is 4-crcGood :: SWord48 -> SWord48 -> SBool+crcGood :: SWord 48 -> SWord 48 -> SBool crcGood sent received =      sent ./= received .=> diffCount frameSent frameReceived .> 3    where frameSent     = mkFrame sent
SBVTestSuite/TestSuite/CRC/CCITT_Unidir.hs view
@@ -9,36 +9,39 @@ -- Test suite for Examples.CRC.CCITT_Unidir ----------------------------------------------------------------------------- +{-# LANGUAGE DataKinds        #-}+{-# LANGUAGE TypeApplications #-}++{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CRC.CCITT_Unidir(tests) where  import Data.SBV.Tools.Polynomial import Utils.SBVTestFramework +import Data.Proxy+ -- Test suite tests :: TestTree tests =   testGroup "CCITT_Unidir"-    [   testCase "ccitHDis3" (assertIsThm (crcUniGood 3))+    [   testCase "ccitHDis3" (assertIsThm   (crcUniGood 3))       , testCase "ccitHDis4" (assertIsntThm (crcUniGood 4))     ] --- We don't have native support for 48 bits in Data.SBV--- So, represent as 32 high-bits and 16 low-type SWord48 = (SWord32, SWord16)--extendData :: SWord48 -> SWord64-extendData (h, l) = h # l # 0+extendData :: SWord 48 -> SWord 64+extendData msg = msg # 0 -mkFrame :: SWord48 -> SWord64-mkFrame msg@(h, l) = h # l # crc_48_16 msg+mkFrame :: SWord 48 -> SWord 64+mkFrame msg = msg # crc_48_16 msg -crc_48_16 :: SWord48 -> SWord16+crc_48_16 :: SWord 48 -> SWord 16 crc_48_16 msg = res-  where msg64, divisor :: SWord64+  where msg64, divisor :: SWord 64         msg64   = extendData msg         divisor = polynomial [16, 12, 5, 0]         crc64 = pMod msg64 divisor-        (_, res) = split (snd (split crc64))+        res   = bvExtract (Proxy @15) (Proxy @0) crc64  diffCount :: [SBool] -> [SBool] -> SWord8 diffCount xs ys = count $ zipWith (.==) xs ys@@ -51,7 +54,7 @@ nonUnidir _      []     = sTrue nonUnidir (a:as) (b:bs) = (sNot a .&& b) .|| nonUnidir as bs -crcUniGood :: SWord8 -> SWord48 -> SWord48 -> SBool+crcUniGood :: SWord8 -> SWord 48 -> SWord 48 -> SBool crcUniGood hd sent received =      sent ./= received .=> nonUnidir frameSent frameReceived .|| diffCount frameSent frameReceived .> hd    where frameSent     = blastLE $ mkFrame sent
SBVTestSuite/TestSuite/CRC/GenPoly.hs view
@@ -9,11 +9,18 @@ -- Test suite for Examples.CRC.GenPoly ----------------------------------------------------------------------------- +{-# LANGUAGE DataKinds        #-}+{-# LANGUAGE TypeApplications #-}++{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CRC.GenPoly(tests) where  import Data.SBV.Tools.Polynomial import Utils.SBVTestFramework +import Data.Proxy+ -- Test suite tests :: TestTree tests =@@ -24,41 +31,36 @@  crcGoodE :: Symbolic SBool crcGoodE = do-  x1 <- exists_-  x2 <- exists_-  y1 <- exists_-  y2 <- exists_-  return (crcGood 3 0 (x1,x2) (y1,y2))---- We don't have native support for 48 bits in Data.SBV--- So, represent as 32 high-bits and 16 low-type SWord48 = (SWord32, SWord16)+  x <- exists_+  y <- exists_+  return (crcGood 3 0 x y) -extendData :: SWord48 -> SWord64-extendData (h, l) = h # l # 0+extendData :: SWord 48 -> SWord 64+extendData msg = msg # 0 -mkFrame :: SWord64 -> SWord48 -> SWord64-mkFrame poly msg@(h, l) = h # l # crc_48_16 msg poly+mkFrame :: SWord 64 -> SWord 48 -> SWord 64+mkFrame poly msg = msg # crc_48_16 msg poly -crc_48_16 :: SWord48 -> SWord64 -> SWord16+crc_48_16 :: SWord 48 -> SWord 64 -> SWord 16 crc_48_16 msg poly = res   where msg64 = extendData msg         crc64 = pMod msg64 poly-        (_, res) = split (snd (split crc64))+        res   = bvExtract (Proxy @15) (Proxy @0) crc64 -diffCount :: SWord64 -> SWord64 -> SWord8+diffCount :: SWord 64 -> SWord 64 -> SWord 8 diffCount x y = count $ zipWith (.==) (blastLE x) (blastLE y)   where count []     = 0         count (b:bs) = let r = count bs in ite b r (1+r) -crcGood :: SWord8 -> SWord16 -> SWord48 -> SWord48 -> SBool+crcGood :: SWord 8 -> SWord 16 -> SWord 48 -> SWord 48 -> SBool crcGood hd divisor sent received =      sent ./= received .=> diffCount frameSent frameReceived .> hd    where frameSent     = mkFrame poly sent          frameReceived = mkFrame poly received          poly          = mkPoly divisor -mkPoly :: SWord16 -> SWord64-mkPoly d = 0 # 1 # d+mkPoly :: SWord 16 -> SWord 64+mkPoly d = 1 # d  {-# ANN crc_48_16 ("HLint: ignore Use camelCase" :: String) #-}+{-# ANN crcGoodE  ("HLint: ignore Use <$>"       :: String) #-}
SBVTestSuite/TestSuite/CRC/Parity.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.CRC.Parity ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CRC.Parity(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/CRC/USB5.hs view
@@ -11,6 +11,8 @@  module TestSuite.CRC.USB5(tests) where +{-# OPTIONS_GHC -Wall -Werror #-}+ import Data.SBV.Tools.Polynomial import Utils.SBVTestFramework 
SBVTestSuite/TestSuite/CodeGeneration/AddSub.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.CodeGeneration.AddSub ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.AddSub(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/CRC_USB5.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.CodeGeneration.CRC_USB5 ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.CRC_USB5(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/CgTests.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.CgTests(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/Fibonacci.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.CodeGeneration.Fibonacci ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.Fibonacci(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/Floats.hs view
@@ -9,6 +9,8 @@ -- Test-suite for generating floating-point related C code ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.Floats(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/GCD.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.CodeGeneration.GCD ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.GCD(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/PopulationCount.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.CodeGeneration.PopulationCount ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.PopulationCount(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/CodeGeneration/Uninterpreted.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.CodeGeneration.Uninterpreted ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.CodeGeneration.Uninterpreted(tests) where  import Data.SBV.Internals
SBVTestSuite/TestSuite/Crypto/AES.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Crypto.AES ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Crypto.AES(tests) where  import Data.SBV.Internals@@ -30,5 +32,5 @@                                res | d    = aesEncrypt pt encKs                                    | True = aesDecrypt pt decKs                            cgOutputArr "ct" res-       aes128Comps = [(f, setVals c) | (f, c) <- aes128LibComponents]+       aes128Comps = [(f, setVals c) | (f, c) <- aesLibComponents 128]        setVals c = cgSetDriverValues (repeat 0) >> c
SBVTestSuite/TestSuite/Crypto/RC4.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Crypto.RC4 ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Crypto.RC4(tests) where  import Data.SBV.Tools.STree
+ SBVTestSuite/TestSuite/Crypto/SHA.hs view
@@ -0,0 +1,41 @@+-----------------------------------------------------------------------------+-- |+-- Module    : TestSuite.Crypto.SHA+-- Copyright : (c) Levent Erkok+-- License   : BSD3+-- Maintainer: erkokl@gmail.com+-- Stability : experimental+--+-- Test suite for Documentation.SBV.Examples.Crypto.SHA+-----------------------------------------------------------------------------++{-# OPTIONS_GHC -Wall -Werror #-}++module TestSuite.Crypto.SHA(tests) where++import Data.SBV.Internals+import Documentation.SBV.Examples.Crypto.SHA++import Utils.SBVTestFramework++-- Test suite+tests :: TestTree+tests = testGroup "Crypto.AES" [+   goldenVsStringShow "sha256HashBlock" $ snd <$> compileToC' "sha256HashBlock" c+ ]+ where c = do let algorithm = sha256P++              hInBytes   <- cgInputArr 32 "hIn"+              blockBytes <- cgInputArr 64 "block"++              let hIn   = chunkBy 4 fromBytes hInBytes+                  block = chunkBy 4 fromBytes blockBytes++                  result = hashBlock algorithm hIn (Block block)++              cgOutputArr "hash" $ concatMap toBytes result++              -- Use known test values for the empty string input so we get a meaningful driver+              let msgWords = concat [xs | Block xs <- prepareMessage algorithm "SBV goes SHA256!!"]+              cgShowU8UsingHex True+              cgSetDriverValues [fromIntegral x | Just x <- map unliteral (concatMap toBytes (h0 algorithm ++ msgWords))]
SBVTestSuite/TestSuite/Existentials/CRCPolynomial.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Existentials.CRCPolynomial ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Existentials.CRCPolynomial(tests) where  import Documentation.SBV.Examples.Existentials.CRCPolynomial@@ -18,14 +20,12 @@ -- Test suite tests :: TestTree tests = testGroup "Existentials.CRCPolynomial" [-  goldenVsStringShow "crcPolyExist" pgm+    goldenVsStringShow "crcPolyExist" (runSAT pgm)+  , testCase "crcPolyGood" (assertIsSat pgm)  ]- where pgm = runSAT $ do-                p <- exists "poly"-                s <- do sh <- forall "sh"-                        sl <- forall "sl"-                        return (sh, sl)-                r <- do rh <- forall "rh"-                        rl <- forall "rl"-                        return (rh, rl)-                output $ sTestBit p 0 .&& crcGood 4 p s r++pgm :: Predicate+pgm = do p <- exists "poly"+         s <- forall "sent"+         r <- forall "received"+         return $ sTestBit p 0 .&& crcGood 4 p s r
SBVTestSuite/TestSuite/GenTest/GenTests.hs view
@@ -9,6 +9,8 @@ -- Test-suite for generating tests ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.GenTest.GenTests(tests) where  import Data.SBV.Tools.GenTest
SBVTestSuite/TestSuite/Optimization/AssertWithPenalty.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization routines, soft assertions ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.AssertWithPenalty(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Optimization/Basics.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization routines ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.Basics(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Optimization/Combined.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization routines, combined objectives ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.Combined(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Optimization/ExtensionField.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization routines, extension field ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.ExtensionField(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Optimization/Floats.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization routines, floats ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.Floats (tests) where  import Control.Monad (when)
SBVTestSuite/TestSuite/Optimization/NoOpt.hs view
@@ -9,6 +9,8 @@ -- Check that if optimization is done, there must be goals and vice versa ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ {-# LANGUAGE ScopedTypeVariables #-}  module TestSuite.Optimization.NoOpt(tests) where
SBVTestSuite/TestSuite/Optimization/Quantified.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization iwth quantifiers ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ {-# LANGUAGE FlexibleContexts    #-} {-# LANGUAGE ScopedTypeVariables #-} 
SBVTestSuite/TestSuite/Optimization/Reals.hs view
@@ -9,6 +9,8 @@ -- Test suite for optimization routines, reals ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.Reals(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Optimization/Tuples.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables  #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Optimization.Tuples (tests) where  import Data.SBV.Tuple
SBVTestSuite/TestSuite/Overflows/Arithmetic.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Overflows.Arithmetic(tests) where  import Data.SBV
SBVTestSuite/TestSuite/Overflows/Casts.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE Rank2Types          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Overflows.Casts(tests) where  import Data.SBV
SBVTestSuite/TestSuite/Polynomials/Polynomials.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Polynomials.Polynomials ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Polynomials.Polynomials(tests) where  import Documentation.SBV.Examples.Misc.Polynomials
SBVTestSuite/TestSuite/Puzzles/Coins.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.Coins ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.Coins(tests) where  import Documentation.SBV.Examples.Puzzles.Coins
SBVTestSuite/TestSuite/Puzzles/Counts.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.Counts ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.Counts(tests) where  import Documentation.SBV.Examples.Puzzles.Counts
SBVTestSuite/TestSuite/Puzzles/DogCatMouse.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.DogCatMouse ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.DogCatMouse(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Puzzles/Euler185.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.Euler185 ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.Euler185(tests) where  import Documentation.SBV.Examples.Puzzles.Euler185
SBVTestSuite/TestSuite/Puzzles/MagicSquare.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.MagicSquare ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.MagicSquare(tests) where  import Documentation.SBV.Examples.Puzzles.MagicSquare
SBVTestSuite/TestSuite/Puzzles/NQueens.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.NQueens ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.NQueens(tests) where  import Documentation.SBV.Examples.Puzzles.NQueens
SBVTestSuite/TestSuite/Puzzles/PowerSet.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.Puzzles.PowerSet ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.PowerSet(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Puzzles/Sudoku.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.Sudoku ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.Sudoku(tests) where  import Documentation.SBV.Examples.Puzzles.Sudoku
SBVTestSuite/TestSuite/Puzzles/Temperature.hs view
@@ -9,6 +9,8 @@ -- Test suite for Examples.Puzzles.Temperature ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.Temperature(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Puzzles/U2Bridge.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Puzzles.U2Bridge ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Puzzles.U2Bridge(tests) where  import Documentation.SBV.Examples.Puzzles.U2Bridge
SBVTestSuite/TestSuite/Queries/BadOption.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.BadOption (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/BasicQuery.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.BasicQuery (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Enums.hs view
@@ -15,6 +15,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Enums where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/FreshVars.hs view
@@ -17,6 +17,8 @@ {-# LANGUAGE StandaloneDeriving  #-} {-# LANGUAGE TemplateHaskell     #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.FreshVars (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Int_ABC.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Int_ABC (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Int_Boolector.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Int_Boolector (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Int_CVC4.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Int_CVC4 (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Int_Mathsat.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Int_Mathsat (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Int_Yices.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Int_Yices (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Int_Z3.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Int_Z3 (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Interpolants.hs view
@@ -12,6 +12,8 @@  {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Interpolants (tests)  where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Lists.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE OverloadedLists     #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Lists (tests)  where  import Data.SBV
SBVTestSuite/TestSuite/Queries/Strings.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Strings (tests)  where  import Data.SBV
SBVTestSuite/TestSuite/Queries/Sums.hs view
@@ -13,6 +13,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Sums (tests)  where  import Data.SBV
SBVTestSuite/TestSuite/Queries/Tuples.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications    #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Tuples (tests)  where  import Data.SBV
SBVTestSuite/TestSuite/Queries/UISat.hs view
@@ -9,6 +9,8 @@ -- Testing UI function sat examples via queries ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.UISat(tests)  where  import Control.Monad (unless, when)
SBVTestSuite/TestSuite/Queries/UISatEx.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE OverloadedLists   #-} {-# LANGUAGE OverloadedStrings #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.UISatEx where  import Data.SBV.Control
SBVTestSuite/TestSuite/Queries/Uninterpreted.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE DeriveDataTypeable  #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Queries.Uninterpreted where  import Data.Generics
SBVTestSuite/TestSuite/QuickCheck/QC.hs view
@@ -11,6 +11,8 @@  {-# LANGUAGE Rank2Types #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.QuickCheck.QC (tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Transformers/SymbolicEval.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Transformers.SymbolicEval ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Transformers.SymbolicEval(tests) where  import Control.Monad.Except (ExceptT, runExceptT, throwError)
SBVTestSuite/TestSuite/Uninterpreted/AUF.hs view
@@ -9,6 +9,8 @@ -- Test suite for Documentation.SBV.Examples.Uninterpreted.AUF ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Uninterpreted.AUF where  import Documentation.SBV.Examples.Uninterpreted.AUF
SBVTestSuite/TestSuite/Uninterpreted/Axioms.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE DeriveAnyClass     #-} {-# LANGUAGE DeriveDataTypeable #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Uninterpreted.Axioms(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Uninterpreted/Function.hs view
@@ -9,6 +9,8 @@ -- Testsuite for Documentation.SBV.Examples.Uninterpreted.Function ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Uninterpreted.Function(tests) where  import Documentation.SBV.Examples.Uninterpreted.Function
SBVTestSuite/TestSuite/Uninterpreted/Sort.hs view
@@ -12,6 +12,8 @@ {-# LANGUAGE DeriveDataTypeable  #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Uninterpreted.Sort(tests) where  import Utils.SBVTestFramework
SBVTestSuite/TestSuite/Uninterpreted/Uninterpreted.hs view
@@ -8,6 +8,8 @@ -- ----------------------------------------------------------------------------- +{-# OPTIONS_GHC -Wall -Werror #-}+ module TestSuite.Uninterpreted.Uninterpreted(tests) where  import Utils.SBVTestFramework
SBVTestSuite/Utils/SBVTestFramework.hs view
@@ -13,6 +13,8 @@ {-# LANGUAGE RankNTypes          #-} {-# LANGUAGE ScopedTypeVariables #-} +{-# OPTIONS_GHC -Wall -Werror #-}+ module Utils.SBVTestFramework (           showsAs         , runSAT, numberOfModels
Setup.hs view
@@ -9,7 +9,8 @@ -- Setup module for the sbv library ----------------------------------------------------------------------------- -{-# OPTIONS_GHC -Wall #-}+{-# OPTIONS_GHC -Wall -Werror #-}+ module Main(main) where  import Distribution.Simple
sbv.cabal view
@@ -1,5 +1,5 @@ Name:          sbv-Version:       8.3+Version:       8.4 Category:      Formal Methods, Theorem Provers, Bit vectors, Symbolic Computation, Math, SMT Synopsis:      SMT Based Verification: Symbolic Haskell theorem prover using SMT solving. Description:   Express properties about Haskell programs and automatically prove them using SMT@@ -24,6 +24,13 @@     type:       git     location:   git://github.com/LeventErkok/sbv.git +-- On build-bots, building HLint takes inordinately long and times out. So+-- we use this flag to skip that build.+flag skipHLintTester+    description: Do not build the HLint tester+    default: False+    manual: True+ Library   default-language: Haskell2010   ghc-options     : -Wall -O2@@ -108,6 +115,7 @@                   , Documentation.SBV.Examples.CodeGeneration.Uninterpreted                   , Documentation.SBV.Examples.Crypto.AES                   , Documentation.SBV.Examples.Crypto.RC4+                  , Documentation.SBV.Examples.Crypto.SHA                   , Documentation.SBV.Examples.Existentials.CRCPolynomial                   , Documentation.SBV.Examples.Existentials.Diophantine                   , Documentation.SBV.Examples.Lists.Fibonacci@@ -122,7 +130,6 @@                   , Documentation.SBV.Examples.Misc.SetAlgebra                   , Documentation.SBV.Examples.Misc.SoftConstrain                   , Documentation.SBV.Examples.Misc.Tuple-                  , Documentation.SBV.Examples.Misc.Word4                   , Documentation.SBV.Examples.Optimization.Enumerate                   , Documentation.SBV.Examples.Optimization.ExtField                   , Documentation.SBV.Examples.Optimization.LinearOpt@@ -179,7 +186,7 @@                   , Data.SBV.Core.Model                   , Data.SBV.Core.Operations                   , Data.SBV.Core.Floating-                  , Data.SBV.Core.Splittable+                  , Data.SBV.Core.Sized                   , Data.SBV.Core.Symbolic                   , Data.SBV.Control.BaseIO                   , Data.SBV.Control.Query@@ -280,6 +287,7 @@                   , TestSuite.CRC.USB5                   , TestSuite.Crypto.AES                   , TestSuite.Crypto.RC4+                  , TestSuite.Crypto.SHA                   , TestSuite.Existentials.CRCPolynomial                   , TestSuite.GenTest.GenTests                   , TestSuite.Optimization.AssertWithPenalty@@ -356,6 +364,8 @@     type:             exitcode-stdio-1.0  Test-Suite SBVHLint+    if flag(skipHLintTester)+      buildable: False     build-depends:    base, directory, filepath, random                     , hlint, bytestring, tasty, tasty-golden, tasty-hunit, tasty-quickcheck, mtl, QuickCheck                     , sbv