code: def arxiv_eprints(self, key, value):
      
      def _get_clean_arxiv_eprint(id_):
          return id_.split(':')[-1]
  
      def _is_arxiv_eprint(id_, source):
          return source.lower() == 'arxiv'
  
      def _is_hidden_report_number(other_id, source):
          return other_id
  
      def _get_clean_source(source):
          if source == 'arXiv:reportnumber':
              return 'arXiv'
          return source
  
      arxiv_eprints = self.get('arxiv_eprints', [])
      report_numbers = self.get('report_numbers', [])
  
      values = force_list(value)
      for value in values:
          id_ = force_single_element(value.get('a', ''))
          other_id = force_single_element(value.get('z', ''))
          categories = [normalize_arxiv_category(category) for category
                        in force_list(value.get('c'))]
          source = force_single_element(value.get('9', ''))
  
          if _is_arxiv_eprint(id_, source):
              arxiv_eprints.append({
                  'categories': categories,
                  'value': _get_clean_arxiv_eprint(id_),
              })
          elif _is_hidden_report_number(other_id, source):
              report_numbers.append({
                  'hidden': True,
                  'source': _get_clean_source(source),
                  'value': other_id,
              })
          else:
              report_numbers.append({
                  'source': _get_clean_source(source),
                  'value': id_,
              })
  
      self['report_numbers'] = report_numbers
      return arxiv_eprints
docs: Populate the ``arxiv_eprints`` key.
  
      Also populates the ``report_numbers`` key through side effects.