code: def do_draw(self, data):
      # We start by drawing a timezone, and an initial datetime.
      tz = data.draw(self.tz_strat)
      result = self.draw_naive_datetime_and_combine(data, tz)
  
      # TODO: with some probability, systematically search for one of
      #   - an imaginary time (if allowed),
      #   - a time within 24hrs of a leap second (if there any are within bounds),
      #   - other subtle, little-known, or nasty issues as described in
      #     https://github.com/HypothesisWorks/hypothesis/issues/69
  
      # If we happened to end up with a disallowed imaginary time, reject it.
      if (not self.allow_imaginary) and datetime_does_not_exist(result):
          data.mark_invalid("nonexistent datetime")
      return result
  
imports: import datetime
  from calendar import monthrange
  from functools import lru_cache
  from importlib import resources
  from pathlib import Path
  from typing import Optional
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.validation import check_type, check_valid_interval
  from hypothesis.strategies._internal.core import sampled_from
  from hypothesis.strategies._internal.misc import just, none
  from hypothesis.strategies._internal.strategies import SearchStrategy
  from hypothesis.strategies._internal.utils import defines_strategy
label_desc: Use image node_id 2 for calling the DatetimeStrategy obj's underlying member method code with example usage: obj.do_draw(data) and returns: result