§
    ¹³ÙgU  ã                   ó*   — d Z ddlmZ ddlmZ dd„ZdS )z2Helper function for converting a dag to a circuit.é    )ÚQuantumCircuit)Údag_to_circuitTc                 óì  — | j         pd}t          | |¦  «        }t          | j        | j        g| j                             ¦   «         ¢| j                             ¦   «         ¢R || j        |  	                    ¦   «         |  
                    ¦   «         dœŽ}|                      ¦   «         D ]}|                     |¦  «         Œ| j        |_        | j        |_        ||_        | j        |_        | j        |_        |S )añ  Build a ``QuantumCircuit`` object from a ``DAGCircuit``.

    Args:
        dag (DAGCircuit): the input dag.
        copy_operations (bool): Deep copy the operation objects
            in the :class:`~.DAGCircuit` for the output :class:`~.QuantumCircuit`.
            This should only be set to ``False`` if the input :class:`~.DAGCircuit`
            will not be used anymore as the operations in the output
            :class:`~.QuantumCircuit` will be shared instances and
            modifications to operations in the :class:`~.DAGCircuit` will
            be reflected in the :class:`~.QuantumCircuit` (and vice versa).

    Return:
        QuantumCircuit: the circuit representing the input dag.

    Example:
        .. plot::
           :alt: Circuit diagram output by the previous code.
           :include-source:

           from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
           from qiskit.dagcircuit import DAGCircuit
           from qiskit.converters import circuit_to_dag
           from qiskit.circuit.library.standard_gates import CHGate, U2Gate, CXGate
           from qiskit.converters import dag_to_circuit

           q = QuantumRegister(3, 'q')
           c = ClassicalRegister(3, 'c')
           circ = QuantumCircuit(q, c)
           circ.h(q[0])
           circ.cx(q[0], q[1])
           circ.measure(q[0], c[0])
           circ.rz(0.5, q[1]).c_if(c, 2)
           dag = circuit_to_dag(circ)
           circuit = dag_to_circuit(dag)
           circuit.draw('mpl')
    N)ÚnameÚglobal_phaseÚinputsÚcaptures)r   Údag_to_circuit_rsr   ÚqubitsÚclbitsÚqregsÚvaluesÚcregsr   Úiter_input_varsÚiter_captured_varsÚiter_declared_varsÚadd_uninitialized_varÚmetadataÚ_calibrations_propÚ_dataÚdurationÚ	_durationÚunitÚ_unit)ÚdagÚcopy_operationsr   Úcircuit_dataÚcircuitÚvars         úV/granary/edev/quantum/lib/python3.11/site-packages/qiskit/converters/dag_to_circuit.pyr   r      s	  € ðN Œ8Ð�t€Då$ S¨/Ñ:Ô:€LÝØŒ
ØŒ
ð	ð 
Œ×	Ò	Ñ	Ô	ð	ð 
Œ×	Ò	Ñ	Ô	ð		ð 	ð
 ØÔ%Ø×"Ò"Ñ$Ô$Ø×'Ò'Ñ)Ô)ð	ð 	ð 	€Gð ×%Ò%Ñ'Ô'ð +ð +ˆØ×%Ò% cÑ*Ô*Ð*Ð*Ø”|€GÔØ!$Ô!7€GÔà €G„Màœ€GÔØ”H€G„MØ€Nó    N)T)Ú__doc__Úqiskit.circuitr   Úqiskit._accelerate.convertersr   r
   © r!   r    ú<module>r&      sO   ðð 9Ð 8à )Ð )Ð )Ð )Ð )Ð )Ø MÐ MÐ MÐ MÐ MÐ Mð=ð =ð =ð =ð =ð =r!   