import t from "./_Stack.mjs";
import d from "./_assignMergeValue.mjs";
import g from "./_baseFor.mjs";
import a from "./_baseMergeDeep.mjs";
import M from "./isObject.mjs";
import v from "./keysIn.mjs";
import x from "./_safeGet.mjs";
function D(f, r, e, n, i) {
  f !== r && g(r, function(o, m) {
    if (i || (i = new t()), M(o))
      a(f, r, m, e, D, n, i);
    else {
      var p = n ? n(x(f, m), o, m + "", f, r, i) : void 0;
      p === void 0 && (p = o), d(f, m, p);
    }
  }, v);
}
export {
  D as default
};
