code: public Config load() {
  
          ConfigResolveOptions resolveOptions = getResolveOptions();
          HashMapBindings bindings = this.bindings;
          Config config = emptyConfig();
  
          for (int i = 0; i < 2; i++) {
  
              config = emptyConfig();
  
              for (ConfigSource source
                      : sources.fromHighestToLowestPrecedence()) {
  
                  config = config.withFallback(source.load(bindings));
              }
  
              config = config.resolve(resolveOptions);
              bindings = bindings.set(Config.class, config);
          }
  
          return config;
      }
docs: Evaluates the {@link ConfigSource}s, {@link #bind(Class) bind}s the
  resulting {@link Config}, then evaluates the {@link ConfigSource}s
  again.
  
  <p>The second evaluation takes place to allow sources to utilize
  values produced by other config sources.</p>