code: def annotated_cfg(self, start_point=None):
          
  
          # TODO: Support context-sensitivity
  
          targets = [ ]
  
          for simrun, stmt_idx in self._targets:
              targets.append((simrun.addr, stmt_idx))
  
          l.debug("Initializing AnnoCFG...")
          anno_cfg = AnnotatedCFG(self.project, self._cfg)
  
          for simrun, stmt_idx in self._targets:
              if stmt_idx is not -1:
                  anno_cfg.set_last_statement(simrun.addr, stmt_idx)
  
          for n in self._cfg.graph.nodes():
              run = n
  
              if run.addr in self.chosen_statements:
                  if self.chosen_statements[run.addr] is True:
                      anno_cfg.add_block_to_whitelist(run.addr)
                  else:
                      anno_cfg.add_statements_to_whitelist(run.addr, self.chosen_statements[run.addr])
  
          for src, dst in self._cfg.graph.edges():
              run = src
  
              if dst.addr in self.chosen_statements and src.addr in self.chosen_statements:
                  anno_cfg.add_exit_to_whitelist(run.addr, dst.addr)
  
          return anno_cfg
docs: Returns an AnnotatedCFG based on slicing result.