Quantum scheduler, placer, and router
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
sample_inputs
src
LICENSE
README
build.xml
qspr-prebuilt.jar
qspr.pdf

README

				Quantum Scheduler, Placer, and Router (QSPR)
				********************************************
Description:
***************
Quantum Scheduler, Placer, and Router (QSPR) performs the scheduling and placement of quantum instructions, and routing of logical qubits. It finds the latency of a given QASM file when it is mapped to a given quantum circuit fabric.

Change Log:
***************
Version	|   Change
-------------------------------------------------------------------------------------------
1.00	|   Initial release.

License:
***********
Please refer to the LICENSE file.

Directories & File Structure:
*****************************
QSPR
|-- build.xml -> Ant build file
|-- qspr.pdf -> QSPR paper published in DATE 2013
|-- sample_inputs
   |-- *.qasm -> Circuit benchmarks
   |-- fabric.ql -> Quantum fabric description
|-- src
   |-- edu -> Java source code directory
   |-- libs
      |-- commons-cli-1.2.jar -> Appache Commons CLI library
      |-- commons-lang3-3.1.jar -> Apache Commons Lang library
      |-- javacc.jar -> Java Compiler Compiler (JavaCC)
      |-- jar-in-jar-loader.zip -> Jar loader file taken from Eclipse
      |-- jgrapht-core-0.9.0.jar -> JGraphT library
|-- qspr-prebuilt.jar -> Pre-built version of QSPR
`-- README -> This readme file.

Requirements:
***************
1. Ant 1.7 or higher (http://ant.apache.org) or Eclipse 3.8 or higher (https://www.eclipse.org)
2. Oracle Java 6-JDK or higher (http://www.oracle.com/technetwork/java/javase/downloads/index.html)


Preinstall:
***************
Make sure that all the requirements are already installed. The following environmental variable should be set before the installation/running of the program.
    * JAVA_HOME should point where java and javac binary files are located.


Compile:
***************
Method 1: Run the following command in the root directory of the project to build QSPR:
    ant

This command will clean the built files:
    ant clean

Method 2: You may use Eclipse to import source files as explained next.
  - Select File->Import.
  - Select General->Existing Projects into Workspace and choose Next.
  - In the root directory, point to the location of Java source files.
  - Select Finish.
  - Make sure JavaCC plugin is installed in Eclipse.

Note: We have included a pre-built version of QSPR called qspr-prebuilt.jar. It is recommended to use it if you do not want to modify QSPR.

Run:
***************
Run the following command to perform the scheduling and placement of quantum logical instructions, and routing of logical qubits.
    java -jar qspr.jar

QSPR options are listed below:
	
    usage: qspr [-d] [-f <file>] [-i <file>] [-o <file>] [-p <method>] [-s <#>] [-v]
 
    QSPR maps a given QASM to a given PMD fabric. The resultant MCL file of the mapped circuit will be generated.
    -d,--debug                Print debugging info
    -f,--fabric <file>        Fabric specification
    -i,--input <file>         QASM input file
    -o,--output <file>        Quantum operation output file
    -p,--placement <method>   Select a placement technique from {MVFB, MC, Center, and Baseline}.
    -s,--seed <#>             Random seed count
    -v,--verbose              Verbosely prints the quantum operations

Examples:
***************
1- The following command maps circuit 7-1-3.qasm  to the fabric “fabric.ql”. It writes the detailed MCL to a file called “output.txt”. The “baseline” method will be used for placement.
    java -jar qspr.jar -i sample_inputs/7-1-3.qasm -f sample_inputs/fabric.ql -o output.txt -p baseline -v

2- The following command maps circuit “5-1-3.qasm” to the fabric “fabric.ql”. It writes the detailed MCL to stdout. The “MVFB” method with seed 2 will be used for placement.
    java -jar qspr.jar -i sample_inputs/5-1-3.qasm -f sample_inputs/fabric.ql -p mvfb -v -s 2

Example Outputs:
***************
- Example 1 output:
Layout parsing completed successfully!
QASM parsing completed successfully!
Scheduling is completed succesfully!
Done.


Content of “output.txt”:
SimTime:10	1) h q0	2) h q1	3) h q2	
SimTime:100	4) cnot q5, q3	
SimTime:110	6) cnot q4, q2	
SimTime:200	5) cnot q6, q3	
SimTime:210	7) cnot q5, q2	10) cnot q4, q1	
SimTime:310	8) cnot q6, q2	9) cnot q3, q1	14) cnot q5, q0	
SimTime:410	11) cnot q6, q1	12) cnot q3, q0	
SimTime:510	13) cnot q4, q0	
------------------------------------
Execution latency: 510.0 us
QSPR runtime 74 ms

- Example 2 output
Layout parsing completed successfully!
QASM parsing completed successfully!

SimTime:10	'h q2' @(16,39) 		'h q0' @(18,45) 		'h q1' @(18,39) 		'h q4' @(26,39) 		
SimTime:11	Move q2 (16,39)->(17,39) Move q3 (26,45)->(27,45) 
SimTime:21	Turn q2 @(17,39) Turn q3 @(27,45) 
SimTime:22	Move q2 (17,39)->(17,40) Move q3 (27,45)->(27,44) 
SimTime:23	Move q2 (17,40)->(17,41) Move q3 (27,44)->(27,43) 
SimTime:24	Move q2 (17,41)->(17,42) 
SimTime:25	Move q2 (17,42)->(17,43) 
SimTime:26	Move q2 (17,43)->(17,44) 
SimTime:27	Move q2 (17,44)->(17,45) 
SimTime:33	Turn q3 @(27,43) 
SimTime:34	Move q3 (27,43)->(26,43) 
SimTime:35	Move q3 (26,43)->(25,43) 
SimTime:36	Move q3 (25,43)->(24,43) 
SimTime:37	Turn q2 @(17,45) Move q3 (24,43)->(23,43) 
SimTime:38	Move q2 (17,45)->(16,45) Move q3 (23,43)->(22,43) 
SimTime:39	Move q3 (22,43)->(21,43) 
SimTime:40	Move q3 (21,43)->(20,43) 
SimTime:41	Move q3 (20,43)->(19,43) 
SimTime:42	Move q3 (19,43)->(18,43) 
SimTime:43	Move q3 (18,43)->(17,43) 
SimTime:53	Turn q3 @(17,43) 
SimTime:54	Move q3 (17,43)->(17,44) 
SimTime:55	Move q3 (17,44)->(17,45) 
SimTime:65	Turn q3 @(17,45) 
SimTime:66	Move q3 (17,45)->(16,45) 
SimTime:166	'cnot q3, q2' @(16,45) 		
SimTime:167	Move q4 (26,39)->(27,39) Move q2 (16,45)->(17,45) 
SimTime:177	Turn q4 @(27,39) Turn q2 @(17,45) 
SimTime:178	Move q4 (27,39)->(27,40) Move q2 (17,45)->(17,44) 
SimTime:179	Move q4 (27,40)->(27,41) Move q2 (17,44)->(17,43) 
SimTime:180	Move q2 (17,43)->(17,42) 
SimTime:181	Move q2 (17,42)->(17,41) 
SimTime:182	Move q2 (17,41)->(17,40) 
SimTime:183	Move q2 (17,40)->(17,39) 
SimTime:189	Turn q4 @(27,41) 
SimTime:190	Move q4 (27,41)->(26,41) 
SimTime:191	Move q4 (26,41)->(25,41) 
SimTime:192	Move q4 (25,41)->(24,41) 
SimTime:193	Turn q2 @(17,39) Move q4 (24,41)->(23,41) 
SimTime:194	Move q2 (17,39)->(16,39) Move q4 (23,41)->(22,41) 
SimTime:195	Move q4 (22,41)->(21,41) Move q3 (16,45)->(17,45) 
SimTime:196	Move q4 (21,41)->(20,41) 
SimTime:197	Move q4 (20,41)->(19,41) 
SimTime:198	Move q4 (19,41)->(18,41) 
SimTime:199	Move q4 (18,41)->(17,41) 
SimTime:205	Turn q3 @(17,45) 
SimTime:206	Move q3 (17,45)->(17,44) 
SimTime:207	Move q3 (17,44)->(17,43) 
SimTime:208	Move q3 (17,43)->(17,42) 
SimTime:209	Turn q4 @(17,41) Move q3 (17,42)->(17,41) 
SimTime:210	Move q4 (17,41)->(17,40) Move q3 (17,41)->(17,40) 
SimTime:211	
SimTime:221	Turn q4 @(17,39) Turn q3 @(17,39) 
SimTime:222	Move q4 (17,39)->(16,39) Move q3 (17,39)->(18,39) 
SimTime:322	'cnot q4, q2' @(16,39) 		'cnot q3, q1' @(18,39) 		
SimTime:323	Move q2 (16,39)->(17,39) Move q1 (18,39)->(17,39) 
SimTime:333	Turn q2 @(17,39) Turn q1 @(17,39) 
SimTime:334	
SimTime:335	
SimTime:345	Turn q2 @(17,37) Turn q1 @(17,37) 
SimTime:346	Move q2 (17,37)->(16,37) Move q1 (17,37)->(16,37) 
SimTime:347	Move q0 (18,45)->(17,45) Move q3 (18,39)->(17,39) 
SimTime:357	Turn q0 @(17,45) Turn q3 @(17,39) 
SimTime:358	Move q0 (17,45)->(16,45) Move q3 (17,39)->(17,40) 
SimTime:359	Move q3 (17,40)->(17,41) 
SimTime:360	Move q3 (17,41)->(17,42) 
SimTime:361	Move q3 (17,42)->(17,43) 
SimTime:362	Move q3 (17,43)->(17,44) 
SimTime:363	Move q3 (17,44)->(17,45) 
SimTime:373	Turn q3 @(17,45) 
SimTime:374	Move q3 (17,45)->(16,45) 
SimTime:446	'cnot q2, q1' @(16,37) 		
SimTime:447	Move q1 (16,37)->(17,37) 
SimTime:457	Turn q1 @(17,37) 
SimTime:458	Move q1 (17,37)->(17,38) 
SimTime:459	Move q1 (17,38)->(17,39) 
SimTime:469	Turn q1 @(17,39) 
SimTime:470	Move q1 (17,39)->(16,39) 
SimTime:474	'cnot q3, q0' @(16,45) 		
SimTime:475	Move q2 (16,37)->(17,37) Move q0 (16,45)->(17,45) 
SimTime:485	Turn q2 @(17,37) Turn q0 @(17,45) 
SimTime:486	Move q2 (17,37)->(17,38) Move q0 (17,45)->(17,44) 
SimTime:487	Move q2 (17,38)->(17,39) Move q0 (17,44)->(17,43) 
SimTime:488	Move q0 (17,43)->(17,42) 
SimTime:489	Move q0 (17,42)->(17,41) 
SimTime:490	Move q0 (17,41)->(17,40) 
SimTime:491	
SimTime:497	Turn q2 @(17,39) 
SimTime:498	Move q2 (17,39)->(18,39) 
SimTime:501	Turn q0 @(17,39) 
SimTime:502	Move q0 (17,39)->(18,39) 
SimTime:570	'cnot q4, q1' @(16,39) 		
SimTime:602	'cnot q2, q0' @(18,39) 		
SimTime:603	Move q4 (16,39)->(17,39) Move q0 (18,39)->(17,39) 
SimTime:613	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:614	
SimTime:615	
SimTime:625	Turn q4 @(17,37) Turn q0 @(17,37) 
SimTime:626	Move q4 (17,37)->(16,37) Move q0 (17,37)->(16,37) 
SimTime:726	'cnot q4, q0' @(16,37) 		

SimTime:1	Move q4 (16,37)->(17,37) Move q0 (16,37)->(17,37) 
SimTime:11	Turn q4 @(17,37) Turn q0 @(17,37) 
SimTime:12	
SimTime:13	
SimTime:23	Turn q4 @(17,35) Turn q0 @(17,35) 
SimTime:24	Move q4 (17,35)->(16,35) Move q0 (17,35)->(16,35) 
SimTime:124	'cnot q4, q0' @(16,35) 		
SimTime:125	Move q3 (16,45)->(17,45) Move q0 (16,35)->(17,35) 
SimTime:135	Turn q3 @(17,45) Turn q0 @(17,35) 
SimTime:136	Move q3 (17,45)->(17,44) Move q0 (17,35)->(17,36) 
SimTime:137	Move q3 (17,44)->(17,43) Move q0 (17,36)->(17,37) 
SimTime:138	Move q3 (17,43)->(17,42) 
SimTime:139	Move q3 (17,42)->(17,41) 
SimTime:140	Move q3 (17,41)->(17,40) 
SimTime:141	
SimTime:142	
SimTime:143	
SimTime:147	Turn q0 @(17,37) 
SimTime:148	Move q0 (17,37)->(16,37) 
SimTime:153	Turn q3 @(17,37) 
SimTime:154	Move q3 (17,37)->(16,37) 
SimTime:155	Move q4 (16,35)->(17,35) Move q1 (16,39)->(17,39) 
SimTime:165	Turn q4 @(17,35) Turn q1 @(17,39) 
SimTime:166	
SimTime:167	
SimTime:177	Turn q4 @(17,37) Turn q1 @(17,37) 
SimTime:178	Move q4 (17,37)->(18,37) Move q1 (17,37)->(18,37) 
SimTime:254	'cnot q3, q0' @(16,37) 		
SimTime:255	Move q2 (18,39)->(17,39) Move q0 (16,37)->(17,37) 
SimTime:265	Turn q2 @(17,39) Turn q0 @(17,37) 
SimTime:266	Move q2 (17,39)->(16,39) Move q0 (17,37)->(17,38) 
SimTime:267	Move q0 (17,38)->(17,39) 
SimTime:277	Turn q0 @(17,39) 
SimTime:278	'cnot q4, q1' @(18,37) 		Move q0 (17,39)->(16,39) 
SimTime:279	Move q1 (18,37)->(17,37) 
SimTime:289	Turn q1 @(17,37) 
SimTime:290	Move q1 (17,37)->(16,37) 
SimTime:378	'cnot q2, q0' @(16,39) 		
SimTime:379	Move q0 (16,39)->(17,39) 
SimTime:389	Turn q0 @(17,39) 
SimTime:390	Move q0 (17,39)->(18,39) 'cnot q3, q1' @(16,37) 		
SimTime:391	Move q1 (16,37)->(17,37) 
SimTime:400	'h q0' @(18,39) 		
SimTime:401	Turn q1 @(17,37) 
SimTime:402	Move q1 (17,37)->(17,38) 
SimTime:403	Move q1 (17,38)->(17,39) 
SimTime:413	Turn q1 @(17,39) 
SimTime:414	Move q1 (17,39)->(16,39) 
SimTime:514	'cnot q2, q1' @(16,39) 		
SimTime:515	Move q2 (16,39)->(17,39) Move q1 (16,39)->(17,39) 
SimTime:525	Turn q2 @(17,39) Turn q1 @(17,39) 
SimTime:526	
SimTime:527	
SimTime:528	
SimTime:529	
SimTime:537	Turn q2 @(17,37) 
SimTime:538	Move q2 (17,37)->(18,37) 
SimTime:539	Turn q1 @(17,35) 
SimTime:540	Move q1 (17,35)->(16,35) 
SimTime:550	'h q1' @(16,35) 		
SimTime:638	'cnot q4, q2' @(18,37) 		
SimTime:639	Move q2 (18,37)->(17,37) Move q4 (18,37)->(17,37) 
SimTime:649	Turn q2 @(17,37) Turn q4 @(17,37) 
SimTime:650	Move q2 (17,37)->(16,37) Move q4 (17,37)->(17,36) 
SimTime:651	Move q4 (17,36)->(17,35) 
SimTime:661	Turn q4 @(17,35) 
SimTime:662	Move q4 (17,35)->(18,35) 
SimTime:672	'h q4' @(18,35) 		
SimTime:750	'cnot q3, q2' @(16,37) 		
SimTime:751	Move q2 (16,37)->(17,37) 
SimTime:761	Turn q2 @(17,37) 
SimTime:762	Move q2 (17,37)->(17,38) 
SimTime:763	Move q2 (17,38)->(17,39) 
SimTime:773	Turn q2 @(17,39) 
SimTime:774	Move q2 (17,39)->(16,39) 
SimTime:784	'h q2' @(16,39) 		

SimTime:10	'h q2' @(16,39) 		'h q0' @(18,39) 		'h q1' @(16,35) 		'h q4' @(18,35) 		
SimTime:11	Move q2 (16,39)->(17,39) Move q3 (16,37)->(17,37) 
SimTime:21	Turn q2 @(17,39) Turn q3 @(17,37) 
SimTime:22	Move q3 (17,37)->(18,37) 
SimTime:23	Move q2 (17,38)->(17,37) 
SimTime:33	Turn q2 @(17,37) 
SimTime:34	Move q2 (17,37)->(18,37) 
SimTime:134	'cnot q3, q2' @(18,37) 		
SimTime:135	Move q4 (18,35)->(17,35) Move q2 (18,37)->(17,37) 
SimTime:145	Turn q4 @(17,35) Turn q2 @(17,37) 
SimTime:146	Move q2 (17,37)->(16,37) 
SimTime:147	Move q4 (17,36)->(17,37) 
SimTime:157	Turn q4 @(17,37) 
SimTime:158	Move q4 (17,37)->(16,37) 
SimTime:159	Move q3 (18,37)->(17,37) Move q1 (16,35)->(17,35) 
SimTime:169	Turn q3 @(17,37) Turn q1 @(17,35) 
SimTime:170	Move q1 (17,35)->(18,35) 
SimTime:171	Move q3 (17,36)->(17,35) 
SimTime:181	Turn q3 @(17,35) 
SimTime:182	Move q3 (17,35)->(18,35) 
SimTime:258	'cnot q4, q2' @(16,37) 		
SimTime:282	'cnot q3, q1' @(18,35) 		
SimTime:283	Move q2 (16,37)->(17,37) Move q1 (18,35)->(17,35) 
SimTime:293	Turn q2 @(17,37) Turn q1 @(17,35) 
SimTime:294	Move q1 (17,35)->(16,35) 
SimTime:295	Move q2 (17,36)->(17,35) 
SimTime:305	Turn q2 @(17,35) 
SimTime:306	Move q2 (17,35)->(16,35) 
SimTime:307	Move q3 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:317	Turn q3 @(17,35) Turn q0 @(17,39) 
SimTime:318	
SimTime:319	
SimTime:329	Turn q3 @(17,37) Turn q0 @(17,37) 
SimTime:330	Move q3 (17,37)->(18,37) Move q0 (17,37)->(18,37) 
SimTime:406	'cnot q2, q1' @(16,35) 		
SimTime:407	Move q1 (16,35)->(17,35) 
SimTime:417	Turn q1 @(17,35) 
SimTime:418	Move q1 (17,35)->(17,36) 
SimTime:419	Move q1 (17,36)->(17,37) 
SimTime:429	Turn q1 @(17,37) 
SimTime:430	Move q1 (17,37)->(16,37) 'cnot q3, q0' @(18,37) 		
SimTime:431	Move q2 (16,35)->(17,35) Move q0 (18,37)->(17,37) 
SimTime:441	Turn q2 @(17,35) Turn q0 @(17,37) 
SimTime:442	Move q2 (17,35)->(18,35) Move q0 (17,37)->(17,36) 
SimTime:443	Move q0 (17,36)->(17,35) 
SimTime:453	Turn q0 @(17,35) 
SimTime:454	Move q0 (17,35)->(18,35) 
SimTime:530	'cnot q4, q1' @(16,37) 		
SimTime:554	'cnot q2, q0' @(18,35) 		
SimTime:555	Move q4 (16,37)->(17,37) Move q0 (18,35)->(17,35) 
SimTime:565	Turn q4 @(17,37) Turn q0 @(17,35) 
SimTime:566	Move q0 (17,35)->(16,35) 
SimTime:567	Move q4 (17,36)->(17,35) 
SimTime:577	Turn q4 @(17,35) 
SimTime:578	Move q4 (17,35)->(16,35) 
SimTime:678	'cnot q4, q0' @(16,35) 		

SimTime:1	Move q4 (16,35)->(17,35) Move q0 (16,35)->(17,35) 
SimTime:11	Turn q4 @(17,35) Turn q0 @(17,35) 
SimTime:12	
SimTime:13	
SimTime:14	
SimTime:15	
SimTime:25	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:26	Move q4 (17,39)->(16,39) Move q0 (17,39)->(16,39) 
SimTime:126	'cnot q4, q0' @(16,39) 		
SimTime:127	Move q3 (18,37)->(17,37) Move q0 (16,39)->(17,39) 
SimTime:137	Turn q3 @(17,37) Turn q0 @(17,39) 
SimTime:138	Move q0 (17,39)->(18,39) 
SimTime:139	Move q4 (16,39)->(17,39) 
SimTime:149	Turn q4 @(17,39) Turn q3 @(17,39) 
SimTime:150	Move q3 (17,39)->(18,39) 
SimTime:151	Move q4 (17,38)->(17,37) 
SimTime:161	Turn q4 @(17,37) 
SimTime:162	Move q4 (17,37)->(16,37) 
SimTime:250	'cnot q3, q0' @(18,39) 		
SimTime:251	Move q2 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:261	Turn q2 @(17,35) Turn q0 @(17,39) 
SimTime:262	'cnot q4, q1' @(16,37) 		
SimTime:263	
SimTime:273	Turn q0 @(17,37) Turn q2 @(17,37) 
SimTime:274	Move q0 (17,37)->(18,37) Move q2 (17,37)->(18,37) 
SimTime:275	Move q3 (18,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:285	Turn q3 @(17,39) Turn q1 @(17,37) 
SimTime:286	Move q3 (17,39)->(16,39) Move q1 (17,37)->(17,38) 
SimTime:287	Move q1 (17,38)->(17,39) 
SimTime:297	Turn q1 @(17,39) 
SimTime:298	Move q1 (17,39)->(16,39) 
SimTime:374	'cnot q2, q0' @(18,37) 		
SimTime:375	Move q0 (18,37)->(17,37) 
SimTime:385	Turn q0 @(17,37) 
SimTime:386	Move q0 (17,37)->(17,36) 
SimTime:387	Move q0 (17,36)->(17,35) 
SimTime:397	Turn q0 @(17,35) 
SimTime:398	Move q0 (17,35)->(18,35) 'cnot q3, q1' @(16,39) 		
SimTime:399	Move q2 (18,37)->(17,37) Move q1 (16,39)->(17,39) 
SimTime:408	'h q0' @(18,35) 		
SimTime:409	Turn q1 @(17,39) Turn q2 @(17,37) 
SimTime:410	Move q1 (17,39)->(18,39) Move q2 (17,37)->(17,38) 
SimTime:411	Move q2 (17,38)->(17,39) 
SimTime:421	Turn q2 @(17,39) 
SimTime:422	Move q2 (17,39)->(18,39) 
SimTime:522	'cnot q2, q1' @(18,39) 		
SimTime:523	Move q4 (16,37)->(17,37) Move q2 (18,39)->(17,39) 
SimTime:533	Turn q4 @(17,37) Turn q2 @(17,39) 
SimTime:534	Move q4 (17,37)->(18,37) Move q2 (17,39)->(17,38) 
SimTime:535	Move q2 (17,38)->(17,37) 
SimTime:544	'h q1' @(18,39) 		
SimTime:545	Turn q2 @(17,37) 
SimTime:546	Move q2 (17,37)->(18,37) 
SimTime:646	'cnot q4, q2' @(18,37) 		
SimTime:647	Move q3 (16,39)->(17,39) Move q2 (18,37)->(17,37) 
SimTime:657	Turn q3 @(17,39) Turn q2 @(17,37) 
SimTime:658	Move q2 (17,37)->(16,37) 
SimTime:659	Move q3 (17,38)->(17,37) 
SimTime:668	'h q4' @(18,37) 		
SimTime:669	Turn q3 @(17,37) 
SimTime:670	Move q3 (17,37)->(16,37) 
SimTime:770	'cnot q3, q2' @(16,37) 		
SimTime:771	Move q2 (16,37)->(17,37) 
SimTime:781	Turn q2 @(17,37) 
SimTime:782	Move q2 (17,37)->(17,36) 
SimTime:783	Move q2 (17,36)->(17,35) 
SimTime:793	Turn q2 @(17,35) 
SimTime:794	Move q2 (17,35)->(16,35) 
SimTime:804	'h q2' @(16,35) 		

SimTime:10	'h q2' @(16,35) 		'h q0' @(18,35) 		'h q1' @(18,39) 		'h q4' @(18,37) 		
SimTime:11	Move q3 (16,37)->(17,37) 
SimTime:21	Turn q3 @(17,37) 
SimTime:22	Move q3 (17,37)->(17,36) 
SimTime:23	Move q3 (17,36)->(17,35) 
SimTime:33	Turn q3 @(17,35) 
SimTime:34	Move q3 (17,35)->(16,35) 
SimTime:134	'cnot q3, q2' @(16,35) 		
SimTime:135	Move q4 (18,37)->(17,37) Move q2 (16,35)->(17,35) 
SimTime:145	Turn q4 @(17,37) Turn q2 @(17,35) 
SimTime:146	Move q4 (17,37)->(16,37) Move q2 (17,35)->(17,36) 
SimTime:147	Move q2 (17,36)->(17,37) 
SimTime:157	Turn q2 @(17,37) 
SimTime:158	Move q2 (17,37)->(16,37) 
SimTime:159	Move q3 (16,35)->(17,35) Move q1 (18,39)->(17,39) 
SimTime:169	Turn q3 @(17,35) Turn q1 @(17,39) 
SimTime:170	
SimTime:171	
SimTime:181	Turn q3 @(17,37) Turn q1 @(17,37) 
SimTime:182	Move q3 (17,37)->(18,37) Move q1 (17,37)->(18,37) 
SimTime:258	'cnot q4, q2' @(16,37) 		
SimTime:282	'cnot q3, q1' @(18,37) 		
SimTime:283	Move q2 (16,37)->(17,37) Move q1 (18,37)->(17,37) 
SimTime:293	Turn q2 @(17,37) Turn q1 @(17,37) 
SimTime:294	
SimTime:295	
SimTime:305	Turn q2 @(17,35) Turn q1 @(17,35) 
SimTime:306	Move q2 (17,35)->(16,35) Move q1 (17,35)->(16,35) 
SimTime:307	Move q3 (18,37)->(17,37) 
SimTime:317	Turn q3 @(17,37) 
SimTime:318	Move q3 (17,37)->(17,36) 
SimTime:319	Move q3 (17,36)->(17,35) 
SimTime:329	Turn q3 @(17,35) 
SimTime:330	Move q3 (17,35)->(18,35) 
SimTime:406	'cnot q2, q1' @(16,35) 		
SimTime:407	Move q1 (16,35)->(17,35) 
SimTime:417	Turn q1 @(17,35) 
SimTime:418	Move q1 (17,35)->(17,36) 
SimTime:419	Move q1 (17,36)->(17,37) 
SimTime:429	Turn q1 @(17,37) 
SimTime:430	Move q1 (17,37)->(16,37) 'cnot q3, q0' @(18,35) 		
SimTime:431	Move q0 (18,35)->(17,35) 
SimTime:441	Turn q0 @(17,35) 
SimTime:442	Move q0 (17,35)->(16,35) 
SimTime:530	'cnot q4, q1' @(16,37) 		
SimTime:542	'cnot q2, q0' @(16,35) 		
SimTime:543	Move q4 (16,37)->(17,37) Move q0 (16,35)->(17,35) 
SimTime:553	Turn q4 @(17,37) Turn q0 @(17,35) 
SimTime:554	
SimTime:555	
SimTime:556	
SimTime:557	
SimTime:565	Turn q4 @(17,39) 
SimTime:566	Move q4 (17,39)->(16,39) 
SimTime:567	Turn q0 @(17,39) 
SimTime:568	Move q0 (17,39)->(16,39) 
SimTime:668	'cnot q4, q0' @(16,39) 		

SimTime:1	Move q4 (16,39)->(17,39) Move q0 (16,39)->(17,39) 
SimTime:11	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:12	Move q4 (17,39)->(18,39) Move q0 (17,39)->(18,39) 
SimTime:112	'cnot q4, q0' @(18,39) 		
SimTime:113	Move q3 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:123	Turn q3 @(17,35) Turn q0 @(17,39) 
SimTime:124	
SimTime:125	
SimTime:135	Turn q3 @(17,37) Turn q0 @(17,37) 
SimTime:136	Move q3 (17,37)->(18,37) Move q0 (17,37)->(18,37) 
SimTime:137	Move q4 (18,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:147	Turn q4 @(17,39) Turn q1 @(17,37) 
SimTime:148	Move q4 (17,39)->(16,39) Move q1 (17,37)->(17,38) 
SimTime:149	Move q1 (17,38)->(17,39) 
SimTime:159	Turn q1 @(17,39) 
SimTime:160	Move q1 (17,39)->(16,39) 
SimTime:236	'cnot q3, q0' @(18,37) 		
SimTime:237	Move q2 (16,35)->(17,35) Move q0 (18,37)->(17,37) 
SimTime:247	Turn q2 @(17,35) Turn q0 @(17,37) 
SimTime:248	Move q0 (17,37)->(16,37) 
SimTime:249	Move q2 (17,36)->(17,37) 
SimTime:259	Turn q2 @(17,37) 
SimTime:260	'cnot q4, q1' @(16,39) 		Move q2 (17,37)->(16,37) 
SimTime:261	Move q3 (18,37)->(17,37) Move q1 (16,39)->(17,39) 
SimTime:271	Turn q3 @(17,37) Turn q1 @(17,39) 
SimTime:272	Move q1 (17,39)->(18,39) 
SimTime:273	Move q3 (17,38)->(17,39) 
SimTime:283	Turn q3 @(17,39) 
SimTime:284	Move q3 (17,39)->(18,39) 
SimTime:360	'cnot q2, q0' @(16,37) 		
SimTime:361	Move q0 (16,37)->(17,37) 
SimTime:371	Turn q0 @(17,37) 
SimTime:372	Move q0 (17,37)->(17,36) 
SimTime:373	Move q0 (17,36)->(17,35) 
SimTime:383	Turn q0 @(17,35) 
SimTime:384	Move q0 (17,35)->(16,35) 'cnot q3, q1' @(18,39) 		
SimTime:385	Move q2 (16,37)->(17,37) Move q1 (18,39)->(17,39) 
SimTime:394	'h q0' @(16,35) 		
SimTime:395	Turn q1 @(17,39) Turn q2 @(17,37) 
SimTime:396	Move q2 (17,37)->(18,37) 
SimTime:397	Move q1 (17,38)->(17,37) 
SimTime:407	Turn q1 @(17,37) 
SimTime:408	Move q1 (17,37)->(18,37) 
SimTime:508	'cnot q2, q1' @(18,37) 		
SimTime:509	Move q4 (16,39)->(17,39) Move q2 (18,37)->(17,37) 
SimTime:519	Turn q4 @(17,39) Turn q2 @(17,37) 
SimTime:520	Move q2 (17,37)->(16,37) 
SimTime:521	Move q4 (17,38)->(17,37) 
SimTime:530	'h q1' @(18,37) 		
SimTime:531	Turn q4 @(17,37) 
SimTime:532	Move q4 (17,37)->(16,37) 
SimTime:632	'cnot q4, q2' @(16,37) 		
SimTime:633	Move q3 (18,39)->(17,39) Move q2 (16,37)->(17,37) 
SimTime:643	Turn q3 @(17,39) Turn q2 @(17,37) 
SimTime:644	Move q3 (17,39)->(16,39) Move q2 (17,37)->(17,38) 
SimTime:645	Move q2 (17,38)->(17,39) 
SimTime:654	'h q4' @(16,37) 		
SimTime:655	Turn q2 @(17,39) 
SimTime:656	Move q2 (17,39)->(16,39) 
SimTime:756	'cnot q3, q2' @(16,39) 		
SimTime:757	Move q2 (16,39)->(17,39) 
SimTime:767	Turn q2 @(17,39) 
SimTime:768	Move q2 (17,39)->(18,39) 
SimTime:778	'h q2' @(18,39) 		

SimTime:10	'h q2' @(18,39) 		'h q0' @(16,35) 		'h q1' @(18,37) 		'h q4' @(16,37) 		
SimTime:11	Move q3 (16,39)->(17,39) 
SimTime:21	Turn q3 @(17,39) 
SimTime:22	Move q3 (17,39)->(18,39) 
SimTime:122	'cnot q3, q2' @(18,39) 		
SimTime:123	Move q4 (16,37)->(17,37) Move q2 (18,39)->(17,39) 
SimTime:133	Turn q4 @(17,37) Turn q2 @(17,39) 
SimTime:134	Move q2 (17,39)->(16,39) 
SimTime:135	Move q4 (17,38)->(17,39) 
SimTime:145	Turn q4 @(17,39) 
SimTime:146	Move q4 (17,39)->(16,39) 
SimTime:147	Move q3 (18,39)->(17,39) Move q1 (18,37)->(17,37) 
SimTime:157	Turn q3 @(17,39) Turn q1 @(17,37) 
SimTime:158	Move q1 (17,37)->(16,37) 
SimTime:159	Move q3 (17,38)->(17,37) 
SimTime:169	Turn q3 @(17,37) 
SimTime:170	Move q3 (17,37)->(16,37) 
SimTime:246	'cnot q4, q2' @(16,39) 		
SimTime:270	'cnot q3, q1' @(16,37) 		
SimTime:271	Move q2 (16,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:281	Turn q2 @(17,39) Turn q1 @(17,37) 
SimTime:282	Move q1 (17,37)->(18,37) 
SimTime:283	Move q2 (17,38)->(17,37) 
SimTime:293	Turn q2 @(17,37) 
SimTime:294	Move q2 (17,37)->(18,37) 
SimTime:295	Move q3 (16,37)->(17,37) Move q0 (16,35)->(17,35) 
SimTime:305	Turn q3 @(17,37) Turn q0 @(17,35) 
SimTime:306	Move q0 (17,35)->(18,35) 
SimTime:307	Move q3 (17,36)->(17,35) 
SimTime:317	Turn q3 @(17,35) 
SimTime:318	Move q3 (17,35)->(18,35) 
SimTime:394	'cnot q2, q1' @(18,37) 		
SimTime:395	Move q4 (16,39)->(17,39) Move q1 (18,37)->(17,37) 
SimTime:405	Turn q4 @(17,39) Turn q1 @(17,37) 
SimTime:406	Move q1 (17,37)->(16,37) 
SimTime:407	Move q4 (17,38)->(17,37) 
SimTime:417	Turn q4 @(17,37) 
SimTime:418	Move q4 (17,37)->(16,37) 'cnot q3, q0' @(18,35) 		
SimTime:419	Move q2 (18,37)->(17,37) Move q0 (18,35)->(17,35) 
SimTime:429	Turn q2 @(17,37) Turn q0 @(17,35) 
SimTime:430	Move q0 (17,35)->(16,35) 
SimTime:431	Move q2 (17,36)->(17,35) 
SimTime:441	Turn q2 @(17,35) 
SimTime:442	Move q2 (17,35)->(16,35) 
SimTime:518	'cnot q4, q1' @(16,37) 		
SimTime:542	'cnot q2, q0' @(16,35) 		
SimTime:543	Move q4 (16,37)->(17,37) Move q0 (16,35)->(17,35) 
SimTime:553	Turn q4 @(17,37) Turn q0 @(17,35) 
SimTime:554	
SimTime:555	
SimTime:556	
SimTime:557	
SimTime:565	Turn q4 @(17,39) 
SimTime:566	Move q4 (17,39)->(16,39) 
SimTime:567	Turn q0 @(17,39) 
SimTime:568	Move q0 (17,39)->(16,39) 
SimTime:668	'cnot q4, q0' @(16,39) 		

SimTime:1	Move q4 (16,39)->(17,39) Move q0 (16,39)->(17,39) 
SimTime:11	Turn q4 @(17,39) Turn q0 @(17,39) 
SimTime:12	Move q4 (17,39)->(18,39) Move q0 (17,39)->(18,39) 
SimTime:112	'cnot q4, q0' @(18,39) 		
SimTime:113	Move q3 (18,35)->(17,35) Move q0 (18,39)->(17,39) 
SimTime:123	Turn q3 @(17,35) Turn q0 @(17,39) 
SimTime:124	
SimTime:125	
SimTime:135	Turn q3 @(17,37) Turn q0 @(17,37) 
SimTime:136	Move q3 (17,37)->(18,37) Move q0 (17,37)->(18,37) 
SimTime:137	Move q4 (18,39)->(17,39) Move q1 (16,37)->(17,37) 
SimTime:147	Turn q4 @(17,39) Turn q1 @(17,37) 
SimTime:148	Move q4 (17,39)->(16,39) Move q1 (17,37)->(17,38) 
SimTime:149	Move q1 (17,38)->(17,39) 
SimTime:159	Turn q1 @(17,39) 
SimTime:160	Move q1 (17,39)->(16,39) 
SimTime:236	'cnot q3, q0' @(18,37) 		
SimTime:237	Move q2 (16,35)->(17,35) Move q0 (18,37)->(17,37) 
SimTime:247	Turn q2 @(17,35) Turn q0 @(17,37) 
SimTime:248	Move q0 (17,37)->(16,37) 
SimTime:249	Move q2 (17,36)->(17,37) 
SimTime:259	Turn q2 @(17,37) 
SimTime:260	'cnot q4, q1' @(16,39) 		Move q2 (17,37)->(16,37) 
SimTime:261	Move q3 (18,37)->(17,37) Move q1 (16,39)->(17,39) 
SimTime:271	Turn q3 @(17,37) Turn q1 @(17,39) 
SimTime:272	Move q1 (17,39)->(18,39) 
SimTime:273	Move q3 (17,38)->(17,39) 
SimTime:283	Turn q3 @(17,39) 
SimTime:284	Move q3 (17,39)->(18,39) 
SimTime:360	'cnot q2, q0' @(16,37) 		
SimTime:361	Move q0 (16,37)->(17,37) 
SimTime:371	Turn q0 @(17,37) 
SimTime:372	Move q0 (17,37)->(17,36) 
SimTime:373	Move q0 (17,36)->(17,35) 
SimTime:383	Turn q0 @(17,35) 
SimTime:384	Move q0 (17,35)->(16,35) 'cnot q3, q1' @(18,39) 		
SimTime:385	Move q2 (16,37)->(17,37) Move q1 (18,39)->(17,39) 
SimTime:394	'h q0' @(16,35) 		
SimTime:395	Turn q1 @(17,39) Turn q2 @(17,37) 
SimTime:396	Move q2 (17,37)->(18,37) 
SimTime:397	Move q1 (17,38)->(17,37) 
SimTime:407	Turn q1 @(17,37) 
SimTime:408	Move q1 (17,37)->(18,37) 
SimTime:508	'cnot q2, q1' @(18,37) 		
SimTime:509	Move q4 (16,39)->(17,39) Move q2 (18,37)->(17,37) 
SimTime:519	Turn q4 @(17,39) Turn q2 @(17,37) 
SimTime:520	Move q2 (17,37)->(16,37) 
SimTime:521	Move q4 (17,38)->(17,37) 
SimTime:530	'h q1' @(18,37) 		
SimTime:531	Turn q4 @(17,37) 
SimTime:532	Move q4 (17,37)->(16,37) 
SimTime:632	'cnot q4, q2' @(16,37) 		
SimTime:633	Move q3 (18,39)->(17,39) Move q2 (16,37)->(17,37) 
SimTime:643	Turn q3 @(17,39) Turn q2 @(17,37) 
SimTime:644	Move q3 (17,39)->(16,39) Move q2 (17,37)->(17,38) 
SimTime:645	Move q2 (17,38)->(17,39) 
SimTime:654	'h q4' @(16,37) 		
SimTime:655	Turn q2 @(17,39) 
SimTime:656	Move q2 (17,39)->(16,39) 
SimTime:756	'cnot q3, q2' @(16,39) 		
SimTime:757	Move q2 (16,39)->(17,39) 
SimTime:767	Turn q2 @(17,39) 
SimTime:768	Move q2 (17,39)->(18,39) 
SimTime:778	'h q2' @(18,39) 		

SimTime:10	'h q2' @(18,45) 		'h q0' @(26,45) 		'h q1' @(16,39) 		'h q4' @(18,39) 		
SimTime:11	Move q2 (18,45)->(17,45) Move q3 (26,39)->(27,39) 
SimTime:21	Turn q2 @(17,45) Turn q3 @(27,39) 
SimTime:22	Move q2 (17,45)->(16,45) Move q3 (27,39)->(27,40) 
SimTime:23	Move q3 (27,40)->(27,41) 
SimTime:24	Move q3 (27,41)->(27,42) 
SimTime:25	Move q3 (27,42)->(27,43) 
SimTime:35	Turn q3 @(27,43) 
SimTime:36	Move q3 (27,43)->(26,43) 
SimTime:37	Move q3 (26,43)->(25,43) 
SimTime:38	Move q3 (25,43)->(24,43) 
SimTime:39	Move q3 (24,43)->(23,43) 
SimTime:40	Move q3 (23,43)->(22,43) 
SimTime:41	Move q3 (22,43)->(21,43) 
SimTime:42	Move q3 (21,43)->(20,43) 
SimTime:43	Move q3 (20,43)->(19,43) 
SimTime:44	Move q3 (19,43)->(18,43) 
SimTime:45	Move q3 (18,43)->(17,43) 
SimTime:55	Turn q3 @(17,43) 
SimTime:56	Move q3 (17,43)->(17,44) 
SimTime:57	Move q3 (17,44)->(17,45) 
SimTime:67	Turn q3 @(17,45) 
SimTime:68	Move q3 (17,45)->(16,45) 
SimTime:168	'cnot q3, q2' @(16,45) 		
SimTime:169	Move q4 (18,39)->(17,39) Move q2 (16,45)->(17,45) 
SimTime:179	Turn q4 @(17,39) Turn q2 @(17,45) 
SimTime:180	Move q4 (17,39)->(17,40) Move q2 (17,45)->(18,45) 
SimTime:181	Move q4 (17,40)->(17,41) Move q3 (16,45)->(17,45) 
SimTime:182	Move q4 (17,41)->(17,42) 
SimTime:183	Move q4 (17,42)->(17,43) 
SimTime:184	Move q4 (17,43)->(17,44) 
SimTime:185	
SimTime:191	Turn q3 @(17,45) 
SimTime:192	
SimTime:193	Move q3 (17,44)->(17,43) 
SimTime:194	Move q3 (17,43)->(17,42) 
SimTime:195	Turn q4 @(17,45) Move q3 (17,42)->(17,41) 
SimTime:196	Move q4 (17,45)->(18,45) Move q3 (17,41)->(17,40) 
SimTime:197	Move q3 (17,40)->(17,39) 
SimTime:207	Turn q3 @(17,39) 
SimTime:208	Move q3 (17,39)->(16,39) 
SimTime:296	'cnot q4, q2' @(18,45) 		
SimTime:308	'cnot q3, q1' @(16,39) 		
SimTime:309	Move q2 (18,45)->(17,45) Move q1 (16,39)->(17,39) 
SimTime:319	Turn q2 @(17,45) Turn q1 @(17,39) 
SimTime:320	Move q2 (17,45)->(16,45) Move q1 (17,39)->(17,40) 
SimTime:321	Move q1 (17,40)->(17,41) 
SimTime:322	Move q1 (17,41)->(17,42) Move q3 (16,39)->(17,39) Move q0 (26,45)->(27,45) 
SimTime:323	Move q1 (17,42)->(17,43) 
SimTime:324	Move q1 (17,43)->(17,44) 
SimTime:325	Move q1 (17,44)->(17,45) 
SimTime:332	Turn q0 @(27,45) Turn q3 @(17,39) 
SimTime:333	Move q0 (27,45)->(27,44) Move q3 (17,39)->(18,39) 
SimTime:334	Move q0 (27,44)->(27,43) 
SimTime:335	Turn q1 @(17,45) Move q0 (27,43)->(27,42) 
SimTime:336	Move q1 (17,45)->(16,45) Move q0 (27,42)->(27,41) 
SimTime:346	Turn q0 @(27,41) 
SimTime:347	Move q0 (27,41)->(26,41) 
SimTime:348	Move q0 (26,41)->(25,41) 
SimTime:349	Move q0 (25,41)->(24,41) 
SimTime:350	Move q0 (24,41)->(23,41) 
SimTime:351	Move q0 (23,41)->(22,41) 
SimTime:352	Move q0 (22,41)->(21,41) 
SimTime:353	Move q0 (21,41)->(20,41) 
SimTime:354	Move q0 (20,41)->(19,41) 
SimTime:355	Move q0 (19,41)->(18,41) 
SimTime:356	Move q0 (18,41)->(17,41) 
SimTime:366	Turn q0 @(17,41) 
SimTime:367	Move q0 (17,41)->(17,40) 
SimTime:368	Move q0 (17,40)->(17,39) 
SimTime:378	Turn q0 @(17,39) 
SimTime:379	Move q0 (17,39)->(18,39) 
SimTime:436	'cnot q2, q1' @(16,45) 		
SimTime:437	Move q1 (16,45)->(17,45) 
SimTime:447	Turn q1 @(17,45) 
SimTime:448	Move q1 (17,45)->(18,45) 
SimTime:479	'cnot q3, q0' @(18,39) 		
SimTime:480	Move q2 (16,45)->(17,45) Move q0 (18,39)->(17,39) 
SimTime:490	Turn q2 @(17,45) Turn q0 @(17,39) 
SimTime:491	Move q2 (17,45)->(17,44) Move q0 (17,39)->(16,39) 
SimTime:492	Move q2 (17,44)->(17,43) 
SimTime:493	Move q2 (17,43)->(17,42) 
SimTime:494	Move q2 (17,42)->(17,41) 
SimTime:495	Move q2 (17,41)->(17,40) 
SimTime:496	Move q2 (17,40)->(17,39) 
SimTime:506	Turn q2 @(17,39) 
SimTime:507	Move q2 (17,39)->(16,39) 
SimTime:548	'cnot q4, q1' @(18,45) 		
SimTime:607	'cnot q2, q0' @(16,39) 		
SimTime:608	Move q4 (18,45)->(17,45) Move q0 (16,39)->(17,39) 
SimTime:618	Turn q4 @(17,45) Turn q0 @(17,39) 
SimTime:619	Move q4 (17,45)->(16,45) Move q0 (17,39)->(17,40) 
SimTime:620	Move q0 (17,40)->(17,41) 
SimTime:621	Move q0 (17,41)->(17,42) 
SimTime:622	Move q0 (17,42)->(17,43) 
SimTime:623	Move q0 (17,43)->(17,44) 
SimTime:624	Move q0 (17,44)->(17,45) 
SimTime:634	Turn q0 @(17,45) 
SimTime:635	Move q0 (17,45)->(16,45) 
SimTime:735	'cnot q4, q0' @(16,45) 		

SimTime:1	Move q4 (16,45)->(17,45) Move q0 (16,45)->(17,45) 
SimTime:11	Turn q4 @(17,45) Turn q0 @(17,45) 
SimTime:12	
SimTime:13	
SimTime:23	Turn q4 @(17,47) Turn q0 @(17,47) 
SimTime:24	Move q4 (17,47)->(16,47) Move q0 (17,47)->(16,47) 
SimTime:124	'cnot q4, q0' @(16,47) 		
SimTime:125	Move q3 (18,39)->(17,39) Move q0 (16,47)->(17,47) 
SimTime:135	Turn q3 @(17,39) Turn q0 @(17,47) 
SimTime:136	Move q3 (17,39)->(17,40) Move q0 (17,47)->(17,46) 
SimTime:137	Move q3 (17,40)->(17,41) Move q0 (17,46)->(17,45) 
SimTime:138	Move q3 (17,41)->(17,42) 
SimTime:139	Move q3 (17,42)->(17,43) 
SimTime:140	Move q3 (17,43)->(17,44) 
SimTime:141	
SimTime:147	Turn q0 @(17,45) 
SimTime:148	Move q0 (17,45)->(16,45) 
SimTime:151	Turn q3 @(17,45) 
SimTime:152	Move q3 (17,45)->(16,45) 
SimTime:153	Move q4 (16,47)->(17,47) Move q1 (18,45)->(17,45) 
SimTime:163	Turn q4 @(17,47) Turn q1 @(17,45) 
SimTime:164	Move q4 (17,47)->(18,47) Move q1 (17,45)->(17,46) 
SimTime:165	Move q1 (17,46)->(17,47) 
SimTime:175	Turn q1 @(17,47) 
SimTime:176	Move q1 (17,47)->(18,47) 
SimTime:252	'cnot q3, q0' @(16,45) 		
SimTime:253	Move q0 (16,45)->(17,45) 
SimTime:263	Turn q0 @(17,45) 
SimTime:264	Move q0 (17,45)->(17,44) 
SimTime:265	Move q0 (17,44)->(17,43) 
SimTime:266	Move q0 (17,43)->(17,42) 
SimTime:267	Move q0 (17,42)->(17,41) 
SimTime:268	Move q0 (17,41)->(17,40) 
SimTime:269	Move q0 (17,40)->(17,39) 
SimTime:276	'cnot q4, q1' @(18,47) 		
SimTime:277	Move q3 (16,45)->(17,45) Move q1 (18,47)->(17,47) 
SimTime:279	Turn q0 @(17,39) 
SimTime:280	Move q0 (17,39)->(16,39) 
SimTime:287	Turn q1 @(17,47) Turn q3 @(17,45) 
SimTime:288	Move q1 (17,47)->(16,47) Move q3 (17,45)->(17,46) 
SimTime:289	Move q3 (17,46)->(17,47) 
SimTime:299	Turn q3 @(17,47) 
SimTime:300	Move q3 (17,47)->(16,47) 
SimTime:380	'cnot q2, q0' @(16,39) 		
SimTime:381	Move q0 (16,39)->(17,39) 
SimTime:391	Turn q0 @(17,39) 
SimTime:392	Move q0 (17,39)->(17,38) 
SimTime:393	Move q0 (17,38)->(17,37) 
SimTime:400	'cnot q3, q1' @(16,47) 		
SimTime:401	Move q2 (16,39)->(17,39) Move q1 (16,47)->(17,47) 
SimTime:403	Turn q0 @(17,37) 
SimTime:404	Move q0 (17,37)->(16,37) 
SimTime:411	Turn q1 @(17,47) Turn q2 @(17,39) 
SimTime:412	Move q1 (17,47)->(17,46) Move q2 (17,39)->(17,40) 
SimTime:413	Move q1 (17,46)->(17,45) Move q2 (17,40)->(17,41) 
SimTime:414	Move q2 (17,41)->(17,42) 'h q0' @(16,37) 		
SimTime:415	Move q2 (17,42)->(17,43) 
SimTime:416	Move q2 (17,43)->(17,44) 
SimTime:417	
SimTime:423	Turn q1 @(17,45) 
SimTime:424	Move q1 (17,45)->(16,45) 
SimTime:427	Turn q2 @(17,45) 
SimTime:428	Move q2 (17,45)->(16,45) 
SimTime:528	'cnot q2, q1' @(16,45) 		
SimTime:529	Move q4 (18,47)->(17,47) Move q2 (16,45)->(17,45) 
SimTime:539	Turn q4 @(17,47) Turn q2 @(17,45) 
SimTime:540	Move q2 (17,45)->(18,45) 
SimTime:541	Move q4 (17,46)->(17,45) 
SimTime:550	'h q1' @(16,45) 		
SimTime:551	Turn q4 @(17,45) 
SimTime:552	Move q4 (17,45)->(18,45) 
SimTime:652	'cnot q4, q2' @(18,45) 		
SimTime:653	Move q3 (16,47)->(17,47) Move q2 (18,45)->(17,45) 
SimTime:663	Turn q3 @(17,47) Turn q2 @(17,45) 
SimTime:664	Move q3 (17,47)->(18,47) Move q2 (17,45)->(17,46) 
SimTime:665	Move q2 (17,46)->(17,47) 
SimTime:674	'h q4' @(18,45) 		
SimTime:675	Turn q2 @(17,47) 
SimTime:676	Move q2 (17,47)->(18,47) 
SimTime:776	'cnot q3, q2' @(18,47) 		
SimTime:777	Move q2 (18,47)->(17,47) 
SimTime:787	Turn q2 @(17,47) 
SimTime:788	Move q2 (17,47)->(16,47) 
SimTime:798	'h q2' @(16,47) 		

SimTime:10	'h q2' @(16,47) 		'h q0' @(16,37) 		'h q1' @(16,45) 		'h q4' @(18,45) 		
SimTime:11	Move q3 (18,47)->(17,47) 
SimTime:21	Turn q3 @(17,47) 
SimTime:22	Move q3 (17,47)->(16,47) 
SimTime:122	'cnot q3, q2' @(16,47) 		
SimTime:123	Move q4 (18,45)->(17,45) Move q2 (16,47)->(17,47) 
SimTime:133	Turn q4 @(17,45) Turn q2 @(17,47) 
SimTime:134	Move q2 (17,47)->(18,47) 
SimTime:135	Move q4 (17,46)->(17,47) Move q3 (16,47)->(17,47) 
SimTime:145	Turn q4 @(17,47) Turn q3 @(17,47) 
SimTime:146	Move q4 (17,47)->(18,47) Move q3 (17,47)->(17,46) 
SimTime:147	Move q3 (17,46)->(17,45) 
SimTime:157	Turn q3 @(17,45) 
SimTime:158	Move q3 (17,45)->(16,45) 
SimTime:246	'cnot q4, q2' @(18,47) 		
SimTime:258	'cnot q3, q1' @(16,45) 		
SimTime:259	Move q2 (18,47)->(17,47) Move q1 (16,45)->(17,45) 
SimTime:269	Turn q2 @(17,47) Turn q1 @(17,45) 
SimTime:270	Move q2 (17,47)->(16,47) Move q1 (17,45)->(17,46) 
SimTime:271	Move q1 (17,46)->(17,47) Move q0 (16,37)->(17,37) Move q3 (16,45)->(17,45) 
SimTime:281	Turn q1 @(17,47) Turn q3 @(17,45) Turn q0 @(17,37) 
SimTime:282	Move q1 (17,47)->(16,47) Move q0 (17,37)->(17,38) Move q3 (17,45)->(17,44) 
SimTime:283	Move q0 (17,38)->(17,39) Move q3 (17,44)->(17,43) 
SimTime:284	Move q3 (17,43)->(17,42) 
SimTime:285	Move q3 (17,42)->(17,41) 
SimTime:286	Move q3 (17,41)->(17,40) 
SimTime:287	
SimTime:293	Turn q0 @(17,39) 
SimTime:294	Move q0 (17,39)->(16,39) 
SimTime:297	Turn q3 @(17,39) 
SimTime:298	Move q3 (17,39)->(16,39) 
SimTime:382	'cnot q2, q1' @(16,47) 		
SimTime:383	Move q1 (16,47)->(17,47) 
SimTime:393	Turn q1 @(17,47) 
SimTime:394	Move q1 (17,47)->(18,47) 
SimTime:398	'cnot q3, q0' @(16,39) 		
SimTime:399	Move q2 (16,47)->(17,47) Move q0 (16,39)->(17,39) 
SimTime:409	Turn q2 @(17,47) Turn q0 @(17,39) 
SimTime:410	Move q2 (17,47)->(17,46) Move q0 (17,39)->(17,40) 
SimTime:411	Move q2 (17,46)->(17,45) Move q0 (17,40)->(17,41) 
SimTime:412	Move q0 (17,41)->(17,42) 
SimTime:413	Move q0 (17,42)->(17,43) 
SimTime:414	Move q0 (17,43)->(17,44) 
SimTime:415	
SimTime:421	Turn q2 @(17,45) 
SimTime:422	Move q2 (17,45)->(16,45) 
SimTime:425	Turn q0 @(17,45) 
SimTime:426	Move q0 (17,45)->(16,45) 
SimTime:494	'cnot q4, q1' @(18,47) 		
SimTime:526	'cnot q2, q0' @(16,45) 		
SimTime:527	Move q4 (18,47)->(17,47) Move q0 (16,45)->(17,45) 
SimTime:537	Turn q4 @(17,47) Turn q0 @(17,45) 
SimTime:538	Move q4 (17,47)->(16,47) Move q0 (17,45)->(17,46) 
SimTime:539	Move q0 (17,46)->(17,47) 
SimTime:549	Turn q0 @(17,47) 
SimTime:550	Move q0 (17,47)->(16,47) 
SimTime:650	'cnot q4, q0' @(16,47) 		

SimTime:1	Move q4 (16,47)->(17,47) Move q0 (16,47)->(17,47) 
SimTime:11	Turn q4 @(17,47) Turn q0 @(17,47) 
SimTime:12	
SimTime:13	
SimTime:23	Turn q4 @(17,49) Turn q0 @(17,49) 
SimTime:24	Move q4 (17,49)->(16,49) Move q0 (17,49)->(16,49) 
SimTime:124	'cnot q4, q0' @(16,49) 		
SimTime:125	Move q3 (16,39)->(17,39) Move q0 (16,49)->(17,49) 
SimTime:135	Turn q3 @(17,39) Turn q0 @(17,49) 
SimTime:136	Move q3 (17,39)->(17,40) Move q0 (17,49)->(17,48) 
SimTime:137	Move q3 (17,40)->(17,41) Move q0 (17,48)->(17,47) 
SimTime:138	Move q3 (17,41)->(17,42) 
SimTime:139	Move q3 (17,42)->(17,43) 
SimTime:140	Move q3 (17,43)->(17,44) 
SimTime:141	
SimTime:142	
SimTime:143	
SimTime:147	Turn q0 @(17,47) 
SimTime:148	Move q0 (17,47)->(16,47) 
SimTime:153	Turn q3 @(17,47) 
SimTime:154	Move q3 (17,47)->(16,47) 
SimTime:155	Move q4 (16,49)->(17,49) Move q1 (18,47)->(17,47) 
SimTime:165	Turn q4 @(17,49) Turn q1 @(17,47) 
SimTime:166	Move q4 (17,49)->(18,49) Move q1 (17,47)->(17,48) 
SimTime:167	Move q1 (17,48)->(17,49) 
SimTime:177	Turn q1 @(17,49) 
SimTime:178	Move q1 (17,49)->(18,49) 
SimTime:254	'cnot q3, q0' @(16,47) 		
SimTime:255	Move q0 (16,47)->(17,47) 
SimTime:265	Turn q0 @(17,47) 
SimTime:266	Move q0 (17,47)->(17,46) 
SimTime:267	Move q0 (17,46)->(17,45) 
SimTime:277	Turn q0 @(17,45) 
SimTime:278	'cnot q4, q1' @(18,49) 		Move q0 (17,45)->(16,45) 
SimTime:279	Move q3 (16,47)->(17,47) Move q1 (18,49)->(17,49) 
SimTime:289	Turn q3 @(17,47) Turn q1 @(17,49) 
SimTime:290	Move q1 (17,49)->(16,49) 
SimTime:291	Move q3 (17,48)->(17,49) 
SimTime:301	Turn q3 @(17,49) 
SimTime:302	Move q3 (17,49)->(16,49) 
SimTime:378	'cnot q2, q0' @(16,45) 		
SimTime:379	Move q0 (16,45)->(17,45) 
SimTime:389	Turn q0 @(17,45) 
SimTime:390	Move q0 (17,45)->(17,46) 
SimTime:391	Move q0 (17,46)->(17,47) 
SimTime:401	Turn q0 @(17,47) 
SimTime:402	Move q0 (17,47)->(16,47) 'cnot q3, q1' @(16,49) 		
SimTime:403	Move q2 (16,45)->(17,45) Move q1 (16,49)->(17,49) 
SimTime:412	'h q0' @(16,47) 		
SimTime:413	Turn q1 @(17,49) Turn q2 @(17,45) 
SimTime:414	
SimTime:415	
SimTime:425	Turn q1 @(17,47) Turn q2 @(17,47) 
SimTime:426	Move q1 (17,47)->(18,47) Move q2 (17,47)->(18,47) 
SimTime:526	'cnot q2, q1' @(18,47) 		
SimTime:527	Move q2 (18,47)->(17,47) Move q1 (18,47)->(17,47) 
SimTime:537	Turn q2 @(17,47) Turn q1 @(17,47) 
SimTime:538	
SimTime:539	
SimTime:549	Turn q2 @(17,49) Turn q1 @(17,45) 
SimTime:550	Move q2 (17,49)->(18,49) Move q1 (17,45)->(18,45) 
SimTime:560	'h q1' @(18,45) 		
SimTime:650	'cnot q4, q2' @(18,49) 		
SimTime:651	Move q2 (18,49)->(17,49) Move q4 (18,49)->(17,49) 
SimTime:661	Turn q2 @(17,49) Turn q4 @(17,49) 
SimTime:662	Move q2 (17,49)->(16,49) Move q4 (17,49)->(17,48) 
SimTime:663	Move q4 (17,48)->(17,47) 
SimTime:673	Turn q4 @(17,47) 
SimTime:674	Move q4 (17,47)->(18,47) 
SimTime:684	'h q4' @(18,47) 		
SimTime:762	'cnot q3, q2' @(16,49) 		
SimTime:763	Move q2 (16,49)->(17,49) 
SimTime:773	Turn q2 @(17,49) 
SimTime:774	Move q2 (17,49)->(18,49) 
SimTime:784	'h q2' @(18,49) 		

SimTime:10	'h q2' @(18,49) 		'h q0' @(16,47) 		'h q1' @(18,45) 		'h q4' @(18,47) 		
SimTime:11	Move q3 (16,49)->(17,49) 
SimTime:21	Turn q3 @(17,49) 
SimTime:22	Move q3 (17,49)->(18,49) 
SimTime:122	'cnot q3, q2' @(18,49) 		
SimTime:123	Move q4 (18,47)->(17,47) Move q2 (18,49)->(17,49) 
SimTime:133	Turn q4 @(17,47) Turn q2 @(17,49) 
SimTime:134	Move q2 (17,49)->(16,49) 
SimTime:135	Move q4 (17,48)->(17,49) 
SimTime:145	Turn q4 @(17,49) 
SimTime:146	Move q4 (17,49)->(16,49) 
SimTime:147	Move q3 (18,49)->(17,49) Move q1 (18,45)->(17,45) 
SimTime:157	Turn q3 @(17,49) Turn q1 @(17,45) 
SimTime:158	
SimTime:159	
SimTime:169	Turn q3 @(17,47) Turn q1 @(17,47) 
SimTime:170	Move q3 (17,47)->(18,47) Move q1 (17,47)->(18,47) 
SimTime:246	'cnot q4, q2' @(16,49) 		
SimTime:270	'cnot q3, q1' @(18,47) 		
SimTime:271	Move q2 (16,49)->(17,49) Move q1 (18,47)->(17,47) 
SimTime:281	Turn q2 @(17,49) Turn q1 @(17,47) 
SimTime:282	Move q2 (17,49)->(18,49) Move q1 (17,47)->(17,48) 
SimTime:283	Move q1 (17,48)->(17,49) Move q3 (18,47)->(17,47) 
SimTime:293	Turn q1 @(17,49) Turn q3 @(17,47) 
SimTime:294	Move q1 (17,49)->(18,49) Move q3 (17,47)->(16,47) 
SimTime:394	'cnot q2, q1' @(18,49) 		'cnot q3, q0' @(16,47) 		
SimTime:395	Move q1 (18,49)->(17,49) 
SimTime:405	Turn q1 @(17,49) 
SimTime:406	Move q1 (17,49)->(16,49) 
SimTime:407	Move q2 (18,49)->(17,49) Move q0 (16,47)->(17,47) 
SimTime:417	Turn q2 @(17,49) Turn q0 @(17,47) 
SimTime:418	Move q0 (17,47)->(18,47) 
SimTime:419	Move q2 (17,48)->(17,47) 
SimTime:429	Turn q2 @(17,47) 
SimTime:430	Move q2 (17,47)->(18,47) 
SimTime:506	'cnot q4, q1' @(16,49) 		
SimTime:530	'cnot q2, q0' @(18,47) 		
SimTime:531	Move q4 (16,49)->(17,49) Move q0 (18,47)->(17,47) 
SimTime:541	Turn q4 @(17,49) Turn q0 @(17,47) 
SimTime:542	Move q4 (17,49)->(18,49) Move q0 (17,47)->(17,48) 
SimTime:543	Move q0 (17,48)->(17,49) 
SimTime:553	Turn q0 @(17,49) 
SimTime:554	Move q0 (17,49)->(18,49) 
SimTime:654	'cnot q4, q0' @(18,49) 		

SimTime:1	Move q4 (18,49)->(17,49) Move q0 (18,49)->(17,49) 
SimTime:11	Turn q4 @(17,49) Turn q0 @(17,49) 
SimTime:12	
SimTime:13	
SimTime:14	
SimTime:15	
SimTime:25	Turn q4 @(17,45) Turn q0 @(17,45) 
SimTime:26	Move q4 (17,45)->(18,45) Move q0 (17,45)->(18,45) 
SimTime:126	'cnot q4, q0' @(18,45) 		
SimTime:127	Move q3 (16,47)->(17,47) Move q0 (18,45)->(17,45) 
SimTime:137	Turn q3 @(17,47) Turn q0 @(17,45) 
SimTime:138	Move q0 (17,45)->(16,45) 
SimTime:139	Move q3 (17,46)->(17,45) 
SimTime:149	Turn q3 @(17,45) 
SimTime:150	Move q3 (17,45)->(16,45) 
SimTime:151	Move q4 (18,45)->(17,45) Move q1 (16,49)->(17,49) 
SimTime:161	Turn q4 @(17,45) Turn q1 @(17,49) 
SimTime:162	
SimTime:163	
SimTime:173	Turn q4 @(17,47) Turn q1 @(17,47) 
SimTime:174	Move q4 (17,47)->(16,47) Move q1 (17,47)->(16,47) 
SimTime:250	'cnot q3, q0' @(16,45) 		
SimTime:251	Move q2 (18,47)->(17,47) Move q0 (16,45)->(17,45) 
SimTime:261	Turn q2 @(17,47) Turn q0 @(17,45) 
SimTime:262	Move q0 (17,45)->(18,45) 
SimTime:263	Move q2 (17,46)->(17,45) 
SimTime:273	Turn q2 @(17,45) 
SimTime:274	'cnot q4, q1' @(16,47) 		Move q2 (17,45)->(18,45) 
SimTime:275	Move q1 (16,47)->(17,47) 
SimTime:285	Turn q1 @(17,47) 
SimTime:286	Move q1 (17,47)->(17,46) 
SimTime:287	Move q1 (17,46)->(17,45) 
SimTime:297	Turn q1 @(17,45) 
SimTime:298	Move q1 (17,45)->(16,45) 
SimTime:374	'cnot q2, q0' @(18,45) 		
SimTime:375	Move q0 (18,45)->(17,45) 
SimTime:385	Turn q0 @(17,45) 
SimTime:386	Move q0 (17,45)->(17,46) 
SimTime:387	Move q0 (17,46)->(17,47) 
SimTime:397	Turn q0 @(17,47) 
SimTime:398	Move q0 (17,47)->(18,47) 'cnot q3, q1' @(16,45) 		
SimTime:399	Move q1 (16,45)->(17,45) 
SimTime:408	'h q0' @(18,47) 		
SimTime:409	Turn q1 @(17,45) 
SimTime:410	Move q1 (17,45)->(18,45) 
SimTime:510	'cnot q2, q1' @(18,45) 		
SimTime:511	Move q2 (18,45)->(17,45) Move q1 (18,45)->(17,45) 
SimTime:521	Turn q2 @(17,45) Turn q1 @(17,45) 
SimTime:522	
SimTime:523	
SimTime:524	
SimTime:525	
SimTime:533	Turn q2 @(17,47) 
SimTime:534	Move q2 (17,47)->(16,47) 
SimTime:535	Turn q1 @(17,49) 
SimTime:536	Move q1 (17,49)->(18,49) 
SimTime:546	'h q1' @(18,49) 		
SimTime:634	'cnot q4, q2' @(16,47) 		
SimTime:635	Move q2 (16,47)->(17,47) Move q4 (16,47)->(17,47) 
SimTime:645	Turn q2 @(17,47) Turn q4 @(17,47) 
SimTime:646	
SimTime:647	
SimTime:657	Turn q2 @(17,45) Turn q4 @(17,49) 
SimTime:658	Move q2 (17,45)->(16,45) Move q4 (17,49)->(16,49) 
SimTime:668	'h q4' @(16,49) 		
SimTime:758	'cnot q3, q2' @(16,45) 		
SimTime:759	Move q2 (16,45)->(17,45) 
SimTime:769	Turn q2 @(17,45) 
SimTime:770	Move q2 (17,45)->(17,46) 
SimTime:771	Move q2 (17,46)->(17,47) 
SimTime:781	Turn q2 @(17,47) 
SimTime:782	Move q2 (17,47)->(16,47) 
SimTime:792	'h q2' @(16,47) 		
MVBF total iteration count: 14
------------------------------------
Execution latency: 650.0 us
QSPR runtime 170 ms
Done.

Developers
***********
Mohammad Javad Dousti <dousti@usc.edu>
Massoud Pedram <pedram@usc.edu>


Questions or Bugs?
***********
You may contact Mohammad Javad Dousti <dousti@usc.edu> for any questions you may have or bugs that you find.

Site
***********
http://atrak.usc.edu/~dousti/downloads/qspr/