// Generated by CoffeeScript 1.12.7
							 | 
						|
								(function() {
							 | 
						|
								  var assign, getValue, isArray, isEmpty, isFunction, isObject, isPlainObject,
							 | 
						|
								    slice = [].slice,
							 | 
						|
								    hasProp = {}.hasOwnProperty;
							 | 
						|
								
							 | 
						|
								  assign = function() {
							 | 
						|
								    var i, key, len, source, sources, target;
							 | 
						|
								    target = arguments[0], sources = 2 <= arguments.length ? slice.call(arguments, 1) : [];
							 | 
						|
								    if (isFunction(Object.assign)) {
							 | 
						|
								      Object.assign.apply(null, arguments);
							 | 
						|
								    } else {
							 | 
						|
								      for (i = 0, len = sources.length; i < len; i++) {
							 | 
						|
								        source = sources[i];
							 | 
						|
								        if (source != null) {
							 | 
						|
								          for (key in source) {
							 | 
						|
								            if (!hasProp.call(source, key)) continue;
							 | 
						|
								            target[key] = source[key];
							 | 
						|
								          }
							 | 
						|
								        }
							 | 
						|
								      }
							 | 
						|
								    }
							 | 
						|
								    return target;
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  isFunction = function(val) {
							 | 
						|
								    return !!val && Object.prototype.toString.call(val) === '[object Function]';
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  isObject = function(val) {
							 | 
						|
								    var ref;
							 | 
						|
								    return !!val && ((ref = typeof val) === 'function' || ref === 'object');
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  isArray = function(val) {
							 | 
						|
								    if (isFunction(Array.isArray)) {
							 | 
						|
								      return Array.isArray(val);
							 | 
						|
								    } else {
							 | 
						|
								      return Object.prototype.toString.call(val) === '[object Array]';
							 | 
						|
								    }
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  isEmpty = function(val) {
							 | 
						|
								    var key;
							 | 
						|
								    if (isArray(val)) {
							 | 
						|
								      return !val.length;
							 | 
						|
								    } else {
							 | 
						|
								      for (key in val) {
							 | 
						|
								        if (!hasProp.call(val, key)) continue;
							 | 
						|
								        return false;
							 | 
						|
								      }
							 | 
						|
								      return true;
							 | 
						|
								    }
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  isPlainObject = function(val) {
							 | 
						|
								    var ctor, proto;
							 | 
						|
								    return isObject(val) && (proto = Object.getPrototypeOf(val)) && (ctor = proto.constructor) && (typeof ctor === 'function') && (ctor instanceof ctor) && (Function.prototype.toString.call(ctor) === Function.prototype.toString.call(Object));
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  getValue = function(obj) {
							 | 
						|
								    if (isFunction(obj.valueOf)) {
							 | 
						|
								      return obj.valueOf();
							 | 
						|
								    } else {
							 | 
						|
								      return obj;
							 | 
						|
								    }
							 | 
						|
								  };
							 | 
						|
								
							 | 
						|
								  module.exports.assign = assign;
							 | 
						|
								
							 | 
						|
								  module.exports.isFunction = isFunction;
							 | 
						|
								
							 | 
						|
								  module.exports.isObject = isObject;
							 | 
						|
								
							 | 
						|
								  module.exports.isArray = isArray;
							 | 
						|
								
							 | 
						|
								  module.exports.isEmpty = isEmpty;
							 | 
						|
								
							 | 
						|
								  module.exports.isPlainObject = isPlainObject;
							 | 
						|
								
							 | 
						|
								  module.exports.getValue = getValue;
							 | 
						|
								
							 | 
						|
								}).call(this);
							 |