[Git][ghc/ghc][wip/supersven/aarch64-switch-coredump-reproducer] Add reproducer for dealloc instructions in switch table jump expressions (#25733)

Sven Tennie (@supersven) gitlab at gitlab.haskell.org
Sun Feb 23 09:46:12 UTC 2025



Sven Tennie pushed to branch wip/supersven/aarch64-switch-coredump-reproducer at Glasgow Haskell Compiler / GHC


Commits:
e7a24d8f by Sven Tennie at 2025-02-23T10:43:57+01:00
Add reproducer for dealloc instructions in switch table jump expressions (#25733)

- - - - -


5 changed files:

- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
- + testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
- + testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
- testsuite/tests/cmm/should_run/all.T


Changes:

=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.hs
=====================================
@@ -0,0 +1,12 @@
+{-# LANGUAGE GHCForeignImportPrim #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE UnliftedFFITypes #-}
+
+import Data.Foldable
+import GHC.Exts
+import GHC.Int
+
+foreign import prim "foo" foo :: Int64# -> Int64#
+
+main :: IO ()
+main = for_ [0 .. 9] $ \(I64# x#) -> print $ I64# (foo x#)


=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc.stdout
=====================================
@@ -0,0 +1,50 @@
+0
+0
+0
+6
+0
+2
+0
+4
+0
+0
+Before switch
+Inside branch 0 
+Before jump 0 
+End :) 
+Before switch
+Inside branch 1 
+Before jump 1 
+End :) 
+Before switch
+Inside branch 8 
+Before jump 8 
+End :) 
+Before switch
+Inside default branch
+Before jump default
+End :) 
+Before switch
+Inside branch 6 
+Before jump 6 
+End :) 
+Before switch
+Inside branch 7 
+Before jump 7 
+End :) 
+Before switch
+Inside branch 4 
+Before jump 4 
+End :) 
+Before switch
+Inside branch 5 
+Before jump 5 
+End :) 
+Before switch
+Inside branch 2 
+Before jump 2 
+End :) 
+Before switch
+Inside branch 3 
+Before jump 3 
+End :) 


=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDeallocGen.hs
=====================================
@@ -0,0 +1,75 @@
+-- | Generates the JumpTableNoStackDealloc test
+--
+-- The test is a reproducer of #25733 where stack spill slots where wrongly
+-- deallocated for switch table jumps. This only happened when the initial
+-- stack (RESERVED_C_STACK_BYTES, 2048 * SIZEOF_LONG, 16k on most 64bit
+-- architectures) was full. I.e. we were breaking the assumptions explained in
+-- Note [extra spill slots].
+--
+-- The strategy of this test is to first fill the C stack by having many local
+-- variables that are used later. This leads to stack spilling. In the broken
+-- implemetation of the CodeGen, the invalid stack pointer led to a
+-- segmentation fault / core dump. Its absence, i.e. a suceessful run of this
+-- test, shows that the stack pointer is intact.
+--
+-- The calculations in this test are pretty randomly choosen: They are only
+-- made to prevent inlining and constant folding.
+--
+-- The real test can be generated by running:
+-- `ghc JumpTableNoStackDeallocGen.hs && ./JumpTableNoStackDeallocGen > JumpTableNoStackDealloc_cmm.cmm`
+module Main where
+
+import Control.Monad
+import Data.List
+
+printVarDecl :: Int -> IO ()
+printVarDecl i = do
+  putStrLn $ "  I64 i" ++ show i ++ ";"
+  putStrLn $ "  i" ++ show i ++ " = (" ++ show i ++ " " ++ op ++ " x) % 10;"
+  where
+    -- Add some variance. Otherwise, GHC inlines the expressions.
+    op = case i of
+      _
+        | even i -> "+"
+        | odd i -> "-"
+
+addVars :: [Int] -> String
+addVars = opVars "+"
+  where
+    opVars :: String -> [Int] -> String
+    opVars op is = concat $ intersperse op $ map ((++) "i" . show) is
+
+printCase :: Int -> IO ()
+printCase i = do
+  putStrLn $ "    case " ++ show i ++ ": {"
+  putStrLn $ "      ccall printf(\"Inside branch %d \\n\", " ++ show i ++ ");"
+  putStrLn $ "      res = i" ++ show i ++ ";"
+  putStrLn $ "      ccall printf(\"Before jump %d \\n\", " ++ show i ++ ");"
+  putStrLn $ "      goto END;"
+  putStrLn $ "    }"
+
+main :: IO ()
+main = do
+  -- This number depends on the amount of available registers. 2048 works for
+  -- AArch64, adding a bit more to be safe in case an architecture has more
+  -- free fregisters.
+  let varNums = [0 .. 2060]
+  putStrLn "// Generated by JumpTableNoStackDeallocGen.hs\n"
+  putStrLn "#include \"Cmm.h\""
+  putStrLn "foo (I64 x) {"
+  forM_ varNums printVarDecl
+  putStrLn "\n  I64 res;"
+  putStrLn "  ccall printf(\"Before switch\\n\");"
+  putStrLn $ "  switch [0 .. 9] ((" ++ addVars varNums ++ ") % 10) {"
+  forM_ [0 .. 8] printCase
+  putStrLn "    default: {"
+  putStrLn "      ccall printf(\"Inside default branch\\n\");"
+  putStrLn "      res = x * (2 :: I64);"
+  putStrLn "      ccall printf(\"Before jump default\\n\");"
+  putStrLn "      goto END;"
+  putStrLn "    }"
+  putStrLn "  }"
+  putStrLn "END:"
+  putStrLn "  ccall printf(\"End :) \\n\");"
+  putStrLn $ "  return (res);"
+  putStrLn "}"


=====================================
testsuite/tests/cmm/should_run/JumpTableNoStackDealloc_cmm.cmm
=====================================
@@ -0,0 +1,4195 @@
+// Generated by JumpTableNoStackDeallocGen.hs
+
+#include "Cmm.h"
+foo (I64 x) {
+  I64 i0;
+  i0 = (0 + x) % 10;
+  I64 i1;
+  i1 = (1 - x) % 10;
+  I64 i2;
+  i2 = (2 + x) % 10;
+  I64 i3;
+  i3 = (3 - x) % 10;
+  I64 i4;
+  i4 = (4 + x) % 10;
+  I64 i5;
+  i5 = (5 - x) % 10;
+  I64 i6;
+  i6 = (6 + x) % 10;
+  I64 i7;
+  i7 = (7 - x) % 10;
+  I64 i8;
+  i8 = (8 + x) % 10;
+  I64 i9;
+  i9 = (9 - x) % 10;
+  I64 i10;
+  i10 = (10 + x) % 10;
+  I64 i11;
+  i11 = (11 - x) % 10;
+  I64 i12;
+  i12 = (12 + x) % 10;
+  I64 i13;
+  i13 = (13 - x) % 10;
+  I64 i14;
+  i14 = (14 + x) % 10;
+  I64 i15;
+  i15 = (15 - x) % 10;
+  I64 i16;
+  i16 = (16 + x) % 10;
+  I64 i17;
+  i17 = (17 - x) % 10;
+  I64 i18;
+  i18 = (18 + x) % 10;
+  I64 i19;
+  i19 = (19 - x) % 10;
+  I64 i20;
+  i20 = (20 + x) % 10;
+  I64 i21;
+  i21 = (21 - x) % 10;
+  I64 i22;
+  i22 = (22 + x) % 10;
+  I64 i23;
+  i23 = (23 - x) % 10;
+  I64 i24;
+  i24 = (24 + x) % 10;
+  I64 i25;
+  i25 = (25 - x) % 10;
+  I64 i26;
+  i26 = (26 + x) % 10;
+  I64 i27;
+  i27 = (27 - x) % 10;
+  I64 i28;
+  i28 = (28 + x) % 10;
+  I64 i29;
+  i29 = (29 - x) % 10;
+  I64 i30;
+  i30 = (30 + x) % 10;
+  I64 i31;
+  i31 = (31 - x) % 10;
+  I64 i32;
+  i32 = (32 + x) % 10;
+  I64 i33;
+  i33 = (33 - x) % 10;
+  I64 i34;
+  i34 = (34 + x) % 10;
+  I64 i35;
+  i35 = (35 - x) % 10;
+  I64 i36;
+  i36 = (36 + x) % 10;
+  I64 i37;
+  i37 = (37 - x) % 10;
+  I64 i38;
+  i38 = (38 + x) % 10;
+  I64 i39;
+  i39 = (39 - x) % 10;
+  I64 i40;
+  i40 = (40 + x) % 10;
+  I64 i41;
+  i41 = (41 - x) % 10;
+  I64 i42;
+  i42 = (42 + x) % 10;
+  I64 i43;
+  i43 = (43 - x) % 10;
+  I64 i44;
+  i44 = (44 + x) % 10;
+  I64 i45;
+  i45 = (45 - x) % 10;
+  I64 i46;
+  i46 = (46 + x) % 10;
+  I64 i47;
+  i47 = (47 - x) % 10;
+  I64 i48;
+  i48 = (48 + x) % 10;
+  I64 i49;
+  i49 = (49 - x) % 10;
+  I64 i50;
+  i50 = (50 + x) % 10;
+  I64 i51;
+  i51 = (51 - x) % 10;
+  I64 i52;
+  i52 = (52 + x) % 10;
+  I64 i53;
+  i53 = (53 - x) % 10;
+  I64 i54;
+  i54 = (54 + x) % 10;
+  I64 i55;
+  i55 = (55 - x) % 10;
+  I64 i56;
+  i56 = (56 + x) % 10;
+  I64 i57;
+  i57 = (57 - x) % 10;
+  I64 i58;
+  i58 = (58 + x) % 10;
+  I64 i59;
+  i59 = (59 - x) % 10;
+  I64 i60;
+  i60 = (60 + x) % 10;
+  I64 i61;
+  i61 = (61 - x) % 10;
+  I64 i62;
+  i62 = (62 + x) % 10;
+  I64 i63;
+  i63 = (63 - x) % 10;
+  I64 i64;
+  i64 = (64 + x) % 10;
+  I64 i65;
+  i65 = (65 - x) % 10;
+  I64 i66;
+  i66 = (66 + x) % 10;
+  I64 i67;
+  i67 = (67 - x) % 10;
+  I64 i68;
+  i68 = (68 + x) % 10;
+  I64 i69;
+  i69 = (69 - x) % 10;
+  I64 i70;
+  i70 = (70 + x) % 10;
+  I64 i71;
+  i71 = (71 - x) % 10;
+  I64 i72;
+  i72 = (72 + x) % 10;
+  I64 i73;
+  i73 = (73 - x) % 10;
+  I64 i74;
+  i74 = (74 + x) % 10;
+  I64 i75;
+  i75 = (75 - x) % 10;
+  I64 i76;
+  i76 = (76 + x) % 10;
+  I64 i77;
+  i77 = (77 - x) % 10;
+  I64 i78;
+  i78 = (78 + x) % 10;
+  I64 i79;
+  i79 = (79 - x) % 10;
+  I64 i80;
+  i80 = (80 + x) % 10;
+  I64 i81;
+  i81 = (81 - x) % 10;
+  I64 i82;
+  i82 = (82 + x) % 10;
+  I64 i83;
+  i83 = (83 - x) % 10;
+  I64 i84;
+  i84 = (84 + x) % 10;
+  I64 i85;
+  i85 = (85 - x) % 10;
+  I64 i86;
+  i86 = (86 + x) % 10;
+  I64 i87;
+  i87 = (87 - x) % 10;
+  I64 i88;
+  i88 = (88 + x) % 10;
+  I64 i89;
+  i89 = (89 - x) % 10;
+  I64 i90;
+  i90 = (90 + x) % 10;
+  I64 i91;
+  i91 = (91 - x) % 10;
+  I64 i92;
+  i92 = (92 + x) % 10;
+  I64 i93;
+  i93 = (93 - x) % 10;
+  I64 i94;
+  i94 = (94 + x) % 10;
+  I64 i95;
+  i95 = (95 - x) % 10;
+  I64 i96;
+  i96 = (96 + x) % 10;
+  I64 i97;
+  i97 = (97 - x) % 10;
+  I64 i98;
+  i98 = (98 + x) % 10;
+  I64 i99;
+  i99 = (99 - x) % 10;
+  I64 i100;
+  i100 = (100 + x) % 10;
+  I64 i101;
+  i101 = (101 - x) % 10;
+  I64 i102;
+  i102 = (102 + x) % 10;
+  I64 i103;
+  i103 = (103 - x) % 10;
+  I64 i104;
+  i104 = (104 + x) % 10;
+  I64 i105;
+  i105 = (105 - x) % 10;
+  I64 i106;
+  i106 = (106 + x) % 10;
+  I64 i107;
+  i107 = (107 - x) % 10;
+  I64 i108;
+  i108 = (108 + x) % 10;
+  I64 i109;
+  i109 = (109 - x) % 10;
+  I64 i110;
+  i110 = (110 + x) % 10;
+  I64 i111;
+  i111 = (111 - x) % 10;
+  I64 i112;
+  i112 = (112 + x) % 10;
+  I64 i113;
+  i113 = (113 - x) % 10;
+  I64 i114;
+  i114 = (114 + x) % 10;
+  I64 i115;
+  i115 = (115 - x) % 10;
+  I64 i116;
+  i116 = (116 + x) % 10;
+  I64 i117;
+  i117 = (117 - x) % 10;
+  I64 i118;
+  i118 = (118 + x) % 10;
+  I64 i119;
+  i119 = (119 - x) % 10;
+  I64 i120;
+  i120 = (120 + x) % 10;
+  I64 i121;
+  i121 = (121 - x) % 10;
+  I64 i122;
+  i122 = (122 + x) % 10;
+  I64 i123;
+  i123 = (123 - x) % 10;
+  I64 i124;
+  i124 = (124 + x) % 10;
+  I64 i125;
+  i125 = (125 - x) % 10;
+  I64 i126;
+  i126 = (126 + x) % 10;
+  I64 i127;
+  i127 = (127 - x) % 10;
+  I64 i128;
+  i128 = (128 + x) % 10;
+  I64 i129;
+  i129 = (129 - x) % 10;
+  I64 i130;
+  i130 = (130 + x) % 10;
+  I64 i131;
+  i131 = (131 - x) % 10;
+  I64 i132;
+  i132 = (132 + x) % 10;
+  I64 i133;
+  i133 = (133 - x) % 10;
+  I64 i134;
+  i134 = (134 + x) % 10;
+  I64 i135;
+  i135 = (135 - x) % 10;
+  I64 i136;
+  i136 = (136 + x) % 10;
+  I64 i137;
+  i137 = (137 - x) % 10;
+  I64 i138;
+  i138 = (138 + x) % 10;
+  I64 i139;
+  i139 = (139 - x) % 10;
+  I64 i140;
+  i140 = (140 + x) % 10;
+  I64 i141;
+  i141 = (141 - x) % 10;
+  I64 i142;
+  i142 = (142 + x) % 10;
+  I64 i143;
+  i143 = (143 - x) % 10;
+  I64 i144;
+  i144 = (144 + x) % 10;
+  I64 i145;
+  i145 = (145 - x) % 10;
+  I64 i146;
+  i146 = (146 + x) % 10;
+  I64 i147;
+  i147 = (147 - x) % 10;
+  I64 i148;
+  i148 = (148 + x) % 10;
+  I64 i149;
+  i149 = (149 - x) % 10;
+  I64 i150;
+  i150 = (150 + x) % 10;
+  I64 i151;
+  i151 = (151 - x) % 10;
+  I64 i152;
+  i152 = (152 + x) % 10;
+  I64 i153;
+  i153 = (153 - x) % 10;
+  I64 i154;
+  i154 = (154 + x) % 10;
+  I64 i155;
+  i155 = (155 - x) % 10;
+  I64 i156;
+  i156 = (156 + x) % 10;
+  I64 i157;
+  i157 = (157 - x) % 10;
+  I64 i158;
+  i158 = (158 + x) % 10;
+  I64 i159;
+  i159 = (159 - x) % 10;
+  I64 i160;
+  i160 = (160 + x) % 10;
+  I64 i161;
+  i161 = (161 - x) % 10;
+  I64 i162;
+  i162 = (162 + x) % 10;
+  I64 i163;
+  i163 = (163 - x) % 10;
+  I64 i164;
+  i164 = (164 + x) % 10;
+  I64 i165;
+  i165 = (165 - x) % 10;
+  I64 i166;
+  i166 = (166 + x) % 10;
+  I64 i167;
+  i167 = (167 - x) % 10;
+  I64 i168;
+  i168 = (168 + x) % 10;
+  I64 i169;
+  i169 = (169 - x) % 10;
+  I64 i170;
+  i170 = (170 + x) % 10;
+  I64 i171;
+  i171 = (171 - x) % 10;
+  I64 i172;
+  i172 = (172 + x) % 10;
+  I64 i173;
+  i173 = (173 - x) % 10;
+  I64 i174;
+  i174 = (174 + x) % 10;
+  I64 i175;
+  i175 = (175 - x) % 10;
+  I64 i176;
+  i176 = (176 + x) % 10;
+  I64 i177;
+  i177 = (177 - x) % 10;
+  I64 i178;
+  i178 = (178 + x) % 10;
+  I64 i179;
+  i179 = (179 - x) % 10;
+  I64 i180;
+  i180 = (180 + x) % 10;
+  I64 i181;
+  i181 = (181 - x) % 10;
+  I64 i182;
+  i182 = (182 + x) % 10;
+  I64 i183;
+  i183 = (183 - x) % 10;
+  I64 i184;
+  i184 = (184 + x) % 10;
+  I64 i185;
+  i185 = (185 - x) % 10;
+  I64 i186;
+  i186 = (186 + x) % 10;
+  I64 i187;
+  i187 = (187 - x) % 10;
+  I64 i188;
+  i188 = (188 + x) % 10;
+  I64 i189;
+  i189 = (189 - x) % 10;
+  I64 i190;
+  i190 = (190 + x) % 10;
+  I64 i191;
+  i191 = (191 - x) % 10;
+  I64 i192;
+  i192 = (192 + x) % 10;
+  I64 i193;
+  i193 = (193 - x) % 10;
+  I64 i194;
+  i194 = (194 + x) % 10;
+  I64 i195;
+  i195 = (195 - x) % 10;
+  I64 i196;
+  i196 = (196 + x) % 10;
+  I64 i197;
+  i197 = (197 - x) % 10;
+  I64 i198;
+  i198 = (198 + x) % 10;
+  I64 i199;
+  i199 = (199 - x) % 10;
+  I64 i200;
+  i200 = (200 + x) % 10;
+  I64 i201;
+  i201 = (201 - x) % 10;
+  I64 i202;
+  i202 = (202 + x) % 10;
+  I64 i203;
+  i203 = (203 - x) % 10;
+  I64 i204;
+  i204 = (204 + x) % 10;
+  I64 i205;
+  i205 = (205 - x) % 10;
+  I64 i206;
+  i206 = (206 + x) % 10;
+  I64 i207;
+  i207 = (207 - x) % 10;
+  I64 i208;
+  i208 = (208 + x) % 10;
+  I64 i209;
+  i209 = (209 - x) % 10;
+  I64 i210;
+  i210 = (210 + x) % 10;
+  I64 i211;
+  i211 = (211 - x) % 10;
+  I64 i212;
+  i212 = (212 + x) % 10;
+  I64 i213;
+  i213 = (213 - x) % 10;
+  I64 i214;
+  i214 = (214 + x) % 10;
+  I64 i215;
+  i215 = (215 - x) % 10;
+  I64 i216;
+  i216 = (216 + x) % 10;
+  I64 i217;
+  i217 = (217 - x) % 10;
+  I64 i218;
+  i218 = (218 + x) % 10;
+  I64 i219;
+  i219 = (219 - x) % 10;
+  I64 i220;
+  i220 = (220 + x) % 10;
+  I64 i221;
+  i221 = (221 - x) % 10;
+  I64 i222;
+  i222 = (222 + x) % 10;
+  I64 i223;
+  i223 = (223 - x) % 10;
+  I64 i224;
+  i224 = (224 + x) % 10;
+  I64 i225;
+  i225 = (225 - x) % 10;
+  I64 i226;
+  i226 = (226 + x) % 10;
+  I64 i227;
+  i227 = (227 - x) % 10;
+  I64 i228;
+  i228 = (228 + x) % 10;
+  I64 i229;
+  i229 = (229 - x) % 10;
+  I64 i230;
+  i230 = (230 + x) % 10;
+  I64 i231;
+  i231 = (231 - x) % 10;
+  I64 i232;
+  i232 = (232 + x) % 10;
+  I64 i233;
+  i233 = (233 - x) % 10;
+  I64 i234;
+  i234 = (234 + x) % 10;
+  I64 i235;
+  i235 = (235 - x) % 10;
+  I64 i236;
+  i236 = (236 + x) % 10;
+  I64 i237;
+  i237 = (237 - x) % 10;
+  I64 i238;
+  i238 = (238 + x) % 10;
+  I64 i239;
+  i239 = (239 - x) % 10;
+  I64 i240;
+  i240 = (240 + x) % 10;
+  I64 i241;
+  i241 = (241 - x) % 10;
+  I64 i242;
+  i242 = (242 + x) % 10;
+  I64 i243;
+  i243 = (243 - x) % 10;
+  I64 i244;
+  i244 = (244 + x) % 10;
+  I64 i245;
+  i245 = (245 - x) % 10;
+  I64 i246;
+  i246 = (246 + x) % 10;
+  I64 i247;
+  i247 = (247 - x) % 10;
+  I64 i248;
+  i248 = (248 + x) % 10;
+  I64 i249;
+  i249 = (249 - x) % 10;
+  I64 i250;
+  i250 = (250 + x) % 10;
+  I64 i251;
+  i251 = (251 - x) % 10;
+  I64 i252;
+  i252 = (252 + x) % 10;
+  I64 i253;
+  i253 = (253 - x) % 10;
+  I64 i254;
+  i254 = (254 + x) % 10;
+  I64 i255;
+  i255 = (255 - x) % 10;
+  I64 i256;
+  i256 = (256 + x) % 10;
+  I64 i257;
+  i257 = (257 - x) % 10;
+  I64 i258;
+  i258 = (258 + x) % 10;
+  I64 i259;
+  i259 = (259 - x) % 10;
+  I64 i260;
+  i260 = (260 + x) % 10;
+  I64 i261;
+  i261 = (261 - x) % 10;
+  I64 i262;
+  i262 = (262 + x) % 10;
+  I64 i263;
+  i263 = (263 - x) % 10;
+  I64 i264;
+  i264 = (264 + x) % 10;
+  I64 i265;
+  i265 = (265 - x) % 10;
+  I64 i266;
+  i266 = (266 + x) % 10;
+  I64 i267;
+  i267 = (267 - x) % 10;
+  I64 i268;
+  i268 = (268 + x) % 10;
+  I64 i269;
+  i269 = (269 - x) % 10;
+  I64 i270;
+  i270 = (270 + x) % 10;
+  I64 i271;
+  i271 = (271 - x) % 10;
+  I64 i272;
+  i272 = (272 + x) % 10;
+  I64 i273;
+  i273 = (273 - x) % 10;
+  I64 i274;
+  i274 = (274 + x) % 10;
+  I64 i275;
+  i275 = (275 - x) % 10;
+  I64 i276;
+  i276 = (276 + x) % 10;
+  I64 i277;
+  i277 = (277 - x) % 10;
+  I64 i278;
+  i278 = (278 + x) % 10;
+  I64 i279;
+  i279 = (279 - x) % 10;
+  I64 i280;
+  i280 = (280 + x) % 10;
+  I64 i281;
+  i281 = (281 - x) % 10;
+  I64 i282;
+  i282 = (282 + x) % 10;
+  I64 i283;
+  i283 = (283 - x) % 10;
+  I64 i284;
+  i284 = (284 + x) % 10;
+  I64 i285;
+  i285 = (285 - x) % 10;
+  I64 i286;
+  i286 = (286 + x) % 10;
+  I64 i287;
+  i287 = (287 - x) % 10;
+  I64 i288;
+  i288 = (288 + x) % 10;
+  I64 i289;
+  i289 = (289 - x) % 10;
+  I64 i290;
+  i290 = (290 + x) % 10;
+  I64 i291;
+  i291 = (291 - x) % 10;
+  I64 i292;
+  i292 = (292 + x) % 10;
+  I64 i293;
+  i293 = (293 - x) % 10;
+  I64 i294;
+  i294 = (294 + x) % 10;
+  I64 i295;
+  i295 = (295 - x) % 10;
+  I64 i296;
+  i296 = (296 + x) % 10;
+  I64 i297;
+  i297 = (297 - x) % 10;
+  I64 i298;
+  i298 = (298 + x) % 10;
+  I64 i299;
+  i299 = (299 - x) % 10;
+  I64 i300;
+  i300 = (300 + x) % 10;
+  I64 i301;
+  i301 = (301 - x) % 10;
+  I64 i302;
+  i302 = (302 + x) % 10;
+  I64 i303;
+  i303 = (303 - x) % 10;
+  I64 i304;
+  i304 = (304 + x) % 10;
+  I64 i305;
+  i305 = (305 - x) % 10;
+  I64 i306;
+  i306 = (306 + x) % 10;
+  I64 i307;
+  i307 = (307 - x) % 10;
+  I64 i308;
+  i308 = (308 + x) % 10;
+  I64 i309;
+  i309 = (309 - x) % 10;
+  I64 i310;
+  i310 = (310 + x) % 10;
+  I64 i311;
+  i311 = (311 - x) % 10;
+  I64 i312;
+  i312 = (312 + x) % 10;
+  I64 i313;
+  i313 = (313 - x) % 10;
+  I64 i314;
+  i314 = (314 + x) % 10;
+  I64 i315;
+  i315 = (315 - x) % 10;
+  I64 i316;
+  i316 = (316 + x) % 10;
+  I64 i317;
+  i317 = (317 - x) % 10;
+  I64 i318;
+  i318 = (318 + x) % 10;
+  I64 i319;
+  i319 = (319 - x) % 10;
+  I64 i320;
+  i320 = (320 + x) % 10;
+  I64 i321;
+  i321 = (321 - x) % 10;
+  I64 i322;
+  i322 = (322 + x) % 10;
+  I64 i323;
+  i323 = (323 - x) % 10;
+  I64 i324;
+  i324 = (324 + x) % 10;
+  I64 i325;
+  i325 = (325 - x) % 10;
+  I64 i326;
+  i326 = (326 + x) % 10;
+  I64 i327;
+  i327 = (327 - x) % 10;
+  I64 i328;
+  i328 = (328 + x) % 10;
+  I64 i329;
+  i329 = (329 - x) % 10;
+  I64 i330;
+  i330 = (330 + x) % 10;
+  I64 i331;
+  i331 = (331 - x) % 10;
+  I64 i332;
+  i332 = (332 + x) % 10;
+  I64 i333;
+  i333 = (333 - x) % 10;
+  I64 i334;
+  i334 = (334 + x) % 10;
+  I64 i335;
+  i335 = (335 - x) % 10;
+  I64 i336;
+  i336 = (336 + x) % 10;
+  I64 i337;
+  i337 = (337 - x) % 10;
+  I64 i338;
+  i338 = (338 + x) % 10;
+  I64 i339;
+  i339 = (339 - x) % 10;
+  I64 i340;
+  i340 = (340 + x) % 10;
+  I64 i341;
+  i341 = (341 - x) % 10;
+  I64 i342;
+  i342 = (342 + x) % 10;
+  I64 i343;
+  i343 = (343 - x) % 10;
+  I64 i344;
+  i344 = (344 + x) % 10;
+  I64 i345;
+  i345 = (345 - x) % 10;
+  I64 i346;
+  i346 = (346 + x) % 10;
+  I64 i347;
+  i347 = (347 - x) % 10;
+  I64 i348;
+  i348 = (348 + x) % 10;
+  I64 i349;
+  i349 = (349 - x) % 10;
+  I64 i350;
+  i350 = (350 + x) % 10;
+  I64 i351;
+  i351 = (351 - x) % 10;
+  I64 i352;
+  i352 = (352 + x) % 10;
+  I64 i353;
+  i353 = (353 - x) % 10;
+  I64 i354;
+  i354 = (354 + x) % 10;
+  I64 i355;
+  i355 = (355 - x) % 10;
+  I64 i356;
+  i356 = (356 + x) % 10;
+  I64 i357;
+  i357 = (357 - x) % 10;
+  I64 i358;
+  i358 = (358 + x) % 10;
+  I64 i359;
+  i359 = (359 - x) % 10;
+  I64 i360;
+  i360 = (360 + x) % 10;
+  I64 i361;
+  i361 = (361 - x) % 10;
+  I64 i362;
+  i362 = (362 + x) % 10;
+  I64 i363;
+  i363 = (363 - x) % 10;
+  I64 i364;
+  i364 = (364 + x) % 10;
+  I64 i365;
+  i365 = (365 - x) % 10;
+  I64 i366;
+  i366 = (366 + x) % 10;
+  I64 i367;
+  i367 = (367 - x) % 10;
+  I64 i368;
+  i368 = (368 + x) % 10;
+  I64 i369;
+  i369 = (369 - x) % 10;
+  I64 i370;
+  i370 = (370 + x) % 10;
+  I64 i371;
+  i371 = (371 - x) % 10;
+  I64 i372;
+  i372 = (372 + x) % 10;
+  I64 i373;
+  i373 = (373 - x) % 10;
+  I64 i374;
+  i374 = (374 + x) % 10;
+  I64 i375;
+  i375 = (375 - x) % 10;
+  I64 i376;
+  i376 = (376 + x) % 10;
+  I64 i377;
+  i377 = (377 - x) % 10;
+  I64 i378;
+  i378 = (378 + x) % 10;
+  I64 i379;
+  i379 = (379 - x) % 10;
+  I64 i380;
+  i380 = (380 + x) % 10;
+  I64 i381;
+  i381 = (381 - x) % 10;
+  I64 i382;
+  i382 = (382 + x) % 10;
+  I64 i383;
+  i383 = (383 - x) % 10;
+  I64 i384;
+  i384 = (384 + x) % 10;
+  I64 i385;
+  i385 = (385 - x) % 10;
+  I64 i386;
+  i386 = (386 + x) % 10;
+  I64 i387;
+  i387 = (387 - x) % 10;
+  I64 i388;
+  i388 = (388 + x) % 10;
+  I64 i389;
+  i389 = (389 - x) % 10;
+  I64 i390;
+  i390 = (390 + x) % 10;
+  I64 i391;
+  i391 = (391 - x) % 10;
+  I64 i392;
+  i392 = (392 + x) % 10;
+  I64 i393;
+  i393 = (393 - x) % 10;
+  I64 i394;
+  i394 = (394 + x) % 10;
+  I64 i395;
+  i395 = (395 - x) % 10;
+  I64 i396;
+  i396 = (396 + x) % 10;
+  I64 i397;
+  i397 = (397 - x) % 10;
+  I64 i398;
+  i398 = (398 + x) % 10;
+  I64 i399;
+  i399 = (399 - x) % 10;
+  I64 i400;
+  i400 = (400 + x) % 10;
+  I64 i401;
+  i401 = (401 - x) % 10;
+  I64 i402;
+  i402 = (402 + x) % 10;
+  I64 i403;
+  i403 = (403 - x) % 10;
+  I64 i404;
+  i404 = (404 + x) % 10;
+  I64 i405;
+  i405 = (405 - x) % 10;
+  I64 i406;
+  i406 = (406 + x) % 10;
+  I64 i407;
+  i407 = (407 - x) % 10;
+  I64 i408;
+  i408 = (408 + x) % 10;
+  I64 i409;
+  i409 = (409 - x) % 10;
+  I64 i410;
+  i410 = (410 + x) % 10;
+  I64 i411;
+  i411 = (411 - x) % 10;
+  I64 i412;
+  i412 = (412 + x) % 10;
+  I64 i413;
+  i413 = (413 - x) % 10;
+  I64 i414;
+  i414 = (414 + x) % 10;
+  I64 i415;
+  i415 = (415 - x) % 10;
+  I64 i416;
+  i416 = (416 + x) % 10;
+  I64 i417;
+  i417 = (417 - x) % 10;
+  I64 i418;
+  i418 = (418 + x) % 10;
+  I64 i419;
+  i419 = (419 - x) % 10;
+  I64 i420;
+  i420 = (420 + x) % 10;
+  I64 i421;
+  i421 = (421 - x) % 10;
+  I64 i422;
+  i422 = (422 + x) % 10;
+  I64 i423;
+  i423 = (423 - x) % 10;
+  I64 i424;
+  i424 = (424 + x) % 10;
+  I64 i425;
+  i425 = (425 - x) % 10;
+  I64 i426;
+  i426 = (426 + x) % 10;
+  I64 i427;
+  i427 = (427 - x) % 10;
+  I64 i428;
+  i428 = (428 + x) % 10;
+  I64 i429;
+  i429 = (429 - x) % 10;
+  I64 i430;
+  i430 = (430 + x) % 10;
+  I64 i431;
+  i431 = (431 - x) % 10;
+  I64 i432;
+  i432 = (432 + x) % 10;
+  I64 i433;
+  i433 = (433 - x) % 10;
+  I64 i434;
+  i434 = (434 + x) % 10;
+  I64 i435;
+  i435 = (435 - x) % 10;
+  I64 i436;
+  i436 = (436 + x) % 10;
+  I64 i437;
+  i437 = (437 - x) % 10;
+  I64 i438;
+  i438 = (438 + x) % 10;
+  I64 i439;
+  i439 = (439 - x) % 10;
+  I64 i440;
+  i440 = (440 + x) % 10;
+  I64 i441;
+  i441 = (441 - x) % 10;
+  I64 i442;
+  i442 = (442 + x) % 10;
+  I64 i443;
+  i443 = (443 - x) % 10;
+  I64 i444;
+  i444 = (444 + x) % 10;
+  I64 i445;
+  i445 = (445 - x) % 10;
+  I64 i446;
+  i446 = (446 + x) % 10;
+  I64 i447;
+  i447 = (447 - x) % 10;
+  I64 i448;
+  i448 = (448 + x) % 10;
+  I64 i449;
+  i449 = (449 - x) % 10;
+  I64 i450;
+  i450 = (450 + x) % 10;
+  I64 i451;
+  i451 = (451 - x) % 10;
+  I64 i452;
+  i452 = (452 + x) % 10;
+  I64 i453;
+  i453 = (453 - x) % 10;
+  I64 i454;
+  i454 = (454 + x) % 10;
+  I64 i455;
+  i455 = (455 - x) % 10;
+  I64 i456;
+  i456 = (456 + x) % 10;
+  I64 i457;
+  i457 = (457 - x) % 10;
+  I64 i458;
+  i458 = (458 + x) % 10;
+  I64 i459;
+  i459 = (459 - x) % 10;
+  I64 i460;
+  i460 = (460 + x) % 10;
+  I64 i461;
+  i461 = (461 - x) % 10;
+  I64 i462;
+  i462 = (462 + x) % 10;
+  I64 i463;
+  i463 = (463 - x) % 10;
+  I64 i464;
+  i464 = (464 + x) % 10;
+  I64 i465;
+  i465 = (465 - x) % 10;
+  I64 i466;
+  i466 = (466 + x) % 10;
+  I64 i467;
+  i467 = (467 - x) % 10;
+  I64 i468;
+  i468 = (468 + x) % 10;
+  I64 i469;
+  i469 = (469 - x) % 10;
+  I64 i470;
+  i470 = (470 + x) % 10;
+  I64 i471;
+  i471 = (471 - x) % 10;
+  I64 i472;
+  i472 = (472 + x) % 10;
+  I64 i473;
+  i473 = (473 - x) % 10;
+  I64 i474;
+  i474 = (474 + x) % 10;
+  I64 i475;
+  i475 = (475 - x) % 10;
+  I64 i476;
+  i476 = (476 + x) % 10;
+  I64 i477;
+  i477 = (477 - x) % 10;
+  I64 i478;
+  i478 = (478 + x) % 10;
+  I64 i479;
+  i479 = (479 - x) % 10;
+  I64 i480;
+  i480 = (480 + x) % 10;
+  I64 i481;
+  i481 = (481 - x) % 10;
+  I64 i482;
+  i482 = (482 + x) % 10;
+  I64 i483;
+  i483 = (483 - x) % 10;
+  I64 i484;
+  i484 = (484 + x) % 10;
+  I64 i485;
+  i485 = (485 - x) % 10;
+  I64 i486;
+  i486 = (486 + x) % 10;
+  I64 i487;
+  i487 = (487 - x) % 10;
+  I64 i488;
+  i488 = (488 + x) % 10;
+  I64 i489;
+  i489 = (489 - x) % 10;
+  I64 i490;
+  i490 = (490 + x) % 10;
+  I64 i491;
+  i491 = (491 - x) % 10;
+  I64 i492;
+  i492 = (492 + x) % 10;
+  I64 i493;
+  i493 = (493 - x) % 10;
+  I64 i494;
+  i494 = (494 + x) % 10;
+  I64 i495;
+  i495 = (495 - x) % 10;
+  I64 i496;
+  i496 = (496 + x) % 10;
+  I64 i497;
+  i497 = (497 - x) % 10;
+  I64 i498;
+  i498 = (498 + x) % 10;
+  I64 i499;
+  i499 = (499 - x) % 10;
+  I64 i500;
+  i500 = (500 + x) % 10;
+  I64 i501;
+  i501 = (501 - x) % 10;
+  I64 i502;
+  i502 = (502 + x) % 10;
+  I64 i503;
+  i503 = (503 - x) % 10;
+  I64 i504;
+  i504 = (504 + x) % 10;
+  I64 i505;
+  i505 = (505 - x) % 10;
+  I64 i506;
+  i506 = (506 + x) % 10;
+  I64 i507;
+  i507 = (507 - x) % 10;
+  I64 i508;
+  i508 = (508 + x) % 10;
+  I64 i509;
+  i509 = (509 - x) % 10;
+  I64 i510;
+  i510 = (510 + x) % 10;
+  I64 i511;
+  i511 = (511 - x) % 10;
+  I64 i512;
+  i512 = (512 + x) % 10;
+  I64 i513;
+  i513 = (513 - x) % 10;
+  I64 i514;
+  i514 = (514 + x) % 10;
+  I64 i515;
+  i515 = (515 - x) % 10;
+  I64 i516;
+  i516 = (516 + x) % 10;
+  I64 i517;
+  i517 = (517 - x) % 10;
+  I64 i518;
+  i518 = (518 + x) % 10;
+  I64 i519;
+  i519 = (519 - x) % 10;
+  I64 i520;
+  i520 = (520 + x) % 10;
+  I64 i521;
+  i521 = (521 - x) % 10;
+  I64 i522;
+  i522 = (522 + x) % 10;
+  I64 i523;
+  i523 = (523 - x) % 10;
+  I64 i524;
+  i524 = (524 + x) % 10;
+  I64 i525;
+  i525 = (525 - x) % 10;
+  I64 i526;
+  i526 = (526 + x) % 10;
+  I64 i527;
+  i527 = (527 - x) % 10;
+  I64 i528;
+  i528 = (528 + x) % 10;
+  I64 i529;
+  i529 = (529 - x) % 10;
+  I64 i530;
+  i530 = (530 + x) % 10;
+  I64 i531;
+  i531 = (531 - x) % 10;
+  I64 i532;
+  i532 = (532 + x) % 10;
+  I64 i533;
+  i533 = (533 - x) % 10;
+  I64 i534;
+  i534 = (534 + x) % 10;
+  I64 i535;
+  i535 = (535 - x) % 10;
+  I64 i536;
+  i536 = (536 + x) % 10;
+  I64 i537;
+  i537 = (537 - x) % 10;
+  I64 i538;
+  i538 = (538 + x) % 10;
+  I64 i539;
+  i539 = (539 - x) % 10;
+  I64 i540;
+  i540 = (540 + x) % 10;
+  I64 i541;
+  i541 = (541 - x) % 10;
+  I64 i542;
+  i542 = (542 + x) % 10;
+  I64 i543;
+  i543 = (543 - x) % 10;
+  I64 i544;
+  i544 = (544 + x) % 10;
+  I64 i545;
+  i545 = (545 - x) % 10;
+  I64 i546;
+  i546 = (546 + x) % 10;
+  I64 i547;
+  i547 = (547 - x) % 10;
+  I64 i548;
+  i548 = (548 + x) % 10;
+  I64 i549;
+  i549 = (549 - x) % 10;
+  I64 i550;
+  i550 = (550 + x) % 10;
+  I64 i551;
+  i551 = (551 - x) % 10;
+  I64 i552;
+  i552 = (552 + x) % 10;
+  I64 i553;
+  i553 = (553 - x) % 10;
+  I64 i554;
+  i554 = (554 + x) % 10;
+  I64 i555;
+  i555 = (555 - x) % 10;
+  I64 i556;
+  i556 = (556 + x) % 10;
+  I64 i557;
+  i557 = (557 - x) % 10;
+  I64 i558;
+  i558 = (558 + x) % 10;
+  I64 i559;
+  i559 = (559 - x) % 10;
+  I64 i560;
+  i560 = (560 + x) % 10;
+  I64 i561;
+  i561 = (561 - x) % 10;
+  I64 i562;
+  i562 = (562 + x) % 10;
+  I64 i563;
+  i563 = (563 - x) % 10;
+  I64 i564;
+  i564 = (564 + x) % 10;
+  I64 i565;
+  i565 = (565 - x) % 10;
+  I64 i566;
+  i566 = (566 + x) % 10;
+  I64 i567;
+  i567 = (567 - x) % 10;
+  I64 i568;
+  i568 = (568 + x) % 10;
+  I64 i569;
+  i569 = (569 - x) % 10;
+  I64 i570;
+  i570 = (570 + x) % 10;
+  I64 i571;
+  i571 = (571 - x) % 10;
+  I64 i572;
+  i572 = (572 + x) % 10;
+  I64 i573;
+  i573 = (573 - x) % 10;
+  I64 i574;
+  i574 = (574 + x) % 10;
+  I64 i575;
+  i575 = (575 - x) % 10;
+  I64 i576;
+  i576 = (576 + x) % 10;
+  I64 i577;
+  i577 = (577 - x) % 10;
+  I64 i578;
+  i578 = (578 + x) % 10;
+  I64 i579;
+  i579 = (579 - x) % 10;
+  I64 i580;
+  i580 = (580 + x) % 10;
+  I64 i581;
+  i581 = (581 - x) % 10;
+  I64 i582;
+  i582 = (582 + x) % 10;
+  I64 i583;
+  i583 = (583 - x) % 10;
+  I64 i584;
+  i584 = (584 + x) % 10;
+  I64 i585;
+  i585 = (585 - x) % 10;
+  I64 i586;
+  i586 = (586 + x) % 10;
+  I64 i587;
+  i587 = (587 - x) % 10;
+  I64 i588;
+  i588 = (588 + x) % 10;
+  I64 i589;
+  i589 = (589 - x) % 10;
+  I64 i590;
+  i590 = (590 + x) % 10;
+  I64 i591;
+  i591 = (591 - x) % 10;
+  I64 i592;
+  i592 = (592 + x) % 10;
+  I64 i593;
+  i593 = (593 - x) % 10;
+  I64 i594;
+  i594 = (594 + x) % 10;
+  I64 i595;
+  i595 = (595 - x) % 10;
+  I64 i596;
+  i596 = (596 + x) % 10;
+  I64 i597;
+  i597 = (597 - x) % 10;
+  I64 i598;
+  i598 = (598 + x) % 10;
+  I64 i599;
+  i599 = (599 - x) % 10;
+  I64 i600;
+  i600 = (600 + x) % 10;
+  I64 i601;
+  i601 = (601 - x) % 10;
+  I64 i602;
+  i602 = (602 + x) % 10;
+  I64 i603;
+  i603 = (603 - x) % 10;
+  I64 i604;
+  i604 = (604 + x) % 10;
+  I64 i605;
+  i605 = (605 - x) % 10;
+  I64 i606;
+  i606 = (606 + x) % 10;
+  I64 i607;
+  i607 = (607 - x) % 10;
+  I64 i608;
+  i608 = (608 + x) % 10;
+  I64 i609;
+  i609 = (609 - x) % 10;
+  I64 i610;
+  i610 = (610 + x) % 10;
+  I64 i611;
+  i611 = (611 - x) % 10;
+  I64 i612;
+  i612 = (612 + x) % 10;
+  I64 i613;
+  i613 = (613 - x) % 10;
+  I64 i614;
+  i614 = (614 + x) % 10;
+  I64 i615;
+  i615 = (615 - x) % 10;
+  I64 i616;
+  i616 = (616 + x) % 10;
+  I64 i617;
+  i617 = (617 - x) % 10;
+  I64 i618;
+  i618 = (618 + x) % 10;
+  I64 i619;
+  i619 = (619 - x) % 10;
+  I64 i620;
+  i620 = (620 + x) % 10;
+  I64 i621;
+  i621 = (621 - x) % 10;
+  I64 i622;
+  i622 = (622 + x) % 10;
+  I64 i623;
+  i623 = (623 - x) % 10;
+  I64 i624;
+  i624 = (624 + x) % 10;
+  I64 i625;
+  i625 = (625 - x) % 10;
+  I64 i626;
+  i626 = (626 + x) % 10;
+  I64 i627;
+  i627 = (627 - x) % 10;
+  I64 i628;
+  i628 = (628 + x) % 10;
+  I64 i629;
+  i629 = (629 - x) % 10;
+  I64 i630;
+  i630 = (630 + x) % 10;
+  I64 i631;
+  i631 = (631 - x) % 10;
+  I64 i632;
+  i632 = (632 + x) % 10;
+  I64 i633;
+  i633 = (633 - x) % 10;
+  I64 i634;
+  i634 = (634 + x) % 10;
+  I64 i635;
+  i635 = (635 - x) % 10;
+  I64 i636;
+  i636 = (636 + x) % 10;
+  I64 i637;
+  i637 = (637 - x) % 10;
+  I64 i638;
+  i638 = (638 + x) % 10;
+  I64 i639;
+  i639 = (639 - x) % 10;
+  I64 i640;
+  i640 = (640 + x) % 10;
+  I64 i641;
+  i641 = (641 - x) % 10;
+  I64 i642;
+  i642 = (642 + x) % 10;
+  I64 i643;
+  i643 = (643 - x) % 10;
+  I64 i644;
+  i644 = (644 + x) % 10;
+  I64 i645;
+  i645 = (645 - x) % 10;
+  I64 i646;
+  i646 = (646 + x) % 10;
+  I64 i647;
+  i647 = (647 - x) % 10;
+  I64 i648;
+  i648 = (648 + x) % 10;
+  I64 i649;
+  i649 = (649 - x) % 10;
+  I64 i650;
+  i650 = (650 + x) % 10;
+  I64 i651;
+  i651 = (651 - x) % 10;
+  I64 i652;
+  i652 = (652 + x) % 10;
+  I64 i653;
+  i653 = (653 - x) % 10;
+  I64 i654;
+  i654 = (654 + x) % 10;
+  I64 i655;
+  i655 = (655 - x) % 10;
+  I64 i656;
+  i656 = (656 + x) % 10;
+  I64 i657;
+  i657 = (657 - x) % 10;
+  I64 i658;
+  i658 = (658 + x) % 10;
+  I64 i659;
+  i659 = (659 - x) % 10;
+  I64 i660;
+  i660 = (660 + x) % 10;
+  I64 i661;
+  i661 = (661 - x) % 10;
+  I64 i662;
+  i662 = (662 + x) % 10;
+  I64 i663;
+  i663 = (663 - x) % 10;
+  I64 i664;
+  i664 = (664 + x) % 10;
+  I64 i665;
+  i665 = (665 - x) % 10;
+  I64 i666;
+  i666 = (666 + x) % 10;
+  I64 i667;
+  i667 = (667 - x) % 10;
+  I64 i668;
+  i668 = (668 + x) % 10;
+  I64 i669;
+  i669 = (669 - x) % 10;
+  I64 i670;
+  i670 = (670 + x) % 10;
+  I64 i671;
+  i671 = (671 - x) % 10;
+  I64 i672;
+  i672 = (672 + x) % 10;
+  I64 i673;
+  i673 = (673 - x) % 10;
+  I64 i674;
+  i674 = (674 + x) % 10;
+  I64 i675;
+  i675 = (675 - x) % 10;
+  I64 i676;
+  i676 = (676 + x) % 10;
+  I64 i677;
+  i677 = (677 - x) % 10;
+  I64 i678;
+  i678 = (678 + x) % 10;
+  I64 i679;
+  i679 = (679 - x) % 10;
+  I64 i680;
+  i680 = (680 + x) % 10;
+  I64 i681;
+  i681 = (681 - x) % 10;
+  I64 i682;
+  i682 = (682 + x) % 10;
+  I64 i683;
+  i683 = (683 - x) % 10;
+  I64 i684;
+  i684 = (684 + x) % 10;
+  I64 i685;
+  i685 = (685 - x) % 10;
+  I64 i686;
+  i686 = (686 + x) % 10;
+  I64 i687;
+  i687 = (687 - x) % 10;
+  I64 i688;
+  i688 = (688 + x) % 10;
+  I64 i689;
+  i689 = (689 - x) % 10;
+  I64 i690;
+  i690 = (690 + x) % 10;
+  I64 i691;
+  i691 = (691 - x) % 10;
+  I64 i692;
+  i692 = (692 + x) % 10;
+  I64 i693;
+  i693 = (693 - x) % 10;
+  I64 i694;
+  i694 = (694 + x) % 10;
+  I64 i695;
+  i695 = (695 - x) % 10;
+  I64 i696;
+  i696 = (696 + x) % 10;
+  I64 i697;
+  i697 = (697 - x) % 10;
+  I64 i698;
+  i698 = (698 + x) % 10;
+  I64 i699;
+  i699 = (699 - x) % 10;
+  I64 i700;
+  i700 = (700 + x) % 10;
+  I64 i701;
+  i701 = (701 - x) % 10;
+  I64 i702;
+  i702 = (702 + x) % 10;
+  I64 i703;
+  i703 = (703 - x) % 10;
+  I64 i704;
+  i704 = (704 + x) % 10;
+  I64 i705;
+  i705 = (705 - x) % 10;
+  I64 i706;
+  i706 = (706 + x) % 10;
+  I64 i707;
+  i707 = (707 - x) % 10;
+  I64 i708;
+  i708 = (708 + x) % 10;
+  I64 i709;
+  i709 = (709 - x) % 10;
+  I64 i710;
+  i710 = (710 + x) % 10;
+  I64 i711;
+  i711 = (711 - x) % 10;
+  I64 i712;
+  i712 = (712 + x) % 10;
+  I64 i713;
+  i713 = (713 - x) % 10;
+  I64 i714;
+  i714 = (714 + x) % 10;
+  I64 i715;
+  i715 = (715 - x) % 10;
+  I64 i716;
+  i716 = (716 + x) % 10;
+  I64 i717;
+  i717 = (717 - x) % 10;
+  I64 i718;
+  i718 = (718 + x) % 10;
+  I64 i719;
+  i719 = (719 - x) % 10;
+  I64 i720;
+  i720 = (720 + x) % 10;
+  I64 i721;
+  i721 = (721 - x) % 10;
+  I64 i722;
+  i722 = (722 + x) % 10;
+  I64 i723;
+  i723 = (723 - x) % 10;
+  I64 i724;
+  i724 = (724 + x) % 10;
+  I64 i725;
+  i725 = (725 - x) % 10;
+  I64 i726;
+  i726 = (726 + x) % 10;
+  I64 i727;
+  i727 = (727 - x) % 10;
+  I64 i728;
+  i728 = (728 + x) % 10;
+  I64 i729;
+  i729 = (729 - x) % 10;
+  I64 i730;
+  i730 = (730 + x) % 10;
+  I64 i731;
+  i731 = (731 - x) % 10;
+  I64 i732;
+  i732 = (732 + x) % 10;
+  I64 i733;
+  i733 = (733 - x) % 10;
+  I64 i734;
+  i734 = (734 + x) % 10;
+  I64 i735;
+  i735 = (735 - x) % 10;
+  I64 i736;
+  i736 = (736 + x) % 10;
+  I64 i737;
+  i737 = (737 - x) % 10;
+  I64 i738;
+  i738 = (738 + x) % 10;
+  I64 i739;
+  i739 = (739 - x) % 10;
+  I64 i740;
+  i740 = (740 + x) % 10;
+  I64 i741;
+  i741 = (741 - x) % 10;
+  I64 i742;
+  i742 = (742 + x) % 10;
+  I64 i743;
+  i743 = (743 - x) % 10;
+  I64 i744;
+  i744 = (744 + x) % 10;
+  I64 i745;
+  i745 = (745 - x) % 10;
+  I64 i746;
+  i746 = (746 + x) % 10;
+  I64 i747;
+  i747 = (747 - x) % 10;
+  I64 i748;
+  i748 = (748 + x) % 10;
+  I64 i749;
+  i749 = (749 - x) % 10;
+  I64 i750;
+  i750 = (750 + x) % 10;
+  I64 i751;
+  i751 = (751 - x) % 10;
+  I64 i752;
+  i752 = (752 + x) % 10;
+  I64 i753;
+  i753 = (753 - x) % 10;
+  I64 i754;
+  i754 = (754 + x) % 10;
+  I64 i755;
+  i755 = (755 - x) % 10;
+  I64 i756;
+  i756 = (756 + x) % 10;
+  I64 i757;
+  i757 = (757 - x) % 10;
+  I64 i758;
+  i758 = (758 + x) % 10;
+  I64 i759;
+  i759 = (759 - x) % 10;
+  I64 i760;
+  i760 = (760 + x) % 10;
+  I64 i761;
+  i761 = (761 - x) % 10;
+  I64 i762;
+  i762 = (762 + x) % 10;
+  I64 i763;
+  i763 = (763 - x) % 10;
+  I64 i764;
+  i764 = (764 + x) % 10;
+  I64 i765;
+  i765 = (765 - x) % 10;
+  I64 i766;
+  i766 = (766 + x) % 10;
+  I64 i767;
+  i767 = (767 - x) % 10;
+  I64 i768;
+  i768 = (768 + x) % 10;
+  I64 i769;
+  i769 = (769 - x) % 10;
+  I64 i770;
+  i770 = (770 + x) % 10;
+  I64 i771;
+  i771 = (771 - x) % 10;
+  I64 i772;
+  i772 = (772 + x) % 10;
+  I64 i773;
+  i773 = (773 - x) % 10;
+  I64 i774;
+  i774 = (774 + x) % 10;
+  I64 i775;
+  i775 = (775 - x) % 10;
+  I64 i776;
+  i776 = (776 + x) % 10;
+  I64 i777;
+  i777 = (777 - x) % 10;
+  I64 i778;
+  i778 = (778 + x) % 10;
+  I64 i779;
+  i779 = (779 - x) % 10;
+  I64 i780;
+  i780 = (780 + x) % 10;
+  I64 i781;
+  i781 = (781 - x) % 10;
+  I64 i782;
+  i782 = (782 + x) % 10;
+  I64 i783;
+  i783 = (783 - x) % 10;
+  I64 i784;
+  i784 = (784 + x) % 10;
+  I64 i785;
+  i785 = (785 - x) % 10;
+  I64 i786;
+  i786 = (786 + x) % 10;
+  I64 i787;
+  i787 = (787 - x) % 10;
+  I64 i788;
+  i788 = (788 + x) % 10;
+  I64 i789;
+  i789 = (789 - x) % 10;
+  I64 i790;
+  i790 = (790 + x) % 10;
+  I64 i791;
+  i791 = (791 - x) % 10;
+  I64 i792;
+  i792 = (792 + x) % 10;
+  I64 i793;
+  i793 = (793 - x) % 10;
+  I64 i794;
+  i794 = (794 + x) % 10;
+  I64 i795;
+  i795 = (795 - x) % 10;
+  I64 i796;
+  i796 = (796 + x) % 10;
+  I64 i797;
+  i797 = (797 - x) % 10;
+  I64 i798;
+  i798 = (798 + x) % 10;
+  I64 i799;
+  i799 = (799 - x) % 10;
+  I64 i800;
+  i800 = (800 + x) % 10;
+  I64 i801;
+  i801 = (801 - x) % 10;
+  I64 i802;
+  i802 = (802 + x) % 10;
+  I64 i803;
+  i803 = (803 - x) % 10;
+  I64 i804;
+  i804 = (804 + x) % 10;
+  I64 i805;
+  i805 = (805 - x) % 10;
+  I64 i806;
+  i806 = (806 + x) % 10;
+  I64 i807;
+  i807 = (807 - x) % 10;
+  I64 i808;
+  i808 = (808 + x) % 10;
+  I64 i809;
+  i809 = (809 - x) % 10;
+  I64 i810;
+  i810 = (810 + x) % 10;
+  I64 i811;
+  i811 = (811 - x) % 10;
+  I64 i812;
+  i812 = (812 + x) % 10;
+  I64 i813;
+  i813 = (813 - x) % 10;
+  I64 i814;
+  i814 = (814 + x) % 10;
+  I64 i815;
+  i815 = (815 - x) % 10;
+  I64 i816;
+  i816 = (816 + x) % 10;
+  I64 i817;
+  i817 = (817 - x) % 10;
+  I64 i818;
+  i818 = (818 + x) % 10;
+  I64 i819;
+  i819 = (819 - x) % 10;
+  I64 i820;
+  i820 = (820 + x) % 10;
+  I64 i821;
+  i821 = (821 - x) % 10;
+  I64 i822;
+  i822 = (822 + x) % 10;
+  I64 i823;
+  i823 = (823 - x) % 10;
+  I64 i824;
+  i824 = (824 + x) % 10;
+  I64 i825;
+  i825 = (825 - x) % 10;
+  I64 i826;
+  i826 = (826 + x) % 10;
+  I64 i827;
+  i827 = (827 - x) % 10;
+  I64 i828;
+  i828 = (828 + x) % 10;
+  I64 i829;
+  i829 = (829 - x) % 10;
+  I64 i830;
+  i830 = (830 + x) % 10;
+  I64 i831;
+  i831 = (831 - x) % 10;
+  I64 i832;
+  i832 = (832 + x) % 10;
+  I64 i833;
+  i833 = (833 - x) % 10;
+  I64 i834;
+  i834 = (834 + x) % 10;
+  I64 i835;
+  i835 = (835 - x) % 10;
+  I64 i836;
+  i836 = (836 + x) % 10;
+  I64 i837;
+  i837 = (837 - x) % 10;
+  I64 i838;
+  i838 = (838 + x) % 10;
+  I64 i839;
+  i839 = (839 - x) % 10;
+  I64 i840;
+  i840 = (840 + x) % 10;
+  I64 i841;
+  i841 = (841 - x) % 10;
+  I64 i842;
+  i842 = (842 + x) % 10;
+  I64 i843;
+  i843 = (843 - x) % 10;
+  I64 i844;
+  i844 = (844 + x) % 10;
+  I64 i845;
+  i845 = (845 - x) % 10;
+  I64 i846;
+  i846 = (846 + x) % 10;
+  I64 i847;
+  i847 = (847 - x) % 10;
+  I64 i848;
+  i848 = (848 + x) % 10;
+  I64 i849;
+  i849 = (849 - x) % 10;
+  I64 i850;
+  i850 = (850 + x) % 10;
+  I64 i851;
+  i851 = (851 - x) % 10;
+  I64 i852;
+  i852 = (852 + x) % 10;
+  I64 i853;
+  i853 = (853 - x) % 10;
+  I64 i854;
+  i854 = (854 + x) % 10;
+  I64 i855;
+  i855 = (855 - x) % 10;
+  I64 i856;
+  i856 = (856 + x) % 10;
+  I64 i857;
+  i857 = (857 - x) % 10;
+  I64 i858;
+  i858 = (858 + x) % 10;
+  I64 i859;
+  i859 = (859 - x) % 10;
+  I64 i860;
+  i860 = (860 + x) % 10;
+  I64 i861;
+  i861 = (861 - x) % 10;
+  I64 i862;
+  i862 = (862 + x) % 10;
+  I64 i863;
+  i863 = (863 - x) % 10;
+  I64 i864;
+  i864 = (864 + x) % 10;
+  I64 i865;
+  i865 = (865 - x) % 10;
+  I64 i866;
+  i866 = (866 + x) % 10;
+  I64 i867;
+  i867 = (867 - x) % 10;
+  I64 i868;
+  i868 = (868 + x) % 10;
+  I64 i869;
+  i869 = (869 - x) % 10;
+  I64 i870;
+  i870 = (870 + x) % 10;
+  I64 i871;
+  i871 = (871 - x) % 10;
+  I64 i872;
+  i872 = (872 + x) % 10;
+  I64 i873;
+  i873 = (873 - x) % 10;
+  I64 i874;
+  i874 = (874 + x) % 10;
+  I64 i875;
+  i875 = (875 - x) % 10;
+  I64 i876;
+  i876 = (876 + x) % 10;
+  I64 i877;
+  i877 = (877 - x) % 10;
+  I64 i878;
+  i878 = (878 + x) % 10;
+  I64 i879;
+  i879 = (879 - x) % 10;
+  I64 i880;
+  i880 = (880 + x) % 10;
+  I64 i881;
+  i881 = (881 - x) % 10;
+  I64 i882;
+  i882 = (882 + x) % 10;
+  I64 i883;
+  i883 = (883 - x) % 10;
+  I64 i884;
+  i884 = (884 + x) % 10;
+  I64 i885;
+  i885 = (885 - x) % 10;
+  I64 i886;
+  i886 = (886 + x) % 10;
+  I64 i887;
+  i887 = (887 - x) % 10;
+  I64 i888;
+  i888 = (888 + x) % 10;
+  I64 i889;
+  i889 = (889 - x) % 10;
+  I64 i890;
+  i890 = (890 + x) % 10;
+  I64 i891;
+  i891 = (891 - x) % 10;
+  I64 i892;
+  i892 = (892 + x) % 10;
+  I64 i893;
+  i893 = (893 - x) % 10;
+  I64 i894;
+  i894 = (894 + x) % 10;
+  I64 i895;
+  i895 = (895 - x) % 10;
+  I64 i896;
+  i896 = (896 + x) % 10;
+  I64 i897;
+  i897 = (897 - x) % 10;
+  I64 i898;
+  i898 = (898 + x) % 10;
+  I64 i899;
+  i899 = (899 - x) % 10;
+  I64 i900;
+  i900 = (900 + x) % 10;
+  I64 i901;
+  i901 = (901 - x) % 10;
+  I64 i902;
+  i902 = (902 + x) % 10;
+  I64 i903;
+  i903 = (903 - x) % 10;
+  I64 i904;
+  i904 = (904 + x) % 10;
+  I64 i905;
+  i905 = (905 - x) % 10;
+  I64 i906;
+  i906 = (906 + x) % 10;
+  I64 i907;
+  i907 = (907 - x) % 10;
+  I64 i908;
+  i908 = (908 + x) % 10;
+  I64 i909;
+  i909 = (909 - x) % 10;
+  I64 i910;
+  i910 = (910 + x) % 10;
+  I64 i911;
+  i911 = (911 - x) % 10;
+  I64 i912;
+  i912 = (912 + x) % 10;
+  I64 i913;
+  i913 = (913 - x) % 10;
+  I64 i914;
+  i914 = (914 + x) % 10;
+  I64 i915;
+  i915 = (915 - x) % 10;
+  I64 i916;
+  i916 = (916 + x) % 10;
+  I64 i917;
+  i917 = (917 - x) % 10;
+  I64 i918;
+  i918 = (918 + x) % 10;
+  I64 i919;
+  i919 = (919 - x) % 10;
+  I64 i920;
+  i920 = (920 + x) % 10;
+  I64 i921;
+  i921 = (921 - x) % 10;
+  I64 i922;
+  i922 = (922 + x) % 10;
+  I64 i923;
+  i923 = (923 - x) % 10;
+  I64 i924;
+  i924 = (924 + x) % 10;
+  I64 i925;
+  i925 = (925 - x) % 10;
+  I64 i926;
+  i926 = (926 + x) % 10;
+  I64 i927;
+  i927 = (927 - x) % 10;
+  I64 i928;
+  i928 = (928 + x) % 10;
+  I64 i929;
+  i929 = (929 - x) % 10;
+  I64 i930;
+  i930 = (930 + x) % 10;
+  I64 i931;
+  i931 = (931 - x) % 10;
+  I64 i932;
+  i932 = (932 + x) % 10;
+  I64 i933;
+  i933 = (933 - x) % 10;
+  I64 i934;
+  i934 = (934 + x) % 10;
+  I64 i935;
+  i935 = (935 - x) % 10;
+  I64 i936;
+  i936 = (936 + x) % 10;
+  I64 i937;
+  i937 = (937 - x) % 10;
+  I64 i938;
+  i938 = (938 + x) % 10;
+  I64 i939;
+  i939 = (939 - x) % 10;
+  I64 i940;
+  i940 = (940 + x) % 10;
+  I64 i941;
+  i941 = (941 - x) % 10;
+  I64 i942;
+  i942 = (942 + x) % 10;
+  I64 i943;
+  i943 = (943 - x) % 10;
+  I64 i944;
+  i944 = (944 + x) % 10;
+  I64 i945;
+  i945 = (945 - x) % 10;
+  I64 i946;
+  i946 = (946 + x) % 10;
+  I64 i947;
+  i947 = (947 - x) % 10;
+  I64 i948;
+  i948 = (948 + x) % 10;
+  I64 i949;
+  i949 = (949 - x) % 10;
+  I64 i950;
+  i950 = (950 + x) % 10;
+  I64 i951;
+  i951 = (951 - x) % 10;
+  I64 i952;
+  i952 = (952 + x) % 10;
+  I64 i953;
+  i953 = (953 - x) % 10;
+  I64 i954;
+  i954 = (954 + x) % 10;
+  I64 i955;
+  i955 = (955 - x) % 10;
+  I64 i956;
+  i956 = (956 + x) % 10;
+  I64 i957;
+  i957 = (957 - x) % 10;
+  I64 i958;
+  i958 = (958 + x) % 10;
+  I64 i959;
+  i959 = (959 - x) % 10;
+  I64 i960;
+  i960 = (960 + x) % 10;
+  I64 i961;
+  i961 = (961 - x) % 10;
+  I64 i962;
+  i962 = (962 + x) % 10;
+  I64 i963;
+  i963 = (963 - x) % 10;
+  I64 i964;
+  i964 = (964 + x) % 10;
+  I64 i965;
+  i965 = (965 - x) % 10;
+  I64 i966;
+  i966 = (966 + x) % 10;
+  I64 i967;
+  i967 = (967 - x) % 10;
+  I64 i968;
+  i968 = (968 + x) % 10;
+  I64 i969;
+  i969 = (969 - x) % 10;
+  I64 i970;
+  i970 = (970 + x) % 10;
+  I64 i971;
+  i971 = (971 - x) % 10;
+  I64 i972;
+  i972 = (972 + x) % 10;
+  I64 i973;
+  i973 = (973 - x) % 10;
+  I64 i974;
+  i974 = (974 + x) % 10;
+  I64 i975;
+  i975 = (975 - x) % 10;
+  I64 i976;
+  i976 = (976 + x) % 10;
+  I64 i977;
+  i977 = (977 - x) % 10;
+  I64 i978;
+  i978 = (978 + x) % 10;
+  I64 i979;
+  i979 = (979 - x) % 10;
+  I64 i980;
+  i980 = (980 + x) % 10;
+  I64 i981;
+  i981 = (981 - x) % 10;
+  I64 i982;
+  i982 = (982 + x) % 10;
+  I64 i983;
+  i983 = (983 - x) % 10;
+  I64 i984;
+  i984 = (984 + x) % 10;
+  I64 i985;
+  i985 = (985 - x) % 10;
+  I64 i986;
+  i986 = (986 + x) % 10;
+  I64 i987;
+  i987 = (987 - x) % 10;
+  I64 i988;
+  i988 = (988 + x) % 10;
+  I64 i989;
+  i989 = (989 - x) % 10;
+  I64 i990;
+  i990 = (990 + x) % 10;
+  I64 i991;
+  i991 = (991 - x) % 10;
+  I64 i992;
+  i992 = (992 + x) % 10;
+  I64 i993;
+  i993 = (993 - x) % 10;
+  I64 i994;
+  i994 = (994 + x) % 10;
+  I64 i995;
+  i995 = (995 - x) % 10;
+  I64 i996;
+  i996 = (996 + x) % 10;
+  I64 i997;
+  i997 = (997 - x) % 10;
+  I64 i998;
+  i998 = (998 + x) % 10;
+  I64 i999;
+  i999 = (999 - x) % 10;
+  I64 i1000;
+  i1000 = (1000 + x) % 10;
+  I64 i1001;
+  i1001 = (1001 - x) % 10;
+  I64 i1002;
+  i1002 = (1002 + x) % 10;
+  I64 i1003;
+  i1003 = (1003 - x) % 10;
+  I64 i1004;
+  i1004 = (1004 + x) % 10;
+  I64 i1005;
+  i1005 = (1005 - x) % 10;
+  I64 i1006;
+  i1006 = (1006 + x) % 10;
+  I64 i1007;
+  i1007 = (1007 - x) % 10;
+  I64 i1008;
+  i1008 = (1008 + x) % 10;
+  I64 i1009;
+  i1009 = (1009 - x) % 10;
+  I64 i1010;
+  i1010 = (1010 + x) % 10;
+  I64 i1011;
+  i1011 = (1011 - x) % 10;
+  I64 i1012;
+  i1012 = (1012 + x) % 10;
+  I64 i1013;
+  i1013 = (1013 - x) % 10;
+  I64 i1014;
+  i1014 = (1014 + x) % 10;
+  I64 i1015;
+  i1015 = (1015 - x) % 10;
+  I64 i1016;
+  i1016 = (1016 + x) % 10;
+  I64 i1017;
+  i1017 = (1017 - x) % 10;
+  I64 i1018;
+  i1018 = (1018 + x) % 10;
+  I64 i1019;
+  i1019 = (1019 - x) % 10;
+  I64 i1020;
+  i1020 = (1020 + x) % 10;
+  I64 i1021;
+  i1021 = (1021 - x) % 10;
+  I64 i1022;
+  i1022 = (1022 + x) % 10;
+  I64 i1023;
+  i1023 = (1023 - x) % 10;
+  I64 i1024;
+  i1024 = (1024 + x) % 10;
+  I64 i1025;
+  i1025 = (1025 - x) % 10;
+  I64 i1026;
+  i1026 = (1026 + x) % 10;
+  I64 i1027;
+  i1027 = (1027 - x) % 10;
+  I64 i1028;
+  i1028 = (1028 + x) % 10;
+  I64 i1029;
+  i1029 = (1029 - x) % 10;
+  I64 i1030;
+  i1030 = (1030 + x) % 10;
+  I64 i1031;
+  i1031 = (1031 - x) % 10;
+  I64 i1032;
+  i1032 = (1032 + x) % 10;
+  I64 i1033;
+  i1033 = (1033 - x) % 10;
+  I64 i1034;
+  i1034 = (1034 + x) % 10;
+  I64 i1035;
+  i1035 = (1035 - x) % 10;
+  I64 i1036;
+  i1036 = (1036 + x) % 10;
+  I64 i1037;
+  i1037 = (1037 - x) % 10;
+  I64 i1038;
+  i1038 = (1038 + x) % 10;
+  I64 i1039;
+  i1039 = (1039 - x) % 10;
+  I64 i1040;
+  i1040 = (1040 + x) % 10;
+  I64 i1041;
+  i1041 = (1041 - x) % 10;
+  I64 i1042;
+  i1042 = (1042 + x) % 10;
+  I64 i1043;
+  i1043 = (1043 - x) % 10;
+  I64 i1044;
+  i1044 = (1044 + x) % 10;
+  I64 i1045;
+  i1045 = (1045 - x) % 10;
+  I64 i1046;
+  i1046 = (1046 + x) % 10;
+  I64 i1047;
+  i1047 = (1047 - x) % 10;
+  I64 i1048;
+  i1048 = (1048 + x) % 10;
+  I64 i1049;
+  i1049 = (1049 - x) % 10;
+  I64 i1050;
+  i1050 = (1050 + x) % 10;
+  I64 i1051;
+  i1051 = (1051 - x) % 10;
+  I64 i1052;
+  i1052 = (1052 + x) % 10;
+  I64 i1053;
+  i1053 = (1053 - x) % 10;
+  I64 i1054;
+  i1054 = (1054 + x) % 10;
+  I64 i1055;
+  i1055 = (1055 - x) % 10;
+  I64 i1056;
+  i1056 = (1056 + x) % 10;
+  I64 i1057;
+  i1057 = (1057 - x) % 10;
+  I64 i1058;
+  i1058 = (1058 + x) % 10;
+  I64 i1059;
+  i1059 = (1059 - x) % 10;
+  I64 i1060;
+  i1060 = (1060 + x) % 10;
+  I64 i1061;
+  i1061 = (1061 - x) % 10;
+  I64 i1062;
+  i1062 = (1062 + x) % 10;
+  I64 i1063;
+  i1063 = (1063 - x) % 10;
+  I64 i1064;
+  i1064 = (1064 + x) % 10;
+  I64 i1065;
+  i1065 = (1065 - x) % 10;
+  I64 i1066;
+  i1066 = (1066 + x) % 10;
+  I64 i1067;
+  i1067 = (1067 - x) % 10;
+  I64 i1068;
+  i1068 = (1068 + x) % 10;
+  I64 i1069;
+  i1069 = (1069 - x) % 10;
+  I64 i1070;
+  i1070 = (1070 + x) % 10;
+  I64 i1071;
+  i1071 = (1071 - x) % 10;
+  I64 i1072;
+  i1072 = (1072 + x) % 10;
+  I64 i1073;
+  i1073 = (1073 - x) % 10;
+  I64 i1074;
+  i1074 = (1074 + x) % 10;
+  I64 i1075;
+  i1075 = (1075 - x) % 10;
+  I64 i1076;
+  i1076 = (1076 + x) % 10;
+  I64 i1077;
+  i1077 = (1077 - x) % 10;
+  I64 i1078;
+  i1078 = (1078 + x) % 10;
+  I64 i1079;
+  i1079 = (1079 - x) % 10;
+  I64 i1080;
+  i1080 = (1080 + x) % 10;
+  I64 i1081;
+  i1081 = (1081 - x) % 10;
+  I64 i1082;
+  i1082 = (1082 + x) % 10;
+  I64 i1083;
+  i1083 = (1083 - x) % 10;
+  I64 i1084;
+  i1084 = (1084 + x) % 10;
+  I64 i1085;
+  i1085 = (1085 - x) % 10;
+  I64 i1086;
+  i1086 = (1086 + x) % 10;
+  I64 i1087;
+  i1087 = (1087 - x) % 10;
+  I64 i1088;
+  i1088 = (1088 + x) % 10;
+  I64 i1089;
+  i1089 = (1089 - x) % 10;
+  I64 i1090;
+  i1090 = (1090 + x) % 10;
+  I64 i1091;
+  i1091 = (1091 - x) % 10;
+  I64 i1092;
+  i1092 = (1092 + x) % 10;
+  I64 i1093;
+  i1093 = (1093 - x) % 10;
+  I64 i1094;
+  i1094 = (1094 + x) % 10;
+  I64 i1095;
+  i1095 = (1095 - x) % 10;
+  I64 i1096;
+  i1096 = (1096 + x) % 10;
+  I64 i1097;
+  i1097 = (1097 - x) % 10;
+  I64 i1098;
+  i1098 = (1098 + x) % 10;
+  I64 i1099;
+  i1099 = (1099 - x) % 10;
+  I64 i1100;
+  i1100 = (1100 + x) % 10;
+  I64 i1101;
+  i1101 = (1101 - x) % 10;
+  I64 i1102;
+  i1102 = (1102 + x) % 10;
+  I64 i1103;
+  i1103 = (1103 - x) % 10;
+  I64 i1104;
+  i1104 = (1104 + x) % 10;
+  I64 i1105;
+  i1105 = (1105 - x) % 10;
+  I64 i1106;
+  i1106 = (1106 + x) % 10;
+  I64 i1107;
+  i1107 = (1107 - x) % 10;
+  I64 i1108;
+  i1108 = (1108 + x) % 10;
+  I64 i1109;
+  i1109 = (1109 - x) % 10;
+  I64 i1110;
+  i1110 = (1110 + x) % 10;
+  I64 i1111;
+  i1111 = (1111 - x) % 10;
+  I64 i1112;
+  i1112 = (1112 + x) % 10;
+  I64 i1113;
+  i1113 = (1113 - x) % 10;
+  I64 i1114;
+  i1114 = (1114 + x) % 10;
+  I64 i1115;
+  i1115 = (1115 - x) % 10;
+  I64 i1116;
+  i1116 = (1116 + x) % 10;
+  I64 i1117;
+  i1117 = (1117 - x) % 10;
+  I64 i1118;
+  i1118 = (1118 + x) % 10;
+  I64 i1119;
+  i1119 = (1119 - x) % 10;
+  I64 i1120;
+  i1120 = (1120 + x) % 10;
+  I64 i1121;
+  i1121 = (1121 - x) % 10;
+  I64 i1122;
+  i1122 = (1122 + x) % 10;
+  I64 i1123;
+  i1123 = (1123 - x) % 10;
+  I64 i1124;
+  i1124 = (1124 + x) % 10;
+  I64 i1125;
+  i1125 = (1125 - x) % 10;
+  I64 i1126;
+  i1126 = (1126 + x) % 10;
+  I64 i1127;
+  i1127 = (1127 - x) % 10;
+  I64 i1128;
+  i1128 = (1128 + x) % 10;
+  I64 i1129;
+  i1129 = (1129 - x) % 10;
+  I64 i1130;
+  i1130 = (1130 + x) % 10;
+  I64 i1131;
+  i1131 = (1131 - x) % 10;
+  I64 i1132;
+  i1132 = (1132 + x) % 10;
+  I64 i1133;
+  i1133 = (1133 - x) % 10;
+  I64 i1134;
+  i1134 = (1134 + x) % 10;
+  I64 i1135;
+  i1135 = (1135 - x) % 10;
+  I64 i1136;
+  i1136 = (1136 + x) % 10;
+  I64 i1137;
+  i1137 = (1137 - x) % 10;
+  I64 i1138;
+  i1138 = (1138 + x) % 10;
+  I64 i1139;
+  i1139 = (1139 - x) % 10;
+  I64 i1140;
+  i1140 = (1140 + x) % 10;
+  I64 i1141;
+  i1141 = (1141 - x) % 10;
+  I64 i1142;
+  i1142 = (1142 + x) % 10;
+  I64 i1143;
+  i1143 = (1143 - x) % 10;
+  I64 i1144;
+  i1144 = (1144 + x) % 10;
+  I64 i1145;
+  i1145 = (1145 - x) % 10;
+  I64 i1146;
+  i1146 = (1146 + x) % 10;
+  I64 i1147;
+  i1147 = (1147 - x) % 10;
+  I64 i1148;
+  i1148 = (1148 + x) % 10;
+  I64 i1149;
+  i1149 = (1149 - x) % 10;
+  I64 i1150;
+  i1150 = (1150 + x) % 10;
+  I64 i1151;
+  i1151 = (1151 - x) % 10;
+  I64 i1152;
+  i1152 = (1152 + x) % 10;
+  I64 i1153;
+  i1153 = (1153 - x) % 10;
+  I64 i1154;
+  i1154 = (1154 + x) % 10;
+  I64 i1155;
+  i1155 = (1155 - x) % 10;
+  I64 i1156;
+  i1156 = (1156 + x) % 10;
+  I64 i1157;
+  i1157 = (1157 - x) % 10;
+  I64 i1158;
+  i1158 = (1158 + x) % 10;
+  I64 i1159;
+  i1159 = (1159 - x) % 10;
+  I64 i1160;
+  i1160 = (1160 + x) % 10;
+  I64 i1161;
+  i1161 = (1161 - x) % 10;
+  I64 i1162;
+  i1162 = (1162 + x) % 10;
+  I64 i1163;
+  i1163 = (1163 - x) % 10;
+  I64 i1164;
+  i1164 = (1164 + x) % 10;
+  I64 i1165;
+  i1165 = (1165 - x) % 10;
+  I64 i1166;
+  i1166 = (1166 + x) % 10;
+  I64 i1167;
+  i1167 = (1167 - x) % 10;
+  I64 i1168;
+  i1168 = (1168 + x) % 10;
+  I64 i1169;
+  i1169 = (1169 - x) % 10;
+  I64 i1170;
+  i1170 = (1170 + x) % 10;
+  I64 i1171;
+  i1171 = (1171 - x) % 10;
+  I64 i1172;
+  i1172 = (1172 + x) % 10;
+  I64 i1173;
+  i1173 = (1173 - x) % 10;
+  I64 i1174;
+  i1174 = (1174 + x) % 10;
+  I64 i1175;
+  i1175 = (1175 - x) % 10;
+  I64 i1176;
+  i1176 = (1176 + x) % 10;
+  I64 i1177;
+  i1177 = (1177 - x) % 10;
+  I64 i1178;
+  i1178 = (1178 + x) % 10;
+  I64 i1179;
+  i1179 = (1179 - x) % 10;
+  I64 i1180;
+  i1180 = (1180 + x) % 10;
+  I64 i1181;
+  i1181 = (1181 - x) % 10;
+  I64 i1182;
+  i1182 = (1182 + x) % 10;
+  I64 i1183;
+  i1183 = (1183 - x) % 10;
+  I64 i1184;
+  i1184 = (1184 + x) % 10;
+  I64 i1185;
+  i1185 = (1185 - x) % 10;
+  I64 i1186;
+  i1186 = (1186 + x) % 10;
+  I64 i1187;
+  i1187 = (1187 - x) % 10;
+  I64 i1188;
+  i1188 = (1188 + x) % 10;
+  I64 i1189;
+  i1189 = (1189 - x) % 10;
+  I64 i1190;
+  i1190 = (1190 + x) % 10;
+  I64 i1191;
+  i1191 = (1191 - x) % 10;
+  I64 i1192;
+  i1192 = (1192 + x) % 10;
+  I64 i1193;
+  i1193 = (1193 - x) % 10;
+  I64 i1194;
+  i1194 = (1194 + x) % 10;
+  I64 i1195;
+  i1195 = (1195 - x) % 10;
+  I64 i1196;
+  i1196 = (1196 + x) % 10;
+  I64 i1197;
+  i1197 = (1197 - x) % 10;
+  I64 i1198;
+  i1198 = (1198 + x) % 10;
+  I64 i1199;
+  i1199 = (1199 - x) % 10;
+  I64 i1200;
+  i1200 = (1200 + x) % 10;
+  I64 i1201;
+  i1201 = (1201 - x) % 10;
+  I64 i1202;
+  i1202 = (1202 + x) % 10;
+  I64 i1203;
+  i1203 = (1203 - x) % 10;
+  I64 i1204;
+  i1204 = (1204 + x) % 10;
+  I64 i1205;
+  i1205 = (1205 - x) % 10;
+  I64 i1206;
+  i1206 = (1206 + x) % 10;
+  I64 i1207;
+  i1207 = (1207 - x) % 10;
+  I64 i1208;
+  i1208 = (1208 + x) % 10;
+  I64 i1209;
+  i1209 = (1209 - x) % 10;
+  I64 i1210;
+  i1210 = (1210 + x) % 10;
+  I64 i1211;
+  i1211 = (1211 - x) % 10;
+  I64 i1212;
+  i1212 = (1212 + x) % 10;
+  I64 i1213;
+  i1213 = (1213 - x) % 10;
+  I64 i1214;
+  i1214 = (1214 + x) % 10;
+  I64 i1215;
+  i1215 = (1215 - x) % 10;
+  I64 i1216;
+  i1216 = (1216 + x) % 10;
+  I64 i1217;
+  i1217 = (1217 - x) % 10;
+  I64 i1218;
+  i1218 = (1218 + x) % 10;
+  I64 i1219;
+  i1219 = (1219 - x) % 10;
+  I64 i1220;
+  i1220 = (1220 + x) % 10;
+  I64 i1221;
+  i1221 = (1221 - x) % 10;
+  I64 i1222;
+  i1222 = (1222 + x) % 10;
+  I64 i1223;
+  i1223 = (1223 - x) % 10;
+  I64 i1224;
+  i1224 = (1224 + x) % 10;
+  I64 i1225;
+  i1225 = (1225 - x) % 10;
+  I64 i1226;
+  i1226 = (1226 + x) % 10;
+  I64 i1227;
+  i1227 = (1227 - x) % 10;
+  I64 i1228;
+  i1228 = (1228 + x) % 10;
+  I64 i1229;
+  i1229 = (1229 - x) % 10;
+  I64 i1230;
+  i1230 = (1230 + x) % 10;
+  I64 i1231;
+  i1231 = (1231 - x) % 10;
+  I64 i1232;
+  i1232 = (1232 + x) % 10;
+  I64 i1233;
+  i1233 = (1233 - x) % 10;
+  I64 i1234;
+  i1234 = (1234 + x) % 10;
+  I64 i1235;
+  i1235 = (1235 - x) % 10;
+  I64 i1236;
+  i1236 = (1236 + x) % 10;
+  I64 i1237;
+  i1237 = (1237 - x) % 10;
+  I64 i1238;
+  i1238 = (1238 + x) % 10;
+  I64 i1239;
+  i1239 = (1239 - x) % 10;
+  I64 i1240;
+  i1240 = (1240 + x) % 10;
+  I64 i1241;
+  i1241 = (1241 - x) % 10;
+  I64 i1242;
+  i1242 = (1242 + x) % 10;
+  I64 i1243;
+  i1243 = (1243 - x) % 10;
+  I64 i1244;
+  i1244 = (1244 + x) % 10;
+  I64 i1245;
+  i1245 = (1245 - x) % 10;
+  I64 i1246;
+  i1246 = (1246 + x) % 10;
+  I64 i1247;
+  i1247 = (1247 - x) % 10;
+  I64 i1248;
+  i1248 = (1248 + x) % 10;
+  I64 i1249;
+  i1249 = (1249 - x) % 10;
+  I64 i1250;
+  i1250 = (1250 + x) % 10;
+  I64 i1251;
+  i1251 = (1251 - x) % 10;
+  I64 i1252;
+  i1252 = (1252 + x) % 10;
+  I64 i1253;
+  i1253 = (1253 - x) % 10;
+  I64 i1254;
+  i1254 = (1254 + x) % 10;
+  I64 i1255;
+  i1255 = (1255 - x) % 10;
+  I64 i1256;
+  i1256 = (1256 + x) % 10;
+  I64 i1257;
+  i1257 = (1257 - x) % 10;
+  I64 i1258;
+  i1258 = (1258 + x) % 10;
+  I64 i1259;
+  i1259 = (1259 - x) % 10;
+  I64 i1260;
+  i1260 = (1260 + x) % 10;
+  I64 i1261;
+  i1261 = (1261 - x) % 10;
+  I64 i1262;
+  i1262 = (1262 + x) % 10;
+  I64 i1263;
+  i1263 = (1263 - x) % 10;
+  I64 i1264;
+  i1264 = (1264 + x) % 10;
+  I64 i1265;
+  i1265 = (1265 - x) % 10;
+  I64 i1266;
+  i1266 = (1266 + x) % 10;
+  I64 i1267;
+  i1267 = (1267 - x) % 10;
+  I64 i1268;
+  i1268 = (1268 + x) % 10;
+  I64 i1269;
+  i1269 = (1269 - x) % 10;
+  I64 i1270;
+  i1270 = (1270 + x) % 10;
+  I64 i1271;
+  i1271 = (1271 - x) % 10;
+  I64 i1272;
+  i1272 = (1272 + x) % 10;
+  I64 i1273;
+  i1273 = (1273 - x) % 10;
+  I64 i1274;
+  i1274 = (1274 + x) % 10;
+  I64 i1275;
+  i1275 = (1275 - x) % 10;
+  I64 i1276;
+  i1276 = (1276 + x) % 10;
+  I64 i1277;
+  i1277 = (1277 - x) % 10;
+  I64 i1278;
+  i1278 = (1278 + x) % 10;
+  I64 i1279;
+  i1279 = (1279 - x) % 10;
+  I64 i1280;
+  i1280 = (1280 + x) % 10;
+  I64 i1281;
+  i1281 = (1281 - x) % 10;
+  I64 i1282;
+  i1282 = (1282 + x) % 10;
+  I64 i1283;
+  i1283 = (1283 - x) % 10;
+  I64 i1284;
+  i1284 = (1284 + x) % 10;
+  I64 i1285;
+  i1285 = (1285 - x) % 10;
+  I64 i1286;
+  i1286 = (1286 + x) % 10;
+  I64 i1287;
+  i1287 = (1287 - x) % 10;
+  I64 i1288;
+  i1288 = (1288 + x) % 10;
+  I64 i1289;
+  i1289 = (1289 - x) % 10;
+  I64 i1290;
+  i1290 = (1290 + x) % 10;
+  I64 i1291;
+  i1291 = (1291 - x) % 10;
+  I64 i1292;
+  i1292 = (1292 + x) % 10;
+  I64 i1293;
+  i1293 = (1293 - x) % 10;
+  I64 i1294;
+  i1294 = (1294 + x) % 10;
+  I64 i1295;
+  i1295 = (1295 - x) % 10;
+  I64 i1296;
+  i1296 = (1296 + x) % 10;
+  I64 i1297;
+  i1297 = (1297 - x) % 10;
+  I64 i1298;
+  i1298 = (1298 + x) % 10;
+  I64 i1299;
+  i1299 = (1299 - x) % 10;
+  I64 i1300;
+  i1300 = (1300 + x) % 10;
+  I64 i1301;
+  i1301 = (1301 - x) % 10;
+  I64 i1302;
+  i1302 = (1302 + x) % 10;
+  I64 i1303;
+  i1303 = (1303 - x) % 10;
+  I64 i1304;
+  i1304 = (1304 + x) % 10;
+  I64 i1305;
+  i1305 = (1305 - x) % 10;
+  I64 i1306;
+  i1306 = (1306 + x) % 10;
+  I64 i1307;
+  i1307 = (1307 - x) % 10;
+  I64 i1308;
+  i1308 = (1308 + x) % 10;
+  I64 i1309;
+  i1309 = (1309 - x) % 10;
+  I64 i1310;
+  i1310 = (1310 + x) % 10;
+  I64 i1311;
+  i1311 = (1311 - x) % 10;
+  I64 i1312;
+  i1312 = (1312 + x) % 10;
+  I64 i1313;
+  i1313 = (1313 - x) % 10;
+  I64 i1314;
+  i1314 = (1314 + x) % 10;
+  I64 i1315;
+  i1315 = (1315 - x) % 10;
+  I64 i1316;
+  i1316 = (1316 + x) % 10;
+  I64 i1317;
+  i1317 = (1317 - x) % 10;
+  I64 i1318;
+  i1318 = (1318 + x) % 10;
+  I64 i1319;
+  i1319 = (1319 - x) % 10;
+  I64 i1320;
+  i1320 = (1320 + x) % 10;
+  I64 i1321;
+  i1321 = (1321 - x) % 10;
+  I64 i1322;
+  i1322 = (1322 + x) % 10;
+  I64 i1323;
+  i1323 = (1323 - x) % 10;
+  I64 i1324;
+  i1324 = (1324 + x) % 10;
+  I64 i1325;
+  i1325 = (1325 - x) % 10;
+  I64 i1326;
+  i1326 = (1326 + x) % 10;
+  I64 i1327;
+  i1327 = (1327 - x) % 10;
+  I64 i1328;
+  i1328 = (1328 + x) % 10;
+  I64 i1329;
+  i1329 = (1329 - x) % 10;
+  I64 i1330;
+  i1330 = (1330 + x) % 10;
+  I64 i1331;
+  i1331 = (1331 - x) % 10;
+  I64 i1332;
+  i1332 = (1332 + x) % 10;
+  I64 i1333;
+  i1333 = (1333 - x) % 10;
+  I64 i1334;
+  i1334 = (1334 + x) % 10;
+  I64 i1335;
+  i1335 = (1335 - x) % 10;
+  I64 i1336;
+  i1336 = (1336 + x) % 10;
+  I64 i1337;
+  i1337 = (1337 - x) % 10;
+  I64 i1338;
+  i1338 = (1338 + x) % 10;
+  I64 i1339;
+  i1339 = (1339 - x) % 10;
+  I64 i1340;
+  i1340 = (1340 + x) % 10;
+  I64 i1341;
+  i1341 = (1341 - x) % 10;
+  I64 i1342;
+  i1342 = (1342 + x) % 10;
+  I64 i1343;
+  i1343 = (1343 - x) % 10;
+  I64 i1344;
+  i1344 = (1344 + x) % 10;
+  I64 i1345;
+  i1345 = (1345 - x) % 10;
+  I64 i1346;
+  i1346 = (1346 + x) % 10;
+  I64 i1347;
+  i1347 = (1347 - x) % 10;
+  I64 i1348;
+  i1348 = (1348 + x) % 10;
+  I64 i1349;
+  i1349 = (1349 - x) % 10;
+  I64 i1350;
+  i1350 = (1350 + x) % 10;
+  I64 i1351;
+  i1351 = (1351 - x) % 10;
+  I64 i1352;
+  i1352 = (1352 + x) % 10;
+  I64 i1353;
+  i1353 = (1353 - x) % 10;
+  I64 i1354;
+  i1354 = (1354 + x) % 10;
+  I64 i1355;
+  i1355 = (1355 - x) % 10;
+  I64 i1356;
+  i1356 = (1356 + x) % 10;
+  I64 i1357;
+  i1357 = (1357 - x) % 10;
+  I64 i1358;
+  i1358 = (1358 + x) % 10;
+  I64 i1359;
+  i1359 = (1359 - x) % 10;
+  I64 i1360;
+  i1360 = (1360 + x) % 10;
+  I64 i1361;
+  i1361 = (1361 - x) % 10;
+  I64 i1362;
+  i1362 = (1362 + x) % 10;
+  I64 i1363;
+  i1363 = (1363 - x) % 10;
+  I64 i1364;
+  i1364 = (1364 + x) % 10;
+  I64 i1365;
+  i1365 = (1365 - x) % 10;
+  I64 i1366;
+  i1366 = (1366 + x) % 10;
+  I64 i1367;
+  i1367 = (1367 - x) % 10;
+  I64 i1368;
+  i1368 = (1368 + x) % 10;
+  I64 i1369;
+  i1369 = (1369 - x) % 10;
+  I64 i1370;
+  i1370 = (1370 + x) % 10;
+  I64 i1371;
+  i1371 = (1371 - x) % 10;
+  I64 i1372;
+  i1372 = (1372 + x) % 10;
+  I64 i1373;
+  i1373 = (1373 - x) % 10;
+  I64 i1374;
+  i1374 = (1374 + x) % 10;
+  I64 i1375;
+  i1375 = (1375 - x) % 10;
+  I64 i1376;
+  i1376 = (1376 + x) % 10;
+  I64 i1377;
+  i1377 = (1377 - x) % 10;
+  I64 i1378;
+  i1378 = (1378 + x) % 10;
+  I64 i1379;
+  i1379 = (1379 - x) % 10;
+  I64 i1380;
+  i1380 = (1380 + x) % 10;
+  I64 i1381;
+  i1381 = (1381 - x) % 10;
+  I64 i1382;
+  i1382 = (1382 + x) % 10;
+  I64 i1383;
+  i1383 = (1383 - x) % 10;
+  I64 i1384;
+  i1384 = (1384 + x) % 10;
+  I64 i1385;
+  i1385 = (1385 - x) % 10;
+  I64 i1386;
+  i1386 = (1386 + x) % 10;
+  I64 i1387;
+  i1387 = (1387 - x) % 10;
+  I64 i1388;
+  i1388 = (1388 + x) % 10;
+  I64 i1389;
+  i1389 = (1389 - x) % 10;
+  I64 i1390;
+  i1390 = (1390 + x) % 10;
+  I64 i1391;
+  i1391 = (1391 - x) % 10;
+  I64 i1392;
+  i1392 = (1392 + x) % 10;
+  I64 i1393;
+  i1393 = (1393 - x) % 10;
+  I64 i1394;
+  i1394 = (1394 + x) % 10;
+  I64 i1395;
+  i1395 = (1395 - x) % 10;
+  I64 i1396;
+  i1396 = (1396 + x) % 10;
+  I64 i1397;
+  i1397 = (1397 - x) % 10;
+  I64 i1398;
+  i1398 = (1398 + x) % 10;
+  I64 i1399;
+  i1399 = (1399 - x) % 10;
+  I64 i1400;
+  i1400 = (1400 + x) % 10;
+  I64 i1401;
+  i1401 = (1401 - x) % 10;
+  I64 i1402;
+  i1402 = (1402 + x) % 10;
+  I64 i1403;
+  i1403 = (1403 - x) % 10;
+  I64 i1404;
+  i1404 = (1404 + x) % 10;
+  I64 i1405;
+  i1405 = (1405 - x) % 10;
+  I64 i1406;
+  i1406 = (1406 + x) % 10;
+  I64 i1407;
+  i1407 = (1407 - x) % 10;
+  I64 i1408;
+  i1408 = (1408 + x) % 10;
+  I64 i1409;
+  i1409 = (1409 - x) % 10;
+  I64 i1410;
+  i1410 = (1410 + x) % 10;
+  I64 i1411;
+  i1411 = (1411 - x) % 10;
+  I64 i1412;
+  i1412 = (1412 + x) % 10;
+  I64 i1413;
+  i1413 = (1413 - x) % 10;
+  I64 i1414;
+  i1414 = (1414 + x) % 10;
+  I64 i1415;
+  i1415 = (1415 - x) % 10;
+  I64 i1416;
+  i1416 = (1416 + x) % 10;
+  I64 i1417;
+  i1417 = (1417 - x) % 10;
+  I64 i1418;
+  i1418 = (1418 + x) % 10;
+  I64 i1419;
+  i1419 = (1419 - x) % 10;
+  I64 i1420;
+  i1420 = (1420 + x) % 10;
+  I64 i1421;
+  i1421 = (1421 - x) % 10;
+  I64 i1422;
+  i1422 = (1422 + x) % 10;
+  I64 i1423;
+  i1423 = (1423 - x) % 10;
+  I64 i1424;
+  i1424 = (1424 + x) % 10;
+  I64 i1425;
+  i1425 = (1425 - x) % 10;
+  I64 i1426;
+  i1426 = (1426 + x) % 10;
+  I64 i1427;
+  i1427 = (1427 - x) % 10;
+  I64 i1428;
+  i1428 = (1428 + x) % 10;
+  I64 i1429;
+  i1429 = (1429 - x) % 10;
+  I64 i1430;
+  i1430 = (1430 + x) % 10;
+  I64 i1431;
+  i1431 = (1431 - x) % 10;
+  I64 i1432;
+  i1432 = (1432 + x) % 10;
+  I64 i1433;
+  i1433 = (1433 - x) % 10;
+  I64 i1434;
+  i1434 = (1434 + x) % 10;
+  I64 i1435;
+  i1435 = (1435 - x) % 10;
+  I64 i1436;
+  i1436 = (1436 + x) % 10;
+  I64 i1437;
+  i1437 = (1437 - x) % 10;
+  I64 i1438;
+  i1438 = (1438 + x) % 10;
+  I64 i1439;
+  i1439 = (1439 - x) % 10;
+  I64 i1440;
+  i1440 = (1440 + x) % 10;
+  I64 i1441;
+  i1441 = (1441 - x) % 10;
+  I64 i1442;
+  i1442 = (1442 + x) % 10;
+  I64 i1443;
+  i1443 = (1443 - x) % 10;
+  I64 i1444;
+  i1444 = (1444 + x) % 10;
+  I64 i1445;
+  i1445 = (1445 - x) % 10;
+  I64 i1446;
+  i1446 = (1446 + x) % 10;
+  I64 i1447;
+  i1447 = (1447 - x) % 10;
+  I64 i1448;
+  i1448 = (1448 + x) % 10;
+  I64 i1449;
+  i1449 = (1449 - x) % 10;
+  I64 i1450;
+  i1450 = (1450 + x) % 10;
+  I64 i1451;
+  i1451 = (1451 - x) % 10;
+  I64 i1452;
+  i1452 = (1452 + x) % 10;
+  I64 i1453;
+  i1453 = (1453 - x) % 10;
+  I64 i1454;
+  i1454 = (1454 + x) % 10;
+  I64 i1455;
+  i1455 = (1455 - x) % 10;
+  I64 i1456;
+  i1456 = (1456 + x) % 10;
+  I64 i1457;
+  i1457 = (1457 - x) % 10;
+  I64 i1458;
+  i1458 = (1458 + x) % 10;
+  I64 i1459;
+  i1459 = (1459 - x) % 10;
+  I64 i1460;
+  i1460 = (1460 + x) % 10;
+  I64 i1461;
+  i1461 = (1461 - x) % 10;
+  I64 i1462;
+  i1462 = (1462 + x) % 10;
+  I64 i1463;
+  i1463 = (1463 - x) % 10;
+  I64 i1464;
+  i1464 = (1464 + x) % 10;
+  I64 i1465;
+  i1465 = (1465 - x) % 10;
+  I64 i1466;
+  i1466 = (1466 + x) % 10;
+  I64 i1467;
+  i1467 = (1467 - x) % 10;
+  I64 i1468;
+  i1468 = (1468 + x) % 10;
+  I64 i1469;
+  i1469 = (1469 - x) % 10;
+  I64 i1470;
+  i1470 = (1470 + x) % 10;
+  I64 i1471;
+  i1471 = (1471 - x) % 10;
+  I64 i1472;
+  i1472 = (1472 + x) % 10;
+  I64 i1473;
+  i1473 = (1473 - x) % 10;
+  I64 i1474;
+  i1474 = (1474 + x) % 10;
+  I64 i1475;
+  i1475 = (1475 - x) % 10;
+  I64 i1476;
+  i1476 = (1476 + x) % 10;
+  I64 i1477;
+  i1477 = (1477 - x) % 10;
+  I64 i1478;
+  i1478 = (1478 + x) % 10;
+  I64 i1479;
+  i1479 = (1479 - x) % 10;
+  I64 i1480;
+  i1480 = (1480 + x) % 10;
+  I64 i1481;
+  i1481 = (1481 - x) % 10;
+  I64 i1482;
+  i1482 = (1482 + x) % 10;
+  I64 i1483;
+  i1483 = (1483 - x) % 10;
+  I64 i1484;
+  i1484 = (1484 + x) % 10;
+  I64 i1485;
+  i1485 = (1485 - x) % 10;
+  I64 i1486;
+  i1486 = (1486 + x) % 10;
+  I64 i1487;
+  i1487 = (1487 - x) % 10;
+  I64 i1488;
+  i1488 = (1488 + x) % 10;
+  I64 i1489;
+  i1489 = (1489 - x) % 10;
+  I64 i1490;
+  i1490 = (1490 + x) % 10;
+  I64 i1491;
+  i1491 = (1491 - x) % 10;
+  I64 i1492;
+  i1492 = (1492 + x) % 10;
+  I64 i1493;
+  i1493 = (1493 - x) % 10;
+  I64 i1494;
+  i1494 = (1494 + x) % 10;
+  I64 i1495;
+  i1495 = (1495 - x) % 10;
+  I64 i1496;
+  i1496 = (1496 + x) % 10;
+  I64 i1497;
+  i1497 = (1497 - x) % 10;
+  I64 i1498;
+  i1498 = (1498 + x) % 10;
+  I64 i1499;
+  i1499 = (1499 - x) % 10;
+  I64 i1500;
+  i1500 = (1500 + x) % 10;
+  I64 i1501;
+  i1501 = (1501 - x) % 10;
+  I64 i1502;
+  i1502 = (1502 + x) % 10;
+  I64 i1503;
+  i1503 = (1503 - x) % 10;
+  I64 i1504;
+  i1504 = (1504 + x) % 10;
+  I64 i1505;
+  i1505 = (1505 - x) % 10;
+  I64 i1506;
+  i1506 = (1506 + x) % 10;
+  I64 i1507;
+  i1507 = (1507 - x) % 10;
+  I64 i1508;
+  i1508 = (1508 + x) % 10;
+  I64 i1509;
+  i1509 = (1509 - x) % 10;
+  I64 i1510;
+  i1510 = (1510 + x) % 10;
+  I64 i1511;
+  i1511 = (1511 - x) % 10;
+  I64 i1512;
+  i1512 = (1512 + x) % 10;
+  I64 i1513;
+  i1513 = (1513 - x) % 10;
+  I64 i1514;
+  i1514 = (1514 + x) % 10;
+  I64 i1515;
+  i1515 = (1515 - x) % 10;
+  I64 i1516;
+  i1516 = (1516 + x) % 10;
+  I64 i1517;
+  i1517 = (1517 - x) % 10;
+  I64 i1518;
+  i1518 = (1518 + x) % 10;
+  I64 i1519;
+  i1519 = (1519 - x) % 10;
+  I64 i1520;
+  i1520 = (1520 + x) % 10;
+  I64 i1521;
+  i1521 = (1521 - x) % 10;
+  I64 i1522;
+  i1522 = (1522 + x) % 10;
+  I64 i1523;
+  i1523 = (1523 - x) % 10;
+  I64 i1524;
+  i1524 = (1524 + x) % 10;
+  I64 i1525;
+  i1525 = (1525 - x) % 10;
+  I64 i1526;
+  i1526 = (1526 + x) % 10;
+  I64 i1527;
+  i1527 = (1527 - x) % 10;
+  I64 i1528;
+  i1528 = (1528 + x) % 10;
+  I64 i1529;
+  i1529 = (1529 - x) % 10;
+  I64 i1530;
+  i1530 = (1530 + x) % 10;
+  I64 i1531;
+  i1531 = (1531 - x) % 10;
+  I64 i1532;
+  i1532 = (1532 + x) % 10;
+  I64 i1533;
+  i1533 = (1533 - x) % 10;
+  I64 i1534;
+  i1534 = (1534 + x) % 10;
+  I64 i1535;
+  i1535 = (1535 - x) % 10;
+  I64 i1536;
+  i1536 = (1536 + x) % 10;
+  I64 i1537;
+  i1537 = (1537 - x) % 10;
+  I64 i1538;
+  i1538 = (1538 + x) % 10;
+  I64 i1539;
+  i1539 = (1539 - x) % 10;
+  I64 i1540;
+  i1540 = (1540 + x) % 10;
+  I64 i1541;
+  i1541 = (1541 - x) % 10;
+  I64 i1542;
+  i1542 = (1542 + x) % 10;
+  I64 i1543;
+  i1543 = (1543 - x) % 10;
+  I64 i1544;
+  i1544 = (1544 + x) % 10;
+  I64 i1545;
+  i1545 = (1545 - x) % 10;
+  I64 i1546;
+  i1546 = (1546 + x) % 10;
+  I64 i1547;
+  i1547 = (1547 - x) % 10;
+  I64 i1548;
+  i1548 = (1548 + x) % 10;
+  I64 i1549;
+  i1549 = (1549 - x) % 10;
+  I64 i1550;
+  i1550 = (1550 + x) % 10;
+  I64 i1551;
+  i1551 = (1551 - x) % 10;
+  I64 i1552;
+  i1552 = (1552 + x) % 10;
+  I64 i1553;
+  i1553 = (1553 - x) % 10;
+  I64 i1554;
+  i1554 = (1554 + x) % 10;
+  I64 i1555;
+  i1555 = (1555 - x) % 10;
+  I64 i1556;
+  i1556 = (1556 + x) % 10;
+  I64 i1557;
+  i1557 = (1557 - x) % 10;
+  I64 i1558;
+  i1558 = (1558 + x) % 10;
+  I64 i1559;
+  i1559 = (1559 - x) % 10;
+  I64 i1560;
+  i1560 = (1560 + x) % 10;
+  I64 i1561;
+  i1561 = (1561 - x) % 10;
+  I64 i1562;
+  i1562 = (1562 + x) % 10;
+  I64 i1563;
+  i1563 = (1563 - x) % 10;
+  I64 i1564;
+  i1564 = (1564 + x) % 10;
+  I64 i1565;
+  i1565 = (1565 - x) % 10;
+  I64 i1566;
+  i1566 = (1566 + x) % 10;
+  I64 i1567;
+  i1567 = (1567 - x) % 10;
+  I64 i1568;
+  i1568 = (1568 + x) % 10;
+  I64 i1569;
+  i1569 = (1569 - x) % 10;
+  I64 i1570;
+  i1570 = (1570 + x) % 10;
+  I64 i1571;
+  i1571 = (1571 - x) % 10;
+  I64 i1572;
+  i1572 = (1572 + x) % 10;
+  I64 i1573;
+  i1573 = (1573 - x) % 10;
+  I64 i1574;
+  i1574 = (1574 + x) % 10;
+  I64 i1575;
+  i1575 = (1575 - x) % 10;
+  I64 i1576;
+  i1576 = (1576 + x) % 10;
+  I64 i1577;
+  i1577 = (1577 - x) % 10;
+  I64 i1578;
+  i1578 = (1578 + x) % 10;
+  I64 i1579;
+  i1579 = (1579 - x) % 10;
+  I64 i1580;
+  i1580 = (1580 + x) % 10;
+  I64 i1581;
+  i1581 = (1581 - x) % 10;
+  I64 i1582;
+  i1582 = (1582 + x) % 10;
+  I64 i1583;
+  i1583 = (1583 - x) % 10;
+  I64 i1584;
+  i1584 = (1584 + x) % 10;
+  I64 i1585;
+  i1585 = (1585 - x) % 10;
+  I64 i1586;
+  i1586 = (1586 + x) % 10;
+  I64 i1587;
+  i1587 = (1587 - x) % 10;
+  I64 i1588;
+  i1588 = (1588 + x) % 10;
+  I64 i1589;
+  i1589 = (1589 - x) % 10;
+  I64 i1590;
+  i1590 = (1590 + x) % 10;
+  I64 i1591;
+  i1591 = (1591 - x) % 10;
+  I64 i1592;
+  i1592 = (1592 + x) % 10;
+  I64 i1593;
+  i1593 = (1593 - x) % 10;
+  I64 i1594;
+  i1594 = (1594 + x) % 10;
+  I64 i1595;
+  i1595 = (1595 - x) % 10;
+  I64 i1596;
+  i1596 = (1596 + x) % 10;
+  I64 i1597;
+  i1597 = (1597 - x) % 10;
+  I64 i1598;
+  i1598 = (1598 + x) % 10;
+  I64 i1599;
+  i1599 = (1599 - x) % 10;
+  I64 i1600;
+  i1600 = (1600 + x) % 10;
+  I64 i1601;
+  i1601 = (1601 - x) % 10;
+  I64 i1602;
+  i1602 = (1602 + x) % 10;
+  I64 i1603;
+  i1603 = (1603 - x) % 10;
+  I64 i1604;
+  i1604 = (1604 + x) % 10;
+  I64 i1605;
+  i1605 = (1605 - x) % 10;
+  I64 i1606;
+  i1606 = (1606 + x) % 10;
+  I64 i1607;
+  i1607 = (1607 - x) % 10;
+  I64 i1608;
+  i1608 = (1608 + x) % 10;
+  I64 i1609;
+  i1609 = (1609 - x) % 10;
+  I64 i1610;
+  i1610 = (1610 + x) % 10;
+  I64 i1611;
+  i1611 = (1611 - x) % 10;
+  I64 i1612;
+  i1612 = (1612 + x) % 10;
+  I64 i1613;
+  i1613 = (1613 - x) % 10;
+  I64 i1614;
+  i1614 = (1614 + x) % 10;
+  I64 i1615;
+  i1615 = (1615 - x) % 10;
+  I64 i1616;
+  i1616 = (1616 + x) % 10;
+  I64 i1617;
+  i1617 = (1617 - x) % 10;
+  I64 i1618;
+  i1618 = (1618 + x) % 10;
+  I64 i1619;
+  i1619 = (1619 - x) % 10;
+  I64 i1620;
+  i1620 = (1620 + x) % 10;
+  I64 i1621;
+  i1621 = (1621 - x) % 10;
+  I64 i1622;
+  i1622 = (1622 + x) % 10;
+  I64 i1623;
+  i1623 = (1623 - x) % 10;
+  I64 i1624;
+  i1624 = (1624 + x) % 10;
+  I64 i1625;
+  i1625 = (1625 - x) % 10;
+  I64 i1626;
+  i1626 = (1626 + x) % 10;
+  I64 i1627;
+  i1627 = (1627 - x) % 10;
+  I64 i1628;
+  i1628 = (1628 + x) % 10;
+  I64 i1629;
+  i1629 = (1629 - x) % 10;
+  I64 i1630;
+  i1630 = (1630 + x) % 10;
+  I64 i1631;
+  i1631 = (1631 - x) % 10;
+  I64 i1632;
+  i1632 = (1632 + x) % 10;
+  I64 i1633;
+  i1633 = (1633 - x) % 10;
+  I64 i1634;
+  i1634 = (1634 + x) % 10;
+  I64 i1635;
+  i1635 = (1635 - x) % 10;
+  I64 i1636;
+  i1636 = (1636 + x) % 10;
+  I64 i1637;
+  i1637 = (1637 - x) % 10;
+  I64 i1638;
+  i1638 = (1638 + x) % 10;
+  I64 i1639;
+  i1639 = (1639 - x) % 10;
+  I64 i1640;
+  i1640 = (1640 + x) % 10;
+  I64 i1641;
+  i1641 = (1641 - x) % 10;
+  I64 i1642;
+  i1642 = (1642 + x) % 10;
+  I64 i1643;
+  i1643 = (1643 - x) % 10;
+  I64 i1644;
+  i1644 = (1644 + x) % 10;
+  I64 i1645;
+  i1645 = (1645 - x) % 10;
+  I64 i1646;
+  i1646 = (1646 + x) % 10;
+  I64 i1647;
+  i1647 = (1647 - x) % 10;
+  I64 i1648;
+  i1648 = (1648 + x) % 10;
+  I64 i1649;
+  i1649 = (1649 - x) % 10;
+  I64 i1650;
+  i1650 = (1650 + x) % 10;
+  I64 i1651;
+  i1651 = (1651 - x) % 10;
+  I64 i1652;
+  i1652 = (1652 + x) % 10;
+  I64 i1653;
+  i1653 = (1653 - x) % 10;
+  I64 i1654;
+  i1654 = (1654 + x) % 10;
+  I64 i1655;
+  i1655 = (1655 - x) % 10;
+  I64 i1656;
+  i1656 = (1656 + x) % 10;
+  I64 i1657;
+  i1657 = (1657 - x) % 10;
+  I64 i1658;
+  i1658 = (1658 + x) % 10;
+  I64 i1659;
+  i1659 = (1659 - x) % 10;
+  I64 i1660;
+  i1660 = (1660 + x) % 10;
+  I64 i1661;
+  i1661 = (1661 - x) % 10;
+  I64 i1662;
+  i1662 = (1662 + x) % 10;
+  I64 i1663;
+  i1663 = (1663 - x) % 10;
+  I64 i1664;
+  i1664 = (1664 + x) % 10;
+  I64 i1665;
+  i1665 = (1665 - x) % 10;
+  I64 i1666;
+  i1666 = (1666 + x) % 10;
+  I64 i1667;
+  i1667 = (1667 - x) % 10;
+  I64 i1668;
+  i1668 = (1668 + x) % 10;
+  I64 i1669;
+  i1669 = (1669 - x) % 10;
+  I64 i1670;
+  i1670 = (1670 + x) % 10;
+  I64 i1671;
+  i1671 = (1671 - x) % 10;
+  I64 i1672;
+  i1672 = (1672 + x) % 10;
+  I64 i1673;
+  i1673 = (1673 - x) % 10;
+  I64 i1674;
+  i1674 = (1674 + x) % 10;
+  I64 i1675;
+  i1675 = (1675 - x) % 10;
+  I64 i1676;
+  i1676 = (1676 + x) % 10;
+  I64 i1677;
+  i1677 = (1677 - x) % 10;
+  I64 i1678;
+  i1678 = (1678 + x) % 10;
+  I64 i1679;
+  i1679 = (1679 - x) % 10;
+  I64 i1680;
+  i1680 = (1680 + x) % 10;
+  I64 i1681;
+  i1681 = (1681 - x) % 10;
+  I64 i1682;
+  i1682 = (1682 + x) % 10;
+  I64 i1683;
+  i1683 = (1683 - x) % 10;
+  I64 i1684;
+  i1684 = (1684 + x) % 10;
+  I64 i1685;
+  i1685 = (1685 - x) % 10;
+  I64 i1686;
+  i1686 = (1686 + x) % 10;
+  I64 i1687;
+  i1687 = (1687 - x) % 10;
+  I64 i1688;
+  i1688 = (1688 + x) % 10;
+  I64 i1689;
+  i1689 = (1689 - x) % 10;
+  I64 i1690;
+  i1690 = (1690 + x) % 10;
+  I64 i1691;
+  i1691 = (1691 - x) % 10;
+  I64 i1692;
+  i1692 = (1692 + x) % 10;
+  I64 i1693;
+  i1693 = (1693 - x) % 10;
+  I64 i1694;
+  i1694 = (1694 + x) % 10;
+  I64 i1695;
+  i1695 = (1695 - x) % 10;
+  I64 i1696;
+  i1696 = (1696 + x) % 10;
+  I64 i1697;
+  i1697 = (1697 - x) % 10;
+  I64 i1698;
+  i1698 = (1698 + x) % 10;
+  I64 i1699;
+  i1699 = (1699 - x) % 10;
+  I64 i1700;
+  i1700 = (1700 + x) % 10;
+  I64 i1701;
+  i1701 = (1701 - x) % 10;
+  I64 i1702;
+  i1702 = (1702 + x) % 10;
+  I64 i1703;
+  i1703 = (1703 - x) % 10;
+  I64 i1704;
+  i1704 = (1704 + x) % 10;
+  I64 i1705;
+  i1705 = (1705 - x) % 10;
+  I64 i1706;
+  i1706 = (1706 + x) % 10;
+  I64 i1707;
+  i1707 = (1707 - x) % 10;
+  I64 i1708;
+  i1708 = (1708 + x) % 10;
+  I64 i1709;
+  i1709 = (1709 - x) % 10;
+  I64 i1710;
+  i1710 = (1710 + x) % 10;
+  I64 i1711;
+  i1711 = (1711 - x) % 10;
+  I64 i1712;
+  i1712 = (1712 + x) % 10;
+  I64 i1713;
+  i1713 = (1713 - x) % 10;
+  I64 i1714;
+  i1714 = (1714 + x) % 10;
+  I64 i1715;
+  i1715 = (1715 - x) % 10;
+  I64 i1716;
+  i1716 = (1716 + x) % 10;
+  I64 i1717;
+  i1717 = (1717 - x) % 10;
+  I64 i1718;
+  i1718 = (1718 + x) % 10;
+  I64 i1719;
+  i1719 = (1719 - x) % 10;
+  I64 i1720;
+  i1720 = (1720 + x) % 10;
+  I64 i1721;
+  i1721 = (1721 - x) % 10;
+  I64 i1722;
+  i1722 = (1722 + x) % 10;
+  I64 i1723;
+  i1723 = (1723 - x) % 10;
+  I64 i1724;
+  i1724 = (1724 + x) % 10;
+  I64 i1725;
+  i1725 = (1725 - x) % 10;
+  I64 i1726;
+  i1726 = (1726 + x) % 10;
+  I64 i1727;
+  i1727 = (1727 - x) % 10;
+  I64 i1728;
+  i1728 = (1728 + x) % 10;
+  I64 i1729;
+  i1729 = (1729 - x) % 10;
+  I64 i1730;
+  i1730 = (1730 + x) % 10;
+  I64 i1731;
+  i1731 = (1731 - x) % 10;
+  I64 i1732;
+  i1732 = (1732 + x) % 10;
+  I64 i1733;
+  i1733 = (1733 - x) % 10;
+  I64 i1734;
+  i1734 = (1734 + x) % 10;
+  I64 i1735;
+  i1735 = (1735 - x) % 10;
+  I64 i1736;
+  i1736 = (1736 + x) % 10;
+  I64 i1737;
+  i1737 = (1737 - x) % 10;
+  I64 i1738;
+  i1738 = (1738 + x) % 10;
+  I64 i1739;
+  i1739 = (1739 - x) % 10;
+  I64 i1740;
+  i1740 = (1740 + x) % 10;
+  I64 i1741;
+  i1741 = (1741 - x) % 10;
+  I64 i1742;
+  i1742 = (1742 + x) % 10;
+  I64 i1743;
+  i1743 = (1743 - x) % 10;
+  I64 i1744;
+  i1744 = (1744 + x) % 10;
+  I64 i1745;
+  i1745 = (1745 - x) % 10;
+  I64 i1746;
+  i1746 = (1746 + x) % 10;
+  I64 i1747;
+  i1747 = (1747 - x) % 10;
+  I64 i1748;
+  i1748 = (1748 + x) % 10;
+  I64 i1749;
+  i1749 = (1749 - x) % 10;
+  I64 i1750;
+  i1750 = (1750 + x) % 10;
+  I64 i1751;
+  i1751 = (1751 - x) % 10;
+  I64 i1752;
+  i1752 = (1752 + x) % 10;
+  I64 i1753;
+  i1753 = (1753 - x) % 10;
+  I64 i1754;
+  i1754 = (1754 + x) % 10;
+  I64 i1755;
+  i1755 = (1755 - x) % 10;
+  I64 i1756;
+  i1756 = (1756 + x) % 10;
+  I64 i1757;
+  i1757 = (1757 - x) % 10;
+  I64 i1758;
+  i1758 = (1758 + x) % 10;
+  I64 i1759;
+  i1759 = (1759 - x) % 10;
+  I64 i1760;
+  i1760 = (1760 + x) % 10;
+  I64 i1761;
+  i1761 = (1761 - x) % 10;
+  I64 i1762;
+  i1762 = (1762 + x) % 10;
+  I64 i1763;
+  i1763 = (1763 - x) % 10;
+  I64 i1764;
+  i1764 = (1764 + x) % 10;
+  I64 i1765;
+  i1765 = (1765 - x) % 10;
+  I64 i1766;
+  i1766 = (1766 + x) % 10;
+  I64 i1767;
+  i1767 = (1767 - x) % 10;
+  I64 i1768;
+  i1768 = (1768 + x) % 10;
+  I64 i1769;
+  i1769 = (1769 - x) % 10;
+  I64 i1770;
+  i1770 = (1770 + x) % 10;
+  I64 i1771;
+  i1771 = (1771 - x) % 10;
+  I64 i1772;
+  i1772 = (1772 + x) % 10;
+  I64 i1773;
+  i1773 = (1773 - x) % 10;
+  I64 i1774;
+  i1774 = (1774 + x) % 10;
+  I64 i1775;
+  i1775 = (1775 - x) % 10;
+  I64 i1776;
+  i1776 = (1776 + x) % 10;
+  I64 i1777;
+  i1777 = (1777 - x) % 10;
+  I64 i1778;
+  i1778 = (1778 + x) % 10;
+  I64 i1779;
+  i1779 = (1779 - x) % 10;
+  I64 i1780;
+  i1780 = (1780 + x) % 10;
+  I64 i1781;
+  i1781 = (1781 - x) % 10;
+  I64 i1782;
+  i1782 = (1782 + x) % 10;
+  I64 i1783;
+  i1783 = (1783 - x) % 10;
+  I64 i1784;
+  i1784 = (1784 + x) % 10;
+  I64 i1785;
+  i1785 = (1785 - x) % 10;
+  I64 i1786;
+  i1786 = (1786 + x) % 10;
+  I64 i1787;
+  i1787 = (1787 - x) % 10;
+  I64 i1788;
+  i1788 = (1788 + x) % 10;
+  I64 i1789;
+  i1789 = (1789 - x) % 10;
+  I64 i1790;
+  i1790 = (1790 + x) % 10;
+  I64 i1791;
+  i1791 = (1791 - x) % 10;
+  I64 i1792;
+  i1792 = (1792 + x) % 10;
+  I64 i1793;
+  i1793 = (1793 - x) % 10;
+  I64 i1794;
+  i1794 = (1794 + x) % 10;
+  I64 i1795;
+  i1795 = (1795 - x) % 10;
+  I64 i1796;
+  i1796 = (1796 + x) % 10;
+  I64 i1797;
+  i1797 = (1797 - x) % 10;
+  I64 i1798;
+  i1798 = (1798 + x) % 10;
+  I64 i1799;
+  i1799 = (1799 - x) % 10;
+  I64 i1800;
+  i1800 = (1800 + x) % 10;
+  I64 i1801;
+  i1801 = (1801 - x) % 10;
+  I64 i1802;
+  i1802 = (1802 + x) % 10;
+  I64 i1803;
+  i1803 = (1803 - x) % 10;
+  I64 i1804;
+  i1804 = (1804 + x) % 10;
+  I64 i1805;
+  i1805 = (1805 - x) % 10;
+  I64 i1806;
+  i1806 = (1806 + x) % 10;
+  I64 i1807;
+  i1807 = (1807 - x) % 10;
+  I64 i1808;
+  i1808 = (1808 + x) % 10;
+  I64 i1809;
+  i1809 = (1809 - x) % 10;
+  I64 i1810;
+  i1810 = (1810 + x) % 10;
+  I64 i1811;
+  i1811 = (1811 - x) % 10;
+  I64 i1812;
+  i1812 = (1812 + x) % 10;
+  I64 i1813;
+  i1813 = (1813 - x) % 10;
+  I64 i1814;
+  i1814 = (1814 + x) % 10;
+  I64 i1815;
+  i1815 = (1815 - x) % 10;
+  I64 i1816;
+  i1816 = (1816 + x) % 10;
+  I64 i1817;
+  i1817 = (1817 - x) % 10;
+  I64 i1818;
+  i1818 = (1818 + x) % 10;
+  I64 i1819;
+  i1819 = (1819 - x) % 10;
+  I64 i1820;
+  i1820 = (1820 + x) % 10;
+  I64 i1821;
+  i1821 = (1821 - x) % 10;
+  I64 i1822;
+  i1822 = (1822 + x) % 10;
+  I64 i1823;
+  i1823 = (1823 - x) % 10;
+  I64 i1824;
+  i1824 = (1824 + x) % 10;
+  I64 i1825;
+  i1825 = (1825 - x) % 10;
+  I64 i1826;
+  i1826 = (1826 + x) % 10;
+  I64 i1827;
+  i1827 = (1827 - x) % 10;
+  I64 i1828;
+  i1828 = (1828 + x) % 10;
+  I64 i1829;
+  i1829 = (1829 - x) % 10;
+  I64 i1830;
+  i1830 = (1830 + x) % 10;
+  I64 i1831;
+  i1831 = (1831 - x) % 10;
+  I64 i1832;
+  i1832 = (1832 + x) % 10;
+  I64 i1833;
+  i1833 = (1833 - x) % 10;
+  I64 i1834;
+  i1834 = (1834 + x) % 10;
+  I64 i1835;
+  i1835 = (1835 - x) % 10;
+  I64 i1836;
+  i1836 = (1836 + x) % 10;
+  I64 i1837;
+  i1837 = (1837 - x) % 10;
+  I64 i1838;
+  i1838 = (1838 + x) % 10;
+  I64 i1839;
+  i1839 = (1839 - x) % 10;
+  I64 i1840;
+  i1840 = (1840 + x) % 10;
+  I64 i1841;
+  i1841 = (1841 - x) % 10;
+  I64 i1842;
+  i1842 = (1842 + x) % 10;
+  I64 i1843;
+  i1843 = (1843 - x) % 10;
+  I64 i1844;
+  i1844 = (1844 + x) % 10;
+  I64 i1845;
+  i1845 = (1845 - x) % 10;
+  I64 i1846;
+  i1846 = (1846 + x) % 10;
+  I64 i1847;
+  i1847 = (1847 - x) % 10;
+  I64 i1848;
+  i1848 = (1848 + x) % 10;
+  I64 i1849;
+  i1849 = (1849 - x) % 10;
+  I64 i1850;
+  i1850 = (1850 + x) % 10;
+  I64 i1851;
+  i1851 = (1851 - x) % 10;
+  I64 i1852;
+  i1852 = (1852 + x) % 10;
+  I64 i1853;
+  i1853 = (1853 - x) % 10;
+  I64 i1854;
+  i1854 = (1854 + x) % 10;
+  I64 i1855;
+  i1855 = (1855 - x) % 10;
+  I64 i1856;
+  i1856 = (1856 + x) % 10;
+  I64 i1857;
+  i1857 = (1857 - x) % 10;
+  I64 i1858;
+  i1858 = (1858 + x) % 10;
+  I64 i1859;
+  i1859 = (1859 - x) % 10;
+  I64 i1860;
+  i1860 = (1860 + x) % 10;
+  I64 i1861;
+  i1861 = (1861 - x) % 10;
+  I64 i1862;
+  i1862 = (1862 + x) % 10;
+  I64 i1863;
+  i1863 = (1863 - x) % 10;
+  I64 i1864;
+  i1864 = (1864 + x) % 10;
+  I64 i1865;
+  i1865 = (1865 - x) % 10;
+  I64 i1866;
+  i1866 = (1866 + x) % 10;
+  I64 i1867;
+  i1867 = (1867 - x) % 10;
+  I64 i1868;
+  i1868 = (1868 + x) % 10;
+  I64 i1869;
+  i1869 = (1869 - x) % 10;
+  I64 i1870;
+  i1870 = (1870 + x) % 10;
+  I64 i1871;
+  i1871 = (1871 - x) % 10;
+  I64 i1872;
+  i1872 = (1872 + x) % 10;
+  I64 i1873;
+  i1873 = (1873 - x) % 10;
+  I64 i1874;
+  i1874 = (1874 + x) % 10;
+  I64 i1875;
+  i1875 = (1875 - x) % 10;
+  I64 i1876;
+  i1876 = (1876 + x) % 10;
+  I64 i1877;
+  i1877 = (1877 - x) % 10;
+  I64 i1878;
+  i1878 = (1878 + x) % 10;
+  I64 i1879;
+  i1879 = (1879 - x) % 10;
+  I64 i1880;
+  i1880 = (1880 + x) % 10;
+  I64 i1881;
+  i1881 = (1881 - x) % 10;
+  I64 i1882;
+  i1882 = (1882 + x) % 10;
+  I64 i1883;
+  i1883 = (1883 - x) % 10;
+  I64 i1884;
+  i1884 = (1884 + x) % 10;
+  I64 i1885;
+  i1885 = (1885 - x) % 10;
+  I64 i1886;
+  i1886 = (1886 + x) % 10;
+  I64 i1887;
+  i1887 = (1887 - x) % 10;
+  I64 i1888;
+  i1888 = (1888 + x) % 10;
+  I64 i1889;
+  i1889 = (1889 - x) % 10;
+  I64 i1890;
+  i1890 = (1890 + x) % 10;
+  I64 i1891;
+  i1891 = (1891 - x) % 10;
+  I64 i1892;
+  i1892 = (1892 + x) % 10;
+  I64 i1893;
+  i1893 = (1893 - x) % 10;
+  I64 i1894;
+  i1894 = (1894 + x) % 10;
+  I64 i1895;
+  i1895 = (1895 - x) % 10;
+  I64 i1896;
+  i1896 = (1896 + x) % 10;
+  I64 i1897;
+  i1897 = (1897 - x) % 10;
+  I64 i1898;
+  i1898 = (1898 + x) % 10;
+  I64 i1899;
+  i1899 = (1899 - x) % 10;
+  I64 i1900;
+  i1900 = (1900 + x) % 10;
+  I64 i1901;
+  i1901 = (1901 - x) % 10;
+  I64 i1902;
+  i1902 = (1902 + x) % 10;
+  I64 i1903;
+  i1903 = (1903 - x) % 10;
+  I64 i1904;
+  i1904 = (1904 + x) % 10;
+  I64 i1905;
+  i1905 = (1905 - x) % 10;
+  I64 i1906;
+  i1906 = (1906 + x) % 10;
+  I64 i1907;
+  i1907 = (1907 - x) % 10;
+  I64 i1908;
+  i1908 = (1908 + x) % 10;
+  I64 i1909;
+  i1909 = (1909 - x) % 10;
+  I64 i1910;
+  i1910 = (1910 + x) % 10;
+  I64 i1911;
+  i1911 = (1911 - x) % 10;
+  I64 i1912;
+  i1912 = (1912 + x) % 10;
+  I64 i1913;
+  i1913 = (1913 - x) % 10;
+  I64 i1914;
+  i1914 = (1914 + x) % 10;
+  I64 i1915;
+  i1915 = (1915 - x) % 10;
+  I64 i1916;
+  i1916 = (1916 + x) % 10;
+  I64 i1917;
+  i1917 = (1917 - x) % 10;
+  I64 i1918;
+  i1918 = (1918 + x) % 10;
+  I64 i1919;
+  i1919 = (1919 - x) % 10;
+  I64 i1920;
+  i1920 = (1920 + x) % 10;
+  I64 i1921;
+  i1921 = (1921 - x) % 10;
+  I64 i1922;
+  i1922 = (1922 + x) % 10;
+  I64 i1923;
+  i1923 = (1923 - x) % 10;
+  I64 i1924;
+  i1924 = (1924 + x) % 10;
+  I64 i1925;
+  i1925 = (1925 - x) % 10;
+  I64 i1926;
+  i1926 = (1926 + x) % 10;
+  I64 i1927;
+  i1927 = (1927 - x) % 10;
+  I64 i1928;
+  i1928 = (1928 + x) % 10;
+  I64 i1929;
+  i1929 = (1929 - x) % 10;
+  I64 i1930;
+  i1930 = (1930 + x) % 10;
+  I64 i1931;
+  i1931 = (1931 - x) % 10;
+  I64 i1932;
+  i1932 = (1932 + x) % 10;
+  I64 i1933;
+  i1933 = (1933 - x) % 10;
+  I64 i1934;
+  i1934 = (1934 + x) % 10;
+  I64 i1935;
+  i1935 = (1935 - x) % 10;
+  I64 i1936;
+  i1936 = (1936 + x) % 10;
+  I64 i1937;
+  i1937 = (1937 - x) % 10;
+  I64 i1938;
+  i1938 = (1938 + x) % 10;
+  I64 i1939;
+  i1939 = (1939 - x) % 10;
+  I64 i1940;
+  i1940 = (1940 + x) % 10;
+  I64 i1941;
+  i1941 = (1941 - x) % 10;
+  I64 i1942;
+  i1942 = (1942 + x) % 10;
+  I64 i1943;
+  i1943 = (1943 - x) % 10;
+  I64 i1944;
+  i1944 = (1944 + x) % 10;
+  I64 i1945;
+  i1945 = (1945 - x) % 10;
+  I64 i1946;
+  i1946 = (1946 + x) % 10;
+  I64 i1947;
+  i1947 = (1947 - x) % 10;
+  I64 i1948;
+  i1948 = (1948 + x) % 10;
+  I64 i1949;
+  i1949 = (1949 - x) % 10;
+  I64 i1950;
+  i1950 = (1950 + x) % 10;
+  I64 i1951;
+  i1951 = (1951 - x) % 10;
+  I64 i1952;
+  i1952 = (1952 + x) % 10;
+  I64 i1953;
+  i1953 = (1953 - x) % 10;
+  I64 i1954;
+  i1954 = (1954 + x) % 10;
+  I64 i1955;
+  i1955 = (1955 - x) % 10;
+  I64 i1956;
+  i1956 = (1956 + x) % 10;
+  I64 i1957;
+  i1957 = (1957 - x) % 10;
+  I64 i1958;
+  i1958 = (1958 + x) % 10;
+  I64 i1959;
+  i1959 = (1959 - x) % 10;
+  I64 i1960;
+  i1960 = (1960 + x) % 10;
+  I64 i1961;
+  i1961 = (1961 - x) % 10;
+  I64 i1962;
+  i1962 = (1962 + x) % 10;
+  I64 i1963;
+  i1963 = (1963 - x) % 10;
+  I64 i1964;
+  i1964 = (1964 + x) % 10;
+  I64 i1965;
+  i1965 = (1965 - x) % 10;
+  I64 i1966;
+  i1966 = (1966 + x) % 10;
+  I64 i1967;
+  i1967 = (1967 - x) % 10;
+  I64 i1968;
+  i1968 = (1968 + x) % 10;
+  I64 i1969;
+  i1969 = (1969 - x) % 10;
+  I64 i1970;
+  i1970 = (1970 + x) % 10;
+  I64 i1971;
+  i1971 = (1971 - x) % 10;
+  I64 i1972;
+  i1972 = (1972 + x) % 10;
+  I64 i1973;
+  i1973 = (1973 - x) % 10;
+  I64 i1974;
+  i1974 = (1974 + x) % 10;
+  I64 i1975;
+  i1975 = (1975 - x) % 10;
+  I64 i1976;
+  i1976 = (1976 + x) % 10;
+  I64 i1977;
+  i1977 = (1977 - x) % 10;
+  I64 i1978;
+  i1978 = (1978 + x) % 10;
+  I64 i1979;
+  i1979 = (1979 - x) % 10;
+  I64 i1980;
+  i1980 = (1980 + x) % 10;
+  I64 i1981;
+  i1981 = (1981 - x) % 10;
+  I64 i1982;
+  i1982 = (1982 + x) % 10;
+  I64 i1983;
+  i1983 = (1983 - x) % 10;
+  I64 i1984;
+  i1984 = (1984 + x) % 10;
+  I64 i1985;
+  i1985 = (1985 - x) % 10;
+  I64 i1986;
+  i1986 = (1986 + x) % 10;
+  I64 i1987;
+  i1987 = (1987 - x) % 10;
+  I64 i1988;
+  i1988 = (1988 + x) % 10;
+  I64 i1989;
+  i1989 = (1989 - x) % 10;
+  I64 i1990;
+  i1990 = (1990 + x) % 10;
+  I64 i1991;
+  i1991 = (1991 - x) % 10;
+  I64 i1992;
+  i1992 = (1992 + x) % 10;
+  I64 i1993;
+  i1993 = (1993 - x) % 10;
+  I64 i1994;
+  i1994 = (1994 + x) % 10;
+  I64 i1995;
+  i1995 = (1995 - x) % 10;
+  I64 i1996;
+  i1996 = (1996 + x) % 10;
+  I64 i1997;
+  i1997 = (1997 - x) % 10;
+  I64 i1998;
+  i1998 = (1998 + x) % 10;
+  I64 i1999;
+  i1999 = (1999 - x) % 10;
+  I64 i2000;
+  i2000 = (2000 + x) % 10;
+  I64 i2001;
+  i2001 = (2001 - x) % 10;
+  I64 i2002;
+  i2002 = (2002 + x) % 10;
+  I64 i2003;
+  i2003 = (2003 - x) % 10;
+  I64 i2004;
+  i2004 = (2004 + x) % 10;
+  I64 i2005;
+  i2005 = (2005 - x) % 10;
+  I64 i2006;
+  i2006 = (2006 + x) % 10;
+  I64 i2007;
+  i2007 = (2007 - x) % 10;
+  I64 i2008;
+  i2008 = (2008 + x) % 10;
+  I64 i2009;
+  i2009 = (2009 - x) % 10;
+  I64 i2010;
+  i2010 = (2010 + x) % 10;
+  I64 i2011;
+  i2011 = (2011 - x) % 10;
+  I64 i2012;
+  i2012 = (2012 + x) % 10;
+  I64 i2013;
+  i2013 = (2013 - x) % 10;
+  I64 i2014;
+  i2014 = (2014 + x) % 10;
+  I64 i2015;
+  i2015 = (2015 - x) % 10;
+  I64 i2016;
+  i2016 = (2016 + x) % 10;
+  I64 i2017;
+  i2017 = (2017 - x) % 10;
+  I64 i2018;
+  i2018 = (2018 + x) % 10;
+  I64 i2019;
+  i2019 = (2019 - x) % 10;
+  I64 i2020;
+  i2020 = (2020 + x) % 10;
+  I64 i2021;
+  i2021 = (2021 - x) % 10;
+  I64 i2022;
+  i2022 = (2022 + x) % 10;
+  I64 i2023;
+  i2023 = (2023 - x) % 10;
+  I64 i2024;
+  i2024 = (2024 + x) % 10;
+  I64 i2025;
+  i2025 = (2025 - x) % 10;
+  I64 i2026;
+  i2026 = (2026 + x) % 10;
+  I64 i2027;
+  i2027 = (2027 - x) % 10;
+  I64 i2028;
+  i2028 = (2028 + x) % 10;
+  I64 i2029;
+  i2029 = (2029 - x) % 10;
+  I64 i2030;
+  i2030 = (2030 + x) % 10;
+  I64 i2031;
+  i2031 = (2031 - x) % 10;
+  I64 i2032;
+  i2032 = (2032 + x) % 10;
+  I64 i2033;
+  i2033 = (2033 - x) % 10;
+  I64 i2034;
+  i2034 = (2034 + x) % 10;
+  I64 i2035;
+  i2035 = (2035 - x) % 10;
+  I64 i2036;
+  i2036 = (2036 + x) % 10;
+  I64 i2037;
+  i2037 = (2037 - x) % 10;
+  I64 i2038;
+  i2038 = (2038 + x) % 10;
+  I64 i2039;
+  i2039 = (2039 - x) % 10;
+  I64 i2040;
+  i2040 = (2040 + x) % 10;
+  I64 i2041;
+  i2041 = (2041 - x) % 10;
+  I64 i2042;
+  i2042 = (2042 + x) % 10;
+  I64 i2043;
+  i2043 = (2043 - x) % 10;
+  I64 i2044;
+  i2044 = (2044 + x) % 10;
+  I64 i2045;
+  i2045 = (2045 - x) % 10;
+  I64 i2046;
+  i2046 = (2046 + x) % 10;
+  I64 i2047;
+  i2047 = (2047 - x) % 10;
+  I64 i2048;
+  i2048 = (2048 + x) % 10;
+  I64 i2049;
+  i2049 = (2049 - x) % 10;
+  I64 i2050;
+  i2050 = (2050 + x) % 10;
+  I64 i2051;
+  i2051 = (2051 - x) % 10;
+  I64 i2052;
+  i2052 = (2052 + x) % 10;
+  I64 i2053;
+  i2053 = (2053 - x) % 10;
+  I64 i2054;
+  i2054 = (2054 + x) % 10;
+  I64 i2055;
+  i2055 = (2055 - x) % 10;
+  I64 i2056;
+  i2056 = (2056 + x) % 10;
+  I64 i2057;
+  i2057 = (2057 - x) % 10;
+  I64 i2058;
+  i2058 = (2058 + x) % 10;
+  I64 i2059;
+  i2059 = (2059 - x) % 10;
+  I64 i2060;
+  i2060 = (2060 + x) % 10;
+
+  I64 res;
+  ccall printf("Before switch\n");
+  switch [0 .. 9] ((i0+i1+i2+i3+i4+i5+i6+i7+i8+i9+i10+i11+i12+i13+i14+i15+i16+i17+i18+i19+i20+i21+i22+i23+i24+i25+i26+i27+i28+i29+i30+i31+i32+i33+i34+i35+i36+i37+i38+i39+i40+i41+i42+i43+i44+i45+i46+i47+i48+i49+i50+i51+i52+i53+i54+i55+i56+i57+i58+i59+i60+i61+i62+i63+i64+i65+i66+i67+i68+i69+i70+i71+i72+i73+i74+i75+i76+i77+i78+i79+i80+i81+i82+i83+i84+i85+i86+i87+i88+i89+i90+i91+i92+i93+i94+i95+i96+i97+i98+i99+i100+i101+i102+i103+i104+i105+i106+i107+i108+i109+i110+i111+i112+i113+i114+i115+i116+i117+i118+i119+i120+i121+i122+i123+i124+i125+i126+i127+i128+i129+i130+i131+i132+i133+i134+i135+i136+i137+i138+i139+i140+i141+i142+i143+i144+i145+i146+i147+i148+i149+i150+i151+i152+i153+i154+i155+i156+i157+i158+i159+i160+i161+i162+i163+i164+i165+i166+i167+i168+i169+i170+i171+i172+i173+i174+i175+i176+i177+i178+i179+i180+i181+i182+i183+i184+i185+i186+i187+i188+i189+i190+i191+i192+i193+i194+i195+i196+i197+i198+i199+i200+i201+i202+i203+i204+i205+i206+i207+i208+i209+i210+i211+i212+i213+i214+i215+i216+i217+i218+i219+i220+i221+i222+i223+i224+i225+i226+i227+i228+i229+i230+i231+i232+i233+i234+i235+i236+i237+i238+i239+i240+i241+i242+i243+i244+i245+i246+i247+i248+i249+i250+i251+i252+i253+i254+i255+i256+i257+i258+i259+i260+i261+i262+i263+i264+i265+i266+i267+i268+i269+i270+i271+i272+i273+i274+i275+i276+i277+i278+i279+i280+i281+i282+i283+i284+i285+i286+i287+i288+i289+i290+i291+i292+i293+i294+i295+i296+i297+i298+i299+i300+i301+i302+i303+i304+i305+i306+i307+i308+i309+i310+i311+i312+i313+i314+i315+i316+i317+i318+i319+i320+i321+i322+i323+i324+i325+i326+i327+i328+i329+i330+i331+i332+i333+i334+i335+i336+i337+i338+i339+i340+i341+i342+i343+i344+i345+i346+i347+i348+i349+i350+i351+i352+i353+i354+i355+i356+i357+i358+i359+i360+i361+i362+i363+i364+i365+i366+i367+i368+i369+i370+i371+i372+i373+i374+i375+i376+i377+i378+i379+i380+i381+i382+i383+i384+i385+i386+i387+i388+i389+i390+i391+i392+i393+i394+i395+i396+i397+i398+i399+i400+i401+i402+i403+i404+i405+i406+i407+i408+i409+i410+i411+i412+i413+i414+i415+i416+i417+i418+i419+i420+i421+i422+i423+i424+i425+i426+i427+i428+i429+i430+i431+i432+i433+i434+i435+i436+i437+i438+i439+i440+i441+i442+i443+i444+i445+i446+i447+i448+i449+i450+i451+i452+i453+i454+i455+i456+i457+i458+i459+i460+i461+i462+i463+i464+i465+i466+i467+i468+i469+i470+i471+i472+i473+i474+i475+i476+i477+i478+i479+i480+i481+i482+i483+i484+i485+i486+i487+i488+i489+i490+i491+i492+i493+i494+i495+i496+i497+i498+i499+i500+i501+i502+i503+i504+i505+i506+i507+i508+i509+i510+i511+i512+i513+i514+i515+i516+i517+i518+i519+i520+i521+i522+i523+i524+i525+i526+i527+i528+i529+i530+i531+i532+i533+i534+i535+i536+i537+i538+i539+i540+i541+i542+i543+i544+i545+i546+i547+i548+i549+i550+i551+i552+i553+i554+i555+i556+i557+i558+i559+i560+i561+i562+i563+i564+i565+i566+i567+i568+i569+i570+i571+i572+i573+i574+i575+i576+i577+i578+i579+i580+i581+i582+i583+i584+i585+i586+i587+i588+i589+i590+i591+i592+i593+i594+i595+i596+i597+i598+i599+i600+i601+i602+i603+i604+i605+i606+i607+i608+i609+i610+i611+i612+i613+i614+i615+i616+i617+i618+i619+i620+i621+i622+i623+i624+i625+i626+i627+i628+i629+i630+i631+i632+i633+i634+i635+i636+i637+i638+i639+i640+i641+i642+i643+i644+i645+i646+i647+i648+i649+i650+i651+i652+i653+i654+i655+i656+i657+i658+i659+i660+i661+i662+i663+i664+i665+i666+i667+i668+i669+i670+i671+i672+i673+i674+i675+i676+i677+i678+i679+i680+i681+i682+i683+i684+i685+i686+i687+i688+i689+i690+i691+i692+i693+i694+i695+i696+i697+i698+i699+i700+i701+i702+i703+i704+i705+i706+i707+i708+i709+i710+i711+i712+i713+i714+i715+i716+i717+i718+i719+i720+i721+i722+i723+i724+i725+i726+i727+i728+i729+i730+i731+i732+i733+i734+i735+i736+i737+i738+i739+i740+i741+i742+i743+i744+i745+i746+i747+i748+i749+i750+i751+i752+i753+i754+i755+i756+i757+i758+i759+i760+i761+i762+i763+i764+i765+i766+i767+i768+i769+i770+i771+i772+i773+i774+i775+i776+i777+i778+i779+i780+i781+i782+i783+i784+i785+i786+i787+i788+i789+i790+i791+i792+i793+i794+i795+i796+i797+i798+i799+i800+i801+i802+i803+i804+i805+i806+i807+i808+i809+i810+i811+i812+i813+i814+i815+i816+i817+i818+i819+i820+i821+i822+i823+i824+i825+i826+i827+i828+i829+i830+i831+i832+i833+i834+i835+i836+i837+i838+i839+i840+i841+i842+i843+i844+i845+i846+i847+i848+i849+i850+i851+i852+i853+i854+i855+i856+i857+i858+i859+i860+i861+i862+i863+i864+i865+i866+i867+i868+i869+i870+i871+i872+i873+i874+i875+i876+i877+i878+i879+i880+i881+i882+i883+i884+i885+i886+i887+i888+i889+i890+i891+i892+i893+i894+i895+i896+i897+i898+i899+i900+i901+i902+i903+i904+i905+i906+i907+i908+i909+i910+i911+i912+i913+i914+i915+i916+i917+i918+i919+i920+i921+i922+i923+i924+i925+i926+i927+i928+i929+i930+i931+i932+i933+i934+i935+i936+i937+i938+i939+i940+i941+i942+i943+i944+i945+i946+i947+i948+i949+i950+i951+i952+i953+i954+i955+i956+i957+i958+i959+i960+i961+i962+i963+i964+i965+i966+i967+i968+i969+i970+i971+i972+i973+i974+i975+i976+i977+i978+i979+i980+i981+i982+i983+i984+i985+i986+i987+i988+i989+i990+i991+i992+i993+i994+i995+i996+i997+i998+i999+i1000+i1001+i1002+i1003+i1004+i1005+i1006+i1007+i1008+i1009+i1010+i1011+i1012+i1013+i1014+i1015+i1016+i1017+i1018+i1019+i1020+i1021+i1022+i1023+i1024+i1025+i1026+i1027+i1028+i1029+i1030+i1031+i1032+i1033+i1034+i1035+i1036+i1037+i1038+i1039+i1040+i1041+i1042+i1043+i1044+i1045+i1046+i1047+i1048+i1049+i1050+i1051+i1052+i1053+i1054+i1055+i1056+i1057+i1058+i1059+i1060+i1061+i1062+i1063+i1064+i1065+i1066+i1067+i1068+i1069+i1070+i1071+i1072+i1073+i1074+i1075+i1076+i1077+i1078+i1079+i1080+i1081+i1082+i1083+i1084+i1085+i1086+i1087+i1088+i1089+i1090+i1091+i1092+i1093+i1094+i1095+i1096+i1097+i1098+i1099+i1100+i1101+i1102+i1103+i1104+i1105+i1106+i1107+i1108+i1109+i1110+i1111+i1112+i1113+i1114+i1115+i1116+i1117+i1118+i1119+i1120+i1121+i1122+i1123+i1124+i1125+i1126+i1127+i1128+i1129+i1130+i1131+i1132+i1133+i1134+i1135+i1136+i1137+i1138+i1139+i1140+i1141+i1142+i1143+i1144+i1145+i1146+i1147+i1148+i1149+i1150+i1151+i1152+i1153+i1154+i1155+i1156+i1157+i1158+i1159+i1160+i1161+i1162+i1163+i1164+i1165+i1166+i1167+i1168+i1169+i1170+i1171+i1172+i1173+i1174+i1175+i1176+i1177+i1178+i1179+i1180+i1181+i1182+i1183+i1184+i1185+i1186+i1187+i1188+i1189+i1190+i1191+i1192+i1193+i1194+i1195+i1196+i1197+i1198+i1199+i1200+i1201+i1202+i1203+i1204+i1205+i1206+i1207+i1208+i1209+i1210+i1211+i1212+i1213+i1214+i1215+i1216+i1217+i1218+i1219+i1220+i1221+i1222+i1223+i1224+i1225+i1226+i1227+i1228+i1229+i1230+i1231+i1232+i1233+i1234+i1235+i1236+i1237+i1238+i1239+i1240+i1241+i1242+i1243+i1244+i1245+i1246+i1247+i1248+i1249+i1250+i1251+i1252+i1253+i1254+i1255+i1256+i1257+i1258+i1259+i1260+i1261+i1262+i1263+i1264+i1265+i1266+i1267+i1268+i1269+i1270+i1271+i1272+i1273+i1274+i1275+i1276+i1277+i1278+i1279+i1280+i1281+i1282+i1283+i1284+i1285+i1286+i1287+i1288+i1289+i1290+i1291+i1292+i1293+i1294+i1295+i1296+i1297+i1298+i1299+i1300+i1301+i1302+i1303+i1304+i1305+i1306+i1307+i1308+i1309+i1310+i1311+i1312+i1313+i1314+i1315+i1316+i1317+i1318+i1319+i1320+i1321+i1322+i1323+i1324+i1325+i1326+i1327+i1328+i1329+i1330+i1331+i1332+i1333+i1334+i1335+i1336+i1337+i1338+i1339+i1340+i1341+i1342+i1343+i1344+i1345+i1346+i1347+i1348+i1349+i1350+i1351+i1352+i1353+i1354+i1355+i1356+i1357+i1358+i1359+i1360+i1361+i1362+i1363+i1364+i1365+i1366+i1367+i1368+i1369+i1370+i1371+i1372+i1373+i1374+i1375+i1376+i1377+i1378+i1379+i1380+i1381+i1382+i1383+i1384+i1385+i1386+i1387+i1388+i1389+i1390+i1391+i1392+i1393+i1394+i1395+i1396+i1397+i1398+i1399+i1400+i1401+i1402+i1403+i1404+i1405+i1406+i1407+i1408+i1409+i1410+i1411+i1412+i1413+i1414+i1415+i1416+i1417+i1418+i1419+i1420+i1421+i1422+i1423+i1424+i1425+i1426+i1427+i1428+i1429+i1430+i1431+i1432+i1433+i1434+i1435+i1436+i1437+i1438+i1439+i1440+i1441+i1442+i1443+i1444+i1445+i1446+i1447+i1448+i1449+i1450+i1451+i1452+i1453+i1454+i1455+i1456+i1457+i1458+i1459+i1460+i1461+i1462+i1463+i1464+i1465+i1466+i1467+i1468+i1469+i1470+i1471+i1472+i1473+i1474+i1475+i1476+i1477+i1478+i1479+i1480+i1481+i1482+i1483+i1484+i1485+i1486+i1487+i1488+i1489+i1490+i1491+i1492+i1493+i1494+i1495+i1496+i1497+i1498+i1499+i1500+i1501+i1502+i1503+i1504+i1505+i1506+i1507+i1508+i1509+i1510+i1511+i1512+i1513+i1514+i1515+i1516+i1517+i1518+i1519+i1520+i1521+i1522+i1523+i1524+i1525+i1526+i1527+i1528+i1529+i1530+i1531+i1532+i1533+i1534+i1535+i1536+i1537+i1538+i1539+i1540+i1541+i1542+i1543+i1544+i1545+i1546+i1547+i1548+i1549+i1550+i1551+i1552+i1553+i1554+i1555+i1556+i1557+i1558+i1559+i1560+i1561+i1562+i1563+i1564+i1565+i1566+i1567+i1568+i1569+i1570+i1571+i1572+i1573+i1574+i1575+i1576+i1577+i1578+i1579+i1580+i1581+i1582+i1583+i1584+i1585+i1586+i1587+i1588+i1589+i1590+i1591+i1592+i1593+i1594+i1595+i1596+i1597+i1598+i1599+i1600+i1601+i1602+i1603+i1604+i1605+i1606+i1607+i1608+i1609+i1610+i1611+i1612+i1613+i1614+i1615+i1616+i1617+i1618+i1619+i1620+i1621+i1622+i1623+i1624+i1625+i1626+i1627+i1628+i1629+i1630+i1631+i1632+i1633+i1634+i1635+i1636+i1637+i1638+i1639+i1640+i1641+i1642+i1643+i1644+i1645+i1646+i1647+i1648+i1649+i1650+i1651+i1652+i1653+i1654+i1655+i1656+i1657+i1658+i1659+i1660+i1661+i1662+i1663+i1664+i1665+i1666+i1667+i1668+i1669+i1670+i1671+i1672+i1673+i1674+i1675+i1676+i1677+i1678+i1679+i1680+i1681+i1682+i1683+i1684+i1685+i1686+i1687+i1688+i1689+i1690+i1691+i1692+i1693+i1694+i1695+i1696+i1697+i1698+i1699+i1700+i1701+i1702+i1703+i1704+i1705+i1706+i1707+i1708+i1709+i1710+i1711+i1712+i1713+i1714+i1715+i1716+i1717+i1718+i1719+i1720+i1721+i1722+i1723+i1724+i1725+i1726+i1727+i1728+i1729+i1730+i1731+i1732+i1733+i1734+i1735+i1736+i1737+i1738+i1739+i1740+i1741+i1742+i1743+i1744+i1745+i1746+i1747+i1748+i1749+i1750+i1751+i1752+i1753+i1754+i1755+i1756+i1757+i1758+i1759+i1760+i1761+i1762+i1763+i1764+i1765+i1766+i1767+i1768+i1769+i1770+i1771+i1772+i1773+i1774+i1775+i1776+i1777+i1778+i1779+i1780+i1781+i1782+i1783+i1784+i1785+i1786+i1787+i1788+i1789+i1790+i1791+i1792+i1793+i1794+i1795+i1796+i1797+i1798+i1799+i1800+i1801+i1802+i1803+i1804+i1805+i1806+i1807+i1808+i1809+i1810+i1811+i1812+i1813+i1814+i1815+i1816+i1817+i1818+i1819+i1820+i1821+i1822+i1823+i1824+i1825+i1826+i1827+i1828+i1829+i1830+i1831+i1832+i1833+i1834+i1835+i1836+i1837+i1838+i1839+i1840+i1841+i1842+i1843+i1844+i1845+i1846+i1847+i1848+i1849+i1850+i1851+i1852+i1853+i1854+i1855+i1856+i1857+i1858+i1859+i1860+i1861+i1862+i1863+i1864+i1865+i1866+i1867+i1868+i1869+i1870+i1871+i1872+i1873+i1874+i1875+i1876+i1877+i1878+i1879+i1880+i1881+i1882+i1883+i1884+i1885+i1886+i1887+i1888+i1889+i1890+i1891+i1892+i1893+i1894+i1895+i1896+i1897+i1898+i1899+i1900+i1901+i1902+i1903+i1904+i1905+i1906+i1907+i1908+i1909+i1910+i1911+i1912+i1913+i1914+i1915+i1916+i1917+i1918+i1919+i1920+i1921+i1922+i1923+i1924+i1925+i1926+i1927+i1928+i1929+i1930+i1931+i1932+i1933+i1934+i1935+i1936+i1937+i1938+i1939+i1940+i1941+i1942+i1943+i1944+i1945+i1946+i1947+i1948+i1949+i1950+i1951+i1952+i1953+i1954+i1955+i1956+i1957+i1958+i1959+i1960+i1961+i1962+i1963+i1964+i1965+i1966+i1967+i1968+i1969+i1970+i1971+i1972+i1973+i1974+i1975+i1976+i1977+i1978+i1979+i1980+i1981+i1982+i1983+i1984+i1985+i1986+i1987+i1988+i1989+i1990+i1991+i1992+i1993+i1994+i1995+i1996+i1997+i1998+i1999+i2000+i2001+i2002+i2003+i2004+i2005+i2006+i2007+i2008+i2009+i2010+i2011+i2012+i2013+i2014+i2015+i2016+i2017+i2018+i2019+i2020+i2021+i2022+i2023+i2024+i2025+i2026+i2027+i2028+i2029+i2030+i2031+i2032+i2033+i2034+i2035+i2036+i2037+i2038+i2039+i2040+i2041+i2042+i2043+i2044+i2045+i2046+i2047+i2048+i2049+i2050+i2051+i2052+i2053+i2054+i2055+i2056+i2057+i2058+i2059+i2060) % 10) {
+    case 0: {
+      ccall printf("Inside branch %d \n", 0);
+      res = i0;
+      ccall printf("Before jump %d \n", 0);
+      goto END;
+    }
+    case 1: {
+      ccall printf("Inside branch %d \n", 1);
+      res = i1;
+      ccall printf("Before jump %d \n", 1);
+      goto END;
+    }
+    case 2: {
+      ccall printf("Inside branch %d \n", 2);
+      res = i2;
+      ccall printf("Before jump %d \n", 2);
+      goto END;
+    }
+    case 3: {
+      ccall printf("Inside branch %d \n", 3);
+      res = i3;
+      ccall printf("Before jump %d \n", 3);
+      goto END;
+    }
+    case 4: {
+      ccall printf("Inside branch %d \n", 4);
+      res = i4;
+      ccall printf("Before jump %d \n", 4);
+      goto END;
+    }
+    case 5: {
+      ccall printf("Inside branch %d \n", 5);
+      res = i5;
+      ccall printf("Before jump %d \n", 5);
+      goto END;
+    }
+    case 6: {
+      ccall printf("Inside branch %d \n", 6);
+      res = i6;
+      ccall printf("Before jump %d \n", 6);
+      goto END;
+    }
+    case 7: {
+      ccall printf("Inside branch %d \n", 7);
+      res = i7;
+      ccall printf("Before jump %d \n", 7);
+      goto END;
+    }
+    case 8: {
+      ccall printf("Inside branch %d \n", 8);
+      res = i8;
+      ccall printf("Before jump %d \n", 8);
+      goto END;
+    }
+    default: {
+      ccall printf("Inside default branch\n");
+      res = x * (2 :: I64);
+      ccall printf("Before jump default\n");
+      goto END;
+    }
+  }
+END:
+  ccall printf("End :) \n");
+  return (res);
+}


=====================================
testsuite/tests/cmm/should_run/all.T
=====================================
@@ -31,6 +31,13 @@ test('T22871',
      multi_compile_and_run,
      ['T22871', [('T22871_cmm.cmm', '')], ''])
 
+test('JumpTableNoStackDealloc',
+     [    extra_run_opts('"' + config.libdir + '"')
+     ,    req_cmm
+     ],
+     multi_compile_and_run,
+     ['JumpTableNoStackDealloc', [('JumpTableNoStackDealloc_cmm.cmm', '')], ''])
+
 test('AtomicFetch',
      [    extra_run_opts('"' + config.libdir + '"')
      ,    req_cmm



View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e7a24d8f6ce9dce29a7c5b2a26bc7fe0b5776e00

-- 
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/e7a24d8f6ce9dce29a7c5b2a26bc7fe0b5776e00
You're receiving this email because of your account on gitlab.haskell.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-commits/attachments/20250223/829589a1/attachment-0001.html>


More information about the ghc-commits mailing list