§
    ¹³ÙgHG  ã                   ó<  — d Z ddlZddlZddlmZ ddlmZmZmZm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZmZmZmZmZm Z m!Z! ddl"m#Z# ddl$m%Z% ee&ee'         f         Z(dedede	eee(         f         fd„Z)dedede	ee         ee(         f         fd„Z*dee         de	ee         ee         f         fd„Z+dee         de j,        defd„Z-dee         dede.de!def
d„Z/ e%ddd¬¦  «        dee         dede.de!def
d„¦   «         Z0dS )z@Assemble function for converting a list of circuits into a qobj.é    N)Údefaultdict)ÚDictÚListÚOptionalÚTuple)Ú	RunConfig)Ú_assemble_instructions)ÚQuantumCircuit)ÚClbit)ÚQiskitError)ÚQasmQobjÚQobjExperimentHeaderÚQasmQobjInstructionÚQasmQobjExperimentConfigÚQasmQobjExperimentÚQasmQobjConfigÚQasmExperimentCalibrationsÚGateCalibrationÚPulseQobjInstructionÚPulseLibraryItemÚ
convertersÚ
QobjHeader)Úparallel_map)Údeprecate_funcÚcircuitÚ
run_configÚreturnc                 óÌ  ‡‡— | j         dk    rt          d| j         › d�¦  «        ‚d}d}g }g }g }g }| j        D ]`}|                     |j        |j        g¦  «         t          |j        ¦  «        D ]}	|                     |j        |	g¦  «         Œ||j        z  }Œa| j        D ]`}
|                     |
j        |
j        g¦  «         t          |
j        ¦  «        D ]}	|                     |
j        |	g¦  «         Œ||
j        z  }Œad„ t          | j	        ¦  «        D ¦   «         Šd„ t          | j
        ¦  «        D ¦   «         Š| j        }|€i }t          j        ¦   «         5  t          j        dt          d	¬
¦  «         t!          ||||||| j        t#          | j        ¦  «        |¬¦	  «	        }ddd¦  «         n# 1 swxY w Y   t          j        ¦   «         5  t          j        dt          d	¬
¦  «         t'          ||¬¦  «        }ddd¦  «         n# 1 swxY w Y   t)          | |¦  «        \  }}|r||_        t-          d„ | j        D ¦   «         ¦  «        }d}g }| j        D �]«}|j                             ¦   «         }|j	        }|j
        }|rˆfd„|D ¦   «         |_	        |r3ˆfd„|D ¦   «         |_        |j        dk    r|rˆfd„|D ¦   «         |_        t9          |d¦  «        �r|j        \  }}d}d}t=          |t>          ¦  «        rd‰|         z  }|dz  ‰|         z  }nK‰D ]H}||v rB|d‰|         z  z  }||tA          |¦  «         !                    |¦  «        z	  dz  ‰|         z  z  }ŒI||z   }t          j        ¦   «         5  t          j        dt          d	¬
¦  «         tE          dd|z  dd|z  |¬¦  «        }ddd¦  «         n# 1 swxY w Y   |                     |¦  «         ||_#        |dz  }|`|                     |¦  «         �Œ­t          j        ¦   «         5  t          j        dt          d	¬
¦  «         tI          |||¬¦  «        |fcddd¦  «         S # 1 swxY w Y   dS )aC  Assemble one circuit.

    Args:
        circuit: circuit to assemble
        run_config: configuration of the runtime environment

    Returns:
        One experiment for the QasmQobj, and pulse library for pulse gates (which could be None)

    Raises:
        QiskitError: when the circuit has unit other than 'dt'.
    Údtz&Unable to assemble circuit with unit 'z', which must be 'dt'.r   c                 ó   — i | ]\  }}||“Œ	S © r!   )Ú.0ÚidxÚqubits      úX/granary/edev/quantum/lib/python3.11/site-packages/qiskit/assembler/assemble_circuits.pyú
<dictcomp>z%_assemble_circuit.<locals>.<dictcomp>T   ó   € ÐLÐLÐL¡J C¨�U˜CÐLÐLÐLó    c                 ó   — i | ]\  }}||“Œ	S r!   r!   )r"   r#   Úclbits      r%   r&   z%_assemble_circuit.<locals>.<dictcomp>U   r'   r(   NÚignoreÚqiskit©ÚcategoryÚmodule)	Úqubit_labelsÚn_qubitsÚ
qreg_sizesÚclbit_labelsÚmemory_slotsÚ
creg_sizesÚnameÚglobal_phaseÚmetadata)r1   r4   c              3   óB   K  — | ]}t          |j        d d¦  «        V — ŒdS )Ú	conditionN)ÚgetattrÚ	operation)r"   Úinstructions     r%   ú	<genexpr>z$_assemble_circuit.<locals>.<genexpr>z   sB   è è € ð $ð $Ø>I��Ô% {°DÑ9Ô9ð$ð $ð $ð $ð $ð $r(   c                 ó    •— g | ]
}‰|         ‘ŒS r!   r!   )r"   r$   Úqubit_indicess     €r%   ú
<listcomp>z%_assemble_circuit.<locals>.<listcomp>‡   ó   ø€ Ð!JÐ!JÐ!J¸5 -°Ô"6Ð!JÐ!JÐ!Jr(   c                 ó    •— g | ]
}‰|         ‘ŒS r!   r!   ©r"   r*   Úclbit_indicess     €r%   rA   z%_assemble_circuit.<locals>.<listcomp>‰   rB   r(   Úmeasurec                 ó    •— g | ]
}‰|         ‘ŒS r!   r!   rD   s     €r%   rA   z%_assemble_circuit.<locals>.<listcomp>�   s   ø€ Ð'PÐ'PÐ'PÀ¨°eÔ(<Ð'PÐ'PÐ'Pr(   Ú
_conditioné   Úbfuncz0x%Xz==)r6   ÚmaskÚrelationÚvalÚregister)ÚinstructionsÚheaderÚconfig)%Úunitr   ÚqregsÚappendr6   ÚsizeÚrangeÚcregsÚ	enumerateÚqubitsÚclbitsr8   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningr   Úfloatr7   r   Ú_assemble_pulse_gatesÚcalibrationsÚanyÚdatar<   Ú	_assembleÚmemoryrN   ÚhasattrrH   Ú
isinstancer   ÚlistÚindexr   Úconditionalr   ) r   r   Ú
num_qubitsr4   r0   r3   r2   r5   ÚqregÚjÚcregr8   rP   rQ   ra   Úpulse_libraryÚis_conditional_experimentÚmax_conditional_idxrO   Ú
op_contextr=   ÚqargsÚcargsÚctrl_regÚctrl_valrK   rM   r*   Úconditional_reg_idxÚconversion_bfuncrE   r@   s                                  @@r%   Ú_assemble_circuitry   -   sl  øø€ ð „|�tÒÐÝØY°W´\ÐYÐYÐYñ
ô 
ð 	
ð
 €JØ€LØ€LØ€Là€JØ€JØ”ð  ð  ˆØ×Ò˜4œ9 d¤iÐ0Ñ1Ô1Ð1Ý�t”yÑ!Ô!ð 	0ð 	0ˆAØ×Ò ¤¨A Ñ/Ô/Ð/Ð/Ø�d”iÑˆ
ˆ
Ø”ð "ð "ˆØ×Ò˜4œ9 d¤iÐ0Ñ1Ô1Ð1Ý�t”yÑ!Ô!ð 	0ð 	0ˆAØ×Ò ¤¨A Ñ/Ô/Ð/Ð/Ø˜œ	Ñ!ˆˆàLÐLµ)¸G¼NÑ2KÔ2KÐLÑLÔL€MØLÐLµ)¸G¼NÑ2KÔ2KÐLÑLÔL€Mð Ô€HØÐØˆÝ	Ô	 Ñ	"Ô	"ð 
ð 
åÔ Õ3EÈhÐWÑWÔWÐWÝ%Ø%ØØ!Ø%Ø%Ø!Ø”Ý˜wÔ3Ñ4Ô4Øð

ñ 

ô 

ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ  
Ô	 Ñ	"Ô	"ð Zð ZåÔ Õ3EÈhÐWÑWÔWÐWÝ)°:ÈLÐYÑYÔYˆðZð Zð Zñ Zô Zð Zð Zð Zð Zð Zð Zøøøð Zð Zð Zð Zõ #8¸ÀÑ"LÔ"LÑ€L�-Øð +Ø*ˆÔõ !$ð $ð $ØMTÌ\ð$ñ $ô $ñ !ô !Ðð Ðà€LØ”lð 3)ñ 3)ˆ
Ø Ô*×4Ò4Ñ6Ô6ˆð Ô!ˆØÔ!ˆØð 	KØ!JÐ!JÐ!JÐ!JÀEÐ!JÑ!JÔ!JˆKÔØð 	QØ!JÐ!JÐ!JÐ!JÀEÐ!JÑ!JÔ!JˆKÔð Ô 9Ò,Ð,Ð1JÐ,Ø'PÐ'PÐ'PÐ'PÈ%Ð'PÑ'PÔ'P�Ô$õ
 �; Ñ-Ô-ñ 	'Ø!,Ô!7ÑˆH�hØˆDØˆCÝ˜(¥EÑ*Ô*ð 	Ø˜M¨(Ô3Ñ3�Ø !‘|¨°hÔ(?Ñ?��à*ð ð �EØ Ð(Ð(Ø  ]°5Ô%9Ñ 9Ñ9˜Ø ­T°(©^¬^×-AÒ-AÀ%Ñ-HÔ-HÑ!HÈAÑ MÐR_Ø!ôSñ  ñ ˜øð #/Ð1DÑ"DÐÝÔ(Ñ*Ô*ð 	ð 	åÔ'¨Õ;MÐV^Ð_Ñ_Ô_Ð_Ý#6Ø Ø $™Ø!Ø ™Ø0ð$ñ $ô $Ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ×ÒÐ 0Ñ1Ô1Ð1Ø&9ˆKÔ#Ø 1Ñ$Ðð Ð&à×Ò˜KÑ(Ô(Ð(Ñ(Ý	Ô	 Ñ	"Ô	"ð 
ð 
åÔ Õ3EÈhÐWÑWÔWÐWå¨LÀÐPVÐWÑWÔWØð
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
sI   ÅAF4Æ4F8Æ;F8Ç.HÈHÈHÎ7OÏO	ÏO	Ð0QÑQÑ Qc                 óÖ  — | j         sdS t          |d¦  «        sg |_        g }i }| j                              ¦   «         D ]š\  }}|                     ¦   «         D ]€\  \  }}}t	          |t          j        t          ¦  «        ||¦  «        \  }	}
|                     t          t          |¦  «        t          |¦  «        t          |¦  «        |	¦  «        ¦  «         Œ�Œ›t          |¬¦  «        |fS )aŒ  Assemble and return the circuit calibrations and associated pulse library, if there are any.
    The calibrations themselves may reference the pulse library which is returned as a dict.

    Args:
        circuit: circuit which may have pulse calibrations
        run_config: configuration of the runtime environment

    Returns:
        The calibrations and pulse library, if there are any
    )NNÚparametric_pulses©Úgates)ra   rf   r{   ÚitemsÚ_assemble_scheduler   ÚInstructionToQobjConverterr   rT   r   Ústrrh   r   )r   r   ra   ro   ÚgateÚcalsrY   ÚparamsÚscheduleÚqobj_instructionsÚ_s              r%   r`   r`   ½   s	  € ð Ôð ØˆzÝ�:Ð2Ñ3Ô3ð *Ø')ˆ
Ô$Ø€LØ€MØÔ*×0Ò0Ñ2Ô2ð 
ð 
‰
ˆˆdØ*.¯*ª*©,¬,ð 		ð 		Ñ&ÑˆV�V˜hÝ#5ØÝÔ5Õ6JÑKÔKØØñ	$ô $Ñ Ð˜qð ×ÒÝ¥ D¡	¤	­4°©<¬<½¸f¹¼ÐGXÑYÔYñô ð ð ð		õ &¨LÐ9Ñ9Ô9¸=ÐHÐHr(   Úexperimentsc                 ó¾  ‡ ‡— dt           t          t          t          t          t          f                  f         fˆ fd„}dt          t                   fˆˆ fd„}dt          t
                   ddfˆfd„}‰ rt          d„ ‰ D ¦   «         ¦  «        s‰ dfS  |¦   «         Š |¦   «         } |‰ ¦  «         ‰ D ]}|j        j        j	        s|j        `Œ‰ t          |¬¦  «        fS )	aÇ  Given a list of ``QasmQobjExperiment``s, each of which may have calibrations in their
    ``config``, collect common calibrations into a global ``QasmExperimentCalibrations``
    and delete them from their local experiments.

    Args:
        experiments: The list of OpenQASM experiments that are being assembled into one qobj

    Returns:
        The input experiments with modified calibrations, and common calibrations, if there
        are any
    r   c                  óÖ   •— t          t          ¦  «        } t          ‰¦  «        D ]C\  }}|j        j        j        D ],}| t          |¦  «                                      ||f¦  «         Œ-ŒD| S )z8Map each calibration to all experiments that contain it.)r   rh   rX   rQ   ra   r}   ÚhashrT   )Úexp_indicesÚexp_idxÚexpÚgate_calrˆ   s       €r%   Úindex_calibrationsz8_extract_common_calibrations.<locals>.index_calibrationsí   s{   ø€ å!¥$Ñ'Ô'ˆÝ% kÑ2Ô2ð 	Hð 	H‰LˆG�SØœJÔ3Ô9ð Hð H�à�D ™NœNÔ+×2Ò2°G¸XÐ3FÑGÔGÐGÐGðHð Ðr(   c                  óÀ   •— g } ‰                      ¦   «         D ]E\  }}t          |¦  «        t          ‰¦  «        k    r |d         \  }}|                      |¦  «         ŒF| S )z=If a gate calibration appears in all experiments, collect it.r   )r~   ÚlenrT   )Úcommon_calibrationsr‡   Ú
exps_w_calr�   rŒ   rˆ   s       €€r%   Úcollect_common_calibrationszA_extract_common_calibrations.<locals>.collect_common_calibrationsö   si   ø€ à ÐØ(×.Ò.Ñ0Ô0ð 	5ð 	5‰MˆAˆzÝ�:‰Œ¥# kÑ"2Ô"2Ò2Ð2Ø(¨œm‘��8Ø#×*Ò*¨8Ñ4Ô4Ð4øØ"Ð"r(   ÚexpsNc                 óà   •— ‰                      ¦   «         D ]W\  }}t          |¦  «        t          | ¦  «        k    r2|D ]/\  }}| |         j        j        j                             |¦  «         Œ0ŒXdS )z~For calibrations that appear in all experiments, remove them from the individual
        experiment's ``config.calibrations``.N)r~   r’   rQ   ra   r}   Úremove)r–   r‡   r”   r�   r�   rŒ   s        €r%   Úremove_common_gate_calibrationszE_extract_common_calibrations.<locals>.remove_common_gate_calibrationsÿ   s„   ø€ ð )×.Ò.Ñ0Ô0ð 	Mð 	M‰MˆAˆzÝ�:‰Œ¥# d¡)¤)Ò+Ð+Ø)3ð Mð MÑ%�G˜XØ˜”MÔ(Ô5Ô;×BÒBÀ8ÑLÔLÐLÐLøð	Mð 	Mr(   c              3   ó@   K  — | ]}t          |j        d ¦  «        V — ŒdS )ra   N)rf   rQ   )r"   rŽ   s     r%   r>   z/_extract_common_calibrations.<locals>.<genexpr>  s.   è è € Ð[Ð[È¥¨¬
°NÑ CÔ CÐ[Ð[Ð[Ð[Ð[Ð[r(   r|   )r   Úintr   r   r   r   ÚallrQ   ra   r}   r   )rˆ   r�   r•   r™   r“   rŽ   rŒ   s   `     @r%   Ú_extract_common_calibrationsr�   Þ   sN  øø€ ð¥¥S­$­uµS½/Ð5IÔ/JÔ*KÐ%KÔ Lð ð ð ð ð ð ð#­­oÔ)>ð #ð #ð #ð #ð #ð #ð #ðM­dÕ3EÔ.Fð MÈ4ð Mð Mð Mð Mð Mð Mð ð !�CÐ[Ð[È{Ð[Ñ[Ô[Ñ[Ô[ð !à˜DÐ Ð à$Ð$Ñ&Ô&€KØ5Ð5Ñ7Ô7ÐØ#Ð# KÑ0Ô0Ð0ð ð (ð (ˆØŒzÔ&Ô,ð 	(Ø”
Ð'øàÕ2Ð9LÐMÑMÔMÐMÐMr(   Úlo_converterc                 ó˜  ‡— ˆfd„t          |dg ¦  «        D ¦   «         }t          | ¦  «        dk    r0t          |¦  «        ddt          | ¦  «        fvrt          d¦  «        ‚t          |¦  «        dk    rÕt          | ¦  «        dk    r@t          | ¦  «        D ]/\  }}||         }|j        |j        _        |j        |j        _        Œ0n‚t          | ¦  «        dk    ro| d         }g } |D ]b}t          j        |j        ¦  «        }|j        |_        |j        |_        |  	                    t          |j        |j        |¬¦  «        ¦  «         Œc| S )Nc                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r!   r!   )r"   Úlo_dictrž   s     €r%   rA   z-_configure_experiment_los.<locals>.<listcomp>  s#   ø€ ÐaÐaÐa¨g�L�L Ñ)Ô)ÐaÐaÐar(   Úschedule_losrI   r   z¼Invalid 'schedule_los' setting specified. If specified, it should be either have a single entry to apply the same LOs for each experiment or have length equal to the number of experiments.)rP   rO   rQ   )r;   r’   r   rX   Úqubit_lo_freqrQ   Úmeas_lo_freqÚcopyÚdeepcopyrT   r   rP   rO   )rˆ   rž   r   Úfreq_configsr#   ÚexptÚfreq_configÚexpt_configs    `      r%   Ú_configure_experiment_losr«     s†  ø€ ð bÐaÐaÐa½ÀÈ^Ð]_Ñ9`Ô9`ÐaÑaÔa€Lå
ˆ;ÑÔ˜!ÒÐ¥ LÑ 1Ô 1¸!¸QÅÀKÑ@PÔ@PÐ9QÐ QÐ QÝð>ñ
ô 
ð 	
õ ˆ<ÑÔ˜1ÒÐÝˆ{ÑÔ˜aÒÐÝ& {Ñ3Ô3ð Dð D‘	��TØ*¨3Ô/�Ø,7Ô,E�”Ô)Ø+6Ô+C�”Ô(Ð(ðDõ �ÑÔ Ò"Ð"Ø˜q”>ˆDØˆKØ+ð ð �Ý"œm¨D¬KÑ8Ô8�Ø,7Ô,E�Ô)Ø+6Ô+C�Ô(Ø×"Ò"Ý&Ø#œ{¸Ô9JÐS^ðñ ô ñô ð ð ð Ðr(   ÚcircuitsÚqobj_idÚqobj_headerc                 ó¶  — t          j        ¦   «         5  t          j        dt          ¬¦  «         t	          t
          | |g¦  «        }d d d ¦  «         n# 1 swxY w Y   g }i }|D ]1\  }}|                     |¦  «         |r|                     |¦  «         Œ2t          |¦  «        \  }}	t          j        ¦   «         5  t          j        dt          d¬¦  «         t          j
        t          fi |                     ¦   «         ¤Ž}
d d d ¦  «         n# 1 swxY w Y   t          ||
|¦  «        }t          j        ¦   «         5  t          j        dt          d¬¦  «         t          ¦   «         }d d d ¦  «         n# 1 swxY w Y   |�rB|                     ¦   «         }|                     dd ¦  «         |                     dd ¦  «         d|v rd„ |d         D ¦   «         |d<   d	|v rd
„ |d	         D ¦   «         |d	<   |                     dg ¦  «        }t!          |¦  «        dk    rT|d         }|
                     |¦  «        }|rd„ |D ¦   «         |d<   |
                     |¦  «        }|rd„ |D ¦   «         |d	<   t          j        ¦   «         5  t          j        dt          d¬¦  «         t          di |¤Ž}d d d ¦  «         n# 1 swxY w Y   g }g }| D ]X}d}d}|j        D ]}||j        z  }Œ|j        D ]}||j        z  }Œ|                     |¦  «         |                     |¦  «         ŒYt-          |¦  «        |_        t-          |¦  «        |_        |r#d„ |                     ¦   «         D ¦   «         |_        |	r|	j        r|	|_        t          j        ¦   «         5  t          j        dt          d¬¦  «         t;          ||||¬¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr+   )r.   r,   r-   Úqubit_lo_rangeÚmeas_lo_ranger£   c                 ó   — g | ]}|d z  ‘ŒS ©g    eÍÍAr!   ©r"   Úfreqs     r%   rA   z&_assemble_circuits.<locals>.<listcomp>b  s)   € ð 1ð 1ð 1Ø#��s‘
ð1ð 1ð 1r(   r¤   c                 ó   — g | ]}|d z  ‘ŒS r³   r!   r´   s     r%   rA   z&_assemble_circuits.<locals>.<listcomp>f  s)   € ð 0ð 0ð 0Ø#��s‘
ð0ð 0ð 0r(   r¢   rI   r   c                 ó   — g | ]}|d z  ‘ŒS r³   r!   r´   s     r%   rA   z&_assemble_circuits.<locals>.<listcomp>q  s   € Ð4RÐ4RÐ4RÀD°T¸C±ZÐ4RÐ4RÐ4Rr(   c                 ó   — g | ]}|d z  ‘ŒS r³   r!   r´   s     r%   rA   z&_assemble_circuits.<locals>.<listcomp>t  s   € Ð3QÐ3QÐ3QÀ4°D¸3±JÐ3QÐ3QÐ3Qr(   c                 ó6   — g | ]\  }}t          ||¬ ¦  «        ‘ŒS ))r6   Úsamples)r   )r"   r6   rº   s      r%   rA   z&_assemble_circuits.<locals>.<listcomp>Š  s7   € ð %
ð %
ð %
Ù=J¸TÀ7Õ $°Ð8Ñ8Ô8ð%
ð %
ð %
r(   )r­   rQ   rˆ   rP   r!   )r[   r\   r]   r^   r   ry   rT   Úupdater�   r   ÚLoConfigConverterr   Úto_dictr«   r   Úpopr’   Úget_qubit_losÚget_meas_losrS   rU   rW   Úmaxr4   r1   r~   ro   r}   ra   r   )r¬   r   r­   r®   Úexperiments_and_pulse_libsrˆ   ro   rŽ   Úlibra   rž   Úqobj_configÚqobj_config_dictr¢   r¡   Úq_losÚm_losÚqubit_sizesÚmemory_slot_sizesÚcircrk   r4   rl   rn   s                           r%   Ú_assemble_circuitsrË   <  så  € õ 
Ô	 Ñ	"Ô	"ð ]ð ]õ 	Ô Õ3EÐFÑFÔFÐFÝ%1Õ2CÀXÐPZÈ|Ñ%\Ô%\Ð"ð	]ð ]ð ]ñ ]ô ]ð ]ð ]ð ]ð ]ð ]ð ]øøøð ]ð ]ð ]ð ]ð
 €KØ€MØ.ð &ð &‰ˆˆSØ×Ò˜3ÑÔÐØð 	&Ø× Ò  Ñ%Ô%Ð%øõ !=¸[Ñ IÔ IÑ€K�õ 
Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ Õ3EÈhÐWÑWÔWÐWÝ!Ô3Ý$ð
ð 
Ø(2×(:Ò(:Ñ(<Ô(<ð
ð 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ
 ,¨K¸ÀzÑRÔR€Kå	Ô	 Ñ	"Ô	"ð 'ð 'ÝÔ Õ3EÈhÐWÑWÔWÐWÝ$Ñ&Ô&ˆð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð ñ  =Ø%×-Ò-Ñ/Ô/Ðð 	×ÒÐ-¨tÑ4Ô4Ð4Ø×Ò˜_¨dÑ3Ô3Ð3ð Ð.Ð.Ð.ð1ð 1Ø'7¸Ô'Hð1ñ 1ô 1Ð˜_Ñ-ð Ð-Ð-Ð-ð0ð 0Ø'7¸Ô'Gð0ñ 0ô 0Ð˜^Ñ,ð
 (×+Ò+¨N¸BÑ?Ô?ˆÝˆ|ÑÔ Ò!Ð!Ø" 1”oˆGØ ×.Ò.¨wÑ7Ô7ˆEàð SØ4RÐ4RÈEÐ4RÑ4RÔ4RÐ  Ñ1Ø ×-Ò-¨gÑ6Ô6ˆEØð RØ3QÐ3QÈ5Ð3QÑ3QÔ3QÐ  Ñ0åÔ$Ñ&Ô&ð 	=ð 	=åÔ# HÕ7IÐRZÐ[Ñ[Ô[Ð[Ý(Ð<Ð<Ð+;Ð<Ð<ˆKð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð
 €KØÐØð /ð /ˆØˆ
ØˆØ”Jð 	$ð 	$ˆDØ˜$œ)Ñ#ˆJˆJØ”Jð 	&ð 	&ˆDØ˜DœIÑ%ˆLˆLØ×Ò˜:Ñ&Ô&Ð&Ø× Ò  Ñ.Ô.Ð.Ð.Ý"Ð#4Ñ5Ô5€KÔÝ˜{Ñ+Ô+€KÔàð 
ð%
ð %
ØN[×NaÒNaÑNcÔNcð%
ñ %
ô %
ˆÔ!ð ð 0˜Ô*ð 0Ø#/ˆÔ Ý	Ô	 Ñ	"Ô	"ð 
ð 
åÔ Õ3EÈhÐWÑWÔWÐWÝØ K¸[ÐQ\ð
ñ 
ô 
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
sZ   ”3AÁAÁAÂ;ADÄDÄDÄ<+E3Å3E7Å:E7Ê)J8Ê8J<Ê?J<Î/OÏOÏOz1.2zin the 2.0 releasezÿThe `Qobj` class and related functionality are part of the deprecated `BackendV1` workflow,  and no longer necessary for `BackendV2`. If a user workflow requires `Qobj` it likely relies on deprecated functionality and should be updated to use `BackendV2`.)ÚsinceÚremoval_timelineÚadditional_msgc                 ó&   — t          | |||¦  «        S )a“  Assembles a list of circuits into a qobj that can be run on the backend.

    Args:
        circuits: circuit(s) to assemble
        run_config: configuration of the runtime environment
        qobj_id: identifier for the generated qobj
        qobj_header: header to pass to the results

    Returns:
        The qobj to be run on the backends

    Examples:

        .. code-block:: python

            from qiskit.circuit import QuantumRegister, ClassicalRegister, QuantumCircuit
            from qiskit.assembler import assemble_circuits
            from qiskit.assembler.run_config import RunConfig
            # Build a circuit to convert into a Qobj
            q = QuantumRegister(2)
            c = ClassicalRegister(2)
            qc = QuantumCircuit(q, c)
            qc.h(q[0])
            qc.cx(q[0], q[1])
            qc.measure(q, c)
            # Assemble a Qobj from the input circuit
            qobj = assemble_circuits(circuits=[qc],
                                     qobj_id="custom-id",
                                     qobj_header=[],
                                     run_config=RunConfig(shots=2000, memory=True, init_qubits=True))
    )rË   )r¬   r   r­   r®   s       r%   Úassemble_circuitsrÐ   ˜  s   € õV ˜h¨
°G¸[ÑIÔIÐIr(   )1Ú__doc__r¥   r[   Úcollectionsr   Útypingr   r   r   r   Úqiskit.assembler.run_configr   Ú#qiskit.assembler.assemble_schedulesr	   r   Úqiskit.circuitr
   Ú qiskit.circuit.classicalregisterr   Úqiskit.exceptionsr   Úqiskit.qobjr   r   r   r   r   r   r   r   r   r   r   r   Úqiskit.utils.parallelr   Úqiskit.utilsr   r�   ÚcomplexÚPulseLibraryry   r`   r�   r¼   r«   r›   rË   rÐ   r!   r(   r%   ú<module>rÞ      sO  ðð GÐ FØ €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø \Ð \Ð \Ð \Ð \Ð \Ø )Ð )Ð )Ð )Ð )Ð )Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð �C˜˜gœÐ&Ô'€ðM
ØðM
Ø)2ðM
à
Ð˜x¨Ô5Ð5Ô6ðM
ð M
ð M
ð M
ð`IØðIØ)2ðIà
ˆ8Ð.Ô/°¸,Ô1GÐGÔHðIð Ið Ið IðB6NØÐ(Ô)ð6Nà
ˆ4Ð"Ô# XÐ.HÔ%IÐIÔJð6Nð 6Nð 6Nð 6Nðr"ØÐ(Ô)ð"àÔ.ð"ð ð"ð "ð "ð "ðJY
Ø�>Ô"ðY
Ø09ðY
ØDGðY
ØV`ðY
àðY
ð Y
ð Y
ð Y
ðx €Ø
Ø)ððñ ô ð#JØ�>Ô"ð#JØ09ð#JØDGð#JØV`ð#Jàð#Jð #Jð #Jñô ð#Jð #Jð #Jr(   