diff --git a/COPYRIGHT b/COPYRIGHT
new file mode 100644
--- /dev/null
+++ b/COPYRIGHT
@@ -0,0 +1,66 @@
+Contributors are listed here, in alphabetical order by last name.
+Unless otherwise noted, the copyright for his or her contributions
+rests with each individual author. For contributions by authors whose
+name is marked (ACS), the copyright rests with Applied Communication
+Sciences.
+
+Copyright (C) 2011-2019. All rights reserved.
+Copyright (C) 2012-2013 Applied Communication Sciences. All rights
+reserved.
+
+Richard Eisenberg
+Alexander S. Green
+Peter LeFanu Lumsdaine
+Keith Kim (ACS)
+Siun-Chuon Mau (ACS)
+Baranidharan Mohan
+Won Ng (ACS)
+Joel Ravelomanantsoa-Ratsimihah
+Neil J. Ross
+Artur Scherer (ACS)
+Peter Selinger
+Benoît Valiron
+Alexandr Virodov (ACS)
+Stephan A. Zdancewic
+
+This research was supported by the Intelligence Advanced Research
+Projects Activity (IARPA) via Department of Interior National Business
+Center contract numbers D11PC20168 and D12PC00527. The U.S. Government
+is authorized to reproduce and distribute reprints for Governmental
+purposes notwithstanding any copyright annotation thereon. Disclaimer:
+The views and conclusions contained herein are those of the authors
+and should not be interpreted as necessarily representing the official
+policies or endorsements, either expressed or implied, of IARPA,
+DoI/NBC, or the U.S. Government.
+
+----------------------------------------------------------------------
+LICENSE
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the
+  distribution.
+
+3. The name of the authors and copyright holders may not be used to
+  endorse or promote products derived from this software without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+----------------------------------------------------------------------
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,76 @@
+December 29, 2019: Release 0.9.0.0
+
+ * Overhauled module structure:
+ 
+   Old:                New:
+   ====                ====
+   
+   Quipper.XYZ         Quipper.Internal.XYZ
+   QuipperLib.XYZ      Quipper.Libraries.XYZ
+   Libraries.XYZ       Quipper.Utils.XYZ
+   Algorithms.XYZ      Quipper.Algorithms.XYZ
+   tests               Quipper.Demos
+   Programs            Quipper.Programs
+
+ * Re-packaged Quipper as Cabal packages. Added executables quipper,
+   quipper-pp, quipperi, quipperdoc in lieu of shell scripts.
+ * Moved PDF Previewer to a separate library in Quipper.Utils.Preview
+ * Added a MonadFail instance to Circ, to keep ghc >= 7.4 happy
+ * Use type class synonyms to avoid warnings about simplifiable class.
+ * Compatibility: removed obsolete functoin Map.insertWith'.
+ * Added MultiControlledNot demo.
+ * Removed dependency on set-monad, which is broken upstream.
+ * Fixed some bugs in the stabilizer simulation.
+ * Moved QuantumIf from BF to Libraries.
+ * Added --help option to all Quipper tools.
+ * Removed Quipper.Utils.ShowAll
+ * Fixed some compiler errors and removed some unnecessary type class
+   assumptions.
+
+July 27, 2016: Release 0.8
+
+ * Portability: compatibility fixes for GHC 8.0. Note: GHC 7.10 is too
+   broken and will not be supported by Quipper.
+ * Added tests/SimulationTest
+ * Added QPrep and QUnPrep to the simulator
+
+October 14, 2014: Release 0.7
+
+ * Portability: compatibility fixes for GHC 7.8.
+
+January 16, 2014: Release 0.6
+
+ * Minor edits and documentation updates.
+ * Added a new gate gate_iX_inv
+ * Added "alternate" version of synthesis algorithm, using only
+   generators of determinant 1 if possible.
+ * Synthesis code is now in an external package "newsynth".
+ * Rendering code is now in an external package "easyrender".
+ * Updated for use with fixedprec-0.2.1.0.
+
+September 2, 2013: Release 0.5
+
+ * Portability: compatibility fixes for GHC 7.6.2.
+ * Portability: fixed Windows incompatibility bug. Handling of Ctrl-C
+   may or may not work on Windows, depending on console.
+ * Added quipperi script, analogous to ghci.
+ * New library QuipperLib.ClassicalOptim: algebraic optimization of
+   auto-generated classical circuits. Added "optimized" oracle to BWT
+   algorithm.
+ * QuipperLib.Decompose: Added decomposition into a "standard" gate
+   set, consisting of X, Y, Z, H, S, S-dagger, T, T-dagger, and CNOT.
+   Added KeepPhase flag to some transformers.
+ * QuipperLib.GateDecompositions: added more gates.
+ * New library Libraries.Synthesis.RotationDecomposition: implements a
+   variant of the algorithm from Nielsen and Chuang to decompose an
+   nxn unitary operator into one- and two-level rotations.
+ * New library QuipperLib.Unboxing: unboxing transformers.
+ * Updated ASCII output format; improved circuit parser efficiency.
+ * Miscellaneous bug fixes: malformed W-gates, qdata_of_qubits,
+   floorlog.
+ * Fixed handling of iterated subroutines in depth transformer.
+ * Documentation updates and minor refactoring.
+
+June 19, 2013: Release 0.4
+
+ * First public release.
diff --git a/Quipper/Programs/QCLParser/Main.hs b/Quipper/Programs/QCLParser/Main.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/QCLParser/Main.hs
@@ -0,0 +1,500 @@
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+-- ----------------------------------------------------------------------
+-- | This program reads an execution trace produced by QCL, and turns
+-- it into a Quipper circuit.
+
+module Quipper.Programs.QCLParser.Main where
+
+import Quipper hiding (cnot, Format)
+
+import Data.IntMap (IntMap)
+import qualified Data.IntMap as IntMap
+import qualified Data.Traversable as Trav
+import Control.Monad.State
+import Prelude hiding (not)
+import qualified Prelude
+import System.Environment
+import System.Exit
+import System.IO
+import Data.Complex
+import Data.Maybe
+
+import Text.ParserCombinators.ReadP hiding (get)
+import Data.Char (isAlpha, isAlphaNum, isDigit)
+
+-- ----------------------------------------------------------------------
+-- * A monad for a QCL state
+
+-- | In QCL, qubits are identified by integers. We have to map these
+-- to Quipper's native qubits. A 'QCLState' holds such a map.
+-- Implicitly, it also holds the set of qubits currently defined.
+type QCLState = IntMap Qubit
+
+-- | The 'QCLCirc' monad is like the 'Circ' monad, except that it also
+-- keeps track of an additional 'QCLState'. The 'lift' function must
+-- be used to lift any command for the 'Circ' monad to the 'QCLCirc'
+-- monad.
+type QCLCirc a = StateT QCLState Circ a
+
+-- ----------------------------------------------------------------------
+-- * Auxiliary state functions
+
+-- | Look up the qubit corresponding to a QCL register, or allocate a
+-- new qubit if it doesn't already exist.
+provide :: Int -> QCLCirc Qubit
+provide r = do
+  s <- get
+  case IntMap.lookup r s of
+    Just q -> return q
+    Nothing -> do
+      q <- lift $ qinit False
+      let s' = IntMap.insert r q s
+      put s'
+      return q
+
+-- ----------------------------------------------------------------------
+-- * Implementation of the QCL primitives
+
+-- | Reset all qubits to state 0.
+qcl_reset :: QCLCirc ()
+qcl_reset = do
+  s <- get
+  lift $ Trav.mapM qdiscard s
+  let s' = IntMap.empty
+  put s'
+  return ()
+
+-- | Apply a controlled-not operation to the first argument.
+qcl_cnot :: Int -> [Int] -> QCLCirc ()
+qcl_cnot r ctrls = do
+  q <- provide r
+  cs <- Trav.mapM provide ctrls
+  lift $ qnot_at q `controlled` cs
+  return ()
+
+-- | Apply an uncontrolled not operation.
+qcl_not :: Int -> QCLCirc ()
+qcl_not r = qcl_cnot r []
+
+-- | @'qcl_fanout' ins outs ctrls@: Copy the qubit register /ins/ to
+-- the qubit register /outs/ by means of c-not operations, provided
+-- that /outs/ was previously 0. The whole operation is controlled by
+-- /ctrls/.
+qcl_fanout :: [Int] -> [Int] -> [Int] -> QCLCirc ()
+qcl_fanout ins outs ctrls = do
+  qins <- Trav.mapM provide ins
+  qouts <- Trav.mapM provide outs
+  qctrls <- Trav.mapM provide ctrls
+  lift $ with_controls qctrls $ do
+    let zips = zip qins qouts
+    Trav.mapM (\(x,y) -> qnot_at y `controlled` x) zips
+  return ()
+
+-- | Calculate the square distance between two vectors, which must be
+-- of the same length.
+sqdist :: [Complex Double] -> [Complex Double] -> Double
+sqdist v1 v2 = d2 where
+  w = zipWith (-) v1 v2
+  w2 = map (\x -> x * x) $ map magnitude w
+  d2 = sum w2
+      
+-- | If the matrix looks like a /W/-gate, return 'True'.
+matrix_w :: [Complex Double] -> Bool
+matrix_w amps | length amps == 16 =
+  let v = sqrt 0.5
+      m = [ 1, 0, 0, 0,
+            0, v, v, 0,
+            0, v, -v, 0,
+            0, 0, 0, 1]
+  in
+   if sqdist amps m <= 0.001 then
+     True
+   else
+     False
+matrix_w _ = False
+
+-- | If the matrix looks like a controlled /e/^/tiZ/-gate, return the
+-- angle /t/.
+matrix_exp :: [Complex Double] -> Maybe Double
+matrix_exp amps | length amps == 16 =
+  let t = phase ((amps !! 10) + conjugate (amps !! 15))
+      u = cis t
+      m = [ 1, 0, 0, 0,
+            0, 1, 0, 0, 
+            0, 0, u, 0,
+            0, 0, 0, conjugate u]
+  in
+   if sqdist amps m <= 0.001 then
+     Just t
+   else
+     Nothing
+matrix_exp _ = Nothing
+
+-- | @'qcl_matrix' n amps regs@: Apply the /n/-by-/n/ unitary gate
+-- whose matrix is given in /amps/, to the qubit list /regs/.  This
+-- function must guess, based on the complex entries of the matrix,
+-- what the name of the gate should be. This guessing is crude at the
+-- moment, and must be extended to include additional gates as
+-- required by each algorithm. If the first argument is 'True', invert
+-- the matrix.
+qcl_matrix :: Bool -> Int -> [Complex Double] -> [Int] -> QCLCirc ()
+qcl_matrix inv n amps [x,y] | matrix_w amps = do
+  [q,r] <- Trav.mapM provide [x,y]
+  lift $ gate_W_at q r  -- this gate is self-inverse
+qcl_matrix inv n amps [x,y] | isJust t = do
+  [q,r] <- Trav.mapM provide [x,y]
+  lift $ expZt_at (sign * fromJust t) r `controlled` q
+    where
+      t = matrix_exp amps
+      sign = if inv then -1 else 1
+qcl_matrix inv n amps regs = do
+  qregs <- Trav.mapM provide regs
+  lift $ named_gate_at (if inv then "Gate*" else "Gate") qregs
+        
+-- | The inverse of 'qcl_cnot'.
+qcl_cnot_inv = qcl_cnot
+
+-- | The inverse of 'qcl_not'.
+qcl_not_inv = qcl_not
+
+-- | The inverse of 'qcl_fanout'.
+qcl_fanout_inv = qcl_fanout
+
+-- | A sample circuit to illustrate how to use the primitives.
+testcircuit1 :: QCLCirc ()
+testcircuit1 = do
+  qcl_reset
+  qcl_not 5
+  qcl_not 0
+  qcl_cnot 31 [4]
+  qcl_cnot 31 [4,30]
+  qcl_cnot 29 [31]
+  qcl_cnot_inv 31 [4,30]
+  qcl_cnot_inv 31 [4]
+
+-- ----------------------------------------------------------------------
+-- * Unpacking QCLCirc
+
+-- | Run function for the 'QCLCirc' monad: execute the actions and
+-- produce a circuit.
+run :: QCLCirc a -> Circ a
+run f = do
+  (x,_) <- runStateT f IntMap.empty
+  return x
+
+-- ----------------------------------------------------------------------
+-- * An abstract syntax for QCL output
+
+-- | A data type to hold a QCL gate.
+data QCLGate = 
+  Comment
+  | Reset
+  | Not Int
+  | XNot Int
+  | CNot Int [Int]
+  | XCNot Int [Int]
+  | Fanout [Int] [Int] [Int]
+  | XFanout [Int] [Int] [Int]
+  | Matrix Int [Complex Double] [Int]
+  | XMatrix Int [Complex Double] [Int]
+  deriving (Show)
+
+-- | Take a gate from the abstract syntax and execute it in the
+-- 'QCLCirc' monad.
+do_qcl_gate :: QCLGate -> QCLCirc ()
+do_qcl_gate Comment = return ()
+do_qcl_gate Reset = qcl_reset
+do_qcl_gate (Not x) = qcl_not x
+do_qcl_gate (XNot x ) = qcl_not_inv x            
+do_qcl_gate (CNot x ctrl) = qcl_cnot x ctrl
+do_qcl_gate (XCNot x ctrl) = qcl_cnot_inv x ctrl         
+do_qcl_gate (Fanout a b c) = qcl_fanout a b c            
+do_qcl_gate (XFanout a b c) = qcl_fanout_inv a b c            
+do_qcl_gate (Matrix n amps regs) = qcl_matrix False n amps regs
+do_qcl_gate (XMatrix n amps regs) = qcl_matrix True n amps regs
+
+-- ----------------------------------------------------------------------
+-- * Parsing
+
+-- $ The output of QCL consists of lines of the following forms. Lines
+-- not starting with \"\@\" are comments or other non-circuit output.
+-- 
+-- > @ RESET
+-- > @ NOT(qureg q=<5>)  
+-- > @ CNOT(qureg q=<31>,quconst c=<4,30>)
+-- > @ !CNOT(qureg q=<31>,quconst c=<4,30>)
+-- > @ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+-- > @ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+-- > @ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+-- > @ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)  
+-- 
+-- We use Koen Claessen's parser combinators (see
+-- "Text.ParserCombinators.ReadP") to implement the parser.
+
+-- | Parse a QCL identifier, which we take to be a non-empty string of
+-- alphanumeric characters, starting with a letter
+identifier :: ReadP String
+identifier = do
+  satisfy isAlpha
+  munch isAlphaNum
+  
+-- | Parse a signless integer. We avoid the usual trick ('readS_to_P'
+-- 'reads'), because this introduces backtracking errors.
+int :: ReadP Int
+int = do
+  s <- munch1 isDigit
+  return $ (read s :: Int)
+
+-- | Parse a floating point number. We avoid the usual trick
+-- ('readS_to_P' 'reads'), because this introduces backtracking
+-- errors.
+double :: ReadP Double
+double = do
+  (s, _) <- gather parse_double
+  return $ (read s :: Double)
+  where
+    parse_double = do
+      option '+' (char '+' +++ char '-')
+      munch isDigit
+      optional (char '.' >> munch1 isDigit)
+      
+-- | Parse a comma separated list.
+commalist :: ReadP a -> ReadP [a]
+commalist elt = sepBy elt (skipSpaces >> char ',' >> skipSpaces)
+
+-- | Parse a QCL quantum register of the form 
+-- 
+-- > q=<31,32>
+-- > c=<4,31>
+-- > b=<40,41,42,43,44,45>.
+qureg :: ReadP (String, [Int])
+qureg = do
+  id <- identifier
+  skipSpaces
+  char '='
+  skipSpaces
+  rs <- between (char '<' >> skipSpaces) (skipSpaces >> char '>') $ do
+    commalist int
+  return (id, rs)
+
+-- | Consume an optional \"!\". Return 'True' if consumed, and 'False'
+-- otherwise.
+inversechar :: ReadP Bool  
+inversechar = do
+  c <- option '+' (char '!')
+  return (c == '!')
+
+-- | Parse a complex number declaration of the format
+-- 
+-- > complex u00=1
+-- 
+-- or
+-- 
+-- > complex u22=(0.995004,-0.0998334).
+complex :: ReadP (Complex Double)
+complex = do
+  string "complex"
+  skipSpaces
+  identifier
+  skipSpaces
+  char '='
+  skipSpaces
+  choice [
+    do 
+      x <- double
+      return (x :+ 0)
+    ,
+    do
+      char '('
+      skipSpaces
+      x <- double  
+      skipSpaces
+      char ','
+      skipSpaces
+      y <- double
+      skipSpaces
+      char ')'
+      return (x :+ y)
+    ]
+
+-- | Parse a single line of QCL output into a 'QCLGate'.
+qcl_line :: ReadP QCLGate
+qcl_line = choice [
+  do -- @ RESET
+    char '@'
+    skipSpaces
+    string "RESET"
+    return Reset
+  ,
+  do -- @ NOT(qureg q=<5>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "NOT"
+    skipSpaces
+    char '('
+    skipSpaces
+    string "qureg"
+    skipSpaces
+    (_,[r]) <- qureg
+    skipSpaces
+    char ')'
+    return (if inv then XNot r else Not r)
+  ,
+  do -- @ CNOT(qureg q=<31>,quconst c=<4,30>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "CNOT"
+    skipSpaces
+    char '('
+    skipSpaces    
+    string "qureg"
+    skipSpaces
+    (_,[r]) <- qureg
+    skipSpaces
+    char ','
+    skipSpaces
+    string "quconst"
+    skipSpaces
+    (_,ctrls) <- qureg
+    skipSpaces
+    char ')'
+    return (if inv then XCNot r ctrls else CNot r ctrls)
+  ,
+  do -- @ Fanout(quconst a=<47,48>,quvoid b=<40,41>;cond=<>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "Fanout"
+    skipSpaces
+    char '('
+    skipSpaces    
+    string "quconst"
+    skipSpaces
+    (_,ins) <- qureg
+    skipSpaces
+    char ','
+    skipSpaces
+    string "quvoid"
+    skipSpaces
+    (_,outs) <- qureg
+    skipSpaces
+    char ';'
+    skipSpaces
+    (_,ctrls) <- qureg
+    skipSpaces
+    char ')'
+    return (if inv then XFanout ins outs ctrls else Fanout ins outs ctrls)
+  ,
+  do -- @ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "Matrix"
+    skipSpaces
+    dim1 <- int
+    skipSpaces
+    char 'x'
+    skipSpaces
+    dim2 <- int
+    skipSpaces
+    char '('
+    skipSpaces
+    amps <- commalist complex
+    skipSpaces
+    char ','
+    skipSpaces
+    string "qureg"
+    skipSpaces
+    (_,r) <- qureg
+    skipSpaces
+    char ')'
+    when (dim1 /= dim2) $ do
+      error "Non-square matrix"
+    return (if inv then XMatrix dim1 amps r else Matrix dim1 amps r)
+  ,    
+  do -- any line not starting with '@' is a comment
+    satisfy ((/=) '@')
+    munch (\x -> True)
+    return Comment
+  ,
+  do -- empty lines are comments
+    eof
+    return Comment
+  ]
+
+-- | String version of 'qcl_line': parse a string and turn it into a
+-- 'QCLGate'.
+parse_qcl_line :: String -> QCLGate
+parse_qcl_line s =
+  case readP_to_S readline s of
+    (h, _):_ -> h
+    _ -> error ("Unrecognized line: " ++ s)
+  where
+    readline = do
+      skipSpaces
+      l <- qcl_line
+      skipSpaces
+      eof
+      return l      
+      
+-- | Monad version of 'parse_qcl_line': parse a string and execute the
+-- resulting gate directly in the 'QCLCirc' monad.
+run_qcl_line :: String -> QCLCirc ()
+run_qcl_line = do_qcl_gate . parse_qcl_line
+
+-- | Parse a stream consisting of many lines of QCL output and execute
+-- the parsed gates in the 'QCLCirc' monad.
+run_qcl_lines :: String -> QCLCirc ()
+run_qcl_lines s =
+  mapM_ run_qcl_line (lines s)
+
+-- | A sample circuit to illustrate the parser.
+testcircuit2 :: QCLCirc ()
+testcircuit2 = do
+  run_qcl_line "@ RESET"
+  run_qcl_line "@ NOT(qureg q=<5>)"
+  run_qcl_line "@ NOT(qureg q=<0>)"
+  run_qcl_line "@ CNOT(qureg q=<31>,quconst c=<4>)"
+
+-- ----------------------------------------------------------------------
+-- * Main function
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read an execution trace produced by Ömer's QCL language,\n"
+            ++ "and turn it into a Quipper circuit.\n"
+
+-- | Main function: read a circuit in QCL format from 'stdin', and
+-- preview the translated Quipper circuit.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  lines <- hGetContents stdin
+  print_simple ASCII (run (run_qcl_lines lines))
+
diff --git a/Quipper/Programs/QCLParser/QCL-bwt-n4.out b/Quipper/Programs/QCLParser/QCL-bwt-n4.out
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/QCLParser/QCL-bwt-n4.out
@@ -0,0 +1,14973 @@
+QCL Quantum Computation Language (64 qubits, seed 1335036504)
+@ RESET
+@ NOT(qureg q=<5>)
+@ NOT(qureg q=<0>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<23>,quconst c=<21>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ !CNOT(qureg q=<23>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<12>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+@ NOT(qureg q=<12>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<23>,quconst c=<21>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ !Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ !Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ !CNOT(qureg q=<23>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<23>,quconst c=<21>)
+@ NOT(qureg q=<24>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ !NOT(qureg q=<24>)
+@ !CNOT(qureg q=<23>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<12>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+@ NOT(qureg q=<12>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<23>,quconst c=<21>)
+@ NOT(qureg q=<24>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ !Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ !Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ !NOT(qureg q=<24>)
+@ !CNOT(qureg q=<23>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<0>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ CNOT(qureg q=<25>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<25>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<12>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+@ NOT(qureg q=<12>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ CNOT(qureg q=<25>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ !Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ !Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<25>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<0,21>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<25>,quconst c=<0,21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ NOT(qureg q=<24>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ !NOT(qureg q=<24>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ !CNOT(qureg q=<25>,quconst c=<0,21>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<12>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+@ NOT(qureg q=<12>)
+@ NOT(qureg q=<11>)
+@ CNOT(qureg q=<13>,quconst c=<5,11>)
+@ NOT(qureg q=<11>)
+@ NOT(qureg q=<10>)
+@ CNOT(qureg q=<13>,quconst c=<4,10>)
+@ NOT(qureg q=<10>)
+@ NOT(qureg q=<9>)
+@ CNOT(qureg q=<13>,quconst c=<3,9>)
+@ NOT(qureg q=<9>)
+@ NOT(qureg q=<8>)
+@ CNOT(qureg q=<13>,quconst c=<2,8>)
+@ NOT(qureg q=<8>)
+@ NOT(qureg q=<7>)
+@ CNOT(qureg q=<13>,quconst c=<1,7>)
+@ NOT(qureg q=<7>)
+@ NOT(qureg q=<6>)
+@ CNOT(qureg q=<13>,quconst c=<0,6>)
+@ NOT(qureg q=<6>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<5,11>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<4,10>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<3,9>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<2,8>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<1,7>)
+@ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ CNOT(qureg q=<20>,quconst c=<31>)
+@ CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<25>,quconst c=<0,21>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ NOT(qureg q=<24>)
+@ CNOT(qureg q=<13>,quconst c=<1,22>)
+@ CNOT(qureg q=<14>,quconst c=<2,22>)
+@ CNOT(qureg q=<15>,quconst c=<3,22>)
+@ CNOT(qureg q=<16>,quconst c=<4,22>)
+@ CNOT(qureg q=<18>,quconst c=<5,22>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ !Fanout(quconst a=<19>,quvoid b=<12>;cond=<>)
+@ !Fanout(quconst a=<13,14,15,16,17,18>,quvoid b=<6,7,8,9,10,11>;cond=<>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<22>)
+@ CNOT(qureg q=<26>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<19>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<22,23>)
+@ !CNOT(qureg q=<26>,quconst c=<23>)
+@ !CNOT(qureg q=<26>,quconst c=<22>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<32>,quconst c=<4,23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<26>,quconst c=<24,32>)
+@ CNOT(qureg q=<27>,quconst c=<0,32>)
+@ CNOT(qureg q=<28>,quconst c=<1,32>)
+@ CNOT(qureg q=<29>,quconst c=<2,32>)
+@ CNOT(qureg q=<30>,quconst c=<3,32>)
+@ CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !Fanout(quconst a=<26,27,28,29,30,31>,quvoid b=<13,14,15,16,17,18>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<5,32>)
+@ !CNOT(qureg q=<30>,quconst c=<3,32>)
+@ !CNOT(qureg q=<29>,quconst c=<2,32>)
+@ !CNOT(qureg q=<28>,quconst c=<1,32>)
+@ !CNOT(qureg q=<27>,quconst c=<0,32>)
+@ !CNOT(qureg q=<26>,quconst c=<24,32>)
+@ !CNOT(qureg q=<32>,quconst c=<23>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<34>,quconst c=<1,39>)
+@ CNOT(qureg q=<35>,quconst c=<2,39>)
+@ CNOT(qureg q=<36>,quconst c=<3,39>)
+@ CNOT(qureg q=<39>,quconst c=<32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<37>,quconst c=<32>)
+@ CNOT(qureg q=<38>,quconst c=<32>)
+@ !Fanout(quconst a=<33,34,35,36,37,38>,quvoid b=<26,27,28,29,30,31>;cond=<>)
+@ !CNOT(qureg q=<38>,quconst c=<32>)
+@ !CNOT(qureg q=<37>,quconst c=<32>)
+@ !CNOT(qureg q=<38>,quconst c=<5,32>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !Fanout(quconst a=<40,41,42,43,44,45>,quvoid b=<33,34,35,36,37,38>;cond=<>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3,55>)
+@ !CNOT(qureg q=<57>,quconst c=<55>)
+@ CNOT(qureg q=<57>,quconst c=<>)
+@ CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<56>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<3>)
+@ !CNOT(qureg q=<57>,quconst c=<>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<57>,quconst c=<54>)
+@ CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<55>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<2,54>)
+@ !CNOT(qureg q=<57>,quconst c=<54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<57>,quconst c=<53>)
+@ CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<54>,quconst c=<57>)
+@ !CNOT(qureg q=<57>,quconst c=<1,53>)
+@ !CNOT(qureg q=<57>,quconst c=<53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ !CNOT(qureg q=<46>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<48>,quconst c=<1,46>)
+@ CNOT(qureg q=<48>,quconst c=<46,53>)
+@ CNOT(qureg q=<54>,quconst c=<1,53>)
+@ CNOT(qureg q=<49>,quconst c=<2,46>)
+@ CNOT(qureg q=<49>,quconst c=<46,54>)
+@ CNOT(qureg q=<55>,quconst c=<2,54>)
+@ CNOT(qureg q=<50>,quconst c=<3,46>)
+@ CNOT(qureg q=<50>,quconst c=<46>)
+@ CNOT(qureg q=<50>,quconst c=<46,55>)
+@ CNOT(qureg q=<56>,quconst c=<3>)
+@ CNOT(qureg q=<56>,quconst c=<3,55>)
+@ CNOT(qureg q=<56>,quconst c=<55>)
+@ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+@ !CNOT(qureg q=<56>,quconst c=<55>)
+@ !CNOT(qureg q=<56>,quconst c=<3,55>)
+@ !CNOT(qureg q=<56>,quconst c=<3>)
+@ !CNOT(qureg q=<50>,quconst c=<46,55>)
+@ !CNOT(qureg q=<50>,quconst c=<46>)
+@ !CNOT(qureg q=<50>,quconst c=<3,46>)
+@ !CNOT(qureg q=<55>,quconst c=<2,54>)
+@ !CNOT(qureg q=<49>,quconst c=<46,54>)
+@ !CNOT(qureg q=<49>,quconst c=<2,46>)
+@ !CNOT(qureg q=<54>,quconst c=<1,53>)
+@ !CNOT(qureg q=<48>,quconst c=<46,53>)
+@ !CNOT(qureg q=<48>,quconst c=<1,46>)
+@ !CNOT(qureg q=<47>,quconst c=<0,46>)
+@ CNOT(qureg q=<47>,quconst c=<39>)
+@ CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<46>,quconst c=<47>)
+@ !CNOT(qureg q=<47>,quconst c=<5,39>)
+@ !CNOT(qureg q=<47>,quconst c=<39>)
+@ !CNOT(qureg q=<39>,quconst c=<32>)
+@ !CNOT(qureg q=<36>,quconst c=<3,39>)
+@ !CNOT(qureg q=<35>,quconst c=<2,39>)
+@ !CNOT(qureg q=<34>,quconst c=<1,39>)
+@ !CNOT(qureg q=<33>,quconst c=<0,39>)
+@ CNOT(qureg q=<40>,quconst c=<32>)
+@ CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<39>,quconst c=<40>)
+@ !CNOT(qureg q=<40>,quconst c=<24,32>)
+@ !CNOT(qureg q=<40>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,23>)
+@ !CNOT(qureg q=<18>,quconst c=<5,22>)
+@ !CNOT(qureg q=<16>,quconst c=<4,22>)
+@ !CNOT(qureg q=<15>,quconst c=<3,22>)
+@ !CNOT(qureg q=<14>,quconst c=<2,22>)
+@ !CNOT(qureg q=<13>,quconst c=<1,22>)
+@ !NOT(qureg q=<24>)
+@ CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<23>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<21>)
+@ !CNOT(qureg q=<26>,quconst c=<>)
+@ CNOT(qureg q=<26>,quconst c=<25>)
+@ CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<22>,quconst c=<26>)
+@ !CNOT(qureg q=<26>,quconst c=<20,25>)
+@ !CNOT(qureg q=<26>,quconst c=<25>)
+@ !CNOT(qureg q=<25>,quconst c=<0,21>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ CNOT(qureg q=<30>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ CNOT(qureg q=<28>,quconst c=<32>)
+@ CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<27>)
+@ !Fanout(quconst a=<26>,quvoid b=<21>;cond=<>)
+@ !CNOT(qureg q=<31>,quconst c=<27>)
+@ CNOT(qureg q=<32>,quconst c=<1>)
+@ CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<27>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<1,31>)
+@ !CNOT(qureg q=<32>,quconst c=<1>)
+@ !CNOT(qureg q=<31>,quconst c=<28>)
+@ CNOT(qureg q=<32>,quconst c=<2>)
+@ CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<28>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<2,31>)
+@ !CNOT(qureg q=<32>,quconst c=<2>)
+@ !CNOT(qureg q=<31>,quconst c=<29>)
+@ CNOT(qureg q=<32>,quconst c=<3>)
+@ CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<29>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<3,31>)
+@ !CNOT(qureg q=<32>,quconst c=<3>)
+@ !CNOT(qureg q=<31>,quconst c=<30>)
+@ CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<26>,quconst c=<32>)
+@ !CNOT(qureg q=<30>,quconst c=<32>)
+@ !CNOT(qureg q=<32>,quconst c=<4,31>)
+@ !CNOT(qureg q=<32>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<>)
+@ CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<21>,quconst c=<31>)
+@ !CNOT(qureg q=<20>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<26>)
+@ !CNOT(qureg q=<31>,quconst c=<>)
+@ !CNOT(qureg q=<26>,quconst c=<27>)
+@ CNOT(qureg q=<31>,quconst c=<1>)
+@ CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<26>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<1,27>)
+@ !CNOT(qureg q=<31>,quconst c=<1>)
+@ !CNOT(qureg q=<27>,quconst c=<28>)
+@ CNOT(qureg q=<31>,quconst c=<2>)
+@ CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<27>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<2,28>)
+@ !CNOT(qureg q=<31>,quconst c=<2>)
+@ !CNOT(qureg q=<28>,quconst c=<29>)
+@ CNOT(qureg q=<31>,quconst c=<3>)
+@ CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<28>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<3,29>)
+@ !CNOT(qureg q=<31>,quconst c=<3>)
+@ !CNOT(qureg q=<29>,quconst c=<30>)
+@ CNOT(qureg q=<31>,quconst c=<4>)
+@ CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<29>,quconst c=<31>)
+@ !CNOT(qureg q=<31>,quconst c=<4,30>)
+@ !CNOT(qureg q=<31>,quconst c=<4>)
+[13/64] (0.99004+0.099335i) |0000000000000000000000000000000000000000000000000000000000100001> + ... + (0.0049709-0.049543i) |0000000000000000000000000000000000000000000000000100011110010011> (5 terms)
+qcl> dump a;
+: SPECTRUM a: <0,1,2,3,4,5>
+6.2396e-06 |001000>, 1.5547e-08 |010010>, 0.0024792 |010011>, 0.99005 |100001>, 6.2085e-06 |101000>, 6.2085e-06 |101001>, 0.0049709 |110010>, 0.0024792 |110011>
+qcl> 
diff --git a/Quipper/Programs/QCLParser/README b/Quipper/Programs/QCLParser/README
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/QCLParser/README
@@ -0,0 +1,28 @@
+The file bwt.qcl contains an implementation of the Binary Welded Tree
+algorithm in Omer's quantum programming language QCL.
+
+QCL is meant as a language to drive a quantum simulator, so it is a
+bit tricky to get it to actually output a circuit; however, this can
+be done with the right set of command line options. Essentially this
+will cause the program to output a trace of the gates being simulated.
+
+The following options were used to produce the file QCL-bwt-n4.out:
+
+echo "dump a;" | \
+qcl -i --log=y         \
+      --test=n         \
+      --check=n        \
+      --dump-format=b  \
+      --auto-dump=1    \
+      --log-state=n    \
+      --bits=64        \
+      --show-regs=n    \
+      --trunc-states=n \
+      QCL-BWT-v1.qcl > QCL-bwt-n4.out
+
+Finally, the program QCLParser, which is also contained in this
+directory, can be used to import the circuit from QCL-bwt-n4.out 
+into Quipper, where it can then be, for example, printed. To preview
+the circuit in Quipper, do:
+
+./QCLParser < QCL-bwt-n4.out
diff --git a/Quipper/Programs/QCLParser/bwt.qcl b/Quipper/Programs/QCLParser/bwt.qcl
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/QCLParser/bwt.qcl
@@ -0,0 +1,441 @@
+
+////////////////////////////////////////////////////////////
+// Oracle //////////////////////////////////////////////////
+////////////////////////////////////////////////////////////
+
+cond qufunct cAddNum(quconst control, quvoid out, quconst inpu, 
+                     int vector num, int n) {
+  
+  quscratch scratch[n];
+
+  int index;
+  int maskbit = 0;
+  
+  if (control[0] and inpu[0]) {
+    Not(out[0]);
+  }
+  
+  if (num[maskbit] != 0) {
+    if (control[0]) {
+      Not(out[0]);
+    }
+    if (inpu[0]) {
+      Not(scratch[0]);
+    }
+  }
+  
+  for index=1 to (n-1) {
+      maskbit = index;
+      
+      if (control[0] and inpu[index]) {
+        Not(out[index]);
+      }
+      if ((num[maskbit] != 0) and control[0]) {
+        Not(out[index]);
+      }
+      if (control[0] and scratch[index-1]) {
+        Not(out[index]);
+      }
+      if ((num[maskbit] != 0) and inpu[index]) {
+          Not(scratch[index]);
+      }
+      if (inpu[index] and scratch[index-1]) {
+          Not(scratch[index]);
+      }
+      if ((num[maskbit] != 0) and scratch[index-1]) {
+          Not(scratch[index]);
+      }
+    }
+}
+
+
+
+cond qufunct cSubNum(quconst control, quvoid out, quconst inpu, 
+                     int vector num, int n) {
+
+  int index;
+  int maskbit = 0;
+  
+  quscratch scratch[n];
+  
+  if (control[0] and inpu[0]) {
+    Not(out[0]);
+  }
+  
+  if (num[maskbit] != 0) {
+    if (control[0]) {
+      Not(out[0]);
+    }
+    if (not inpu[0]) {
+      Not(scratch[0]);
+    }
+  }
+
+  for index=1 to (n-1) {
+      maskbit = index;
+      
+      if (control[0] and inpu[index]) {
+        Not(out[index]);
+      }
+      if ((num[maskbit] != 0) and control[0]) {
+        Not(out[index]);
+      }
+      if (control[0] and scratch[index-1]) {
+        Not(out[index]);
+      }
+      if ((num[maskbit] != 0) and (not inpu[index])) {
+          Not(scratch[index]);
+      }
+      if ((not inpu[index]) and scratch[index-1]) {
+          Not(scratch[index]);
+      }
+      if ((num[maskbit] != 0) and scratch[index-1]) {
+          Not(scratch[index]);
+      }
+    }
+}
+
+cond qufunct doWeld1(quconst a, quvoid b, quconst weldctrl, 
+                     int vector f, int n) {
+
+  quscratch addsub[1];
+  
+  if (weldctrl[0] and (not a[n+1])) {
+    Not(addsub);
+  }
+  cAddNum(addsub, b, a, f, n);
+  
+  if (weldctrl[0]) {
+    Not(addsub);
+  }
+  cSubNum(addsub, b, a, f, n);
+}
+
+
+cond qufunct doWeld0(quconst a, quvoid b, quconst weldctrl, 
+                     int vector g, int n) {
+  int index;
+  
+  for index=0 to (n-1) {
+      if (weldctrl[0] and ((g[index] == 1) xor a[index])) {
+          Not(b[index]);
+      }
+    }
+}
+
+
+cond qufunct setWeld(quconst a, quvoid b, quconst childctrl,
+                     quconst direction,
+                     int vector f, int vector g, int n) {
+  
+  quscratch weldctrl[1];
+
+  if (childctrl[0] and (not direction[0])) {
+    Not(weldctrl);
+  }
+  doWeld0(a, b, weldctrl, f, n);
+
+  if (childctrl[0]) {
+    Not(weldctrl);
+  }
+  doWeld1(a, b, weldctrl, g, n);
+  
+  if (childctrl[0] and a[n+1]) {
+    Not(b[n+1]);
+  }
+  if (childctrl[0]){
+    Not(b[n]);
+    Not(b[n+1]);
+  }
+}
+
+
+cond qufunct setChildInTree(quconst a, quvoid b, quconst childctrl,
+                            quconst direction, int n) {
+  int index;
+  
+  if (childctrl[0] and direction[0]) {
+    Not(b[0]);
+  }
+  for index=1 to n {
+      if (childctrl[0] and a[index-1]) {
+        Not(b[index]);
+      }
+    }
+  if (childctrl[0] and a[n+1]) {
+    Not(b[n+1]);
+  }
+}
+
+
+
+cond qufunct setChild(quconst a, quvoid b, quconst ischild,
+                      quconst direction, 
+                      int vector f, int vector g, int n) {
+
+  quscratch childctrl[1];
+  
+  if (ischild[0] and a[n]) {
+    Not(childctrl);
+  }
+  setWeld(a, b, childctrl, direction, f, g, n);
+  
+  if (ischild[0]) {
+    Not(childctrl);
+  }
+  setChildInTree(a, b, childctrl, direction, n);
+}
+
+
+
+
+
+cond qufunct parseNodeRoot(quconst a, quvoid root, quvoid even, int n) {
+  quscratch scratch[n+1];
+  int index;
+  
+  for index=n to 1 step -1 {
+      if ((not scratch[index]) and a[index]) {
+        Not(scratch[index-1]);
+      }
+      if (scratch[index]) {
+        Not(scratch[index-1]);
+      }
+    }
+  if (not scratch[0]) {
+    Not(root);
+    Not(even);
+  }
+}
+
+
+cond qufunct parseNodeEven(quconst a, quvoid even, int n) {
+  quscratch scratch[n+1];
+  int index;
+  
+  for index=n to 1 step -1 {
+      if ((not scratch[n]) and a[index]) {
+        Not(scratch[index-1]);
+        if ((index mod 2) == 0) {
+          Not(even);
+        }
+      }
+      if (scratch[index-1]) {
+        Not(scratch[n]);
+      }
+    }
+}
+
+cond qufunct testIsParent(quconst a, quconst root, quconst even, 
+                          quvoid isparent, 
+                          int vector color, int n, int really, 
+                          quvoid ismatch) {
+   if (really == 0) {  
+    if ((not root[0]) and ismatch[0]) {
+      Not(isparent);
+    }
+  }
+  if (color[1] == 1) {
+    if (color[0] == 1) {
+      if (even[0] and a[0]) {
+        Not(ismatch);
+      }
+    }
+    else {
+      if (even[0] and (not a[0])) {
+        Not(ismatch);
+      }
+    }
+  }
+  else {
+    if (color[0] == 1) {
+      if ((not even[0]) and a[0]) {
+        Not(isparent);
+      }
+    }
+    else {
+      if ((not even[0]) and (not a[0])) {
+        Not(isparent);
+      }
+    }
+  }
+  if ((not root[0]) and ismatch[0]) {
+    Not(isparent);
+  }
+}
+
+
+cond qufunct testIsChild(qureg even, qureg ischild, qureg direction,
+                         int vector color, int n) {
+  if (color[1] == 1) {
+    if (not even[0]) {
+      Not(ischild);
+    }
+  }
+  else {
+    if (even[0]) {
+      Not(ischild);
+    }
+  }
+  if (color[0] == 1) {
+    Not(direction);
+  }
+}
+
+
+cond qufunct setParent(quconst a, quvoid b, quconst isparent, int n) {
+  int index;
+  
+  for index=0 to (n-1) {
+      if (isparent[0] and a[index+1]) {
+        Not(b[index]);
+      }
+    }
+  if (isparent[0] and a[n+1]) {
+    Not(b[n+1]);
+  }
+}
+
+
+
+
+
+
+
+
+cond qufunct oraclefun(int c, quconst a, quvoid b, quvoid r,
+                  int vector f, int vector g) {
+  int vector color[2];
+  int n = #f;
+  
+  quscratch root[1];
+  quscratch even[1];
+  quscratch isparent[1];
+  quscratch ischild[1];
+  quscratch direction[1];
+  quscratch ismatch[1];
+  
+  if (c == 0) { color[0] = 0; color[1] = 0; }
+  if (c == 1) { color[0] = 1; color[1] = 0; }
+  if (c == 2) { color[0] = 0; color[1] = 1; }
+  if (c == 3) { color[0] = 1; color[1] = 1; }
+  
+  parseNodeRoot(a, root, even, n);
+  parseNodeEven(a, even, n);
+  testIsParent(a, root, even, isparent, color, n, 1, ismatch);
+  testIsChild(even, ischild, direction, color, n);
+
+  setParent(a, b, isparent, n);
+  setChild(a, b, ischild, direction, f, g, n);
+  if ((not isparent[0]) and (not ischild[0])) {
+    Not(r);
+  }  
+}
+
+
+
+////////////////////////////////////////////////////////////
+// Timestep ////////////////////////////////////////////////
+////////////////////////////////////////////////////////////
+
+operator wGateInv(qureg a, qureg b) {
+  Matrix4x4(1,0,0,0,
+            0,sqrt(2)/2,sqrt(2)/2,0,
+            0,sqrt(2)/2,-sqrt(2)/2,0,
+            0,0,0,1,
+            a[0]&b[0]);
+}
+
+operator toffoliGate(qureg a, qureg b, qureg h){
+  Not(b[0]);
+  CNot(h[0],a[0]&b[0]);
+  Not(b[0]);
+}
+
+
+operator controlledExpGate(real dt, qureg r, qureg h){
+  Not(r[0]);
+  Matrix4x4(1,0,0,0,
+            0,1,0,0,
+            0,0,exp(-(0,1)*dt),0,
+            0,0,0,exp((0,1)*dt),
+            r[0]&h[0]);
+  Not(r[0]);
+}
+
+
+operator timestep(qureg a, qureg b, qureg r, real dt, int m) {
+  qureg h[1];
+  
+  int i;
+  
+  for i=0 to (m-1) {
+      !wGateInv(a[i], b[i]);
+    }
+  for i=0 to (m-1) {
+      toffoliGate(a[i], b[i], h);
+    }
+  
+  controlledExpGate(dt, r, h);
+  
+  for i=(m-1) to 0 step -1 {
+      toffoliGate(a[i], b[i], h);
+    }
+
+  for i=(m-1) to 0 step -1 {
+      wGateInv(a[i], b[i]);
+    }
+}
+
+
+////////////////////////////////////////////////////////////
+// Main procedure //////////////////////////////////////////
+////////////////////////////////////////////////////////////
+
+
+procedure quinit(qureg a) {
+  Not(a[#a-1]);
+  Not(a[0]);  
+}
+
+
+
+procedure bwt(int n, int s, real dt) {  
+  
+  int k = 4;
+  int m = n+2;
+  
+  qureg a[m];
+  qureg b[m];
+  qureg r[1];
+  
+  int vector f[n];
+  int vector g[n];
+  
+  int j;
+  int c;
+  
+  reset;
+  quinit(a);
+  
+  g[n-1] = 1;
+  
+  for j=0 to (s-1) {
+      for c=0 to (k-1) {
+          oraclefun(c, a, b, r, f, g);
+          timestep(a, b, r, dt, m);
+          !oraclefun(c, a, b, r, f, g);
+        }
+    }
+}
+
+bwt(4,1,0.1);
+
+
+/*
+qureg a[11];
+qureg e[1];
+qureg r[1];
+
+parseNodeRoot(a, r, e, 9);
+*/
diff --git a/Quipper/Programs/Tools/ASCII.hs b/Quipper/Programs/Tools/ASCII.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/ASCII.hs
@@ -0,0 +1,43 @@
+-- ----------------------------------------------------------------------
+-- | This tool is the identity function on circuits: it reads a
+-- circuit from standard input, and then outputs the same circuit to
+-- standard output. This program serves as an illustration for how to
+-- write the simplest kind of standalone circuit processing tool.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": the identity function on circuits: read a\n"
+            ++ "circuit from standard input, and then outputs the same circuit to\n"
+            ++ "standard output. This program serves as an illustration for how to\n"
+            ++ "write the simplest kind of standalone circuit processing tool.\n"
+
+-- | Main function: read from 'stdin', then write to 'stdout'. 
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic ASCII circuit ins
diff --git a/Quipper/Programs/Tools/Approximate.hs b/Quipper/Programs/Tools/Approximate.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Approximate.hs
@@ -0,0 +1,119 @@
+-- ----------------------------------------------------------------------
+-- | This tool decomposes rotation and phase gates into the
+-- Clifford+/T/ base, using the approximate synthesis algorithm of
+-- <http://arxiv.org/abs/1403.2975>. Other gates are unchanged.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,         -- ^ Precision in binary digits.
+  opt_keepphase :: KeepPhase, -- ^ Respect global phases?
+  opt_rseed :: Maybe StdGen   -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_keepphase = False,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['p'] ["keepphase"]    
+      (NoArg keepphase)   
+      "respect global phase",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      keepphase :: Options -> IO Options
+      keepphase o = return o { opt_keepphase = True }
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose rotation and phase gates into the Clifford+T\n" 
+            ++ "base, using the approximate synthesis algorithm of arXiv:1403.2975.\n"
+            ++ "Other gates are unchanged.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+      keepphase = opt_keepphase options
+      
+  -- Set random seed.
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (Approximate keepphase p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/Binary.hs b/Quipper/Programs/Tools/Binary.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Binary.hs
@@ -0,0 +1,40 @@
+-- ----------------------------------------------------------------------
+-- | This tool decomposes a circuit into binary gates.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": decompose a circuit into binary gates.\n"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic Binary circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/CliffordT.hs b/Quipper/Programs/Tools/CliffordT.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/CliffordT.hs
@@ -0,0 +1,117 @@
+-- ----------------------------------------------------------------------
+-- | This tool decomposes any circuit into the Clifford+/T/ base,
+-- using both exact and approximate synthesis.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,         -- ^ Precision in binary digits.
+  opt_keepphase :: KeepPhase, -- ^ Respect global phases?
+  opt_rseed :: Maybe StdGen   -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_keepphase = False,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['p'] ["keepphase"]    
+      (NoArg keepphase)   
+      "respect global phase",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      keepphase :: Options -> IO Options
+      keepphase o = return o { opt_keepphase = True }
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose any circuit into the Clifford+T base\n" 
+            ++ "using both exact and approximate synthesis.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+      keepphase = opt_keepphase options
+  
+  -- Set random seed.
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (CliffordT keepphase p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/Depth.hs b/Quipper/Programs/Tools/Depth.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Depth.hs
@@ -0,0 +1,281 @@
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and outputs its depth. 
+
+module Main where
+
+import Quipper
+import Quipper.Internal.Circuit
+import Quipper.Internal.Monad
+import Quipper.Internal.Transformer
+import Quipper.Utils.Auxiliary
+
+import Quipper.Libraries.QuipperASCIIParser
+
+import qualified Data.Map as Map
+import qualified Data.IntMap as IntMap
+
+import Data.Maybe
+import Control.Monad
+import Data.List
+import Control.Monad.State
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and output its depth.\n"
+
+-- | Main function: read from 'stdin' and calculate the depth. 
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+    
+  (ins,circuit) <- parse_from_stdin
+  let depth_circ = transform_generic_shape depth_transformer circuit ins
+  let ws = map wire_of_endpoint ins
+  let ws' = map endpoint_of_endpoint ins
+  let state = execState (depth_circ ws') (initial_depthstate ws)
+  let result = global_depth state
+  putStrLn ("Depth: " ++ show result)
+  putStrLn ("T-Depth: " ++ show (global_tdepth state))
+
+-- | Extract wires from an endpoint, keeping track of whether it was
+-- a classical or quantum endpoint.
+endpoint_of_endpoint :: B_Endpoint Qubit Bit -> B_Endpoint Wire Wire
+endpoint_of_endpoint (Endpoint_Qubit q) = Endpoint_Qubit (wire_of_qubit q)
+endpoint_of_endpoint (Endpoint_Bit b) = Endpoint_Bit (wire_of_bit b)
+
+-- | A data structure to hold information about the current depths 
+data DepthState = DS {
+   global_depth  :: !Integer,  
+   wire_depths   :: !(XIntMap Integer),
+   global_tdepth :: !Integer,
+   wire_tdepths  :: !(XIntMap Integer)
+  }
+
+-- | The initial state of the depth information depends on the wires
+-- that are inputs to a circuit.
+initial_depthstate :: [Wire] -> DepthState
+initial_depthstate ws = DS { global_depth = 0, wire_depths = foldr (\w -> xintmap_insert w 0) xintmap_empty ws, 
+                           global_tdepth = 0, wire_tdepths = foldr (\w -> xintmap_insert w 0) xintmap_empty ws }
+
+-- | We use a State Monad to carry our state
+type Depth a = State DepthState a
+
+-- | Given a list of wires, lookup the current depth
+-- of each wire, and return the maximum
+input_depth :: [Wire] -> Depth (Integer,Integer)
+input_depth ws = do
+  state <- get
+  let wd = wire_depths state
+  let ds = map (\w -> fromJust (xintmap_lookup w wd)) ws
+  let maxds = 
+        case ds of
+          [] -> 0
+          ds -> maximum ds
+  let wtd = wire_tdepths state
+  let tds = map (\w -> fromJust (xintmap_lookup w wtd)) ws
+  let maxtds = 
+        case tds of
+          [] -> 0
+          tds -> maximum tds
+  return (maxds, maxtds)
+
+-- | Given a current depth, and a list of wires, update
+-- the depth of each wire, to be one more than the current
+-- depth. Also, update the global depth, if necessary.
+update_depths :: (Integer,Integer) -> [Wire] -> Bool -> Depth ()
+update_depths (old_depth,old_tdepth) ws addt = do
+ let new_depth = old_depth + 1
+ state <- get
+ let gd = global_depth state
+ let gd' = if gd < new_depth then new_depth else gd
+ let wd = wire_depths state
+ let wd' = foldr (\w -> xintmap_insert w new_depth) wd ws
+ 
+ let new_tdepth = if addt then old_tdepth + 1 else old_tdepth
+ let gdt = global_tdepth state
+ let gdt' = if gdt < new_tdepth then new_tdepth else gdt
+ let wdt = wire_tdepths state
+ let wdt' = foldr (\w -> xintmap_insert w new_tdepth) wdt ws
+ put (state {global_depth = gd', wire_depths = wd', global_tdepth = gdt', wire_tdepths = wdt'})
+
+-- | A helper function to combine a list of wires, and
+-- a list of controls, into a single list of wires.
+wires_of :: [Wire] -> Ctrls Wire Wire -> [Wire]
+wires_of ws c = ws ++ (map wire_of_ctrl c)
+ where
+  wire_of_ctrl :: Signed (B_Endpoint Wire Wire) -> Wire
+  wire_of_ctrl (Signed (Endpoint_Qubit w) _) = w
+  wire_of_ctrl (Signed (Endpoint_Bit w) _) = w
+
+same_in_out :: Wire -> Ctrls Wire Wire -> Depth (Wire,Ctrls Wire Wire)
+same_in_out w c = do
+   let inputs = wires_of [w] c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs False
+   return (w,c)
+
+same_in_out2 :: Wire -> Wire -> Ctrls Wire Wire -> Depth (Wire,Wire,Ctrls Wire Wire)
+same_in_out2 w v c = do
+   let inputs = wires_of [w,v] c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs False
+   return (w,v,c)
+
+same_in_out_multi_t :: [Wire] -> Ctrls Wire Wire -> Depth ([Wire],Ctrls Wire Wire)
+same_in_out_multi_t ws c = do
+   let inputs = wires_of ws c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs True
+   return (ws,c)  
+
+same_in_out_multi :: [Wire] -> Ctrls Wire Wire -> Depth ([Wire],Ctrls Wire Wire)
+same_in_out_multi ws c = do
+   let inputs = wires_of ws c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs False
+   return (ws,c)  
+
+init_wire :: [Wire] -> Depth Wire
+init_wire ws =   do
+   let inputs = ws
+   depth <- input_depth inputs
+   state <- get
+   let wires = wire_depths state
+   let b = xintmap_freshkey wires
+   let outputs = [b]
+   update_depths depth outputs False
+   return b
+
+term_wire :: [Wire] -> Wire -> Depth ()
+term_wire inputs w = do
+   depth <- input_depth inputs
+   let new_depth = fst(depth) + 1
+   state <- get
+   let gd = global_depth state
+   let gd' = if gd < new_depth then new_depth else gd
+   put (state {global_depth = gd'})
+   return ()
+
+depth_transformer :: Transformer (State DepthState) Wire Wire
+-- Translation of classical gates:
+depth_transformer (T_CNot ncf f) = f same_in_out
+depth_transformer (T_CInit val ncf f) = f $ init_wire []
+depth_transformer (T_CTerm b ncf f) = f $ term_wire []
+depth_transformer (T_CDiscard f) = f $ term_wire []
+depth_transformer (T_DTerm b f) = f $ term_wire []
+depth_transformer (T_CGate name ncf f) = f $
+  \ws -> do
+   v <- init_wire ws
+   return (v,ws) 
+depth_transformer g@(T_CGateInv name ncf f) = f $
+  \v ws -> do
+   term_wire ws v
+   return ws
+-- Translation of quantum gates:
+depth_transformer (T_QGate "trace" _ _ inv ncf f) = f $
+  \ws vs c -> return (ws, vs, c) -- don't count a trace gate
+depth_transformer (T_QGate "T" _ _ inv ncf f) = f $ 
+  \qs gcs c -> do
+   same_in_out_multi_t (qs++gcs) c
+   return (qs,gcs,c)
+depth_transformer (T_QGate name _ _ inv ncf f) = f $ 
+  \qs gcs c -> do
+   same_in_out_multi (qs++gcs) c 
+   return (qs,gcs,c)
+depth_transformer (T_QRot name _ _ inv theta ncf f) = f $ 
+  \qs gcs c -> do
+   same_in_out_multi (qs++gcs) c 
+   return (qs,gcs,c)
+depth_transformer (T_GPhase t ncf f) = f $
+  \w c -> do
+  same_in_out_multi [] c
+  return c
+depth_transformer (T_QInit val ncf f) = f $ init_wire []
+depth_transformer (T_QMeas f) = f $
+  \q -> do
+   same_in_out q []
+   return q
+depth_transformer (T_QDiscard f) = f $ term_wire []
+depth_transformer (T_QTerm b ncf f) = f $ term_wire []
+depth_transformer (T_Comment name inv f) = f $
+  \ws -> return () -- don't count a comment
+depth_transformer g@(T_CSwap ncf f) = f same_in_out2
+depth_transformer g@(T_QPrep ncf f) = f $
+  \w -> error ("depth_transformer: unimplemented gate: " ++ show g)
+depth_transformer g@(T_QUnprep ncf f) = f $
+  \w -> error ("depth_transformer: unimplemented gate: " ++ show g)
+depth_transformer g@(T_Subroutine n inv ncf scf ws_pat a1 vs_pat a2 rflg f) = f $
+ \ns ws c -> do
+  case Map.lookup n ns of
+   Just (TypedSubroutine sub_ocirc _ _ _) -> do
+    let RepeatFlag reps = rflg
+    let OCircuit (in_wires, sub_circ, out_wires) = if inv then reverse_ocircuit sub_ocirc else sub_ocirc
+    let in_bindings = bind_list in_wires ws bindings_empty
+    let sub_bcirc = (sub_circ,ns)
+    state_in <- get
+    out_bind <- transform_bcircuit_rec depth_transformer sub_bcirc in_bindings
+    state_out <- get
+    put (rep_change reps state_in state_out)
+    return (unbind_list out_bind out_wires, c) 
+   Nothing -> error $ "depth_transformer: subroutine " ++ show n ++ " not found (in " ++ showNames ns ++ ")"
+
+-- | The following function updates the state by multiplying the differences between
+-- the given /state_out/ and the given /state_in/ by the given number of repetitions.
+rep_change :: Integer -> DepthState -> DepthState -> DepthState
+rep_change reps state_in state_out = DS {
+ global_depth = new_global_depth,
+ wire_depths = new_wire_depths,
+ global_tdepth = new_global_tdepth,
+ wire_tdepths = new_wire_tdepths
+ }
+ where
+   in_global_depth = global_depth state_in
+   out_global_depth = global_depth state_out
+   new_global_depth = in_global_depth + (reps * (out_global_depth - in_global_depth))
+   in_wire_depths = wire_depths state_in
+   out_wire_depths = wire_depths state_out
+   out_wire_depths_list = IntMap.toList (xintmap_to_intmap (out_wire_depths))
+   new_depths = map (\(w,v_out) -> (w,
+    case (xintmap_lookup w in_wire_depths) of
+     Nothing -> v_out * reps
+     Just v_in ->
+      case v_in > v_out of
+       True -> reps * v_out 
+       False -> v_in + (reps * (v_out - v_in)))) out_wire_depths_list
+   new_wire_depths = xintmap_inserts new_depths out_wire_depths
+   in_global_tdepth = global_tdepth state_in
+   out_global_tdepth = global_tdepth state_out
+   new_global_tdepth = in_global_tdepth + (reps * (out_global_tdepth - in_global_tdepth))
+   in_wire_tdepths = wire_tdepths state_in
+   out_wire_tdepths = wire_tdepths state_out
+   out_wire_tdepths_list = IntMap.toList (xintmap_to_intmap (out_wire_tdepths))
+   new_tdepths = map (\(w,v_out) -> (w,
+    case (xintmap_lookup w in_wire_tdepths) of
+     Nothing -> v_out * reps
+     Just v_in ->
+      case v_in > v_out of
+       True -> reps * v_out 
+       False -> v_in + (reps * (v_out - v_in)))) out_wire_tdepths_list
+   new_wire_tdepths = xintmap_inserts new_tdepths out_wire_tdepths
diff --git a/Quipper/Programs/Tools/EPS.hs b/Quipper/Programs/Tools/EPS.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/EPS.hs
@@ -0,0 +1,39 @@
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and converts it to
+-- the graphical EPS format. The converted circuit is written to
+-- standard output.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and convert it to EPS.\n"
+
+-- | Main function: read from 'stdin' and write to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic EPS circuit ins
diff --git a/Quipper/Programs/Tools/Exact.hs b/Quipper/Programs/Tools/Exact.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Exact.hs
@@ -0,0 +1,55 @@
+-- ----------------------------------------------------------------------
+-- | This tool decomposes all gates that permit exact Clifford+/T/
+-- representations into the following concrete gate base for
+-- Clifford+/T/:
+--
+-- * controlled-not (with one positive or negative control),
+--
+-- * any single-qubit Clifford gates,
+--
+-- * /T/ and /T/[sup †].
+--
+-- Classical controls and classical gates are not subject to the gate
+-- base, and are left untouched.
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": decompose all gates that permit exact Clifford+T\n"
+            ++ "representations into the following concrete gate base for\n"
+            ++ "Clifford+T: CNOT (with one positive or negative control),\n"
+            ++ "any single-qubit Clifford gates, T, and T-inverse.\n"
+            ++ "Classical controls and classical gates are not subject to the gate\n"
+            ++ "base, and are left untouched.\n"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic Exact circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/GateCount.hs b/Quipper/Programs/Tools/GateCount.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/GateCount.hs
@@ -0,0 +1,39 @@
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and calculates gate
+-- counts.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and calculate gate counts.\n"
+
+-- | Main function: read from 'stdin', and write gate counts to
+-- 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic GateCount circuit ins
diff --git a/Quipper/Programs/Tools/PDF.hs b/Quipper/Programs/Tools/PDF.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/PDF.hs
@@ -0,0 +1,39 @@
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and converts it to
+-- the graphical PDF format. The converted circuit is written to
+-- standard output.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and convert it to PDF.\n"
+
+-- | Main function: read from 'stdin' and write to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic PDF circuit ins
diff --git a/Quipper/Programs/Tools/Preview.hs b/Quipper/Programs/Tools/Preview.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Preview.hs
@@ -0,0 +1,48 @@
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and displays it in
+-- the previewer. For the previewer to work, Acrobat Reader must be
+-- installed. 
+-- 
+-- Note that it is possible to interrupt the circuit generation with
+-- Ctrl-C; in this case, the circuit generated up to that point will
+-- be displayed. A second Ctrl-C will kill the program.
+-- 
+-- Interrupting with Ctrl-C may not work in the Windows operating system.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and display it in the\n"
+            ++ "previewer. Circuit generation can be interrupted with Ctrl-C;\n"
+            ++ "in this case a partial circuit will be displayed. A second Ctrl-C\n"
+            ++ "will kill the program. Ctrl-C may not work in the Windows OS.\n"
+
+-- | Main function: read from 'stdin' and call the previewer. 
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin_with_handler
+  print_generic Preview circuit ins
diff --git a/Quipper/Programs/Tools/Simulate.hs b/Quipper/Programs/Tools/Simulate.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Simulate.hs
@@ -0,0 +1,195 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleContexts #-}
+
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input, and then simulates
+-- it by applying it to every possible basis vector. This is only
+-- intended for debugging (of very small circuits), and is by no means
+-- an industrial-strength simulator. Any measurements in the circuit
+-- will be simulated probabilistically.
+
+module Main where
+
+import Quipper
+import Quipper.Internal
+import Quipper.Libraries.Simulation
+import Quipper.Libraries.QuipperASCIIParser
+
+import Quipper.Utils.Auxiliary (string_of_list)
+import Quipper.Utils.CommandLine
+import Quipper.Utils.Sampling
+import Quantum.Synthesis.Ring
+import Quantum.Synthesis.SymReal
+
+import Data.Map (Map)
+import qualified Data.Map as Map
+
+import Control.Monad
+import Data.Number.FixedPrec
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.Random
+
+-- ----------------------------------------------------------------------
+-- * Command line options
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  prec :: Integer,       -- ^ Precision in decimal digits.
+  addprec :: Int         -- ^ Additional precision to use internally.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { prec = 30,
+    addprec = 10
+  }
+
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg opt_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['a'] ["addprec"]  
+      (ReqArg opt_additional "<num>") 
+      "additional digits to use internally (default: 10)"
+  ]
+    where
+      opt_digits :: String -> Options -> IO Options
+      opt_digits str o = 
+        case parse_int str of
+          Just d -> return o { prec = d }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      opt_additional :: String -> Options -> IO Options
+      opt_additional str o = 
+        case parse_int str of
+          Just d -> return o { addprec = d }
+          _ -> optfail ("Invalid value for option -a -- " ++ str ++ "\n")
+          
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": reads a circuit from standard input, and then simulates\n"
+            ++ "it by applying it to every possible basis vector. This is only\n"
+            ++ "intended for debugging (of very small circuits), and is by no means\n"
+            ++ "an industrial-strength simulator. Any measurements in the circuit\n"
+            ++ "will be simulated probabilistically.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- ----------------------------------------------------------------------
+-- * Payload functions
+
+-- | Convert a boolean vector to ket notation.
+show_ket :: [Bool] -> String
+show_ket = string_of_list "|" "" ">" "|>" show_bit where
+  show_bit False = "0"
+  show_bit True = "1"
+
+-- | A version of 'sim_amps' that works on 'FixedPrec' numbers and
+-- uses /n/ digits of additional precision internally during the
+-- simulation.
+sim_amps_addprec :: forall g p qa qb.(RandomGen g, Precision p, QData qa, QData qb, Ord (BType qb)) => g -> Int -> (qa -> Circ qb) -> Map (BType qa) (Cplx (FixedPrec p)) -> Map (BType qb) (Cplx (FixedPrec p))
+sim_amps_addprec g addprec circ state =
+  with_added_digits addprec f (dummy state) :: Map (BType qb) (Cplx (FixedPrec p)) where
+    dummy :: Map a (Cplx f) -> f
+    dummy = undefined
+    f :: (Precision e) => FixedPrec e -> Map (BType qb) (Cplx (FixedPrec p))
+    f arg = Map.map cast_cplx out_state where
+      in_state = Map.map cast_cplx state
+      out_state = sim_amps g circ in_state
+      _ = dummy in_state `attypeof` arg
+      attypeof :: a -> a -> a
+      attypeof x y = x
+      cast_cplx (Cplx a b) = Cplx (cast a) (cast b)
+
+-- | Input a source of randomness, an added precision, a real number,
+-- a circuit, and a basis vector. Simulate the circuit on the given
+-- basis vector, and print out the result of the simulation in the
+-- format
+-- 
+-- > |011> ->
+-- >          |011> 0.7071067811
+-- >          |010> -0.7071067811
+-- 
+-- The real number argument is a dummy argument; it serves to
+-- determine the real number type (e.g., 'Double', 'FixedPrec' /e/) to
+-- be used for the simulation. In this way, it is possible to simulate
+-- up to arbitrary precision.
+print_simulation_internal :: (RandomGen g, Precision e) => g -> Int -> FixedPrec e -> ([Qubit] -> Circ [Qubit]) -> [Bool] -> IO ()
+print_simulation_internal g addprec r circ l = do
+  putStrLn $ show_ket l ++ " ->" 
+  foreach amps $ \(ket, amp) -> do
+    when (amp /= 0) $ do
+      putStrLn $ [' ' | x <- l] ++ "      " ++ show_ket ket ++ " " ++ show amp
+  where
+    state = Map.fromList [(l, Cplx (1 `attypeof` r) 0)]
+    amps = Map.toList $ sim_amps_addprec g addprec circ state
+    
+    attypeof :: a -> a -> a
+    attypeof x y = x
+
+-- | Like 'print_simulation_internal', but instead of a dummy real number
+-- argument, specify a number of decimal digits for the simulation.
+print_simulation :: (RandomGen g) => g -> Integer -> Int -> ([Qubit] -> Circ [Qubit]) -> [Bool] -> IO ()
+print_simulation g d addprec = dynamic_fixedprec d (print_simulation_internal g addprec) (undefined :: Double)
+
+-- | Input a source of randomness, a precision (in decimal digits), a
+-- quantum circuit and a shape argument. Simulate the circuit for
+-- every possible basis vector of the given shape, and print out the
+-- result of the simulations in the format
+-- 
+-- > |011> ->
+-- >          |011> 0.7071067811
+-- >          |010> -0.7071067811
+simulate_all :: (RandomGen g) => g -> Integer -> Int -> ([Qubit] -> Circ [Qubit]) -> [a] -> IO ()
+simulate_all g d addprec circ ins = do
+  let ls = sample_all0 [ True | x <- ins ]
+  foreach ls $ \l -> do
+    print_simulation g d addprec circ l
+
+-- ----------------------------------------------------------------------
+-- * The main function
+
+-- | Main function: read from 'stdin', then simulate.
+main :: IO ()
+main = do
+  -- Process command line options
+  argv <- getArgs
+  options <- dopts argv
+  let d = prec options
+  let a = addprec options
+  
+  -- Read circuit
+  (ins, circuit) <- parse_from_stdin
+  let circ :: [Qubit] -> Circ [Qubit]
+      circ qs = do
+        let es = [ Endpoint_Qubit q | q <- qs ]
+        es <- circuit es
+        let qs = [ q | Endpoint_Qubit q <- es ]
+        return qs
+  
+  -- Simulate circuit
+  g <- newStdGen
+  simulate_all g d a circ ins
diff --git a/Quipper/Programs/Tools/Standard.hs b/Quipper/Programs/Tools/Standard.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Standard.hs
@@ -0,0 +1,109 @@
+-- ----------------------------------------------------------------------
+-- | This tool decomposes any circuit into the gate set {/X/, /Y/,
+-- /Z/, /H/, /S/, /S/[sup †], /T/, /T/[sup †], /CNOT/}, using both
+-- exact and approximate synthesis.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,        -- ^ Precision in binary digits.
+  opt_rseed :: Maybe StdGen  -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose any circuit into the gate set {X, Y, Z, H,\n"
+            ++ "S, S+, T, T+, CNOT}, using both exact and approximate synthesis.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+  
+  -- Set random seed.                                                             
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (Standard p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/Strict.hs b/Quipper/Programs/Tools/Strict.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Strict.hs
@@ -0,0 +1,108 @@
+-- ----------------------------------------------------------------------
+-- | This tool decomposes any circuit into the gate base {/H/, /S/,
+-- /T/, /CNot/}, using both exact and approximate synthesis.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,        -- ^ Precision in binary digits.
+  opt_rseed :: Maybe StdGen  -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose any circuit into the gate base {H, S, T, CNOT},\n"
+            ++ "using both exact and approximate synthesis.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+  
+  -- Set random seed.                                                             
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (Strict p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/TrimControls.hs b/Quipper/Programs/Tools/TrimControls.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/TrimControls.hs
@@ -0,0 +1,50 @@
+-- | This tool trims excess controls from gates. Specifically, it
+-- decomposes a circuit so that:
+--
+-- * not-gates, Pauli /X/-, /Y/-, and /Z/-gates, and /iX/-gates have
+-- at most two controls;
+--
+-- * phase gates of the form Diag(1, φ) have no controls; and
+--
+-- * all other gates have at most one control.
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": trims excess controls from gates. Specifically,\n"
+            ++ "decompose a circuit so that not-gates, Pauli gates, and\n"
+            ++ "iX-gates have at most two controls, phase gates of the form\n"
+            ++ "Diag(1, phi) have no controls; and other gates have at most one\n"
+            ++ "control.\n"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic TrimControls circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/Quipper/Programs/Tools/Unbox.hs b/Quipper/Programs/Tools/Unbox.hs
new file mode 100644
--- /dev/null
+++ b/Quipper/Programs/Tools/Unbox.hs
@@ -0,0 +1,56 @@
+-- ----------------------------------------------------------------------
+-- | This tool unwinds a circuit by inlining all top-level boxed
+-- subroutines.  It can sometimes be used to pre-process circuits for
+-- use by other tools that may not yet work correctly with boxed
+-- subroutines. Note, however, that this can substantially increase
+-- the size of the circuit representation.
+-- 
+-- Note that only top-level boxed subroutines are inlined; the tool
+-- may have to be applied several times to remove all levels of boxes.
+-- 
+-- This is only an illustration for how to write such tools; another
+-- tool could be written that does \"deep\" unboxing.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Unboxing
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": unwind a circuit by inlining all top-level boxed\n"
+            ++ "subroutines. Only top-level boxed subroutines are inlined;\n"
+            ++ "the tool may have to be applied several times to remove all\n"
+            ++ "levels of boxes. This is only an illustration for how to write\n"
+            ++ "such tools; another tool could be written that does \"deep\"\n"
+            ++ "unboxing.\n"
+
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin  
+  let unboxed_circuit = unbox circuit
+  print_generic ASCII unboxed_circuit ins
diff --git a/README b/README
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,76 @@
+Using the Quipper tools
+=======================
+
+The quipper-tools package contains a number of stand-alone Quipper
+programs, most of which read a circuit in the Quipper ASCII format on
+standard input. These tools are intended as examples; they illustrate
+how other such tools can be written. Each tool also has a --help
+option to display usage information.
+
+Graphical viewing of circuits:
+------------------------------
+
+* quipper-eps: convert a circuit from ASCII to EPS format.
+
+* quipper-pdf: convert a circuit from ASCII to PDF format.
+
+* quipper-preview: read a circuit and launch the previewer.
+
+Decomposing circuits into different gate sets:
+----------------------------------------------
+
+* quipper-approximate: decompose rotation and phase gates into the
+  Clifford+T base, using the approximate synthesis algorithm of 
+  http://arxiv.org/abs/1403.2975.
+
+* quipper-binary: decompose a circuit into binary gates.
+
+* quipper-cliffordt: decompose a circuit into the Clifford+T base,
+  using both exact and approximate synthesis.
+
+* quipper-exact: decompose all gates that permit exact Clifford+T
+  representations into the following gates: controlled-not (with
+  positive or negative control), and single-qubit Clifford gate, T,
+  and T⁻¹.  Classical controls and classical gates are not subject to
+  the gate base, and are left untouched.
+
+* quipper-standard: decompose a circuit into the "standard" gates {X,
+  Y, Z, H, S, S⁻¹, T, T⁻¹, CNOT}, using exact and approximate
+  synthesis.
+
+* quipper-strict: decompose a circuit into the gates {H, S, T, CNOT},
+  using exact and approximate synthesis.
+
+* quipper-trimcontrols: trim excess controls from gates, so that the
+  gates {NOT, X, Y, Z, iX} have at most two controls, phase gates have
+  no controls, and all other gates have at most one control.
+
+* quipper-unbox: unwind a circuit by inlining all top-level boxed
+  subroutines. This can substantially increase the size of the circuit
+  representation. 
+
+Resource analysis:
+------------------
+
+* quipper-depth: read a circuit and output its depth.
+
+* quipper-gatecount: read a circuit and output gate counts.
+
+Simulation:
+-----------
+
+* quipper-simulate: read a circuit and simulate it by applying it to
+  every posssible basis vector. This is not efficient and only works
+  for very small circuits. Any measurements in the circuit will be
+  simulated probabilistically.
+
+Miscellaneous:
+--------------
+
+* quipper-ascii: the identity function on circuits: read a circuit on
+  standard output and then output the same circuit to standard
+  output. Illustrates how to parse and output the Quipper ASCII
+  circuit format.
+
+* quipper-qclparser: read an execution trace produced by Ömer's QCL,
+  and turn it into a Quipper circuit.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,15 @@
+{-# LANGUAGE CPP #-}
+
+import Distribution.Simple
+import Quipper.Distribution.Preprocessor
+
+-- The following is needed because of an incompatible change in Cabal 2.
+#if MIN_VERSION_Cabal(2,0,0)
+wrap x = \_ _ _ -> x
+#else
+wrap x = \_ _ -> x
+#endif
+
+main = defaultMainWithHooks simpleUserHooks {
+  hookedPreProcessors = [("hs", wrap ppQuipper)]
+  }
diff --git a/dist/build/quipper-approximate/quipper-approximate-tmp/Quipper/Programs/Tools/Approximate.hs b/dist/build/quipper-approximate/quipper-approximate-tmp/Quipper/Programs/Tools/Approximate.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-approximate/quipper-approximate-tmp/Quipper/Programs/Tools/Approximate.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Approximate.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool decomposes rotation and phase gates into the
+-- Clifford+/T/ base, using the approximate synthesis algorithm of
+-- <http://arxiv.org/abs/1403.2975>. Other gates are unchanged.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,         -- ^ Precision in binary digits.
+  opt_keepphase :: KeepPhase, -- ^ Respect global phases?
+  opt_rseed :: Maybe StdGen   -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_keepphase = False,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['p'] ["keepphase"]    
+      (NoArg keepphase)   
+      "respect global phase",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      keepphase :: Options -> IO Options
+      keepphase o = return o { opt_keepphase = True }
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose rotation and phase gates into the Clifford+T\n" 
+            ++ "base, using the approximate synthesis algorithm of arXiv:1403.2975.\n"
+            ++ "Other gates are unchanged.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+      keepphase = opt_keepphase options
+      
+  -- Set random seed.
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (Approximate keepphase p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-ascii/quipper-ascii-tmp/Quipper/Programs/Tools/ASCII.hs b/dist/build/quipper-ascii/quipper-ascii-tmp/Quipper/Programs/Tools/ASCII.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-ascii/quipper-ascii-tmp/Quipper/Programs/Tools/ASCII.hs
@@ -0,0 +1,47 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/ASCII.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool is the identity function on circuits: it reads a
+-- circuit from standard input, and then outputs the same circuit to
+-- standard output. This program serves as an illustration for how to
+-- write the simplest kind of standalone circuit processing tool.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": the identity function on circuits: read a\n"
+            ++ "circuit from standard input, and then outputs the same circuit to\n"
+            ++ "standard output. This program serves as an illustration for how to\n"
+            ++ "write the simplest kind of standalone circuit processing tool.\n"
+
+-- | Main function: read from 'stdin', then write to 'stdout'. 
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic ASCII circuit ins
diff --git a/dist/build/quipper-binary/quipper-binary-tmp/Quipper/Programs/Tools/Binary.hs b/dist/build/quipper-binary/quipper-binary-tmp/Quipper/Programs/Tools/Binary.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-binary/quipper-binary-tmp/Quipper/Programs/Tools/Binary.hs
@@ -0,0 +1,44 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Binary.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool decomposes a circuit into binary gates.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": decompose a circuit into binary gates.\n"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic Binary circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-cliffordt/quipper-cliffordt-tmp/Quipper/Programs/Tools/CliffordT.hs b/dist/build/quipper-cliffordt/quipper-cliffordt-tmp/Quipper/Programs/Tools/CliffordT.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-cliffordt/quipper-cliffordt-tmp/Quipper/Programs/Tools/CliffordT.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/CliffordT.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool decomposes any circuit into the Clifford+/T/ base,
+-- using both exact and approximate synthesis.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,         -- ^ Precision in binary digits.
+  opt_keepphase :: KeepPhase, -- ^ Respect global phases?
+  opt_rseed :: Maybe StdGen   -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_keepphase = False,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['p'] ["keepphase"]    
+      (NoArg keepphase)   
+      "respect global phase",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      keepphase :: Options -> IO Options
+      keepphase o = return o { opt_keepphase = True }
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose any circuit into the Clifford+T base\n" 
+            ++ "using both exact and approximate synthesis.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+      keepphase = opt_keepphase options
+  
+  -- Set random seed.
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (CliffordT keepphase p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-depth/quipper-depth-tmp/Quipper/Programs/Tools/Depth.hs b/dist/build/quipper-depth/quipper-depth-tmp/Quipper/Programs/Tools/Depth.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-depth/quipper-depth-tmp/Quipper/Programs/Tools/Depth.hs
@@ -0,0 +1,285 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Depth.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and outputs its depth. 
+
+module Main where
+
+import Quipper
+import Quipper.Internal.Circuit
+import Quipper.Internal.Monad
+import Quipper.Internal.Transformer
+import Quipper.Utils.Auxiliary
+
+import Quipper.Libraries.QuipperASCIIParser
+
+import qualified Data.Map as Map
+import qualified Data.IntMap as IntMap
+
+import Data.Maybe
+import Control.Monad
+import Data.List
+import Control.Monad.State
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and output its depth.\n"
+
+-- | Main function: read from 'stdin' and calculate the depth. 
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+    
+  (ins,circuit) <- parse_from_stdin
+  let depth_circ = transform_generic_shape depth_transformer circuit ins
+  let ws = map wire_of_endpoint ins
+  let ws' = map endpoint_of_endpoint ins
+  let state = execState (depth_circ ws') (initial_depthstate ws)
+  let result = global_depth state
+  putStrLn ("Depth: " ++ show result)
+  putStrLn ("T-Depth: " ++ show (global_tdepth state))
+
+-- | Extract wires from an endpoint, keeping track of whether it was
+-- a classical or quantum endpoint.
+endpoint_of_endpoint :: B_Endpoint Qubit Bit -> B_Endpoint Wire Wire
+endpoint_of_endpoint (Endpoint_Qubit q) = Endpoint_Qubit (wire_of_qubit q)
+endpoint_of_endpoint (Endpoint_Bit b) = Endpoint_Bit (wire_of_bit b)
+
+-- | A data structure to hold information about the current depths 
+data DepthState = DS {
+   global_depth  :: !Integer,  
+   wire_depths   :: !(XIntMap Integer),
+   global_tdepth :: !Integer,
+   wire_tdepths  :: !(XIntMap Integer)
+  }
+
+-- | The initial state of the depth information depends on the wires
+-- that are inputs to a circuit.
+initial_depthstate :: [Wire] -> DepthState
+initial_depthstate ws = DS { global_depth = 0, wire_depths = foldr (\w -> xintmap_insert w 0) xintmap_empty ws, 
+                           global_tdepth = 0, wire_tdepths = foldr (\w -> xintmap_insert w 0) xintmap_empty ws }
+
+-- | We use a State Monad to carry our state
+type Depth a = State DepthState a
+
+-- | Given a list of wires, lookup the current depth
+-- of each wire, and return the maximum
+input_depth :: [Wire] -> Depth (Integer,Integer)
+input_depth ws = do
+  state <- get
+  let wd = wire_depths state
+  let ds = map (\w -> fromJust (xintmap_lookup w wd)) ws
+  let maxds = 
+        case ds of
+          [] -> 0
+          ds -> maximum ds
+  let wtd = wire_tdepths state
+  let tds = map (\w -> fromJust (xintmap_lookup w wtd)) ws
+  let maxtds = 
+        case tds of
+          [] -> 0
+          tds -> maximum tds
+  return (maxds, maxtds)
+
+-- | Given a current depth, and a list of wires, update
+-- the depth of each wire, to be one more than the current
+-- depth. Also, update the global depth, if necessary.
+update_depths :: (Integer,Integer) -> [Wire] -> Bool -> Depth ()
+update_depths (old_depth,old_tdepth) ws addt = do
+ let new_depth = old_depth + 1
+ state <- get
+ let gd = global_depth state
+ let gd' = if gd < new_depth then new_depth else gd
+ let wd = wire_depths state
+ let wd' = foldr (\w -> xintmap_insert w new_depth) wd ws
+ 
+ let new_tdepth = if addt then old_tdepth + 1 else old_tdepth
+ let gdt = global_tdepth state
+ let gdt' = if gdt < new_tdepth then new_tdepth else gdt
+ let wdt = wire_tdepths state
+ let wdt' = foldr (\w -> xintmap_insert w new_tdepth) wdt ws
+ put (state {global_depth = gd', wire_depths = wd', global_tdepth = gdt', wire_tdepths = wdt'})
+
+-- | A helper function to combine a list of wires, and
+-- a list of controls, into a single list of wires.
+wires_of :: [Wire] -> Ctrls Wire Wire -> [Wire]
+wires_of ws c = ws ++ (map wire_of_ctrl c)
+ where
+  wire_of_ctrl :: Signed (B_Endpoint Wire Wire) -> Wire
+  wire_of_ctrl (Signed (Endpoint_Qubit w) _) = w
+  wire_of_ctrl (Signed (Endpoint_Bit w) _) = w
+
+same_in_out :: Wire -> Ctrls Wire Wire -> Depth (Wire,Ctrls Wire Wire)
+same_in_out w c = do
+   let inputs = wires_of [w] c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs False
+   return (w,c)
+
+same_in_out2 :: Wire -> Wire -> Ctrls Wire Wire -> Depth (Wire,Wire,Ctrls Wire Wire)
+same_in_out2 w v c = do
+   let inputs = wires_of [w,v] c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs False
+   return (w,v,c)
+
+same_in_out_multi_t :: [Wire] -> Ctrls Wire Wire -> Depth ([Wire],Ctrls Wire Wire)
+same_in_out_multi_t ws c = do
+   let inputs = wires_of ws c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs True
+   return (ws,c)  
+
+same_in_out_multi :: [Wire] -> Ctrls Wire Wire -> Depth ([Wire],Ctrls Wire Wire)
+same_in_out_multi ws c = do
+   let inputs = wires_of ws c
+   depth <- input_depth inputs
+   let outputs = inputs
+   update_depths depth outputs False
+   return (ws,c)  
+
+init_wire :: [Wire] -> Depth Wire
+init_wire ws =   do
+   let inputs = ws
+   depth <- input_depth inputs
+   state <- get
+   let wires = wire_depths state
+   let b = xintmap_freshkey wires
+   let outputs = [b]
+   update_depths depth outputs False
+   return b
+
+term_wire :: [Wire] -> Wire -> Depth ()
+term_wire inputs w = do
+   depth <- input_depth inputs
+   let new_depth = fst(depth) + 1
+   state <- get
+   let gd = global_depth state
+   let gd' = if gd < new_depth then new_depth else gd
+   put (state {global_depth = gd'})
+   return ()
+
+depth_transformer :: Transformer (State DepthState) Wire Wire
+-- Translation of classical gates:
+depth_transformer (T_CNot ncf f) = f same_in_out
+depth_transformer (T_CInit val ncf f) = f $ init_wire []
+depth_transformer (T_CTerm b ncf f) = f $ term_wire []
+depth_transformer (T_CDiscard f) = f $ term_wire []
+depth_transformer (T_DTerm b f) = f $ term_wire []
+depth_transformer (T_CGate name ncf f) = f $
+  \ws -> do
+   v <- init_wire ws
+   return (v,ws) 
+depth_transformer g@(T_CGateInv name ncf f) = f $
+  \v ws -> do
+   term_wire ws v
+   return ws
+-- Translation of quantum gates:
+depth_transformer (T_QGate "trace" _ _ inv ncf f) = f $
+  \ws vs c -> return (ws, vs, c) -- don't count a trace gate
+depth_transformer (T_QGate "T" _ _ inv ncf f) = f $ 
+  \qs gcs c -> do
+   same_in_out_multi_t (qs++gcs) c
+   return (qs,gcs,c)
+depth_transformer (T_QGate name _ _ inv ncf f) = f $ 
+  \qs gcs c -> do
+   same_in_out_multi (qs++gcs) c 
+   return (qs,gcs,c)
+depth_transformer (T_QRot name _ _ inv theta ncf f) = f $ 
+  \qs gcs c -> do
+   same_in_out_multi (qs++gcs) c 
+   return (qs,gcs,c)
+depth_transformer (T_GPhase t ncf f) = f $
+  \w c -> do
+  same_in_out_multi [] c
+  return c
+depth_transformer (T_QInit val ncf f) = f $ init_wire []
+depth_transformer (T_QMeas f) = f $
+  \q -> do
+   same_in_out q []
+   return q
+depth_transformer (T_QDiscard f) = f $ term_wire []
+depth_transformer (T_QTerm b ncf f) = f $ term_wire []
+depth_transformer (T_Comment name inv f) = f $
+  \ws -> return () -- don't count a comment
+depth_transformer g@(T_CSwap ncf f) = f same_in_out2
+depth_transformer g@(T_QPrep ncf f) = f $
+  \w -> error ("depth_transformer: unimplemented gate: " ++ show g)
+depth_transformer g@(T_QUnprep ncf f) = f $
+  \w -> error ("depth_transformer: unimplemented gate: " ++ show g)
+depth_transformer g@(T_Subroutine n inv ncf scf ws_pat a1 vs_pat a2 rflg f) = f $
+ \ns ws c -> do
+  case Map.lookup n ns of
+   Just (TypedSubroutine sub_ocirc _ _ _) -> do
+    let RepeatFlag reps = rflg
+    let OCircuit (in_wires, sub_circ, out_wires) = if inv then reverse_ocircuit sub_ocirc else sub_ocirc
+    let in_bindings = bind_list in_wires ws bindings_empty
+    let sub_bcirc = (sub_circ,ns)
+    state_in <- get
+    out_bind <- transform_bcircuit_rec depth_transformer sub_bcirc in_bindings
+    state_out <- get
+    put (rep_change reps state_in state_out)
+    return (unbind_list out_bind out_wires, c) 
+   Nothing -> error $ "depth_transformer: subroutine " ++ show n ++ " not found (in " ++ showNames ns ++ ")"
+
+-- | The following function updates the state by multiplying the differences between
+-- the given /state_out/ and the given /state_in/ by the given number of repetitions.
+rep_change :: Integer -> DepthState -> DepthState -> DepthState
+rep_change reps state_in state_out = DS {
+ global_depth = new_global_depth,
+ wire_depths = new_wire_depths,
+ global_tdepth = new_global_tdepth,
+ wire_tdepths = new_wire_tdepths
+ }
+ where
+   in_global_depth = global_depth state_in
+   out_global_depth = global_depth state_out
+   new_global_depth = in_global_depth + (reps * (out_global_depth - in_global_depth))
+   in_wire_depths = wire_depths state_in
+   out_wire_depths = wire_depths state_out
+   out_wire_depths_list = IntMap.toList (xintmap_to_intmap (out_wire_depths))
+   new_depths = map (\(w,v_out) -> (w,
+    case (xintmap_lookup w in_wire_depths) of
+     Nothing -> v_out * reps
+     Just v_in ->
+      case v_in > v_out of
+       True -> reps * v_out 
+       False -> v_in + (reps * (v_out - v_in)))) out_wire_depths_list
+   new_wire_depths = xintmap_inserts new_depths out_wire_depths
+   in_global_tdepth = global_tdepth state_in
+   out_global_tdepth = global_tdepth state_out
+   new_global_tdepth = in_global_tdepth + (reps * (out_global_tdepth - in_global_tdepth))
+   in_wire_tdepths = wire_tdepths state_in
+   out_wire_tdepths = wire_tdepths state_out
+   out_wire_tdepths_list = IntMap.toList (xintmap_to_intmap (out_wire_tdepths))
+   new_tdepths = map (\(w,v_out) -> (w,
+    case (xintmap_lookup w in_wire_tdepths) of
+     Nothing -> v_out * reps
+     Just v_in ->
+      case v_in > v_out of
+       True -> reps * v_out 
+       False -> v_in + (reps * (v_out - v_in)))) out_wire_tdepths_list
+   new_wire_tdepths = xintmap_inserts new_tdepths out_wire_tdepths
diff --git a/dist/build/quipper-eps/quipper-eps-tmp/Quipper/Programs/Tools/EPS.hs b/dist/build/quipper-eps/quipper-eps-tmp/Quipper/Programs/Tools/EPS.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-eps/quipper-eps-tmp/Quipper/Programs/Tools/EPS.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/EPS.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and converts it to
+-- the graphical EPS format. The converted circuit is written to
+-- standard output.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and convert it to EPS.\n"
+
+-- | Main function: read from 'stdin' and write to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic EPS circuit ins
diff --git a/dist/build/quipper-exact/quipper-exact-tmp/Quipper/Programs/Tools/Exact.hs b/dist/build/quipper-exact/quipper-exact-tmp/Quipper/Programs/Tools/Exact.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-exact/quipper-exact-tmp/Quipper/Programs/Tools/Exact.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Exact.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool decomposes all gates that permit exact Clifford+/T/
+-- representations into the following concrete gate base for
+-- Clifford+/T/:
+--
+-- * controlled-not (with one positive or negative control),
+--
+-- * any single-qubit Clifford gates,
+--
+-- * /T/ and /T/[sup †].
+--
+-- Classical controls and classical gates are not subject to the gate
+-- base, and are left untouched.
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": decompose all gates that permit exact Clifford+T\n"
+            ++ "representations into the following concrete gate base for\n"
+            ++ "Clifford+T: CNOT (with one positive or negative control),\n"
+            ++ "any single-qubit Clifford gates, T, and T-inverse.\n"
+            ++ "Classical controls and classical gates are not subject to the gate\n"
+            ++ "base, and are left untouched.\n"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic Exact circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-gatecount/quipper-gatecount-tmp/Quipper/Programs/Tools/GateCount.hs b/dist/build/quipper-gatecount/quipper-gatecount-tmp/Quipper/Programs/Tools/GateCount.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-gatecount/quipper-gatecount-tmp/Quipper/Programs/Tools/GateCount.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/GateCount.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and calculates gate
+-- counts.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and calculate gate counts.\n"
+
+-- | Main function: read from 'stdin', and write gate counts to
+-- 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic GateCount circuit ins
diff --git a/dist/build/quipper-pdf/quipper-pdf-tmp/Quipper/Programs/Tools/PDF.hs b/dist/build/quipper-pdf/quipper-pdf-tmp/Quipper/Programs/Tools/PDF.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-pdf/quipper-pdf-tmp/Quipper/Programs/Tools/PDF.hs
@@ -0,0 +1,43 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/PDF.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and converts it to
+-- the graphical PDF format. The converted circuit is written to
+-- standard output.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and convert it to PDF.\n"
+
+-- | Main function: read from 'stdin' and write to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  print_generic PDF circuit ins
diff --git a/dist/build/quipper-preview/quipper-preview-tmp/Quipper/Programs/Tools/Preview.hs b/dist/build/quipper-preview/quipper-preview-tmp/Quipper/Programs/Tools/Preview.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-preview/quipper-preview-tmp/Quipper/Programs/Tools/Preview.hs
@@ -0,0 +1,52 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Preview.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input and displays it in
+-- the previewer. For the previewer to work, Acrobat Reader must be
+-- installed. 
+-- 
+-- Note that it is possible to interrupt the circuit generation with
+-- Ctrl-C; in this case, the circuit generated up to that point will
+-- be displayed. A second Ctrl-C will kill the program.
+-- 
+-- Interrupting with Ctrl-C may not work in the Windows operating system.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read a circuit from standard input and display it in the\n"
+            ++ "previewer. Circuit generation can be interrupted with Ctrl-C;\n"
+            ++ "in this case a partial circuit will be displayed. A second Ctrl-C\n"
+            ++ "will kill the program. Ctrl-C may not work in the Windows OS.\n"
+
+-- | Main function: read from 'stdin' and call the previewer. 
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin_with_handler
+  print_generic Preview circuit ins
diff --git a/dist/build/quipper-qclparser/quipper-qclparser-tmp/Quipper/Programs/QCLParser/Main.hs b/dist/build/quipper-qclparser/quipper-qclparser-tmp/Quipper/Programs/QCLParser/Main.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-qclparser/quipper-qclparser-tmp/Quipper/Programs/QCLParser/Main.hs
@@ -0,0 +1,504 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/QCLParser/Main.hs" #-}
+{-# LANGUAGE TypeSynonymInstances #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE UndecidableInstances #-}
+
+-- ----------------------------------------------------------------------
+-- | This program reads an execution trace produced by QCL, and turns
+-- it into a Quipper circuit.
+
+module Quipper.Programs.QCLParser.Main where
+
+import Quipper hiding (cnot, Format)
+
+import Data.IntMap (IntMap)
+import qualified Data.IntMap as IntMap
+import qualified Data.Traversable as Trav
+import Control.Monad.State
+import Prelude hiding (not)
+import qualified Prelude
+import System.Environment
+import System.Exit
+import System.IO
+import Data.Complex
+import Data.Maybe
+
+import Text.ParserCombinators.ReadP hiding (get)
+import Data.Char (isAlpha, isAlphaNum, isDigit)
+
+-- ----------------------------------------------------------------------
+-- * A monad for a QCL state
+
+-- | In QCL, qubits are identified by integers. We have to map these
+-- to Quipper's native qubits. A 'QCLState' holds such a map.
+-- Implicitly, it also holds the set of qubits currently defined.
+type QCLState = IntMap Qubit
+
+-- | The 'QCLCirc' monad is like the 'Circ' monad, except that it also
+-- keeps track of an additional 'QCLState'. The 'lift' function must
+-- be used to lift any command for the 'Circ' monad to the 'QCLCirc'
+-- monad.
+type QCLCirc a = StateT QCLState Circ a
+
+-- ----------------------------------------------------------------------
+-- * Auxiliary state functions
+
+-- | Look up the qubit corresponding to a QCL register, or allocate a
+-- new qubit if it doesn't already exist.
+provide :: Int -> QCLCirc Qubit
+provide r = do
+  s <- get
+  case IntMap.lookup r s of
+    Just q -> return q
+    Nothing -> do
+      q <- lift $ qinit False
+      let s' = IntMap.insert r q s
+      put s'
+      return q
+
+-- ----------------------------------------------------------------------
+-- * Implementation of the QCL primitives
+
+-- | Reset all qubits to state 0.
+qcl_reset :: QCLCirc ()
+qcl_reset = do
+  s <- get
+  lift $ Trav.mapM qdiscard s
+  let s' = IntMap.empty
+  put s'
+  return ()
+
+-- | Apply a controlled-not operation to the first argument.
+qcl_cnot :: Int -> [Int] -> QCLCirc ()
+qcl_cnot r ctrls = do
+  q <- provide r
+  cs <- Trav.mapM provide ctrls
+  lift $ qnot_at q `controlled` cs
+  return ()
+
+-- | Apply an uncontrolled not operation.
+qcl_not :: Int -> QCLCirc ()
+qcl_not r = qcl_cnot r []
+
+-- | @'qcl_fanout' ins outs ctrls@: Copy the qubit register /ins/ to
+-- the qubit register /outs/ by means of c-not operations, provided
+-- that /outs/ was previously 0. The whole operation is controlled by
+-- /ctrls/.
+qcl_fanout :: [Int] -> [Int] -> [Int] -> QCLCirc ()
+qcl_fanout ins outs ctrls = do
+  qins <- Trav.mapM provide ins
+  qouts <- Trav.mapM provide outs
+  qctrls <- Trav.mapM provide ctrls
+  lift $ with_controls qctrls $ do
+    let zips = zip qins qouts
+    Trav.mapM (\(x,y) -> qnot_at y `controlled` x) zips
+  return ()
+
+-- | Calculate the square distance between two vectors, which must be
+-- of the same length.
+sqdist :: [Complex Double] -> [Complex Double] -> Double
+sqdist v1 v2 = d2 where
+  w = zipWith (-) v1 v2
+  w2 = map (\x -> x * x) $ map magnitude w
+  d2 = sum w2
+      
+-- | If the matrix looks like a /W/-gate, return 'True'.
+matrix_w :: [Complex Double] -> Bool
+matrix_w amps | length amps == 16 =
+  let v = sqrt 0.5
+      m = [ 1, 0, 0, 0,
+            0, v, v, 0,
+            0, v, -v, 0,
+            0, 0, 0, 1]
+  in
+   if sqdist amps m <= 0.001 then
+     True
+   else
+     False
+matrix_w _ = False
+
+-- | If the matrix looks like a controlled /e/^/tiZ/-gate, return the
+-- angle /t/.
+matrix_exp :: [Complex Double] -> Maybe Double
+matrix_exp amps | length amps == 16 =
+  let t = phase ((amps !! 10) + conjugate (amps !! 15))
+      u = cis t
+      m = [ 1, 0, 0, 0,
+            0, 1, 0, 0, 
+            0, 0, u, 0,
+            0, 0, 0, conjugate u]
+  in
+   if sqdist amps m <= 0.001 then
+     Just t
+   else
+     Nothing
+matrix_exp _ = Nothing
+
+-- | @'qcl_matrix' n amps regs@: Apply the /n/-by-/n/ unitary gate
+-- whose matrix is given in /amps/, to the qubit list /regs/.  This
+-- function must guess, based on the complex entries of the matrix,
+-- what the name of the gate should be. This guessing is crude at the
+-- moment, and must be extended to include additional gates as
+-- required by each algorithm. If the first argument is 'True', invert
+-- the matrix.
+qcl_matrix :: Bool -> Int -> [Complex Double] -> [Int] -> QCLCirc ()
+qcl_matrix inv n amps [x,y] | matrix_w amps = do
+  [q,r] <- Trav.mapM provide [x,y]
+  lift $ gate_W_at q r  -- this gate is self-inverse
+qcl_matrix inv n amps [x,y] | isJust t = do
+  [q,r] <- Trav.mapM provide [x,y]
+  lift $ expZt_at (sign * fromJust t) r `controlled` q
+    where
+      t = matrix_exp amps
+      sign = if inv then -1 else 1
+qcl_matrix inv n amps regs = do
+  qregs <- Trav.mapM provide regs
+  lift $ named_gate_at (if inv then "Gate*" else "Gate") qregs
+        
+-- | The inverse of 'qcl_cnot'.
+qcl_cnot_inv = qcl_cnot
+
+-- | The inverse of 'qcl_not'.
+qcl_not_inv = qcl_not
+
+-- | The inverse of 'qcl_fanout'.
+qcl_fanout_inv = qcl_fanout
+
+-- | A sample circuit to illustrate how to use the primitives.
+testcircuit1 :: QCLCirc ()
+testcircuit1 = do
+  qcl_reset
+  qcl_not 5
+  qcl_not 0
+  qcl_cnot 31 [4]
+  qcl_cnot 31 [4,30]
+  qcl_cnot 29 [31]
+  qcl_cnot_inv 31 [4,30]
+  qcl_cnot_inv 31 [4]
+
+-- ----------------------------------------------------------------------
+-- * Unpacking QCLCirc
+
+-- | Run function for the 'QCLCirc' monad: execute the actions and
+-- produce a circuit.
+run :: QCLCirc a -> Circ a
+run f = do
+  (x,_) <- runStateT f IntMap.empty
+  return x
+
+-- ----------------------------------------------------------------------
+-- * An abstract syntax for QCL output
+
+-- | A data type to hold a QCL gate.
+data QCLGate = 
+  Comment
+  | Reset
+  | Not Int
+  | XNot Int
+  | CNot Int [Int]
+  | XCNot Int [Int]
+  | Fanout [Int] [Int] [Int]
+  | XFanout [Int] [Int] [Int]
+  | Matrix Int [Complex Double] [Int]
+  | XMatrix Int [Complex Double] [Int]
+  deriving (Show)
+
+-- | Take a gate from the abstract syntax and execute it in the
+-- 'QCLCirc' monad.
+do_qcl_gate :: QCLGate -> QCLCirc ()
+do_qcl_gate Comment = return ()
+do_qcl_gate Reset = qcl_reset
+do_qcl_gate (Not x) = qcl_not x
+do_qcl_gate (XNot x ) = qcl_not_inv x            
+do_qcl_gate (CNot x ctrl) = qcl_cnot x ctrl
+do_qcl_gate (XCNot x ctrl) = qcl_cnot_inv x ctrl         
+do_qcl_gate (Fanout a b c) = qcl_fanout a b c            
+do_qcl_gate (XFanout a b c) = qcl_fanout_inv a b c            
+do_qcl_gate (Matrix n amps regs) = qcl_matrix False n amps regs
+do_qcl_gate (XMatrix n amps regs) = qcl_matrix True n amps regs
+
+-- ----------------------------------------------------------------------
+-- * Parsing
+
+-- $ The output of QCL consists of lines of the following forms. Lines
+-- not starting with \"\@\" are comments or other non-circuit output.
+-- 
+-- > @ RESET
+-- > @ NOT(qureg q=<5>)  
+-- > @ CNOT(qureg q=<31>,quconst c=<4,30>)
+-- > @ !CNOT(qureg q=<31>,quconst c=<4,30>)
+-- > @ Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+-- > @ !Fanout(quconst a=<47,48,49,50,51,52>,quvoid b=<40,41,42,43,44,45>;cond=<>)
+-- > @ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+-- > @ !Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=0.707107,complex u12=0.707107,complex u13=0,complex u20=0,complex u21=0.707107,complex u22=-0.707107,complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=1,qureg q=<0,6>)  
+-- 
+-- We use Koen Claessen's parser combinators (see
+-- "Text.ParserCombinators.ReadP") to implement the parser.
+
+-- | Parse a QCL identifier, which we take to be a non-empty string of
+-- alphanumeric characters, starting with a letter
+identifier :: ReadP String
+identifier = do
+  satisfy isAlpha
+  munch isAlphaNum
+  
+-- | Parse a signless integer. We avoid the usual trick ('readS_to_P'
+-- 'reads'), because this introduces backtracking errors.
+int :: ReadP Int
+int = do
+  s <- munch1 isDigit
+  return $ (read s :: Int)
+
+-- | Parse a floating point number. We avoid the usual trick
+-- ('readS_to_P' 'reads'), because this introduces backtracking
+-- errors.
+double :: ReadP Double
+double = do
+  (s, _) <- gather parse_double
+  return $ (read s :: Double)
+  where
+    parse_double = do
+      option '+' (char '+' +++ char '-')
+      munch isDigit
+      optional (char '.' >> munch1 isDigit)
+      
+-- | Parse a comma separated list.
+commalist :: ReadP a -> ReadP [a]
+commalist elt = sepBy elt (skipSpaces >> char ',' >> skipSpaces)
+
+-- | Parse a QCL quantum register of the form 
+-- 
+-- > q=<31,32>
+-- > c=<4,31>
+-- > b=<40,41,42,43,44,45>.
+qureg :: ReadP (String, [Int])
+qureg = do
+  id <- identifier
+  skipSpaces
+  char '='
+  skipSpaces
+  rs <- between (char '<' >> skipSpaces) (skipSpaces >> char '>') $ do
+    commalist int
+  return (id, rs)
+
+-- | Consume an optional \"!\". Return 'True' if consumed, and 'False'
+-- otherwise.
+inversechar :: ReadP Bool  
+inversechar = do
+  c <- option '+' (char '!')
+  return (c == '!')
+
+-- | Parse a complex number declaration of the format
+-- 
+-- > complex u00=1
+-- 
+-- or
+-- 
+-- > complex u22=(0.995004,-0.0998334).
+complex :: ReadP (Complex Double)
+complex = do
+  string "complex"
+  skipSpaces
+  identifier
+  skipSpaces
+  char '='
+  skipSpaces
+  choice [
+    do 
+      x <- double
+      return (x :+ 0)
+    ,
+    do
+      char '('
+      skipSpaces
+      x <- double  
+      skipSpaces
+      char ','
+      skipSpaces
+      y <- double
+      skipSpaces
+      char ')'
+      return (x :+ y)
+    ]
+
+-- | Parse a single line of QCL output into a 'QCLGate'.
+qcl_line :: ReadP QCLGate
+qcl_line = choice [
+  do -- @ RESET
+    char '@'
+    skipSpaces
+    string "RESET"
+    return Reset
+  ,
+  do -- @ NOT(qureg q=<5>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "NOT"
+    skipSpaces
+    char '('
+    skipSpaces
+    string "qureg"
+    skipSpaces
+    (_,[r]) <- qureg
+    skipSpaces
+    char ')'
+    return (if inv then XNot r else Not r)
+  ,
+  do -- @ CNOT(qureg q=<31>,quconst c=<4,30>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "CNOT"
+    skipSpaces
+    char '('
+    skipSpaces    
+    string "qureg"
+    skipSpaces
+    (_,[r]) <- qureg
+    skipSpaces
+    char ','
+    skipSpaces
+    string "quconst"
+    skipSpaces
+    (_,ctrls) <- qureg
+    skipSpaces
+    char ')'
+    return (if inv then XCNot r ctrls else CNot r ctrls)
+  ,
+  do -- @ Fanout(quconst a=<47,48>,quvoid b=<40,41>;cond=<>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "Fanout"
+    skipSpaces
+    char '('
+    skipSpaces    
+    string "quconst"
+    skipSpaces
+    (_,ins) <- qureg
+    skipSpaces
+    char ','
+    skipSpaces
+    string "quvoid"
+    skipSpaces
+    (_,outs) <- qureg
+    skipSpaces
+    char ';'
+    skipSpaces
+    (_,ctrls) <- qureg
+    skipSpaces
+    char ')'
+    return (if inv then XFanout ins outs ctrls else Fanout ins outs ctrls)
+  ,
+  do -- @ Matrix4x4(complex u00=1,complex u01=0,complex u02=0,complex u03=0,complex u10=0,complex u11=1,complex u12=0,complex u13=0,complex u20=0,complex u21=0,complex u22=(0.995004,-0.0998334),complex u23=0,complex u30=0,complex u31=0,complex u32=0,complex u33=(0.995004,0.0998334),qureg q=<12,13>)
+    char '@'
+    skipSpaces
+    inv <- inversechar
+    skipSpaces
+    string "Matrix"
+    skipSpaces
+    dim1 <- int
+    skipSpaces
+    char 'x'
+    skipSpaces
+    dim2 <- int
+    skipSpaces
+    char '('
+    skipSpaces
+    amps <- commalist complex
+    skipSpaces
+    char ','
+    skipSpaces
+    string "qureg"
+    skipSpaces
+    (_,r) <- qureg
+    skipSpaces
+    char ')'
+    when (dim1 /= dim2) $ do
+      error "Non-square matrix"
+    return (if inv then XMatrix dim1 amps r else Matrix dim1 amps r)
+  ,    
+  do -- any line not starting with '@' is a comment
+    satisfy ((/=) '@')
+    munch (\x -> True)
+    return Comment
+  ,
+  do -- empty lines are comments
+    eof
+    return Comment
+  ]
+
+-- | String version of 'qcl_line': parse a string and turn it into a
+-- 'QCLGate'.
+parse_qcl_line :: String -> QCLGate
+parse_qcl_line s =
+  case readP_to_S readline s of
+    (h, _):_ -> h
+    _ -> error ("Unrecognized line: " ++ s)
+  where
+    readline = do
+      skipSpaces
+      l <- qcl_line
+      skipSpaces
+      eof
+      return l      
+      
+-- | Monad version of 'parse_qcl_line': parse a string and execute the
+-- resulting gate directly in the 'QCLCirc' monad.
+run_qcl_line :: String -> QCLCirc ()
+run_qcl_line = do_qcl_gate . parse_qcl_line
+
+-- | Parse a stream consisting of many lines of QCL output and execute
+-- the parsed gates in the 'QCLCirc' monad.
+run_qcl_lines :: String -> QCLCirc ()
+run_qcl_lines s =
+  mapM_ run_qcl_line (lines s)
+
+-- | A sample circuit to illustrate the parser.
+testcircuit2 :: QCLCirc ()
+testcircuit2 = do
+  run_qcl_line "@ RESET"
+  run_qcl_line "@ NOT(qureg q=<5>)"
+  run_qcl_line "@ NOT(qureg q=<0>)"
+  run_qcl_line "@ CNOT(qureg q=<31>,quconst c=<4>)"
+
+-- ----------------------------------------------------------------------
+-- * Main function
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": read an execution trace produced by Ömer's QCL language,\n"
+            ++ "and turn it into a Quipper circuit.\n"
+
+-- | Main function: read a circuit in QCL format from 'stdin', and
+-- preview the translated Quipper circuit.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  lines <- hGetContents stdin
+  print_simple ASCII (run (run_qcl_lines lines))
+
diff --git a/dist/build/quipper-qclparser/quipper-qclparser-tmp/programs/quipper-qclparser.hs b/dist/build/quipper-qclparser/quipper-qclparser-tmp/programs/quipper-qclparser.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-qclparser/quipper-qclparser-tmp/programs/quipper-qclparser.hs
@@ -0,0 +1,9 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "programs/quipper-qclparser.hs" #-}
+-- This is a stub main file. It only purpose is to re-export the
+-- "real" main function, which is Quipper.Programs.QCLParser.Main.
+
+import qualified Quipper.Programs.QCLParser.Main
+main = Quipper.Programs.QCLParser.Main.main
diff --git a/dist/build/quipper-simulate/quipper-simulate-tmp/Quipper/Programs/Tools/Simulate.hs b/dist/build/quipper-simulate/quipper-simulate-tmp/Quipper/Programs/Tools/Simulate.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-simulate/quipper-simulate-tmp/Quipper/Programs/Tools/Simulate.hs
@@ -0,0 +1,199 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Simulate.hs" #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE FlexibleContexts #-}
+
+-- ----------------------------------------------------------------------
+-- | This tool reads a circuit from standard input, and then simulates
+-- it by applying it to every possible basis vector. This is only
+-- intended for debugging (of very small circuits), and is by no means
+-- an industrial-strength simulator. Any measurements in the circuit
+-- will be simulated probabilistically.
+
+module Main where
+
+import Quipper
+import Quipper.Internal
+import Quipper.Libraries.Simulation
+import Quipper.Libraries.QuipperASCIIParser
+
+import Quipper.Utils.Auxiliary (string_of_list)
+import Quipper.Utils.CommandLine
+import Quipper.Utils.Sampling
+import Quantum.Synthesis.Ring
+import Quantum.Synthesis.SymReal
+
+import Data.Map (Map)
+import qualified Data.Map as Map
+
+import Control.Monad
+import Data.Number.FixedPrec
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.Random
+
+-- ----------------------------------------------------------------------
+-- * Command line options
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  prec :: Integer,       -- ^ Precision in decimal digits.
+  addprec :: Int         -- ^ Additional precision to use internally.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { prec = 30,
+    addprec = 10
+  }
+
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg opt_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['a'] ["addprec"]  
+      (ReqArg opt_additional "<num>") 
+      "additional digits to use internally (default: 10)"
+  ]
+    where
+      opt_digits :: String -> Options -> IO Options
+      opt_digits str o = 
+        case parse_int str of
+          Just d -> return o { prec = d }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      opt_additional :: String -> Options -> IO Options
+      opt_additional str o = 
+        case parse_int str of
+          Just d -> return o { addprec = d }
+          _ -> optfail ("Invalid value for option -a -- " ++ str ++ "\n")
+          
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": reads a circuit from standard input, and then simulates\n"
+            ++ "it by applying it to every possible basis vector. This is only\n"
+            ++ "intended for debugging (of very small circuits), and is by no means\n"
+            ++ "an industrial-strength simulator. Any measurements in the circuit\n"
+            ++ "will be simulated probabilistically.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- ----------------------------------------------------------------------
+-- * Payload functions
+
+-- | Convert a boolean vector to ket notation.
+show_ket :: [Bool] -> String
+show_ket = string_of_list "|" "" ">" "|>" show_bit where
+  show_bit False = "0"
+  show_bit True = "1"
+
+-- | A version of 'sim_amps' that works on 'FixedPrec' numbers and
+-- uses /n/ digits of additional precision internally during the
+-- simulation.
+sim_amps_addprec :: forall g p qa qb.(RandomGen g, Precision p, QData qa, QData qb, Ord (BType qb)) => g -> Int -> (qa -> Circ qb) -> Map (BType qa) (Cplx (FixedPrec p)) -> Map (BType qb) (Cplx (FixedPrec p))
+sim_amps_addprec g addprec circ state =
+  with_added_digits addprec f (dummy state) :: Map (BType qb) (Cplx (FixedPrec p)) where
+    dummy :: Map a (Cplx f) -> f
+    dummy = undefined
+    f :: (Precision e) => FixedPrec e -> Map (BType qb) (Cplx (FixedPrec p))
+    f arg = Map.map cast_cplx out_state where
+      in_state = Map.map cast_cplx state
+      out_state = sim_amps g circ in_state
+      _ = dummy in_state `attypeof` arg
+      attypeof :: a -> a -> a
+      attypeof x y = x
+      cast_cplx (Cplx a b) = Cplx (cast a) (cast b)
+
+-- | Input a source of randomness, an added precision, a real number,
+-- a circuit, and a basis vector. Simulate the circuit on the given
+-- basis vector, and print out the result of the simulation in the
+-- format
+-- 
+-- > |011> ->
+-- >          |011> 0.7071067811
+-- >          |010> -0.7071067811
+-- 
+-- The real number argument is a dummy argument; it serves to
+-- determine the real number type (e.g., 'Double', 'FixedPrec' /e/) to
+-- be used for the simulation. In this way, it is possible to simulate
+-- up to arbitrary precision.
+print_simulation_internal :: (RandomGen g, Precision e) => g -> Int -> FixedPrec e -> ([Qubit] -> Circ [Qubit]) -> [Bool] -> IO ()
+print_simulation_internal g addprec r circ l = do
+  putStrLn $ show_ket l ++ " ->" 
+  foreach amps $ \(ket, amp) -> do
+    when (amp /= 0) $ do
+      putStrLn $ [' ' | x <- l] ++ "      " ++ show_ket ket ++ " " ++ show amp
+  where
+    state = Map.fromList [(l, Cplx (1 `attypeof` r) 0)]
+    amps = Map.toList $ sim_amps_addprec g addprec circ state
+    
+    attypeof :: a -> a -> a
+    attypeof x y = x
+
+-- | Like 'print_simulation_internal', but instead of a dummy real number
+-- argument, specify a number of decimal digits for the simulation.
+print_simulation :: (RandomGen g) => g -> Integer -> Int -> ([Qubit] -> Circ [Qubit]) -> [Bool] -> IO ()
+print_simulation g d addprec = dynamic_fixedprec d (print_simulation_internal g addprec) (undefined :: Double)
+
+-- | Input a source of randomness, a precision (in decimal digits), a
+-- quantum circuit and a shape argument. Simulate the circuit for
+-- every possible basis vector of the given shape, and print out the
+-- result of the simulations in the format
+-- 
+-- > |011> ->
+-- >          |011> 0.7071067811
+-- >          |010> -0.7071067811
+simulate_all :: (RandomGen g) => g -> Integer -> Int -> ([Qubit] -> Circ [Qubit]) -> [a] -> IO ()
+simulate_all g d addprec circ ins = do
+  let ls = sample_all0 [ True | x <- ins ]
+  foreach ls $ \l -> do
+    print_simulation g d addprec circ l
+
+-- ----------------------------------------------------------------------
+-- * The main function
+
+-- | Main function: read from 'stdin', then simulate.
+main :: IO ()
+main = do
+  -- Process command line options
+  argv <- getArgs
+  options <- dopts argv
+  let d = prec options
+  let a = addprec options
+  
+  -- Read circuit
+  (ins, circuit) <- parse_from_stdin
+  let circ :: [Qubit] -> Circ [Qubit]
+      circ qs = do
+        let es = [ Endpoint_Qubit q | q <- qs ]
+        es <- circuit es
+        let qs = [ q | Endpoint_Qubit q <- es ]
+        return qs
+  
+  -- Simulate circuit
+  g <- newStdGen
+  simulate_all g d a circ ins
diff --git a/dist/build/quipper-standard/quipper-standard-tmp/Quipper/Programs/Tools/Standard.hs b/dist/build/quipper-standard/quipper-standard-tmp/Quipper/Programs/Tools/Standard.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-standard/quipper-standard-tmp/Quipper/Programs/Tools/Standard.hs
@@ -0,0 +1,113 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Standard.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool decomposes any circuit into the gate set {/X/, /Y/,
+-- /Z/, /H/, /S/, /S/[sup †], /T/, /T/[sup †], /CNOT/}, using both
+-- exact and approximate synthesis.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,        -- ^ Precision in binary digits.
+  opt_rseed :: Maybe StdGen  -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose any circuit into the gate set {X, Y, Z, H,\n"
+            ++ "S, S+, T, T+, CNOT}, using both exact and approximate synthesis.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+  
+  -- Set random seed.                                                             
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (Standard p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-strict/quipper-strict-tmp/Quipper/Programs/Tools/Strict.hs b/dist/build/quipper-strict/quipper-strict-tmp/Quipper/Programs/Tools/Strict.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-strict/quipper-strict-tmp/Quipper/Programs/Tools/Strict.hs
@@ -0,0 +1,112 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Strict.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool decomposes any circuit into the gate base {/H/, /S/,
+-- /T/, /CNot/}, using both exact and approximate synthesis.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import Quipper.Libraries.Synthesis
+
+import Quipper.Utils.CommandLine
+import Quipper.Utils.RandomSource
+
+import Control.Monad
+import System.Console.GetOpt
+import System.Environment
+import System.Exit
+import System.IO
+import System.Random
+
+
+-- | A data type to hold the command line options.
+data Options = Options {
+  opt_prec :: Double,        -- ^ Precision in binary digits.
+  opt_rseed :: Maybe StdGen  -- ^ An optional random seed.
+} deriving Show
+
+-- | The default options.
+defaultOptions :: Options
+defaultOptions = Options
+  { opt_prec = 30 * digits,
+    opt_rseed = Nothing
+  }
+  
+-- | The list of command line options, in the format required by 'getOpt'.
+options =
+  [ Option ['h'] ["help"]    
+      (NoArg help)                
+      "print usage info and exit",
+    Option ['d'] ["digits"]  
+      (ReqArg get_digits "<num>") 
+      "precision in decimal digits (default: 30)",
+    Option ['b'] ["bits"]    
+      (ReqArg get_bits "<num>")   
+      "precision in binary digits",
+    Option ['r'] ["rseed"]    
+      (ReqArg get_rseed "<s>")   
+      "set optional random seed (default: random)"
+  ]
+    where
+      get_digits :: String -> Options -> IO Options
+      get_digits str o = 
+        case parse_double str of
+          Just d -> return o { opt_prec = d * digits }
+          _ -> optfail ("Invalid value for option -d -- " ++ str ++ "\n")
+          
+      get_bits :: String -> Options -> IO Options
+      get_bits str o = 
+        case parse_double str of
+          Just b -> return o { opt_prec = b * bits }
+          _ -> optfail ("Invalid value for option -b -- " ++ str ++ "\n")
+
+      get_rseed :: String -> Options -> IO Options      
+      get_rseed string o =
+        case reads string of
+          [(g, "")] -> return o { opt_rseed = Just g }
+          _ -> optfail ("Invalid random seed -- " ++ string ++ "\n")
+
+      help :: Options -> IO Options
+      help o = do
+        usage
+        exitSuccess
+
+-- | Process /argv/-style command line options into an 'Options' structure.
+dopts :: [String] -> IO Options
+dopts argv =
+  case getOpt Permute options argv of
+    (o, [], []) -> (foldM (flip id) defaultOptions o)
+    (_, _, []) -> optfail "Too many non-option arguments\n"
+    (_, _, errs) -> optfail (concat errs)
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (usageInfo (header name) options)  
+    where header name =
+            name ++ ": decompose any circuit into the gate base {H, S, T, CNOT},\n"
+            ++ "using both exact and approximate synthesis.\n\n"
+            ++ "Usage: " ++ name ++ " [option...]"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  options <- dopts argv
+  let p = opt_prec options
+  
+  -- Set random seed.                                                             
+  g <- case opt_rseed options of
+    Nothing -> newStdGen
+    Just g -> return g
+  
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic (Strict p (RandomSource g)) circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-trimcontrols/quipper-trimcontrols-tmp/Quipper/Programs/Tools/TrimControls.hs b/dist/build/quipper-trimcontrols/quipper-trimcontrols-tmp/Quipper/Programs/Tools/TrimControls.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-trimcontrols/quipper-trimcontrols-tmp/Quipper/Programs/Tools/TrimControls.hs
@@ -0,0 +1,54 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/TrimControls.hs" #-}
+-- | This tool trims excess controls from gates. Specifically, it
+-- decomposes a circuit so that:
+--
+-- * not-gates, Pauli /X/-, /Y/-, and /Z/-gates, and /iX/-gates have
+-- at most two controls;
+--
+-- * phase gates of the form Diag(1, φ) have no controls; and
+--
+-- * all other gates have at most one control.
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Decompose
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": trims excess controls from gates. Specifically,\n"
+            ++ "decompose a circuit so that not-gates, Pauli gates, and\n"
+            ++ "iX-gates have at most two controls, phase gates of the form\n"
+            ++ "Diag(1, phi) have no controls; and other gates have at most one\n"
+            ++ "control.\n"
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin
+  let decomposed_circuit = decompose_generic TrimControls circuit
+  print_generic ASCII decomposed_circuit ins
diff --git a/dist/build/quipper-unbox/quipper-unbox-tmp/Quipper/Programs/Tools/Unbox.hs b/dist/build/quipper-unbox/quipper-unbox-tmp/Quipper/Programs/Tools/Unbox.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/quipper-unbox/quipper-unbox-tmp/Quipper/Programs/Tools/Unbox.hs
@@ -0,0 +1,60 @@
+{-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LINE 1 "Quipper/Programs/Tools/Unbox.hs" #-}
+-- ----------------------------------------------------------------------
+-- | This tool unwinds a circuit by inlining all top-level boxed
+-- subroutines.  It can sometimes be used to pre-process circuits for
+-- use by other tools that may not yet work correctly with boxed
+-- subroutines. Note, however, that this can substantially increase
+-- the size of the circuit representation.
+-- 
+-- Note that only top-level boxed subroutines are inlined; the tool
+-- may have to be applied several times to remove all levels of boxes.
+-- 
+-- This is only an illustration for how to write such tools; another
+-- tool could be written that does \"deep\" unboxing.
+
+module Main where
+
+import Quipper
+import Quipper.Libraries.QuipperASCIIParser
+import Quipper.Libraries.Unboxing
+import System.Environment
+import System.Exit
+import System.IO
+
+-- | Print a usage message to 'stdout'.
+usage :: IO ()
+usage = do
+  name <- getProgName
+  putStr (header name)
+    where header name =
+            name ++ ": unwind a circuit by inlining all top-level boxed\n"
+            ++ "subroutines. Only top-level boxed subroutines are inlined;\n"
+            ++ "the tool may have to be applied several times to remove all\n"
+            ++ "levels of boxes. This is only an illustration for how to write\n"
+            ++ "such tools; another tool could be written that does \"deep\"\n"
+            ++ "unboxing.\n"
+
+
+-- | Main function: read from 'stdin', do the decomposition, and write
+-- to 'stdout'.
+main :: IO ()
+main = do
+  argv <- getArgs
+  case argv of
+    [] -> return ()
+    "-h" : _ -> do
+      usage
+      exitSuccess
+    "--help" : _ -> do
+      usage
+      exitSuccess
+    o : _ -> do
+      hPutStrLn stderr ("Bad argument or option: '" ++ o ++ "'. Try --help for more info.")
+      exitFailure
+
+  (ins,circuit) <- parse_from_stdin  
+  let unboxed_circuit = unbox circuit
+  print_generic ASCII unboxed_circuit ins
diff --git a/images/CosetState.png b/images/CosetState.png
new file mode 100644
Binary files /dev/null and b/images/CosetState.png differ
diff --git a/images/E.png b/images/E.png
new file mode 100644
Binary files /dev/null and b/images/E.png differ
diff --git a/images/ERot_phase.png b/images/ERot_phase.png
new file mode 100644
Binary files /dev/null and b/images/ERot_phase.png differ
diff --git a/images/ERot_zx.png b/images/ERot_zx.png
new file mode 100644
Binary files /dev/null and b/images/ERot_zx.png differ
diff --git a/images/G.png b/images/G.png
new file mode 100644
Binary files /dev/null and b/images/G.png differ
diff --git a/images/GateR.png b/images/GateR.png
new file mode 100644
Binary files /dev/null and b/images/GateR.png differ
diff --git a/images/Rz.png b/images/Rz.png
new file mode 100644
Binary files /dev/null and b/images/Rz.png differ
diff --git a/images/T.png b/images/T.png
new file mode 100644
Binary files /dev/null and b/images/T.png differ
diff --git a/images/V.png b/images/V.png
new file mode 100644
Binary files /dev/null and b/images/V.png differ
diff --git a/images/W.png b/images/W.png
new file mode 100644
Binary files /dev/null and b/images/W.png differ
diff --git a/images/Y.png b/images/Y.png
new file mode 100644
Binary files /dev/null and b/images/Y.png differ
diff --git a/images/adder-optimized.png b/images/adder-optimized.png
new file mode 100644
Binary files /dev/null and b/images/adder-optimized.png differ
diff --git a/images/adder-unoptimized.png b/images/adder-unoptimized.png
new file mode 100644
Binary files /dev/null and b/images/adder-unoptimized.png differ
diff --git a/images/b0-template.png b/images/b0-template.png
new file mode 100644
Binary files /dev/null and b/images/b0-template.png differ
diff --git a/images/b1-template.png b/images/b1-template.png
new file mode 100644
Binary files /dev/null and b/images/b1-template.png differ
diff --git a/images/b2-orthodox.png b/images/b2-orthodox.png
new file mode 100644
Binary files /dev/null and b/images/b2-orthodox.png differ
diff --git a/images/b2-template.png b/images/b2-template.png
new file mode 100644
Binary files /dev/null and b/images/b2-template.png differ
diff --git a/images/b3-template.png b/images/b3-template.png
new file mode 100644
Binary files /dev/null and b/images/b3-template.png differ
diff --git a/images/b4-template.png b/images/b4-template.png
new file mode 100644
Binary files /dev/null and b/images/b4-template.png differ
diff --git a/images/cH_AMMR.png b/images/cH_AMMR.png
new file mode 100644
Binary files /dev/null and b/images/cH_AMMR.png differ
diff --git a/images/ccZ_AMMR.png b/images/ccZ_AMMR.png
new file mode 100644
Binary files /dev/null and b/images/ccZ_AMMR.png differ
diff --git a/images/ccZ_S.png b/images/ccZ_S.png
new file mode 100644
Binary files /dev/null and b/images/ccZ_S.png differ
diff --git a/images/cc_iX.png b/images/cc_iX.png
new file mode 100644
Binary files /dev/null and b/images/cc_iX.png differ
diff --git a/images/cc_iX_S.png b/images/cc_iX_S.png
new file mode 100644
Binary files /dev/null and b/images/cc_iX_S.png differ
diff --git a/images/cc_iX_simple.png b/images/cc_iX_simple.png
new file mode 100644
Binary files /dev/null and b/images/cc_iX_simple.png differ
diff --git a/images/contfrac.png b/images/contfrac.png
new file mode 100644
Binary files /dev/null and b/images/contfrac.png differ
diff --git a/images/controlled-phase-decomp.png b/images/controlled-phase-decomp.png
new file mode 100644
Binary files /dev/null and b/images/controlled-phase-decomp.png differ
diff --git a/images/controlled-zrot.png b/images/controlled-zrot.png
new file mode 100644
Binary files /dev/null and b/images/controlled-zrot.png differ
diff --git a/images/controlled_E.png b/images/controlled_E.png
new file mode 100644
Binary files /dev/null and b/images/controlled_E.png differ
diff --git a/images/controlled_S.png b/images/controlled_S.png
new file mode 100644
Binary files /dev/null and b/images/controlled_S.png differ
diff --git a/images/controlled_T.png b/images/controlled_T.png
new file mode 100644
Binary files /dev/null and b/images/controlled_T.png differ
diff --git a/images/controlled_V.png b/images/controlled_V.png
new file mode 100644
Binary files /dev/null and b/images/controlled_V.png differ
diff --git a/images/controlled_W.png b/images/controlled_W.png
new file mode 100644
Binary files /dev/null and b/images/controlled_W.png differ
diff --git a/images/controlled_YY.png b/images/controlled_YY.png
new file mode 100644
Binary files /dev/null and b/images/controlled_YY.png differ
diff --git a/images/controlled_iX.png b/images/controlled_iX.png
new file mode 100644
Binary files /dev/null and b/images/controlled_iX.png differ
diff --git a/images/controlled_phase.png b/images/controlled_phase.png
new file mode 100644
Binary files /dev/null and b/images/controlled_phase.png differ
diff --git a/images/coord.png b/images/coord.png
new file mode 100644
Binary files /dev/null and b/images/coord.png differ
diff --git a/images/dashed-cnot-bwd.png b/images/dashed-cnot-bwd.png
new file mode 100644
Binary files /dev/null and b/images/dashed-cnot-bwd.png differ
diff --git a/images/dashed-cnot-fwd.png b/images/dashed-cnot-fwd.png
new file mode 100644
Binary files /dev/null and b/images/dashed-cnot-fwd.png differ
diff --git a/images/decompose2Controls.png b/images/decompose2Controls.png
new file mode 100644
Binary files /dev/null and b/images/decompose2Controls.png differ
diff --git a/images/decomposeControls.png b/images/decomposeControls.png
new file mode 100644
Binary files /dev/null and b/images/decomposeControls.png differ
diff --git a/images/def_f.png b/images/def_f.png
new file mode 100644
Binary files /dev/null and b/images/def_f.png differ
diff --git a/images/def_g.png b/images/def_g.png
new file mode 100644
Binary files /dev/null and b/images/def_g.png differ
diff --git a/images/def_g1.png b/images/def_g1.png
new file mode 100644
Binary files /dev/null and b/images/def_g1.png differ
diff --git a/images/def_h.png b/images/def_h.png
new file mode 100644
Binary files /dev/null and b/images/def_h.png differ
diff --git a/images/expDA.png b/images/expDA.png
new file mode 100644
Binary files /dev/null and b/images/expDA.png differ
diff --git a/images/floor.png b/images/floor.png
new file mode 100644
Binary files /dev/null and b/images/floor.png differ
diff --git a/images/floor2.png b/images/floor2.png
new file mode 100644
Binary files /dev/null and b/images/floor2.png differ
diff --git a/images/fredkin.png b/images/fredkin.png
new file mode 100644
Binary files /dev/null and b/images/fredkin.png differ
diff --git a/images/gate_W_CliffordT.png b/images/gate_W_CliffordT.png
new file mode 100644
Binary files /dev/null and b/images/gate_W_CliffordT.png differ
diff --git a/images/hex-coord.png b/images/hex-coord.png
new file mode 100644
Binary files /dev/null and b/images/hex-coord.png differ
diff --git a/images/hex1.png b/images/hex1.png
new file mode 100644
Binary files /dev/null and b/images/hex1.png differ
diff --git a/images/hex2.png b/images/hex2.png
new file mode 100644
Binary files /dev/null and b/images/hex2.png differ
diff --git a/images/iX.png b/images/iX.png
new file mode 100644
Binary files /dev/null and b/images/iX.png differ
diff --git a/images/multi_ciX_noancilla.png b/images/multi_ciX_noancilla.png
new file mode 100644
Binary files /dev/null and b/images/multi_ciX_noancilla.png differ
diff --git a/images/multi_cnot_barenco.png b/images/multi_cnot_barenco.png
new file mode 100644
Binary files /dev/null and b/images/multi_cnot_barenco.png differ
diff --git a/images/phase.png b/images/phase.png
new file mode 100644
Binary files /dev/null and b/images/phase.png differ
diff --git a/images/quantum_and.png b/images/quantum_and.png
new file mode 100644
Binary files /dev/null and b/images/quantum_and.png differ
diff --git a/images/quantum_and_iX.png b/images/quantum_and_iX.png
new file mode 100644
Binary files /dev/null and b/images/quantum_and_iX.png differ
diff --git a/images/rGate.png b/images/rGate.png
new file mode 100644
Binary files /dev/null and b/images/rGate.png differ
diff --git a/images/spin1.png b/images/spin1.png
new file mode 100644
Binary files /dev/null and b/images/spin1.png differ
diff --git a/images/spin2.png b/images/spin2.png
new file mode 100644
Binary files /dev/null and b/images/spin2.png differ
diff --git a/images/toffoli_AMMR.png b/images/toffoli_AMMR.png
new file mode 100644
Binary files /dev/null and b/images/toffoli_AMMR.png differ
diff --git a/images/toffoli_NC.png b/images/toffoli_NC.png
new file mode 100644
Binary files /dev/null and b/images/toffoli_NC.png differ
diff --git a/images/toffoli_S.png b/images/toffoli_S.png
new file mode 100644
Binary files /dev/null and b/images/toffoli_S.png differ
diff --git a/images/toffoli_V.png b/images/toffoli_V.png
new file mode 100644
Binary files /dev/null and b/images/toffoli_V.png differ
diff --git a/images/weldedtree.png b/images/weldedtree.png
new file mode 100644
Binary files /dev/null and b/images/weldedtree.png differ
diff --git a/images/with_combined_controls1.png b/images/with_combined_controls1.png
new file mode 100644
Binary files /dev/null and b/images/with_combined_controls1.png differ
diff --git a/images/with_combined_controls2.png b/images/with_combined_controls2.png
new file mode 100644
Binary files /dev/null and b/images/with_combined_controls2.png differ
diff --git a/images/with_computed.png b/images/with_computed.png
new file mode 100644
Binary files /dev/null and b/images/with_computed.png differ
diff --git a/images/with_signed_qubit.png b/images/with_signed_qubit.png
new file mode 100644
Binary files /dev/null and b/images/with_signed_qubit.png differ
diff --git a/programs/quipper-qclparser.hs b/programs/quipper-qclparser.hs
new file mode 100644
--- /dev/null
+++ b/programs/quipper-qclparser.hs
@@ -0,0 +1,5 @@
+-- This is a stub main file. It only purpose is to re-export the
+-- "real" main function, which is Quipper.Programs.QCLParser.Main.
+
+import qualified Quipper.Programs.QCLParser.Main
+main = Quipper.Programs.QCLParser.Main.main
diff --git a/quipper-tools.cabal b/quipper-tools.cabal
new file mode 100644
--- /dev/null
+++ b/quipper-tools.cabal
@@ -0,0 +1,210 @@
+-- The name of the package.
+name:                quipper-tools
+
+-- The package version.  See the Haskell package versioning policy (PVP) 
+-- for standards guiding when and how versions should be incremented.
+-- http://www.haskell.org/haskellwiki/Package_versioning_policy
+-- PVP summary:      +-+------- breaking API changes
+--                   | | +----- non-breaking API additions
+--                   | | | +--- code changes with no API change
+version:             0.9.0.0
+
+-- A short (one-line) description of the package.
+synopsis:            Miscellaneous stand-alone tools for Quipper
+
+-- A longer description of the package.
+description:         
+
+ This package provides some stand-alone tools for Quipper, with demos
+ for how to write more such tools.
+                     
+-- URL for the project homepage or repository.
+homepage:            http://www.mathstat.dal.ca/~selinger/quipper/
+
+-- The license under which the package is released.
+license:             BSD3
+
+-- The file containing the license text.
+license-file:        COPYRIGHT
+
+-- The package author(s).
+author:              Alexander S. Green, Peter LeFanu Lumsdaine, Won Ng,
+                     Neil J. Ross, Peter Selinger, Benoit Valiron
+
+-- An email address to which users can send suggestions, bug reports, and 
+-- patches.
+maintainer:          selinger@mathstat.dal.ca
+
+-- A copyright notice.
+copyright:           Copyright (c) 2011-2019. All rights reserved.
+
+-- A classification category for future use by the package catalogue
+-- Hackage. These categories have not yet been specified, but the
+-- upper levels of the module hierarchy make a good start.
+category:            Quipper
+
+-- The type of build used by this package.
+build-type:          Custom
+
+-- Constraint on the version of Cabal needed to build this package.
+cabal-version:       >= 1.8
+
+-- A list of additional files to be included in source distributions
+-- built with setup sdist.
+extra-source-files:  images/*.png
+                     ChangeLog
+                     README
+                     Quipper/Programs/QCLParser/README
+                     Quipper/Programs/QCLParser/bwt.qcl
+                     Quipper/Programs/QCLParser/QCL-bwt-n4.out
+
+-- We must export a library, even if it is empty, or else
+-- meta-packages (such as quipper-all) that depend on this package
+-- will fail.
+library
+  exposed-modules:
+                     
+executable quipper-approximate
+           main-is: Quipper/Programs/Tools/Approximate.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         random >= 1.0.1.1,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+
+executable quipper-ascii
+           main-is: Quipper/Programs/Tools/ASCII.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-binary
+           main-is: Quipper/Programs/Tools/Binary.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-cliffordt
+           main-is: Quipper/Programs/Tools/CliffordT.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         random >= 1.0.1.1,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-depth
+           main-is: Quipper/Programs/Tools/Depth.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         containers >= 0.5.2.1,
+                         mtl >= 2.1.2,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-eps
+           main-is: Quipper/Programs/Tools/EPS.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-exact
+           main-is: Quipper/Programs/Tools/Exact.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-gatecount
+           main-is: Quipper/Programs/Tools/GateCount.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-pdf
+           main-is: Quipper/Programs/Tools/PDF.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-preview
+           main-is: Quipper/Programs/Tools/Preview.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-simulate
+           main-is: Quipper/Programs/Tools/Simulate.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         containers >= 0.5.2.1,
+                         random >= 1.0.1.1,
+                         newsynth >= 0.3.0.1,
+                         fixedprec >= 0.2.1.0,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-standard
+           main-is: Quipper/Programs/Tools/Standard.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         random >= 1.0.1.1,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-strict
+           main-is: Quipper/Programs/Tools/Strict.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         random >= 1.0.1.1,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-trimcontrols
+           main-is: Quipper/Programs/Tools/TrimControls.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+                         
+executable quipper-unbox
+           main-is: Quipper/Programs/Tools/Unbox.hs
+           build-depends:
+                         base >= 4.5 && < 5,
+                         quipper-utils,
+                         quipper-language,
+                         quipper-libraries
+
+executable quipper-qclparser
+           main-is: programs/quipper-qclparser.hs
+           other-modules: Quipper.Programs.QCLParser.Main
+           build-depends:
+                         base >= 4.5 && < 5,
+                         containers >= 0.5.2.1,
+                         mtl >= 2.1.2,
+                         quipper-language,
+                         quipper-libraries
+                     
+custom-setup
+  setup-depends:  base >= 4.5,
+                  Cabal >= 1.24,
+                  quipper-cabal >= 0.9.0.0
