sbv 8.3 → 8.4
raw patch · 332 files changed
+16795/−15974 lines, 332 filesdep ~basesetup-changed
Dependency ranges changed: base
Files
- CHANGES.md +71/−1
- Data/SBV.hs +25/−14
- Data/SBV/Char.hs +2/−0
- Data/SBV/Client.hs +2/−0
- Data/SBV/Client/BaseIO.hs +198/−29
- Data/SBV/Compilers/C.hs +53/−35
- Data/SBV/Compilers/CodeGen.hs +11/−1
- Data/SBV/Control.hs +2/−1
- Data/SBV/Control/BaseIO.hs +2/−0
- Data/SBV/Control/Query.hs +1/−1
- Data/SBV/Control/Types.hs +2/−0
- Data/SBV/Control/Utils.hs +1/−1
- Data/SBV/Core/AlgReals.hs +3/−2
- Data/SBV/Core/Concrete.hs +14/−4
- Data/SBV/Core/Data.hs +2/−1
- Data/SBV/Core/Floating.hs +10/−10
- Data/SBV/Core/Kind.hs +1/−1
- Data/SBV/Core/Model.hs +97/−23
- Data/SBV/Core/Operations.hs +94/−1
- Data/SBV/Core/Sized.hs +587/−0
- Data/SBV/Core/Splittable.hs +0/−76
- Data/SBV/Core/Symbolic.hs +5/−2
- Data/SBV/Dynamic.hs +3/−1
- Data/SBV/Either.hs +2/−0
- Data/SBV/Internals.hs +2/−0
- Data/SBV/List.hs +3/−1
- Data/SBV/Maybe.hs +2/−0
- Data/SBV/Provers/ABC.hs +2/−0
- Data/SBV/Provers/Boolector.hs +2/−0
- Data/SBV/Provers/CVC4.hs +2/−0
- Data/SBV/Provers/MathSAT.hs +2/−0
- Data/SBV/Provers/Prover.hs +9/−2
- Data/SBV/Provers/Yices.hs +2/−0
- Data/SBV/Provers/Z3.hs +3/−0
- Data/SBV/RegExp.hs +28/−6
- Data/SBV/SMT/SMT.hs +6/−18
- Data/SBV/SMT/SMTLib.hs +2/−0
- Data/SBV/SMT/SMTLib2.hs +18/−14
- Data/SBV/SMT/SMTLibNames.hs +2/−0
- Data/SBV/SMT/Utils.hs +2/−0
- Data/SBV/Set.hs +4/−2
- Data/SBV/String.hs +3/−1
- Data/SBV/Tools/BMC.hs +2/−1
- Data/SBV/Tools/BoundedFix.hs +2/−0
- Data/SBV/Tools/BoundedList.hs +2/−0
- Data/SBV/Tools/CodeGen.hs +3/−1
- Data/SBV/Tools/GenTest.hs +2/−0
- Data/SBV/Tools/Induction.hs +2/−1
- Data/SBV/Tools/Overflow.hs +2/−0
- Data/SBV/Tools/Polynomial.hs +14/−4
- Data/SBV/Tools/Range.hs +3/−1
- Data/SBV/Tools/STree.hs +2/−0
- Data/SBV/Tools/WeakestPreconditions.hs +3/−1
- Data/SBV/Trans.hs +7/−5
- Data/SBV/Trans/Control.hs +2/−0
- Data/SBV/Tuple.hs +3/−3
- Data/SBV/Utils/ExtractIO.hs +2/−0
- Data/SBV/Utils/Lib.hs +2/−0
- Data/SBV/Utils/Numeric.hs +2/−0
- Data/SBV/Utils/PrettyNum.hs +11/−6
- Data/SBV/Utils/SExpr.hs +2/−0
- Data/SBV/Utils/TDiff.hs +2/−0
- Documentation/SBV/Examples/BitPrecise/BitTricks.hs +2/−0
- Documentation/SBV/Examples/BitPrecise/BrokenSearch.hs +3/−1
- Documentation/SBV/Examples/BitPrecise/Legato.hs +13/−10
- Documentation/SBV/Examples/BitPrecise/MergeSort.hs +2/−0
- Documentation/SBV/Examples/BitPrecise/MultMask.hs +2/−0
- Documentation/SBV/Examples/BitPrecise/PrefixSum.hs +2/−0
- Documentation/SBV/Examples/CodeGeneration/AddSub.hs +2/−0
- Documentation/SBV/Examples/CodeGeneration/CRC_USB5.hs +2/−0
- Documentation/SBV/Examples/CodeGeneration/Fibonacci.hs +2/−0
- Documentation/SBV/Examples/CodeGeneration/GCD.hs +2/−0
- Documentation/SBV/Examples/CodeGeneration/PopulationCount.hs +2/−0
- Documentation/SBV/Examples/CodeGeneration/Uninterpreted.hs +2/−0
- Documentation/SBV/Examples/Crypto/AES.hs +61/−61
- Documentation/SBV/Examples/Crypto/RC4.hs +2/−0
- Documentation/SBV/Examples/Crypto/SHA.hs +398/−0
- Documentation/SBV/Examples/Existentials/CRCPolynomial.hs +32/−44
- Documentation/SBV/Examples/Existentials/Diophantine.hs +8/−12
- Documentation/SBV/Examples/Lists/BoundedMutex.hs +2/−0
- Documentation/SBV/Examples/Lists/Fibonacci.hs +2/−0
- Documentation/SBV/Examples/Lists/Nested.hs +2/−0
- Documentation/SBV/Examples/Misc/Auxiliary.hs +2/−0
- Documentation/SBV/Examples/Misc/Enumerate.hs +2/−0
- Documentation/SBV/Examples/Misc/Floating.hs +35/−34
- Documentation/SBV/Examples/Misc/ModelExtract.hs +2/−0
- Documentation/SBV/Examples/Misc/NoDiv0.hs +4/−2
- Documentation/SBV/Examples/Misc/Polynomials.hs +2/−0
- Documentation/SBV/Examples/Misc/SetAlgebra.hs +4/−2
- Documentation/SBV/Examples/Misc/SoftConstrain.hs +2/−0
- Documentation/SBV/Examples/Misc/Tuple.hs +2/−0
- Documentation/SBV/Examples/Misc/Word4.hs +0/−145
- Documentation/SBV/Examples/Optimization/Enumerate.hs +2/−0
- Documentation/SBV/Examples/Optimization/ExtField.hs +2/−0
- Documentation/SBV/Examples/Optimization/LinearOpt.hs +2/−0
- Documentation/SBV/Examples/Optimization/Production.hs +2/−0
- Documentation/SBV/Examples/Optimization/VM.hs +2/−0
- Documentation/SBV/Examples/ProofTools/BMC.hs +2/−0
- Documentation/SBV/Examples/ProofTools/Fibonacci.hs +2/−0
- Documentation/SBV/Examples/ProofTools/Strengthen.hs +2/−0
- Documentation/SBV/Examples/ProofTools/Sum.hs +2/−0
- Documentation/SBV/Examples/Puzzles/Birthday.hs +2/−0
- Documentation/SBV/Examples/Puzzles/Coins.hs +2/−0
- Documentation/SBV/Examples/Puzzles/Counts.hs +4/−2
- Documentation/SBV/Examples/Puzzles/DogCatMouse.hs +2/−0
- Documentation/SBV/Examples/Puzzles/Euler185.hs +2/−0
- Documentation/SBV/Examples/Puzzles/Fish.hs +3/−1
- Documentation/SBV/Examples/Puzzles/Garden.hs +2/−0
- Documentation/SBV/Examples/Puzzles/HexPuzzle.hs +2/−0
- Documentation/SBV/Examples/Puzzles/LadyAndTigers.hs +2/−0
- Documentation/SBV/Examples/Puzzles/MagicSquare.hs +2/−0
- Documentation/SBV/Examples/Puzzles/NQueens.hs +2/−0
- Documentation/SBV/Examples/Puzzles/SendMoreMoney.hs +2/−0
- Documentation/SBV/Examples/Puzzles/Sudoku.hs +2/−0
- Documentation/SBV/Examples/Puzzles/U2Bridge.hs +2/−0
- Documentation/SBV/Examples/Queries/AllSat.hs +2/−0
- Documentation/SBV/Examples/Queries/CaseSplit.hs +2/−0
- Documentation/SBV/Examples/Queries/Enums.hs +2/−0
- Documentation/SBV/Examples/Queries/FourFours.hs +2/−0
- Documentation/SBV/Examples/Queries/GuessNumber.hs +3/−1
- Documentation/SBV/Examples/Queries/Interpolants.hs +2/−0
- Documentation/SBV/Examples/Queries/UnsatCore.hs +2/−0
- Documentation/SBV/Examples/Strings/RegexCrossword.hs +2/−0
- Documentation/SBV/Examples/Strings/SQLInjection.hs +2/−0
- Documentation/SBV/Examples/Transformers/SymbolicEval.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/AUF.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/Deduce.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/Function.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/Multiply.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/Shannon.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/Sort.hs +2/−0
- Documentation/SBV/Examples/Uninterpreted/UISortAllSat.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/Append.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/Fib.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/GCD.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/IntDiv.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/IntSqrt.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/Length.hs +2/−0
- Documentation/SBV/Examples/WeakestPreconditions/Sum.hs +6/−4
- README.md +4/−4
- SBVTestSuite/GoldFiles/aes128Dec.gold +2353/−2525
- SBVTestSuite/GoldFiles/aes128Enc.gold +983/−1083
- SBVTestSuite/GoldFiles/aes128Lib.gold +3341/−3593
- SBVTestSuite/GoldFiles/ccitt.gold +2197/−1829
- SBVTestSuite/GoldFiles/cgUninterpret.gold +1/−1
- SBVTestSuite/GoldFiles/codeGen1.gold +3/−3
- SBVTestSuite/GoldFiles/crcPolyExist.gold +12/−3482
- SBVTestSuite/GoldFiles/foldlABC1.gold +1/−0
- SBVTestSuite/GoldFiles/foldlABC2.gold +1/−0
- SBVTestSuite/GoldFiles/foldlABC3.gold +1/−0
- SBVTestSuite/GoldFiles/foldrAB1.gold +1/−0
- SBVTestSuite/GoldFiles/foldrAB2.gold +1/−0
- SBVTestSuite/GoldFiles/foldrAB3.gold +1/−0
- SBVTestSuite/GoldFiles/freshVars.gold +4/−0
- SBVTestSuite/GoldFiles/mapNoFailure.gold +1/−0
- SBVTestSuite/GoldFiles/mapWithFailure.gold +1/−0
- SBVTestSuite/GoldFiles/maxlWithFailure.gold +1/−0
- SBVTestSuite/GoldFiles/maxrWithFailure.gold +1/−0
- SBVTestSuite/GoldFiles/merge.gold +2/−2
- SBVTestSuite/GoldFiles/pareto1.gold +19/−19
- SBVTestSuite/GoldFiles/query_Chars1.gold +1/−1
- SBVTestSuite/GoldFiles/query_ListOfMaybe.gold +1/−0
- SBVTestSuite/GoldFiles/query_ListOfSum.gold +1/−0
- SBVTestSuite/GoldFiles/query_Lists1.gold +1/−0
- SBVTestSuite/GoldFiles/query_Maybe.gold +1/−0
- SBVTestSuite/GoldFiles/query_SumMaybeBoth.gold +2/−0
- SBVTestSuite/GoldFiles/query_Sums.gold +1/−0
- SBVTestSuite/GoldFiles/query_Tuples1.gold +1/−0
- SBVTestSuite/GoldFiles/query_Tuples2.gold +1/−0
- SBVTestSuite/GoldFiles/query_sumMergeEither1.gold +1/−0
- SBVTestSuite/GoldFiles/query_sumMergeEither2.gold +1/−0
- SBVTestSuite/GoldFiles/query_sumMergeMaybe1.gold +1/−0
- SBVTestSuite/GoldFiles/query_sumMergeMaybe2.gold +1/−0
- SBVTestSuite/GoldFiles/query_uiSat_test1.gold +1/−0
- SBVTestSuite/GoldFiles/query_uiSat_test2.gold +2/−1
- SBVTestSuite/GoldFiles/query_uisatex1.gold +29/−30
- SBVTestSuite/GoldFiles/query_uisatex2.gold +29/−31
- SBVTestSuite/GoldFiles/reverse.gold +1/−0
- SBVTestSuite/GoldFiles/reverseAlt10.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples2.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples3.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples4.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples5.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples6.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples7.gold +1/−0
- SBVTestSuite/GoldFiles/seqExamples8.gold +1/−0
- SBVTestSuite/GoldFiles/set_compl1.gold +1/−0
- SBVTestSuite/GoldFiles/set_delete1.gold +1/−0
- SBVTestSuite/GoldFiles/set_diff1.gold +1/−0
- SBVTestSuite/GoldFiles/set_disj1.gold +1/−0
- SBVTestSuite/GoldFiles/set_empty1.gold +1/−0
- SBVTestSuite/GoldFiles/set_full1.gold +1/−0
- SBVTestSuite/GoldFiles/set_insert1.gold +1/−0
- SBVTestSuite/GoldFiles/set_intersect1.gold +1/−0
- SBVTestSuite/GoldFiles/set_member1.gold +1/−0
- SBVTestSuite/GoldFiles/set_notMember1.gold +1/−0
- SBVTestSuite/GoldFiles/set_psubset1.gold +1/−0
- SBVTestSuite/GoldFiles/set_subset1.gold +1/−0
- SBVTestSuite/GoldFiles/set_tupleSet.gold +40/−0
- SBVTestSuite/GoldFiles/set_uninterp1.gold +14/−13
- SBVTestSuite/GoldFiles/set_uninterp2.gold +1/−0
- SBVTestSuite/GoldFiles/set_union1.gold +1/−0
- SBVTestSuite/GoldFiles/sha256HashBlock.gold +2589/−0
- SBVTestSuite/GoldFiles/sort.gold +1/−0
- SBVTestSuite/GoldFiles/sumBimapPlus.gold +1/−0
- SBVTestSuite/GoldFiles/sumEitherSat.gold +1/−0
- SBVTestSuite/GoldFiles/sumLiftEither.gold +1/−0
- SBVTestSuite/GoldFiles/sumLiftMaybe.gold +1/−0
- SBVTestSuite/GoldFiles/sumMaybe.gold +1/−0
- SBVTestSuite/GoldFiles/sumMaybeBoth.gold +1/−0
- SBVTestSuite/GoldFiles/sumMergeEither1.gold +1/−0
- SBVTestSuite/GoldFiles/sumMergeEither2.gold +1/−0
- SBVTestSuite/GoldFiles/sumMergeMaybe1.gold +1/−0
- SBVTestSuite/GoldFiles/sumMergeMaybe2.gold +1/−0
- SBVTestSuite/GoldFiles/tuple_enum.gold +2/−0
- SBVTestSuite/GoldFiles/tuple_list.gold +1/−0
- SBVTestSuite/GoldFiles/tuple_nested.gold +1/−0
- SBVTestSuite/GoldFiles/tuple_swap.gold +1/−0
- SBVTestSuite/GoldFiles/tuple_twoTwo.gold +1/−0
- SBVTestSuite/GoldFiles/tuple_unequal.gold +49/−0
- SBVTestSuite/GoldFiles/uiSat_test1.gold +3/−2
- SBVTestSuite/GoldFiles/uiSat_test2.gold +37/−63
- SBVTestSuite/GoldFiles/uiSat_test3.gold +2534/−2606
- SBVTestSuite/GoldFiles/validate_1.gold +4/−4
- SBVTestSuite/GoldFiles/validate_2.gold +4/−4
- SBVTestSuite/GoldFiles/validate_7.gold +9/−7
- SBVTestSuite/SBVDocTest.hs +3/−1
- SBVTestSuite/SBVHLint.hs +4/−1
- SBVTestSuite/SBVTest.hs +4/−0
- SBVTestSuite/TestSuite/Arrays/InitVals.hs +2/−0
- SBVTestSuite/TestSuite/Arrays/Memory.hs +2/−0
- SBVTestSuite/TestSuite/Arrays/Query.hs +2/−0
- SBVTestSuite/TestSuite/Basics/AllSat.hs +2/−0
- SBVTestSuite/TestSuite/Basics/ArithNoSolver.hs +23/−0
- SBVTestSuite/TestSuite/Basics/ArithSolver.hs +46/−16
- SBVTestSuite/TestSuite/Basics/Assert.hs +2/−0
- SBVTestSuite/TestSuite/Basics/BarrelRotate.hs +3/−1
- SBVTestSuite/TestSuite/Basics/BasicTests.hs +2/−0
- SBVTestSuite/TestSuite/Basics/BoundedList.hs +2/−0
- SBVTestSuite/TestSuite/Basics/DynSign.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Exceptions.hs +2/−0
- SBVTestSuite/TestSuite/Basics/GenBenchmark.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Higher.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Index.hs +2/−0
- SBVTestSuite/TestSuite/Basics/IteTest.hs +2/−0
- SBVTestSuite/TestSuite/Basics/List.hs +2/−0
- SBVTestSuite/TestSuite/Basics/ModelValidate.hs +2/−0
- SBVTestSuite/TestSuite/Basics/ProofTests.hs +2/−0
- SBVTestSuite/TestSuite/Basics/PseudoBoolean.hs +2/−0
- SBVTestSuite/TestSuite/Basics/QRem.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Quantifiers.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Recursive.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Set.hs +11/−0
- SBVTestSuite/TestSuite/Basics/SmallShifts.hs +2/−0
- SBVTestSuite/TestSuite/Basics/SquashReals.hs +2/−0
- SBVTestSuite/TestSuite/Basics/String.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Sum.hs +2/−0
- SBVTestSuite/TestSuite/Basics/TOut.hs +2/−0
- SBVTestSuite/TestSuite/Basics/Tuple.hs +19/−1
- SBVTestSuite/TestSuite/Basics/UISat.hs +2/−0
- SBVTestSuite/TestSuite/BitPrecise/BitTricks.hs +2/−0
- SBVTestSuite/TestSuite/BitPrecise/Legato.hs +2/−0
- SBVTestSuite/TestSuite/BitPrecise/MergeSort.hs +2/−0
- SBVTestSuite/TestSuite/BitPrecise/PrefixSum.hs +2/−0
- SBVTestSuite/TestSuite/CRC/CCITT.hs +17/−14
- SBVTestSuite/TestSuite/CRC/CCITT_Unidir.hs +16/−13
- SBVTestSuite/TestSuite/CRC/GenPoly.hs +21/−19
- SBVTestSuite/TestSuite/CRC/Parity.hs +2/−0
- SBVTestSuite/TestSuite/CRC/USB5.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/AddSub.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/CRC_USB5.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/CgTests.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/Fibonacci.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/Floats.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/GCD.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/PopulationCount.hs +2/−0
- SBVTestSuite/TestSuite/CodeGeneration/Uninterpreted.hs +2/−0
- SBVTestSuite/TestSuite/Crypto/AES.hs +3/−1
- SBVTestSuite/TestSuite/Crypto/RC4.hs +2/−0
- SBVTestSuite/TestSuite/Crypto/SHA.hs +41/−0
- SBVTestSuite/TestSuite/Existentials/CRCPolynomial.hs +10/−10
- SBVTestSuite/TestSuite/GenTest/GenTests.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/AssertWithPenalty.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/Basics.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/Combined.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/ExtensionField.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/Floats.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/NoOpt.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/Quantified.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/Reals.hs +2/−0
- SBVTestSuite/TestSuite/Optimization/Tuples.hs +2/−0
- SBVTestSuite/TestSuite/Overflows/Arithmetic.hs +2/−0
- SBVTestSuite/TestSuite/Overflows/Casts.hs +2/−0
- SBVTestSuite/TestSuite/Polynomials/Polynomials.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/Coins.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/Counts.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/DogCatMouse.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/Euler185.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/MagicSquare.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/NQueens.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/PowerSet.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/Sudoku.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/Temperature.hs +2/−0
- SBVTestSuite/TestSuite/Puzzles/U2Bridge.hs +2/−0
- SBVTestSuite/TestSuite/Queries/BadOption.hs +2/−0
- SBVTestSuite/TestSuite/Queries/BasicQuery.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Enums.hs +2/−0
- SBVTestSuite/TestSuite/Queries/FreshVars.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Int_ABC.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Int_Boolector.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Int_CVC4.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Int_Mathsat.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Int_Yices.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Int_Z3.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Interpolants.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Lists.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Strings.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Sums.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Tuples.hs +2/−0
- SBVTestSuite/TestSuite/Queries/UISat.hs +2/−0
- SBVTestSuite/TestSuite/Queries/UISatEx.hs +2/−0
- SBVTestSuite/TestSuite/Queries/Uninterpreted.hs +2/−0
- SBVTestSuite/TestSuite/QuickCheck/QC.hs +2/−0
- SBVTestSuite/TestSuite/Transformers/SymbolicEval.hs +2/−0
- SBVTestSuite/TestSuite/Uninterpreted/AUF.hs +2/−0
- SBVTestSuite/TestSuite/Uninterpreted/Axioms.hs +2/−0
- SBVTestSuite/TestSuite/Uninterpreted/Function.hs +2/−0
- SBVTestSuite/TestSuite/Uninterpreted/Sort.hs +2/−0
- SBVTestSuite/TestSuite/Uninterpreted/Uninterpreted.hs +2/−0
- SBVTestSuite/Utils/SBVTestFramework.hs +2/−0
- Setup.hs +2/−1
- sbv.cabal +13/−3
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