{"payload":{"allShortcutsEnabled":false,"fileTree":{"qiskit/transpiler/passes/routing":{"items":[{"name":"algorithms","path":"qiskit/transpiler/passes/routing/algorithms","contentType":"directory"},{"name":"commuting_2q_gate_routing","path":"qiskit/transpiler/passes/routing/commuting_2q_gate_routing","contentType":"directory"},{"name":"__init__.py","path":"qiskit/transpiler/passes/routing/__init__.py","contentType":"file"},{"name":"basic_swap.py","path":"qiskit/transpiler/passes/routing/basic_swap.py","contentType":"file"},{"name":"layout_transformation.py","path":"qiskit/transpiler/passes/routing/layout_transformation.py","contentType":"file"},{"name":"lookahead_swap.py","path":"qiskit/transpiler/passes/routing/lookahead_swap.py","contentType":"file"},{"name":"sabre_swap.py","path":"qiskit/transpiler/passes/routing/sabre_swap.py","contentType":"file"},{"name":"stochastic_swap.py","path":"qiskit/transpiler/passes/routing/stochastic_swap.py","contentType":"file"},{"name":"utils.py","path":"qiskit/transpiler/passes/routing/utils.py","contentType":"file"}],"totalCount":9},"qiskit/transpiler/passes":{"items":[{"name":"analysis","path":"qiskit/transpiler/passes/analysis","contentType":"directory"},{"name":"basis","path":"qiskit/transpiler/passes/basis","contentType":"directory"},{"name":"calibration","path":"qiskit/transpiler/passes/calibration","contentType":"directory"},{"name":"layout","path":"qiskit/transpiler/passes/layout","contentType":"directory"},{"name":"optimization","path":"qiskit/transpiler/passes/optimization","contentType":"directory"},{"name":"routing","path":"qiskit/transpiler/passes/routing","contentType":"directory"},{"name":"scheduling","path":"qiskit/transpiler/passes/scheduling","contentType":"directory"},{"name":"synthesis","path":"qiskit/transpiler/passes/synthesis","contentType":"directory"},{"name":"utils","path":"qiskit/transpiler/passes/utils","contentType":"directory"},{"name":"__init__.py","path":"qiskit/transpiler/passes/__init__.py","contentType":"file"}],"totalCount":10},"qiskit/transpiler":{"items":[{"name":"passes","path":"qiskit/transpiler/passes","contentType":"directory"},{"name":"preset_passmanagers","path":"qiskit/transpiler/preset_passmanagers","contentType":"directory"},{"name":"__init__.py","path":"qiskit/transpiler/__init__.py","contentType":"file"},{"name":"basepasses.py","path":"qiskit/transpiler/basepasses.py","contentType":"file"},{"name":"coupling.py","path":"qiskit/transpiler/coupling.py","contentType":"file"},{"name":"exceptions.py","path":"qiskit/transpiler/exceptions.py","contentType":"file"},{"name":"instruction_durations.py","path":"qiskit/transpiler/instruction_durations.py","contentType":"file"},{"name":"layout.py","path":"qiskit/transpiler/layout.py","contentType":"file"},{"name":"passmanager.py","path":"qiskit/transpiler/passmanager.py","contentType":"file"},{"name":"passmanager_config.py","path":"qiskit/transpiler/passmanager_config.py","contentType":"file"},{"name":"target.py","path":"qiskit/transpiler/target.py","contentType":"file"},{"name":"timing_constraints.py","path":"qiskit/transpiler/timing_constraints.py","contentType":"file"}],"totalCount":12},"qiskit":{"items":[{"name":"assembler","path":"qiskit/assembler","contentType":"directory"},{"name":"circuit","path":"qiskit/circuit","contentType":"directory"},{"name":"compiler","path":"qiskit/compiler","contentType":"directory"},{"name":"converters","path":"qiskit/converters","contentType":"directory"},{"name":"dagcircuit","path":"qiskit/dagcircuit","contentType":"directory"},{"name":"passmanager","path":"qiskit/passmanager","contentType":"directory"},{"name":"primitives","path":"qiskit/primitives","contentType":"directory"},{"name":"providers","path":"qiskit/providers","contentType":"directory"},{"name":"pulse","path":"qiskit/pulse","contentType":"directory"},{"name":"qasm","path":"qiskit/qasm","contentType":"directory"},{"name":"qasm2","path":"qiskit/qasm2","contentType":"directory"},{"name":"qasm3","path":"qiskit/qasm3","contentType":"directory"},{"name":"qobj","path":"qiskit/qobj","contentType":"directory"},{"name":"qpy","path":"qiskit/qpy","contentType":"directory"},{"name":"quantum_info","path":"qiskit/quantum_info","contentType":"directory"},{"name":"result","path":"qiskit/result","contentType":"directory"},{"name":"scheduler","path":"qiskit/scheduler","contentType":"directory"},{"name":"synthesis","path":"qiskit/synthesis","contentType":"directory"},{"name":"transpiler","path":"qiskit/transpiler","contentType":"directory"},{"name":"utils","path":"qiskit/utils","contentType":"directory"},{"name":"visualization","path":"qiskit/visualization","contentType":"directory"},{"name":"VERSION.txt","path":"qiskit/VERSION.txt","contentType":"file"},{"name":"__init__.py","path":"qiskit/__init__.py","contentType":"file"},{"name":"exceptions.py","path":"qiskit/exceptions.py","contentType":"file"},{"name":"user_config.py","path":"qiskit/user_config.py","contentType":"file"},{"name":"version.py","path":"qiskit/version.py","contentType":"file"}],"totalCount":26},"":{"items":[{"name":".azure","path":".azure","contentType":"directory"},{"name":".binder","path":".binder","contentType":"directory"},{"name":".cargo","path":".cargo","contentType":"directory"},{"name":".github","path":".github","contentType":"directory"},{"name":"crates","path":"crates","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":"examples","path":"examples","contentType":"directory"},{"name":"qiskit","path":"qiskit","contentType":"directory"},{"name":"releasenotes","path":"releasenotes","contentType":"directory"},{"name":"test","path":"test","contentType":"directory"},{"name":"tools","path":"tools","contentType":"directory"},{"name":".editorconfig","path":".editorconfig","contentType":"file"},{"name":".git-blame-ignore-revs","path":".git-blame-ignore-revs","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".local-spellings","path":".local-spellings","contentType":"file"},{"name":".mailmap","path":".mailmap","contentType":"file"},{"name":".mergify.yml","path":".mergify.yml","contentType":"file"},{"name":".stestr.conf","path":".stestr.conf","contentType":"file"},{"name":"CITATION.bib","path":"CITATION.bib","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"Cargo.lock","path":"Cargo.lock","contentType":"file"},{"name":"Cargo.toml","path":"Cargo.toml","contentType":"file"},{"name":"DEPRECATION.md","path":"DEPRECATION.md","contentType":"file"},{"name":"LICENSE.txt","path":"LICENSE.txt","contentType":"file"},{"name":"MAINTAINING.md","path":"MAINTAINING.md","contentType":"file"},{"name":"MANIFEST.in","path":"MANIFEST.in","contentType":"file"},{"name":"Makefile","path":"Makefile","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"SECURITY.md","path":"SECURITY.md","contentType":"file"},{"name":"asv.conf.json","path":"asv.conf.json","contentType":"file"},{"name":"azure-pipelines.yml","path":"azure-pipelines.yml","contentType":"file"},{"name":"constraints.txt","path":"constraints.txt","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"qiskit_bot.yaml","path":"qiskit_bot.yaml","contentType":"file"},{"name":"requirements-dev.txt","path":"requirements-dev.txt","contentType":"file"},{"name":"requirements-optional.txt","path":"requirements-optional.txt","contentType":"file"},{"name":"requirements.txt","path":"requirements.txt","contentType":"file"},{"name":"rust-toolchain.toml","path":"rust-toolchain.toml","contentType":"file"},{"name":"setup.py","path":"setup.py","contentType":"file"},{"name":"tox.ini","path":"tox.ini","contentType":"file"}],"totalCount":41}},"fileTreeProcessingTime":12.821004,"foldersToFetch":[],"repo":{"id":83821669,"defaultBranch":"main","name":"qiskit","ownerLogin":"Qiskit","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-03-03T17:02:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/30696987?v=4","public":true,"private":false,"isOrgOwned":true},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"main","listCacheKey":"v0:1710785011.0","canEdit":false,"refType":"branch","currentOid":"43381ae1b159c01b55159d2dc1e8a65970b72746"},"path":"qiskit/transpiler/passes/routing/lookahead_swap.py","currentUser":null,"blob":{"rawLines":["# This code is part of Qiskit.","#","# (C) Copyright IBM 2017, 2018.","#","# This code is licensed under the Apache License, Version 2.0. You may","# obtain a copy of this license in the LICENSE.txt file in the root directory","# of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.","#","# Any modifications or derivative works of this code must retain this","# copyright notice, and modified files need to carry a notice indicating","# that they have been altered from the originals.","","\"\"\"Map input circuit onto a backend topology via insertion of SWAPs.\"\"\"","","import collections","import copy","import logging","import math","","from qiskit.circuit.library.standard_gates import SwapGate","from qiskit.transpiler.basepasses import TransformationPass","from qiskit.transpiler.exceptions import TranspilerError","from qiskit.transpiler.layout import Layout","from qiskit.dagcircuit import DAGOpNode","from qiskit.transpiler.target import Target","from qiskit.transpiler.passes.layout import disjoint_utils","","logger = logging.getLogger(__name__)","","","_Step = collections.namedtuple(\"_Step\", (\"state\", \"swaps_added\", \"gates_mapped\", \"gates_remaining\"))","\"\"\"Describes one possible step in the lookahead process.","","The fields are:",""," state (_SystemState): The current state of the system, including its virtual-to-physical layout."," swaps_added (list): List of qargs of swap gates introduced."," gates_mapped (list): Gates that were mapped, including added SWAPs."," gates_remaining (list): Gates that could not be mapped.","\"\"\"","","_SystemState = collections.namedtuple("," \"_SystemState\","," (\"layout\", \"coupling_map\", \"register\", \"swaps\"),"," # The None default applies to the right-most element, i.e. `swaps`."," defaults=(None,),",")","","","class LookaheadSwap(TransformationPass):"," \"\"\"Map input circuit onto a backend topology via insertion of SWAPs.",""," Implementation of Sven Jandura's swap mapper submission for the 2018 Qiskit"," Developer Challenge, adapted to integrate into the transpiler architecture.",""," The role of the swapper pass is to modify the starting circuit to be compatible"," with the target device's topology (the set of two-qubit gates available on the"," hardware.) To do this, the pass will insert SWAP gates to relocate the virtual"," qubits for each upcoming gate onto a set of coupled physical qubits. However, as"," SWAP gates are particularly lossy, the goal is to accomplish this remapping while"," introducing the fewest possible additional SWAPs.",""," This algorithm searches through the available combinations of SWAP gates by means"," of a narrowed best first/beam search, described as follows:",""," - Start with a layout of virtual qubits onto physical qubits."," - Find any gates in the input circuit which can be performed with the current"," layout and mark them as mapped."," - For all possible SWAP gates, calculate the layout that would result from their"," application and rank them according to the distance of the resulting layout"," over upcoming gates (see _calc_layout_distance.)"," - For the four (search_width) highest-ranking SWAPs, repeat the above process on"," the layout that would be generated if they were applied."," - Repeat this process down to a depth of four (search_depth) SWAPs away from the"," initial layout, for a total of 256 (search_width^search_depth) prospective"," layouts."," - Choose the layout which maximizes the number of two-qubit which could be"," performed. Add its mapped gates, including the SWAPs generated, to the"," output circuit."," - Repeat the above until all gates from the initial circuit are mapped.",""," For more details on the algorithm, see Sven's blog post:"," https://medium.com/qiskit/improving-a-quantum-compiler-48410d7a7084"," \"\"\"",""," def __init__(self, coupling_map, search_depth=4, search_width=4, fake_run=False):"," \"\"\"LookaheadSwap initializer.",""," Args:"," coupling_map (Union[CouplingMap, Target]): CouplingMap of the target backend."," search_depth (int): lookahead tree depth when ranking best SWAP options."," search_width (int): lookahead tree width when ranking best SWAP options."," fake_run (bool): if true, it will only pretend to do routing, i.e., no"," swap is effectively added."," \"\"\"",""," super().__init__()"," if isinstance(coupling_map, Target):"," self.target = coupling_map"," self.coupling_map = self.target.build_coupling_map()"," else:"," self.target = None"," self.coupling_map = coupling_map"," self.search_depth = search_depth"," self.search_width = search_width"," self.fake_run = fake_run",""," def run(self, dag):"," \"\"\"Run the LookaheadSwap pass on `dag`.",""," Args:"," dag (DAGCircuit): the directed acyclic graph to be mapped"," Returns:"," DAGCircuit: A dag mapped to be compatible with the coupling_map in"," the property_set."," Raises:"," TranspilerError: if the coupling map or the layout are not"," compatible with the DAG, or if the coupling_map=None"," \"\"\"",""," if self.coupling_map is None:"," raise TranspilerError(\"LookaheadSwap cannot run with coupling_map=None\")",""," if len(dag.qregs) != 1 or dag.qregs.get(\"q\", None) is None:"," raise TranspilerError(\"Lookahead swap runs on physical circuits only\")",""," number_of_available_qubits = len(self.coupling_map.physical_qubits)"," if len(dag.qubits) > number_of_available_qubits:"," raise TranspilerError("," f\"The number of DAG qubits ({len(dag.qubits)}) is greater than the number of \""," f\"available device qubits ({number_of_available_qubits}).\""," )"," disjoint_utils.require_layout_isolated_to_component("," dag, self.coupling_map if self.target is None else self.target"," )",""," register = dag.qregs[\"q\"]"," current_state = _SystemState("," Layout.generate_trivial_layout(register), self.coupling_map, register"," )",""," mapped_gates = []"," gates_remaining = list(dag.serial_layers())",""," while gates_remaining:"," logger.debug(\"Top-level routing step: %d gates remaining.\", len(gates_remaining))",""," best_step = _search_forward_n_swaps("," current_state,"," gates_remaining,"," self.search_depth,"," self.search_width,"," )",""," if best_step is None:"," raise TranspilerError("," \"Lookahead failed to find a swap which mapped gates or improved layout score.\""," )",""," logger.debug("," \"Found best step: mapped %d gates. Added swaps: %s.\","," len(best_step.gates_mapped),"," best_step.swaps_added,"," )",""," current_state = best_step.state"," gates_mapped = best_step.gates_mapped"," gates_remaining = best_step.gates_remaining",""," mapped_gates.extend(gates_mapped)",""," self.property_set[\"final_layout\"] = current_state.layout"," if self.fake_run:"," return dag",""," # Preserve input DAG's name, regs, wire_map, etc. but replace the graph."," mapped_dag = dag.copy_empty_like()"," for node in mapped_gates:"," mapped_dag.apply_operation_back(node.op, node.qargs, node.cargs, check=False)",""," return mapped_dag","","","def _search_forward_n_swaps(state, gates, depth, width):"," \"\"\"Search for SWAPs which allow for application of largest number of gates.",""," Args:"," state (_SystemState): The ``namedtuple`` collection containing the state of the physical"," system. This includes the current layout, the coupling map, the canonical register and"," the possible swaps available."," gates (list): Gates to be mapped."," depth (int): Number of SWAP layers to search before choosing a result."," width (int): Number of SWAPs to consider at each layer."," Returns:"," Optional(_Step): Describes the solution step found. If ``None``, no swaps leading to an"," improvement were found."," \"\"\""," if state.swaps is None:"," # Include symmetric couplings (e.g [0,1] and [1,0]) as one swap."," state = state._replace("," swaps={((a, b) if a < b else (b, a)) for a, b in state.coupling_map.get_edges()}"," )"," gates_mapped, gates_remaining = _map_free_gates(state, gates)"," base_step = _Step(state, [], gates_mapped, gates_remaining)",""," if not gates_remaining or depth == 0:"," return base_step",""," ranked_swaps = sorted("," (_score_state_with_swap(swap, state, gates) for swap in state.swaps),"," key=lambda x: x[0],"," )"," logger.debug("," \"At depth %d, ranked candidate swaps: %s...\","," depth,"," [(swap, score) for score, swap, _ in ranked_swaps[: width * 2]],"," )",""," best_swap, best_step, best_score = None, None, -math.inf"," for rank, (_, swap, new_state) in enumerate(ranked_swaps):"," next_step = _search_forward_n_swaps(new_state, gates_remaining, depth - 1, width)",""," if next_step is None:"," continue",""," next_score = _score_step(next_step)"," # ranked_swaps already sorted by distance, so distance is the tie-breaker."," if next_score > best_score:"," logger.debug("," \"At depth %d, updating best step: %s (score: %f).\","," depth,"," [swap] + next_step.swaps_added,"," next_score,"," )"," best_swap, best_step, best_score = swap, next_step, next_score",""," if ("," rank >= min(width, len(ranked_swaps) - 1)"," and best_step is not None"," and ("," len(best_step.gates_mapped) > depth"," or len(best_step.gates_remaining) < len(gates_remaining)"," or ("," _calc_layout_distance(best_step.gates_remaining, best_step.state)"," < _calc_layout_distance(gates_remaining, new_state)"," )"," )"," ):"," # Once we've examined either $WIDTH swaps, or all available swaps,"," # return the best-scoring swap provided it leads to an improvement"," # in either the number of gates mapped, number of gates left to be"," # mapped, or in the score of the ending layout."," break"," else:"," return None",""," best_swap_gate = _swap_ops_from_edge(best_swap, state)"," out = _Step("," best_step.state,"," [best_swap] + best_step.swaps_added,"," gates_mapped + best_swap_gate + best_step.gates_mapped,"," best_step.gates_remaining,"," )"," logger.debug(\"At depth %d, best_swap set: %s.\", depth, out.swaps_added)"," return out","","","def _map_free_gates(state, gates):"," \"\"\"Map all gates that can be executed with the current layout.",""," Args:"," state (_SystemState): The physical characteristics of the system, including its current"," layout and the coupling map."," gates (list): Gates to be mapped.",""," Returns:"," tuple:"," mapped_gates (list): ops for gates that can be executed, mapped onto layout."," remaining_gates (list): gates that cannot be executed on the layout."," \"\"\""," blocked_qubits = set()",""," mapped_gates = []"," remaining_gates = []"," layout_map = state.layout._v2p",""," for gate in gates:"," # Gates without a partition (barrier, snapshot, save, load, noise) may"," # still have associated qubits. Look for them in the qargs."," if not gate[\"partition\"]:"," qubits = _first_op_node(gate[\"graph\"]).qargs",""," if not qubits:"," continue",""," if blocked_qubits.intersection(qubits):"," blocked_qubits.update(qubits)"," remaining_gates.append(gate)"," else:"," mapped_gate = _transform_gate_for_system(gate, state)"," mapped_gates.append(mapped_gate)"," continue",""," qubits = gate[\"partition\"][0]",""," if blocked_qubits.intersection(qubits):"," blocked_qubits.update(qubits)"," remaining_gates.append(gate)"," elif len(qubits) == 1:"," mapped_gate = _transform_gate_for_system(gate, state)"," mapped_gates.append(mapped_gate)"," elif state.coupling_map.distance(layout_map[qubits[0]], layout_map[qubits[1]]) == 1:"," mapped_gate = _transform_gate_for_system(gate, state)"," mapped_gates.append(mapped_gate)"," else:"," blocked_qubits.update(qubits)"," remaining_gates.append(gate)",""," return mapped_gates, remaining_gates","","","def _calc_layout_distance(gates, state, max_gates=None):"," \"\"\"Return the sum of the distances of two-qubit pairs in each CNOT in gates"," according to the layout and the coupling."," \"\"\""," if max_gates is None:"," max_gates = 50 + 10 * len(state.coupling_map.physical_qubits)",""," layout_map = state.layout._v2p"," out = 0"," for gate in gates[:max_gates]:"," if not gate[\"partition\"]:"," continue"," qubits = gate[\"partition\"][0]"," if len(qubits) == 2:"," out += state.coupling_map.distance(layout_map[qubits[0]], layout_map[qubits[1]])"," return out","","","def _score_state_with_swap(swap, state, gates):"," \"\"\"Calculate the relative score for a given SWAP.",""," Returns:"," float: the score of the given swap."," Tuple[int, int]: the input swap that should be performed."," _SystemState: an updated system state with the new layout contained."," \"\"\""," trial_layout = state.layout.copy()"," trial_layout.swap(*swap)"," new_state = state._replace(layout=trial_layout)"," return _calc_layout_distance(gates, new_state), swap, new_state","","","def _score_step(step):"," \"\"\"Count the mapped two-qubit gates, less the number of added SWAPs.\"\"\""," # Each added swap will add 3 ops to gates_mapped, so subtract 3."," return len([g for g in step.gates_mapped if len(g.qargs) == 2]) - 3 * len(step.swaps_added)","","","def _transform_gate_for_system(gate, state):"," \"\"\"Return op implementing a virtual gate on given layout.\"\"\""," mapped_op_node = copy.copy(_first_op_node(gate[\"graph\"]))",""," device_qreg = state.register"," layout_map = state.layout._v2p"," mapped_op_node.qargs = tuple(device_qreg[layout_map[a]] for a in mapped_op_node.qargs)",""," return mapped_op_node","","","def _swap_ops_from_edge(edge, state):"," \"\"\"Generate list of ops to implement a SWAP gate along a coupling edge.\"\"\""," device_qreg = state.register"," qreg_edge = tuple(device_qreg[i] for i in edge)",""," # TODO shouldn't be making other nodes not by the DAG!!"," return [DAGOpNode(op=SwapGate(), qargs=qreg_edge, cargs=())]","","","def _first_op_node(dag):"," \"\"\"Get the first op node from a DAG.\"\"\""," # This doesn't use `DAGCircuit.op_nodes` because that function always consumes the entire"," # iterator to create a list, whereas we only need the first element."," return next(node for node in dag.nodes() if isinstance(node, DAGOpNode))"],"stylingDirectives":[[{"start":0,"end":30,"cssClass":"pl-c"}],[{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":31,"cssClass":"pl-c"}],[{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":70,"cssClass":"pl-c"}],[{"start":0,"end":77,"cssClass":"pl-c"}],[{"start":0,"end":71,"cssClass":"pl-c"}],[{"start":0,"end":1,"cssClass":"pl-c"}],[{"start":0,"end":69,"cssClass":"pl-c"}],[{"start":0,"end":72,"cssClass":"pl-c"}],[{"start":0,"end":49,"cssClass":"pl-c"}],[],[{"start":0,"end":71,"cssClass":"pl-s"}],[],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":18,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":14,"cssClass":"pl-s1"}],[{"start":0,"end":6,"cssClass":"pl-k"},{"start":7,"end":11,"cssClass":"pl-s1"}],[],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":19,"cssClass":"pl-s1"},{"start":20,"end":27,"cssClass":"pl-s1"},{"start":28,"end":42,"cssClass":"pl-s1"},{"start":43,"end":49,"cssClass":"pl-k"},{"start":50,"end":58,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":33,"cssClass":"pl-s1"},{"start":34,"end":40,"cssClass":"pl-k"},{"start":41,"end":59,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":33,"cssClass":"pl-s1"},{"start":34,"end":40,"cssClass":"pl-k"},{"start":41,"end":56,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":36,"cssClass":"pl-k"},{"start":37,"end":43,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-k"},{"start":30,"end":39,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":36,"cssClass":"pl-k"},{"start":37,"end":43,"cssClass":"pl-v"}],[{"start":0,"end":4,"cssClass":"pl-k"},{"start":5,"end":11,"cssClass":"pl-s1"},{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":36,"cssClass":"pl-s1"},{"start":37,"end":43,"cssClass":"pl-k"},{"start":44,"end":58,"cssClass":"pl-s1"}],[],[{"start":0,"end":6,"cssClass":"pl-s1"},{"start":7,"end":8,"cssClass":"pl-c1"},{"start":9,"end":16,"cssClass":"pl-s1"},{"start":17,"end":26,"cssClass":"pl-en"},{"start":27,"end":35,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":5,"cssClass":"pl-s1"},{"start":6,"end":7,"cssClass":"pl-c1"},{"start":8,"end":19,"cssClass":"pl-s1"},{"start":20,"end":30,"cssClass":"pl-en"},{"start":31,"end":38,"cssClass":"pl-s"},{"start":41,"end":48,"cssClass":"pl-s"},{"start":50,"end":63,"cssClass":"pl-s"},{"start":65,"end":79,"cssClass":"pl-s"},{"start":81,"end":98,"cssClass":"pl-s"}],[{"start":0,"end":56,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":15,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":100,"cssClass":"pl-s"}],[{"start":0,"end":63,"cssClass":"pl-s"}],[{"start":0,"end":71,"cssClass":"pl-s"}],[{"start":0,"end":59,"cssClass":"pl-s"}],[{"start":0,"end":3,"cssClass":"pl-s"}],[],[{"start":0,"end":12,"cssClass":"pl-s1"},{"start":13,"end":14,"cssClass":"pl-c1"},{"start":15,"end":26,"cssClass":"pl-s1"},{"start":27,"end":37,"cssClass":"pl-en"}],[{"start":4,"end":18,"cssClass":"pl-s"}],[{"start":5,"end":13,"cssClass":"pl-s"},{"start":15,"end":29,"cssClass":"pl-s"},{"start":31,"end":41,"cssClass":"pl-s"},{"start":43,"end":50,"cssClass":"pl-s"}],[{"start":4,"end":71,"cssClass":"pl-c"}],[{"start":4,"end":12,"cssClass":"pl-s1"},{"start":12,"end":13,"cssClass":"pl-c1"},{"start":14,"end":18,"cssClass":"pl-c1"}],[],[],[],[{"start":0,"end":5,"cssClass":"pl-k"},{"start":6,"end":19,"cssClass":"pl-v"},{"start":20,"end":38,"cssClass":"pl-v"}],[{"start":4,"end":72,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":79,"cssClass":"pl-s"}],[{"start":0,"end":79,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":83,"cssClass":"pl-s"}],[{"start":0,"end":82,"cssClass":"pl-s"}],[{"start":0,"end":82,"cssClass":"pl-s"}],[{"start":0,"end":84,"cssClass":"pl-s"}],[{"start":0,"end":85,"cssClass":"pl-s"}],[{"start":0,"end":53,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":85,"cssClass":"pl-s"}],[{"start":0,"end":63,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":65,"cssClass":"pl-s"}],[{"start":0,"end":81,"cssClass":"pl-s"}],[{"start":0,"end":37,"cssClass":"pl-s"}],[{"start":0,"end":84,"cssClass":"pl-s"}],[{"start":0,"end":81,"cssClass":"pl-s"}],[{"start":0,"end":54,"cssClass":"pl-s"}],[{"start":0,"end":84,"cssClass":"pl-s"}],[{"start":0,"end":62,"cssClass":"pl-s"}],[{"start":0,"end":84,"cssClass":"pl-s"}],[{"start":0,"end":80,"cssClass":"pl-s"}],[{"start":0,"end":14,"cssClass":"pl-s"}],[{"start":0,"end":78,"cssClass":"pl-s"}],[{"start":0,"end":76,"cssClass":"pl-s"}],[{"start":0,"end":21,"cssClass":"pl-s"}],[{"start":0,"end":75,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":60,"cssClass":"pl-s"}],[{"start":0,"end":71,"cssClass":"pl-s"}],[{"start":0,"end":7,"cssClass":"pl-s"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":16,"cssClass":"pl-en"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":23,"end":35,"cssClass":"pl-s1"},{"start":37,"end":49,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":53,"end":65,"cssClass":"pl-s1"},{"start":65,"end":66,"cssClass":"pl-c1"},{"start":66,"end":67,"cssClass":"pl-c1"},{"start":69,"end":77,"cssClass":"pl-s1"},{"start":77,"end":78,"cssClass":"pl-c1"},{"start":78,"end":83,"cssClass":"pl-c1"}],[{"start":8,"end":37,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":13,"cssClass":"pl-s"}],[{"start":0,"end":89,"cssClass":"pl-s"}],[{"start":0,"end":84,"cssClass":"pl-s"}],[{"start":0,"end":84,"cssClass":"pl-s"}],[{"start":0,"end":82,"cssClass":"pl-s"}],[{"start":0,"end":42,"cssClass":"pl-s"}],[{"start":0,"end":11,"cssClass":"pl-s"}],[],[{"start":8,"end":13,"cssClass":"pl-en"},{"start":16,"end":24,"cssClass":"pl-en"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":21,"cssClass":"pl-en"},{"start":22,"end":34,"cssClass":"pl-s1"},{"start":36,"end":42,"cssClass":"pl-v"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":38,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":29,"cssClass":"pl-s1"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":32,"end":36,"cssClass":"pl-s1"},{"start":37,"end":43,"cssClass":"pl-s1"},{"start":44,"end":62,"cssClass":"pl-en"}],[{"start":8,"end":12,"cssClass":"pl-k"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":30,"cssClass":"pl-c1"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":29,"cssClass":"pl-s1"},{"start":30,"end":31,"cssClass":"pl-c1"},{"start":32,"end":44,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":40,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":40,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":32,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":11,"cssClass":"pl-en"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":18,"end":21,"cssClass":"pl-s1"}],[{"start":8,"end":47,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":13,"cssClass":"pl-s"}],[{"start":0,"end":69,"cssClass":"pl-s"}],[{"start":0,"end":16,"cssClass":"pl-s"}],[{"start":0,"end":78,"cssClass":"pl-s"}],[{"start":0,"end":33,"cssClass":"pl-s"}],[{"start":0,"end":15,"cssClass":"pl-s"}],[{"start":0,"end":70,"cssClass":"pl-s"}],[{"start":0,"end":64,"cssClass":"pl-s"}],[{"start":0,"end":11,"cssClass":"pl-s"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":15,"cssClass":"pl-s1"},{"start":16,"end":28,"cssClass":"pl-s1"},{"start":29,"end":31,"cssClass":"pl-c1"},{"start":32,"end":36,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":33,"cssClass":"pl-v"},{"start":34,"end":83,"cssClass":"pl-s"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-en"},{"start":15,"end":18,"cssClass":"pl-s1"},{"start":19,"end":24,"cssClass":"pl-s1"},{"start":26,"end":28,"cssClass":"pl-c1"},{"start":29,"end":30,"cssClass":"pl-c1"},{"start":31,"end":33,"cssClass":"pl-c1"},{"start":34,"end":37,"cssClass":"pl-s1"},{"start":38,"end":43,"cssClass":"pl-s1"},{"start":44,"end":47,"cssClass":"pl-en"},{"start":48,"end":51,"cssClass":"pl-s"},{"start":53,"end":57,"cssClass":"pl-c1"},{"start":59,"end":61,"cssClass":"pl-c1"},{"start":62,"end":66,"cssClass":"pl-c1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":33,"cssClass":"pl-v"},{"start":34,"end":81,"cssClass":"pl-s"}],[],[{"start":8,"end":34,"cssClass":"pl-s1"},{"start":35,"end":36,"cssClass":"pl-c1"},{"start":37,"end":40,"cssClass":"pl-en"},{"start":41,"end":45,"cssClass":"pl-s1"},{"start":46,"end":58,"cssClass":"pl-s1"},{"start":59,"end":74,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-en"},{"start":15,"end":18,"cssClass":"pl-s1"},{"start":19,"end":25,"cssClass":"pl-s1"},{"start":27,"end":28,"cssClass":"pl-c1"},{"start":29,"end":55,"cssClass":"pl-s1"}],[{"start":12,"end":17,"cssClass":"pl-k"},{"start":18,"end":33,"cssClass":"pl-v"}],[{"start":16,"end":94,"cssClass":"pl-s"},{"start":44,"end":61,"cssClass":"pl-s1"},{"start":44,"end":45,"cssClass":"pl-kos"},{"start":45,"end":48,"cssClass":"pl-en"},{"start":49,"end":52,"cssClass":"pl-s1"},{"start":53,"end":59,"cssClass":"pl-s1"},{"start":60,"end":61,"cssClass":"pl-kos"}],[{"start":16,"end":74,"cssClass":"pl-s"},{"start":43,"end":71,"cssClass":"pl-s1"},{"start":43,"end":44,"cssClass":"pl-kos"},{"start":44,"end":70,"cssClass":"pl-s1"},{"start":70,"end":71,"cssClass":"pl-kos"}],[],[{"start":8,"end":22,"cssClass":"pl-s1"},{"start":23,"end":59,"cssClass":"pl-en"}],[{"start":12,"end":15,"cssClass":"pl-s1"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":22,"end":34,"cssClass":"pl-s1"},{"start":35,"end":37,"cssClass":"pl-k"},{"start":38,"end":42,"cssClass":"pl-s1"},{"start":43,"end":49,"cssClass":"pl-s1"},{"start":50,"end":52,"cssClass":"pl-c1"},{"start":53,"end":57,"cssClass":"pl-c1"},{"start":58,"end":62,"cssClass":"pl-k"},{"start":63,"end":67,"cssClass":"pl-s1"},{"start":68,"end":74,"cssClass":"pl-s1"}],[],[],[{"start":8,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":22,"cssClass":"pl-s1"},{"start":23,"end":28,"cssClass":"pl-s1"},{"start":29,"end":32,"cssClass":"pl-s"}],[{"start":8,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":36,"cssClass":"pl-en"}],[{"start":12,"end":18,"cssClass":"pl-v"},{"start":19,"end":42,"cssClass":"pl-en"},{"start":43,"end":51,"cssClass":"pl-s1"},{"start":54,"end":58,"cssClass":"pl-s1"},{"start":59,"end":71,"cssClass":"pl-s1"},{"start":73,"end":81,"cssClass":"pl-s1"}],[],[],[{"start":8,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"}],[{"start":8,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":30,"cssClass":"pl-en"},{"start":31,"end":34,"cssClass":"pl-s1"},{"start":35,"end":48,"cssClass":"pl-en"}],[],[{"start":8,"end":13,"cssClass":"pl-k"},{"start":14,"end":29,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":24,"cssClass":"pl-en"},{"start":25,"end":70,"cssClass":"pl-s"},{"start":72,"end":75,"cssClass":"pl-en"},{"start":76,"end":91,"cssClass":"pl-s1"}],[],[{"start":12,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":47,"cssClass":"pl-en"}],[{"start":16,"end":29,"cssClass":"pl-s1"}],[{"start":16,"end":31,"cssClass":"pl-s1"}],[{"start":16,"end":20,"cssClass":"pl-s1"},{"start":21,"end":33,"cssClass":"pl-s1"}],[{"start":16,"end":20,"cssClass":"pl-s1"},{"start":21,"end":33,"cssClass":"pl-s1"}],[],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":24,"cssClass":"pl-s1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":32,"cssClass":"pl-c1"}],[{"start":16,"end":21,"cssClass":"pl-k"},{"start":22,"end":37,"cssClass":"pl-v"}],[{"start":20,"end":98,"cssClass":"pl-s"}],[],[],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":24,"cssClass":"pl-en"}],[{"start":16,"end":68,"cssClass":"pl-s"}],[{"start":16,"end":19,"cssClass":"pl-en"},{"start":20,"end":29,"cssClass":"pl-s1"},{"start":30,"end":42,"cssClass":"pl-s1"}],[{"start":16,"end":25,"cssClass":"pl-s1"},{"start":26,"end":37,"cssClass":"pl-s1"}],[],[],[{"start":12,"end":25,"cssClass":"pl-s1"},{"start":26,"end":27,"cssClass":"pl-c1"},{"start":28,"end":37,"cssClass":"pl-s1"},{"start":38,"end":43,"cssClass":"pl-s1"}],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":36,"cssClass":"pl-s1"},{"start":37,"end":49,"cssClass":"pl-s1"}],[{"start":12,"end":27,"cssClass":"pl-s1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":39,"cssClass":"pl-s1"},{"start":40,"end":55,"cssClass":"pl-s1"}],[],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":31,"cssClass":"pl-en"},{"start":32,"end":44,"cssClass":"pl-s1"}],[],[{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":25,"cssClass":"pl-s1"},{"start":26,"end":40,"cssClass":"pl-s"},{"start":42,"end":43,"cssClass":"pl-c1"},{"start":44,"end":57,"cssClass":"pl-s1"},{"start":58,"end":64,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":15,"cssClass":"pl-s1"},{"start":16,"end":24,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":22,"cssClass":"pl-s1"}],[],[{"start":8,"end":80,"cssClass":"pl-c"}],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":24,"cssClass":"pl-s1"},{"start":25,"end":40,"cssClass":"pl-en"}],[{"start":8,"end":11,"cssClass":"pl-k"},{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":19,"cssClass":"pl-c1"},{"start":20,"end":32,"cssClass":"pl-s1"}],[{"start":12,"end":22,"cssClass":"pl-s1"},{"start":23,"end":43,"cssClass":"pl-en"},{"start":44,"end":48,"cssClass":"pl-s1"},{"start":49,"end":51,"cssClass":"pl-s1"},{"start":53,"end":57,"cssClass":"pl-s1"},{"start":58,"end":63,"cssClass":"pl-s1"},{"start":65,"end":69,"cssClass":"pl-s1"},{"start":70,"end":75,"cssClass":"pl-s1"},{"start":77,"end":82,"cssClass":"pl-s1"},{"start":82,"end":83,"cssClass":"pl-c1"},{"start":83,"end":88,"cssClass":"pl-c1"}],[],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":25,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":27,"cssClass":"pl-en"},{"start":28,"end":33,"cssClass":"pl-s1"},{"start":35,"end":40,"cssClass":"pl-s1"},{"start":42,"end":47,"cssClass":"pl-s1"},{"start":49,"end":54,"cssClass":"pl-s1"}],[{"start":4,"end":79,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":9,"cssClass":"pl-s"}],[{"start":0,"end":96,"cssClass":"pl-s"}],[{"start":0,"end":99,"cssClass":"pl-s"}],[{"start":0,"end":41,"cssClass":"pl-s"}],[{"start":0,"end":41,"cssClass":"pl-s"}],[{"start":0,"end":78,"cssClass":"pl-s"}],[{"start":0,"end":63,"cssClass":"pl-s"}],[{"start":0,"end":12,"cssClass":"pl-s"}],[{"start":0,"end":96,"cssClass":"pl-s"}],[{"start":0,"end":31,"cssClass":"pl-s"}],[{"start":0,"end":7,"cssClass":"pl-s"}],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":12,"cssClass":"pl-s1"},{"start":13,"end":18,"cssClass":"pl-s1"},{"start":19,"end":21,"cssClass":"pl-c1"},{"start":22,"end":26,"cssClass":"pl-c1"}],[{"start":8,"end":72,"cssClass":"pl-c"}],[{"start":8,"end":13,"cssClass":"pl-s1"},{"start":14,"end":15,"cssClass":"pl-c1"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":30,"cssClass":"pl-en"}],[{"start":12,"end":17,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":21,"end":22,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-s1"},{"start":27,"end":29,"cssClass":"pl-k"},{"start":30,"end":31,"cssClass":"pl-s1"},{"start":32,"end":33,"cssClass":"pl-c1"},{"start":34,"end":35,"cssClass":"pl-s1"},{"start":36,"end":40,"cssClass":"pl-k"},{"start":42,"end":43,"cssClass":"pl-s1"},{"start":45,"end":46,"cssClass":"pl-s1"},{"start":49,"end":52,"cssClass":"pl-k"},{"start":53,"end":54,"cssClass":"pl-s1"},{"start":56,"end":57,"cssClass":"pl-s1"},{"start":58,"end":60,"cssClass":"pl-c1"},{"start":61,"end":66,"cssClass":"pl-s1"},{"start":67,"end":79,"cssClass":"pl-s1"},{"start":80,"end":89,"cssClass":"pl-en"}],[],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":18,"end":33,"cssClass":"pl-s1"},{"start":34,"end":35,"cssClass":"pl-c1"},{"start":36,"end":51,"cssClass":"pl-en"},{"start":52,"end":57,"cssClass":"pl-s1"},{"start":59,"end":64,"cssClass":"pl-s1"}],[{"start":4,"end":13,"cssClass":"pl-s1"},{"start":14,"end":15,"cssClass":"pl-c1"},{"start":16,"end":21,"cssClass":"pl-en"},{"start":22,"end":27,"cssClass":"pl-s1"},{"start":33,"end":45,"cssClass":"pl-s1"},{"start":47,"end":62,"cssClass":"pl-s1"}],[],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":10,"cssClass":"pl-c1"},{"start":11,"end":26,"cssClass":"pl-s1"},{"start":27,"end":29,"cssClass":"pl-c1"},{"start":30,"end":35,"cssClass":"pl-s1"},{"start":36,"end":38,"cssClass":"pl-c1"},{"start":39,"end":40,"cssClass":"pl-c1"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":24,"cssClass":"pl-s1"}],[],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":25,"cssClass":"pl-en"}],[{"start":9,"end":31,"cssClass":"pl-en"},{"start":32,"end":36,"cssClass":"pl-s1"},{"start":38,"end":43,"cssClass":"pl-s1"},{"start":45,"end":50,"cssClass":"pl-s1"},{"start":52,"end":55,"cssClass":"pl-k"},{"start":56,"end":60,"cssClass":"pl-s1"},{"start":61,"end":63,"cssClass":"pl-c1"},{"start":64,"end":69,"cssClass":"pl-s1"},{"start":70,"end":75,"cssClass":"pl-s1"}],[{"start":8,"end":11,"cssClass":"pl-s1"},{"start":11,"end":12,"cssClass":"pl-c1"},{"start":12,"end":18,"cssClass":"pl-k"},{"start":19,"end":20,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"}],[],[{"start":4,"end":10,"cssClass":"pl-s1"},{"start":11,"end":16,"cssClass":"pl-en"}],[{"start":8,"end":52,"cssClass":"pl-s"}],[{"start":8,"end":13,"cssClass":"pl-s1"}],[{"start":10,"end":14,"cssClass":"pl-s1"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":23,"end":26,"cssClass":"pl-k"},{"start":27,"end":32,"cssClass":"pl-s1"},{"start":34,"end":38,"cssClass":"pl-s1"},{"start":40,"end":41,"cssClass":"pl-s1"},{"start":42,"end":44,"cssClass":"pl-c1"},{"start":45,"end":57,"cssClass":"pl-s1"},{"start":60,"end":65,"cssClass":"pl-s1"},{"start":66,"end":67,"cssClass":"pl-c1"},{"start":68,"end":69,"cssClass":"pl-c1"}],[],[],[{"start":4,"end":13,"cssClass":"pl-s1"},{"start":15,"end":24,"cssClass":"pl-s1"},{"start":26,"end":36,"cssClass":"pl-s1"},{"start":37,"end":38,"cssClass":"pl-c1"},{"start":39,"end":43,"cssClass":"pl-c1"},{"start":45,"end":49,"cssClass":"pl-c1"},{"start":51,"end":52,"cssClass":"pl-c1"},{"start":52,"end":56,"cssClass":"pl-s1"},{"start":57,"end":60,"cssClass":"pl-s1"}],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":12,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-s1"},{"start":18,"end":22,"cssClass":"pl-s1"},{"start":24,"end":33,"cssClass":"pl-s1"},{"start":35,"end":37,"cssClass":"pl-c1"},{"start":38,"end":47,"cssClass":"pl-en"},{"start":48,"end":60,"cssClass":"pl-s1"}],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":43,"cssClass":"pl-en"},{"start":44,"end":53,"cssClass":"pl-s1"},{"start":55,"end":70,"cssClass":"pl-s1"},{"start":72,"end":77,"cssClass":"pl-s1"},{"start":78,"end":79,"cssClass":"pl-c1"},{"start":80,"end":81,"cssClass":"pl-c1"},{"start":83,"end":88,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":20,"cssClass":"pl-s1"},{"start":21,"end":23,"cssClass":"pl-c1"},{"start":24,"end":28,"cssClass":"pl-c1"}],[{"start":12,"end":20,"cssClass":"pl-k"}],[],[{"start":8,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":32,"cssClass":"pl-en"},{"start":33,"end":42,"cssClass":"pl-s1"}],[{"start":8,"end":82,"cssClass":"pl-c"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":21,"cssClass":"pl-s1"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":24,"end":34,"cssClass":"pl-s1"}],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":24,"cssClass":"pl-en"}],[{"start":16,"end":66,"cssClass":"pl-s"}],[{"start":16,"end":21,"cssClass":"pl-s1"}],[{"start":17,"end":21,"cssClass":"pl-s1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":34,"cssClass":"pl-s1"},{"start":35,"end":46,"cssClass":"pl-s1"}],[{"start":16,"end":26,"cssClass":"pl-s1"}],[],[{"start":12,"end":21,"cssClass":"pl-s1"},{"start":23,"end":32,"cssClass":"pl-s1"},{"start":34,"end":44,"cssClass":"pl-s1"},{"start":45,"end":46,"cssClass":"pl-c1"},{"start":47,"end":51,"cssClass":"pl-s1"},{"start":53,"end":62,"cssClass":"pl-s1"},{"start":64,"end":74,"cssClass":"pl-s1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"}],[{"start":12,"end":16,"cssClass":"pl-s1"},{"start":17,"end":19,"cssClass":"pl-c1"},{"start":20,"end":23,"cssClass":"pl-en"},{"start":24,"end":29,"cssClass":"pl-s1"},{"start":31,"end":34,"cssClass":"pl-en"},{"start":35,"end":47,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":51,"end":52,"cssClass":"pl-c1"}],[{"start":12,"end":15,"cssClass":"pl-c1"},{"start":16,"end":25,"cssClass":"pl-s1"},{"start":26,"end":28,"cssClass":"pl-c1"},{"start":29,"end":32,"cssClass":"pl-c1"},{"start":33,"end":37,"cssClass":"pl-c1"}],[{"start":12,"end":15,"cssClass":"pl-c1"}],[{"start":16,"end":19,"cssClass":"pl-en"},{"start":20,"end":29,"cssClass":"pl-s1"},{"start":30,"end":42,"cssClass":"pl-s1"},{"start":44,"end":45,"cssClass":"pl-c1"},{"start":46,"end":51,"cssClass":"pl-s1"}],[{"start":16,"end":18,"cssClass":"pl-c1"},{"start":19,"end":22,"cssClass":"pl-en"},{"start":23,"end":32,"cssClass":"pl-s1"},{"start":33,"end":48,"cssClass":"pl-s1"},{"start":50,"end":51,"cssClass":"pl-c1"},{"start":52,"end":55,"cssClass":"pl-en"},{"start":56,"end":71,"cssClass":"pl-s1"}],[{"start":16,"end":18,"cssClass":"pl-c1"}],[{"start":20,"end":41,"cssClass":"pl-en"},{"start":42,"end":51,"cssClass":"pl-s1"},{"start":52,"end":67,"cssClass":"pl-s1"},{"start":69,"end":78,"cssClass":"pl-s1"},{"start":79,"end":84,"cssClass":"pl-s1"}],[{"start":20,"end":21,"cssClass":"pl-c1"},{"start":22,"end":43,"cssClass":"pl-en"},{"start":44,"end":59,"cssClass":"pl-s1"},{"start":61,"end":70,"cssClass":"pl-s1"}],[],[],[],[{"start":12,"end":78,"cssClass":"pl-c"}],[{"start":12,"end":78,"cssClass":"pl-c"}],[{"start":12,"end":78,"cssClass":"pl-c"}],[{"start":12,"end":59,"cssClass":"pl-c"}],[{"start":12,"end":17,"cssClass":"pl-k"}],[{"start":4,"end":8,"cssClass":"pl-k"}],[{"start":8,"end":14,"cssClass":"pl-k"},{"start":15,"end":19,"cssClass":"pl-c1"}],[],[{"start":4,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":40,"cssClass":"pl-en"},{"start":41,"end":50,"cssClass":"pl-s1"},{"start":52,"end":57,"cssClass":"pl-s1"}],[{"start":4,"end":7,"cssClass":"pl-s1"},{"start":8,"end":9,"cssClass":"pl-c1"},{"start":10,"end":15,"cssClass":"pl-en"}],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":23,"cssClass":"pl-s1"}],[{"start":9,"end":18,"cssClass":"pl-s1"},{"start":20,"end":21,"cssClass":"pl-c1"},{"start":22,"end":31,"cssClass":"pl-s1"},{"start":32,"end":43,"cssClass":"pl-s1"}],[{"start":8,"end":20,"cssClass":"pl-s1"},{"start":21,"end":22,"cssClass":"pl-c1"},{"start":23,"end":37,"cssClass":"pl-s1"},{"start":38,"end":39,"cssClass":"pl-c1"},{"start":40,"end":49,"cssClass":"pl-s1"},{"start":50,"end":62,"cssClass":"pl-s1"}],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":33,"cssClass":"pl-s1"}],[],[{"start":4,"end":10,"cssClass":"pl-s1"},{"start":11,"end":16,"cssClass":"pl-en"},{"start":17,"end":50,"cssClass":"pl-s"},{"start":52,"end":57,"cssClass":"pl-s1"},{"start":59,"end":62,"cssClass":"pl-s1"},{"start":63,"end":74,"cssClass":"pl-s1"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":19,"cssClass":"pl-en"},{"start":20,"end":25,"cssClass":"pl-s1"},{"start":27,"end":32,"cssClass":"pl-s1"}],[{"start":4,"end":66,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":9,"cssClass":"pl-s"}],[{"start":0,"end":95,"cssClass":"pl-s"}],[{"start":0,"end":40,"cssClass":"pl-s"}],[{"start":0,"end":41,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":12,"cssClass":"pl-s"}],[{"start":0,"end":14,"cssClass":"pl-s"}],[{"start":0,"end":88,"cssClass":"pl-s"}],[{"start":0,"end":80,"cssClass":"pl-s"}],[{"start":0,"end":7,"cssClass":"pl-s"}],[{"start":4,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":24,"cssClass":"pl-en"}],[],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"}],[{"start":4,"end":19,"cssClass":"pl-s1"},{"start":20,"end":21,"cssClass":"pl-c1"}],[{"start":4,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":34,"cssClass":"pl-s1"}],[],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":15,"cssClass":"pl-c1"},{"start":16,"end":21,"cssClass":"pl-s1"}],[{"start":8,"end":78,"cssClass":"pl-c"}],[{"start":8,"end":67,"cssClass":"pl-c"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-c1"},{"start":15,"end":19,"cssClass":"pl-s1"},{"start":20,"end":31,"cssClass":"pl-s"}],[{"start":12,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":35,"cssClass":"pl-en"},{"start":36,"end":40,"cssClass":"pl-s1"},{"start":41,"end":48,"cssClass":"pl-s"},{"start":51,"end":56,"cssClass":"pl-s1"}],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":18,"cssClass":"pl-c1"},{"start":19,"end":25,"cssClass":"pl-s1"}],[{"start":16,"end":24,"cssClass":"pl-k"}],[],[{"start":12,"end":14,"cssClass":"pl-k"},{"start":15,"end":29,"cssClass":"pl-s1"},{"start":30,"end":42,"cssClass":"pl-en"},{"start":43,"end":49,"cssClass":"pl-s1"}],[{"start":16,"end":30,"cssClass":"pl-s1"},{"start":31,"end":37,"cssClass":"pl-en"},{"start":38,"end":44,"cssClass":"pl-s1"}],[{"start":16,"end":31,"cssClass":"pl-s1"},{"start":32,"end":38,"cssClass":"pl-en"},{"start":39,"end":43,"cssClass":"pl-s1"}],[{"start":12,"end":16,"cssClass":"pl-k"}],[{"start":16,"end":27,"cssClass":"pl-s1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":56,"cssClass":"pl-en"},{"start":57,"end":61,"cssClass":"pl-s1"},{"start":63,"end":68,"cssClass":"pl-s1"}],[{"start":16,"end":28,"cssClass":"pl-s1"},{"start":29,"end":35,"cssClass":"pl-en"},{"start":36,"end":47,"cssClass":"pl-s1"}],[{"start":12,"end":20,"cssClass":"pl-k"}],[],[{"start":8,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":22,"end":33,"cssClass":"pl-s"},{"start":35,"end":36,"cssClass":"pl-c1"}],[],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":25,"cssClass":"pl-s1"},{"start":26,"end":38,"cssClass":"pl-en"},{"start":39,"end":45,"cssClass":"pl-s1"}],[{"start":12,"end":26,"cssClass":"pl-s1"},{"start":27,"end":33,"cssClass":"pl-en"},{"start":34,"end":40,"cssClass":"pl-s1"}],[{"start":12,"end":27,"cssClass":"pl-s1"},{"start":28,"end":34,"cssClass":"pl-en"},{"start":35,"end":39,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":16,"cssClass":"pl-en"},{"start":17,"end":23,"cssClass":"pl-s1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"}],[{"start":12,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":52,"cssClass":"pl-en"},{"start":53,"end":57,"cssClass":"pl-s1"},{"start":59,"end":64,"cssClass":"pl-s1"}],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":31,"cssClass":"pl-en"},{"start":32,"end":43,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-k"},{"start":13,"end":18,"cssClass":"pl-s1"},{"start":19,"end":31,"cssClass":"pl-s1"},{"start":32,"end":40,"cssClass":"pl-en"},{"start":41,"end":51,"cssClass":"pl-s1"},{"start":52,"end":58,"cssClass":"pl-s1"},{"start":59,"end":60,"cssClass":"pl-c1"},{"start":64,"end":74,"cssClass":"pl-s1"},{"start":75,"end":81,"cssClass":"pl-s1"},{"start":82,"end":83,"cssClass":"pl-c1"},{"start":87,"end":89,"cssClass":"pl-c1"},{"start":90,"end":91,"cssClass":"pl-c1"}],[{"start":12,"end":23,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":26,"end":52,"cssClass":"pl-en"},{"start":53,"end":57,"cssClass":"pl-s1"},{"start":59,"end":64,"cssClass":"pl-s1"}],[{"start":12,"end":24,"cssClass":"pl-s1"},{"start":25,"end":31,"cssClass":"pl-en"},{"start":32,"end":43,"cssClass":"pl-s1"}],[{"start":8,"end":12,"cssClass":"pl-k"}],[{"start":12,"end":26,"cssClass":"pl-s1"},{"start":27,"end":33,"cssClass":"pl-en"},{"start":34,"end":40,"cssClass":"pl-s1"}],[{"start":12,"end":27,"cssClass":"pl-s1"},{"start":28,"end":34,"cssClass":"pl-en"},{"start":35,"end":39,"cssClass":"pl-s1"}],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":23,"cssClass":"pl-s1"},{"start":25,"end":40,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":25,"cssClass":"pl-en"},{"start":26,"end":31,"cssClass":"pl-s1"},{"start":33,"end":38,"cssClass":"pl-s1"},{"start":40,"end":49,"cssClass":"pl-s1"},{"start":49,"end":50,"cssClass":"pl-c1"},{"start":50,"end":54,"cssClass":"pl-c1"}],[{"start":4,"end":79,"cssClass":"pl-s"}],[{"start":0,"end":45,"cssClass":"pl-s"}],[{"start":0,"end":7,"cssClass":"pl-s"}],[{"start":4,"end":6,"cssClass":"pl-k"},{"start":7,"end":16,"cssClass":"pl-s1"},{"start":17,"end":19,"cssClass":"pl-c1"},{"start":20,"end":24,"cssClass":"pl-c1"}],[{"start":8,"end":17,"cssClass":"pl-s1"},{"start":18,"end":19,"cssClass":"pl-c1"},{"start":20,"end":22,"cssClass":"pl-c1"},{"start":23,"end":24,"cssClass":"pl-c1"},{"start":25,"end":27,"cssClass":"pl-c1"},{"start":28,"end":29,"cssClass":"pl-c1"},{"start":30,"end":33,"cssClass":"pl-en"},{"start":34,"end":39,"cssClass":"pl-s1"},{"start":40,"end":52,"cssClass":"pl-s1"},{"start":53,"end":68,"cssClass":"pl-s1"}],[],[{"start":4,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":34,"cssClass":"pl-s1"}],[{"start":4,"end":7,"cssClass":"pl-s1"},{"start":8,"end":9,"cssClass":"pl-c1"},{"start":10,"end":11,"cssClass":"pl-c1"}],[{"start":4,"end":7,"cssClass":"pl-k"},{"start":8,"end":12,"cssClass":"pl-s1"},{"start":13,"end":15,"cssClass":"pl-c1"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":23,"end":32,"cssClass":"pl-s1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-c1"},{"start":15,"end":19,"cssClass":"pl-s1"},{"start":20,"end":31,"cssClass":"pl-s"}],[{"start":12,"end":20,"cssClass":"pl-k"}],[{"start":8,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":21,"cssClass":"pl-s1"},{"start":22,"end":33,"cssClass":"pl-s"},{"start":35,"end":36,"cssClass":"pl-c1"}],[{"start":8,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-en"},{"start":15,"end":21,"cssClass":"pl-s1"},{"start":23,"end":25,"cssClass":"pl-c1"},{"start":26,"end":27,"cssClass":"pl-c1"}],[{"start":12,"end":15,"cssClass":"pl-s1"},{"start":16,"end":18,"cssClass":"pl-c1"},{"start":19,"end":24,"cssClass":"pl-s1"},{"start":25,"end":37,"cssClass":"pl-s1"},{"start":38,"end":46,"cssClass":"pl-en"},{"start":47,"end":57,"cssClass":"pl-s1"},{"start":58,"end":64,"cssClass":"pl-s1"},{"start":65,"end":66,"cssClass":"pl-c1"},{"start":70,"end":80,"cssClass":"pl-s1"},{"start":81,"end":87,"cssClass":"pl-s1"},{"start":88,"end":89,"cssClass":"pl-c1"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":26,"cssClass":"pl-en"},{"start":27,"end":31,"cssClass":"pl-s1"},{"start":33,"end":38,"cssClass":"pl-s1"},{"start":40,"end":45,"cssClass":"pl-s1"}],[{"start":4,"end":53,"cssClass":"pl-s"}],[{"start":0,"end":0,"cssClass":"pl-s"}],[{"start":0,"end":12,"cssClass":"pl-s"}],[{"start":0,"end":43,"cssClass":"pl-s"}],[{"start":0,"end":65,"cssClass":"pl-s"}],[{"start":0,"end":76,"cssClass":"pl-s"}],[{"start":0,"end":7,"cssClass":"pl-s"}],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":17,"end":18,"cssClass":"pl-c1"},{"start":19,"end":24,"cssClass":"pl-s1"},{"start":25,"end":31,"cssClass":"pl-s1"},{"start":32,"end":36,"cssClass":"pl-en"}],[{"start":4,"end":16,"cssClass":"pl-s1"},{"start":17,"end":21,"cssClass":"pl-en"},{"start":22,"end":23,"cssClass":"pl-c1"},{"start":23,"end":27,"cssClass":"pl-s1"}],[{"start":4,"end":13,"cssClass":"pl-s1"},{"start":14,"end":15,"cssClass":"pl-c1"},{"start":16,"end":21,"cssClass":"pl-s1"},{"start":22,"end":30,"cssClass":"pl-en"},{"start":31,"end":37,"cssClass":"pl-s1"},{"start":37,"end":38,"cssClass":"pl-c1"},{"start":38,"end":50,"cssClass":"pl-s1"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":32,"cssClass":"pl-en"},{"start":33,"end":38,"cssClass":"pl-s1"},{"start":40,"end":49,"cssClass":"pl-s1"},{"start":52,"end":56,"cssClass":"pl-s1"},{"start":58,"end":67,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":15,"cssClass":"pl-en"},{"start":16,"end":20,"cssClass":"pl-s1"}],[{"start":4,"end":75,"cssClass":"pl-s"}],[{"start":4,"end":68,"cssClass":"pl-c"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":14,"cssClass":"pl-en"},{"start":16,"end":17,"cssClass":"pl-s1"},{"start":18,"end":21,"cssClass":"pl-k"},{"start":22,"end":23,"cssClass":"pl-s1"},{"start":24,"end":26,"cssClass":"pl-c1"},{"start":27,"end":31,"cssClass":"pl-s1"},{"start":32,"end":44,"cssClass":"pl-s1"},{"start":45,"end":47,"cssClass":"pl-k"},{"start":48,"end":51,"cssClass":"pl-en"},{"start":52,"end":53,"cssClass":"pl-s1"},{"start":54,"end":59,"cssClass":"pl-s1"},{"start":61,"end":63,"cssClass":"pl-c1"},{"start":64,"end":65,"cssClass":"pl-c1"},{"start":68,"end":69,"cssClass":"pl-c1"},{"start":70,"end":71,"cssClass":"pl-c1"},{"start":72,"end":73,"cssClass":"pl-c1"},{"start":74,"end":77,"cssClass":"pl-en"},{"start":78,"end":82,"cssClass":"pl-s1"},{"start":83,"end":94,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":30,"cssClass":"pl-en"},{"start":31,"end":35,"cssClass":"pl-s1"},{"start":37,"end":42,"cssClass":"pl-s1"}],[{"start":4,"end":64,"cssClass":"pl-s"}],[{"start":4,"end":18,"cssClass":"pl-s1"},{"start":19,"end":20,"cssClass":"pl-c1"},{"start":21,"end":25,"cssClass":"pl-s1"},{"start":26,"end":30,"cssClass":"pl-en"},{"start":31,"end":45,"cssClass":"pl-en"},{"start":46,"end":50,"cssClass":"pl-s1"},{"start":51,"end":58,"cssClass":"pl-s"}],[],[{"start":4,"end":15,"cssClass":"pl-s1"},{"start":16,"end":17,"cssClass":"pl-c1"},{"start":18,"end":23,"cssClass":"pl-s1"},{"start":24,"end":32,"cssClass":"pl-s1"}],[{"start":4,"end":14,"cssClass":"pl-s1"},{"start":15,"end":16,"cssClass":"pl-c1"},{"start":17,"end":22,"cssClass":"pl-s1"},{"start":23,"end":29,"cssClass":"pl-s1"},{"start":30,"end":34,"cssClass":"pl-s1"}],[{"start":4,"end":18,"cssClass":"pl-s1"},{"start":19,"end":24,"cssClass":"pl-s1"},{"start":25,"end":26,"cssClass":"pl-c1"},{"start":27,"end":32,"cssClass":"pl-en"},{"start":33,"end":44,"cssClass":"pl-s1"},{"start":45,"end":55,"cssClass":"pl-s1"},{"start":56,"end":57,"cssClass":"pl-s1"},{"start":60,"end":63,"cssClass":"pl-k"},{"start":64,"end":65,"cssClass":"pl-s1"},{"start":66,"end":68,"cssClass":"pl-c1"},{"start":69,"end":83,"cssClass":"pl-s1"},{"start":84,"end":89,"cssClass":"pl-s1"}],[],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":25,"cssClass":"pl-s1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":23,"cssClass":"pl-en"},{"start":24,"end":28,"cssClass":"pl-s1"},{"start":30,"end":35,"cssClass":"pl-s1"}],[{"start":4,"end":78,"cssClass":"pl-s"}],[{"start":4,"end":15,"cssClass":"pl-s1"},{"start":16,"end":17,"cssClass":"pl-c1"},{"start":18,"end":23,"cssClass":"pl-s1"},{"start":24,"end":32,"cssClass":"pl-s1"}],[{"start":4,"end":13,"cssClass":"pl-s1"},{"start":14,"end":15,"cssClass":"pl-c1"},{"start":16,"end":21,"cssClass":"pl-en"},{"start":22,"end":33,"cssClass":"pl-s1"},{"start":34,"end":35,"cssClass":"pl-s1"},{"start":37,"end":40,"cssClass":"pl-k"},{"start":41,"end":42,"cssClass":"pl-s1"},{"start":43,"end":45,"cssClass":"pl-c1"},{"start":46,"end":50,"cssClass":"pl-s1"}],[],[{"start":4,"end":59,"cssClass":"pl-c"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":12,"end":21,"cssClass":"pl-v"},{"start":22,"end":24,"cssClass":"pl-s1"},{"start":24,"end":25,"cssClass":"pl-c1"},{"start":25,"end":33,"cssClass":"pl-v"},{"start":37,"end":42,"cssClass":"pl-s1"},{"start":42,"end":43,"cssClass":"pl-c1"},{"start":43,"end":52,"cssClass":"pl-s1"},{"start":54,"end":59,"cssClass":"pl-s1"},{"start":59,"end":60,"cssClass":"pl-c1"}],[],[],[{"start":0,"end":3,"cssClass":"pl-k"},{"start":4,"end":18,"cssClass":"pl-en"},{"start":19,"end":22,"cssClass":"pl-s1"}],[{"start":4,"end":43,"cssClass":"pl-s"}],[{"start":4,"end":93,"cssClass":"pl-c"}],[{"start":4,"end":72,"cssClass":"pl-c"}],[{"start":4,"end":10,"cssClass":"pl-k"},{"start":11,"end":15,"cssClass":"pl-en"},{"start":16,"end":20,"cssClass":"pl-s1"},{"start":21,"end":24,"cssClass":"pl-k"},{"start":25,"end":29,"cssClass":"pl-s1"},{"start":30,"end":32,"cssClass":"pl-c1"},{"start":33,"end":36,"cssClass":"pl-s1"},{"start":37,"end":42,"cssClass":"pl-en"},{"start":45,"end":47,"cssClass":"pl-k"},{"start":48,"end":58,"cssClass":"pl-en"},{"start":59,"end":63,"cssClass":"pl-s1"},{"start":65,"end":74,"cssClass":"pl-v"}]],"colorizedLines":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/Qiskit/qiskit/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"lookahead_swap.py","displayUrl":"https://github.com/Qiskit/qiskit/blob/main/qiskit/transpiler/passes/routing/lookahead_swap.py?raw=true","headerInfo":{"blobSize":"14.7 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"a961162","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FQiskit%2Fqiskit%2Fblob%2Fmain%2Fqiskit%2Ftranspiler%2Fpasses%2Frouting%2Flookahead_swap.py","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"384","truncatedSloc":"311"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Python","languageID":303,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/Qiskit/qiskit/blob/main/qiskit/transpiler/passes/routing/lookahead_swap.py","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/Qiskit/qiskit/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/Qiskit/qiskit/raw/main/qiskit/transpiler/passes/routing/lookahead_swap.py","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"logger","kind":"constant","ident_start":980,"ident_end":986,"extent_start":980,"extent_end":1016,"fully_qualified_name":"logger","ident_utf16":{"start":{"line_number":27,"utf16_col":0},"end":{"line_number":27,"utf16_col":6}},"extent_utf16":{"start":{"line_number":27,"utf16_col":0},"end":{"line_number":27,"utf16_col":36}}},{"name":"_Step","kind":"constant","ident_start":1019,"ident_end":1024,"extent_start":1019,"extent_end":1119,"fully_qualified_name":"_Step","ident_utf16":{"start":{"line_number":30,"utf16_col":0},"end":{"line_number":30,"utf16_col":5}},"extent_utf16":{"start":{"line_number":30,"utf16_col":0},"end":{"line_number":30,"utf16_col":100}}},{"name":"_SystemState","kind":"constant","ident_start":1497,"ident_end":1509,"extent_start":1497,"extent_end":1704,"fully_qualified_name":"_SystemState","ident_utf16":{"start":{"line_number":41,"utf16_col":0},"end":{"line_number":41,"utf16_col":12}},"extent_utf16":{"start":{"line_number":41,"utf16_col":0},"end":{"line_number":46,"utf16_col":1}}},{"name":"LookaheadSwap","kind":"class","ident_start":1713,"ident_end":1726,"extent_start":1707,"extent_end":7432,"fully_qualified_name":"LookaheadSwap","ident_utf16":{"start":{"line_number":49,"utf16_col":6},"end":{"line_number":49,"utf16_col":19}},"extent_utf16":{"start":{"line_number":49,"utf16_col":0},"end":{"line_number":180,"utf16_col":25}}},{"name":"__init__","kind":"function","ident_start":3752,"ident_end":3760,"extent_start":3748,"extent_end":4662,"fully_qualified_name":"LookaheadSwap.__init__","ident_utf16":{"start":{"line_number":85,"utf16_col":8},"end":{"line_number":85,"utf16_col":16}},"extent_utf16":{"start":{"line_number":85,"utf16_col":4},"end":{"line_number":105,"utf16_col":32}}},{"name":"run","kind":"function","ident_start":4672,"ident_end":4675,"extent_start":4668,"extent_end":7432,"fully_qualified_name":"LookaheadSwap.run","ident_utf16":{"start":{"line_number":107,"utf16_col":8},"end":{"line_number":107,"utf16_col":11}},"extent_utf16":{"start":{"line_number":107,"utf16_col":4},"end":{"line_number":180,"utf16_col":25}}},{"name":"_search_forward_n_swaps","kind":"function","ident_start":7439,"ident_end":7462,"extent_start":7435,"extent_end":10768,"fully_qualified_name":"_search_forward_n_swaps","ident_utf16":{"start":{"line_number":183,"utf16_col":4},"end":{"line_number":183,"utf16_col":27}},"extent_utf16":{"start":{"line_number":183,"utf16_col":0},"end":{"line_number":264,"utf16_col":14}}},{"name":"_map_free_gates","kind":"function","ident_start":10775,"ident_end":10790,"extent_start":10771,"extent_end":12652,"fully_qualified_name":"_map_free_gates","ident_utf16":{"start":{"line_number":267,"utf16_col":4},"end":{"line_number":267,"utf16_col":19}},"extent_utf16":{"start":{"line_number":267,"utf16_col":0},"end":{"line_number":318,"utf16_col":40}}},{"name":"_calc_layout_distance","kind":"function","ident_start":12659,"ident_end":12680,"extent_start":12655,"extent_end":13254,"fully_qualified_name":"_calc_layout_distance","ident_utf16":{"start":{"line_number":321,"utf16_col":4},"end":{"line_number":321,"utf16_col":25}},"extent_utf16":{"start":{"line_number":321,"utf16_col":0},"end":{"line_number":336,"utf16_col":14}}},{"name":"_score_state_with_swap","kind":"function","ident_start":13261,"ident_end":13283,"extent_start":13257,"extent_end":13755,"fully_qualified_name":"_score_state_with_swap","ident_utf16":{"start":{"line_number":339,"utf16_col":4},"end":{"line_number":339,"utf16_col":26}},"extent_utf16":{"start":{"line_number":339,"utf16_col":0},"end":{"line_number":350,"utf16_col":67}}},{"name":"_score_step","kind":"function","ident_start":13762,"ident_end":13773,"extent_start":13758,"extent_end":14021,"fully_qualified_name":"_score_step","ident_utf16":{"start":{"line_number":353,"utf16_col":4},"end":{"line_number":353,"utf16_col":15}},"extent_utf16":{"start":{"line_number":353,"utf16_col":0},"end":{"line_number":356,"utf16_col":95}}},{"name":"_transform_gate_for_system","kind":"function","ident_start":14028,"ident_end":14054,"extent_start":14024,"extent_end":14382,"fully_qualified_name":"_transform_gate_for_system","ident_utf16":{"start":{"line_number":359,"utf16_col":4},"end":{"line_number":359,"utf16_col":30}},"extent_utf16":{"start":{"line_number":359,"utf16_col":0},"end":{"line_number":367,"utf16_col":25}}},{"name":"_swap_ops_from_edge","kind":"function","ident_start":14389,"ident_end":14408,"extent_start":14385,"extent_end":14712,"fully_qualified_name":"_swap_ops_from_edge","ident_utf16":{"start":{"line_number":370,"utf16_col":4},"end":{"line_number":370,"utf16_col":23}},"extent_utf16":{"start":{"line_number":370,"utf16_col":0},"end":{"line_number":376,"utf16_col":64}}},{"name":"_first_op_node","kind":"function","ident_start":14719,"ident_end":14733,"extent_start":14715,"extent_end":15027,"fully_qualified_name":"_first_op_node","ident_utf16":{"start":{"line_number":379,"utf16_col":4},"end":{"line_number":379,"utf16_col":18}},"extent_utf16":{"start":{"line_number":379,"utf16_col":0},"end":{"line_number":383,"utf16_col":76}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/Qiskit/qiskit/branches":{"post":"bUBX3q3_Ml7U8nFK3rxYK2w7pSPZQMOZ1NvhO92J9izdvmzuhCbazAIAc-CSUBaHEkkYB0zk7YPUCyd_OJUkBQ"},"/repos/preferences":{"post":"4Wzh5cfXPKAZOhDeXHyeAC4HlNiaCHTcLHKwWGOK4HbXE0aOUrebyT0ydC7ijsvXum-tvU9ybMWEuqq3lEmZBw"}}},"title":"qiskit/qiskit/transpiler/passes/routing/lookahead_swap.py at main ยท Qiskit/qiskit"}