'use strict';

var _first = require('./first');

var _first2 = _interopRequireDefault(_first);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

const newMeta = Object.assign({}, _first2.default.meta, { deprecated: true });

module.exports = Object.assign({}, _first2.default, { meta: newMeta });
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bGVzL2ltcG9ydHMtZmlyc3QuanMiXSwibmFtZXMiOlsibmV3TWV0YSIsIk9iamVjdCIsImFzc2lnbiIsIm1ldGEiLCJkZXByZWNhdGVkIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUEsTUFBTUEsVUFBVUMsT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0IsZ0JBQU1DLElBQXhCLEVBQThCLEVBQUVDLFlBQVksSUFBZCxFQUE5QixDQUFoQjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFpQkwsT0FBT0MsTUFBUCxDQUFjLEVBQWQsbUJBQXlCLEVBQUVDLE1BQU1ILE9BQVIsRUFBekIsQ0FBakIiLCJmaWxlIjoicnVsZXMvaW1wb3J0cy1maXJzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmaXJzdCBmcm9tICcuL2ZpcnN0J1xuXG5jb25zdCBuZXdNZXRhID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QubWV0YSwgeyBkZXByZWNhdGVkOiB0cnVlIH0pXG5cbm1vZHVsZS5leHBvcnRzID0gT2JqZWN0LmFzc2lnbih7fSwgZmlyc3QsIHsgbWV0YTogbmV3TWV0YSB9KVxuIl19