nodes: 0, module; 1, function_definition; 2, function_name:get_last_update_time; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, return_statement; 9, string; 10, assignment; 11, call; 12, string_content:Gets the time at which each ledger was updated.
          Can be called at any time to get this information.
  
          :return: an ordered dict of outdated ledgers sorted by last update time (from old to new)
          and then by ledger ID (in case of equal update time); 13, identifier:last_updated; 14, dictionary_comprehension; 15, identifier:OrderedDict; 16, argument_list; 17, pair; 18, for_in_clause; 19, call; 20, identifier:ledger_id; 21, attribute; 22, pattern_list; 23, call; 24, identifier:sorted; 25, argument_list; 26, identifier:freshness_state; 27, identifier:last_updated; 28, identifier:ledger_id; 29, identifier:freshness_state; 30, attribute; 31, argument_list; 32, call; 33, keyword_argument; 34, attribute; 35, identifier:items; 36, attribute; 37, argument_list; 38, identifier:key; 39, lambda; 40, identifier:self; 41, identifier:_ledger_freshness; 42, identifier:last_updated; 43, identifier:items; 44, lambda_parameters; 45, tuple; 46, identifier:item; 47, subscript; 48, subscript; 49, identifier:item; 50, integer:1; 51, identifier:item; 52, integer:0
code: def get_last_update_time(self):
          '''
          Gets the time at which each ledger was updated.
          Can be called at any time to get this information.
  
          :return: an ordered dict of outdated ledgers sorted by last update time (from old to new)
          and then by ledger ID (in case of equal update time)
          '''
          last_updated = {ledger_id: freshness_state.last_updated
                          for ledger_id, freshness_state in self._ledger_freshness.items()}
          return OrderedDict(
              sorted(
                  last_updated.items(),
                  key=lambda item: (item[1], item[0])
              )
          )