input: def optimize_code(fn, params):
      """Optimizes the given function using the provided parameters within a range.
      It searches for the parameters that yield the highest score when passed to the function.
  
      >>> optimize_code(get_result, Params(a=1, b=2, c=3))
      {'a': 3, 'b': 4, 'c': 5}
      >>> optimize_code(get_result, Params(a=10, b=20, c=30))
      {'a': 12, 'b': 22, 'c': 32}
      """
      best_score = 0
      best_params = None
      for a in range(params.a - 10, params.a + 10):
          for b in range(params.b - 10, params.b + 10):
              for c in range(params.c - 10, params.c + 10):
                  score = fn(Params(a, b, c))
                  if score > best_score:
                      best_score = score
                      best_params = {
                          'a': a,
                          'b': b,
                          'c': c
                      }
      return best_params
output:     best_score = 0
      best_params = None
      for a in range(params.a - 10, params.a + 10):
          for b in range(params.b - 10, params.b + 10):
              for c in range(params.c - 10, params.c + 10):
                  score = fn(Params(a, b, c))
                  if score > best_score:
                      best_score = score
                      best_params = {
                          'a': a,
                          'b': b,
                          'c': c
                      }
      return best_params