diff --git a/node_modules/filename-reserved-regex/index.js b/node_modules/filename-reserved-regex/index.js
new file mode 100644
index 0000000..174f46f
--- /dev/null
+++ b/node_modules/filename-reserved-regex/index.js
@@ -0,0 +1,5 @@
+'use strict';
+/* eslint-disable no-control-regex */
+// TODO: remove parens when Node.js 6 is targeted. Node.js 4 barfs at it.
+module.exports = () => (/[<>:"\/\\|?*\x00-\x1F]/g);
+module.exports.windowsNames = () => (/^(con|prn|aux|nul|com[0-9]|lpt[0-9])$/i);
diff --git a/node_modules/filename-reserved-regex/license b/node_modules/filename-reserved-regex/license
new file mode 100644
index 0000000..654d0bf
--- /dev/null
+++ b/node_modules/filename-reserved-regex/license
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/node_modules/filename-reserved-regex/package.json b/node_modules/filename-reserved-regex/package.json
new file mode 100644
index 0000000..b8219dd
--- /dev/null
+++ b/node_modules/filename-reserved-regex/package.json
@@ -0,0 +1,68 @@
+{
+  "_from": "filename-reserved-regex@^2.0.0",
+  "_id": "filename-reserved-regex@2.0.0",
+  "_inBundle": false,
+  "_integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=",
+  "_location": "/filename-reserved-regex",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "filename-reserved-regex@^2.0.0",
+    "name": "filename-reserved-regex",
+    "escapedName": "filename-reserved-regex",
+    "rawSpec": "^2.0.0",
+    "saveSpec": null,
+    "fetchSpec": "^2.0.0"
+  },
+  "_requiredBy": [
+    "/filenamify"
+  ],
+  "_resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+  "_shasum": "abf73dfab735d045440abfea2d91f389ebbfa229",
+  "_spec": "filename-reserved-regex@^2.0.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\filenamify",
+  "author": {
+    "name": "Sindre Sorhus",
+    "email": "sindresorhus@gmail.com",
+    "url": "sindresorhus.com"
+  },
+  "bugs": {
+    "url": "https://github.com/sindresorhus/filename-reserved-regex/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Regular expression for matching reserved filename characters",
+  "devDependencies": {
+    "ava": "*",
+    "xo": "*"
+  },
+  "engines": {
+    "node": ">=4"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/sindresorhus/filename-reserved-regex#readme",
+  "keywords": [
+    "re",
+    "regex",
+    "regexp",
+    "filename",
+    "reserved",
+    "illegal"
+  ],
+  "license": "MIT",
+  "name": "filename-reserved-regex",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/sindresorhus/filename-reserved-regex.git"
+  },
+  "scripts": {
+    "test": "xo && ava"
+  },
+  "version": "2.0.0",
+  "xo": {
+    "esnext": true
+  }
+}
diff --git a/node_modules/filename-reserved-regex/readme.md b/node_modules/filename-reserved-regex/readme.md
new file mode 100644
index 0000000..91641b5
--- /dev/null
+++ b/node_modules/filename-reserved-regex/readme.md
@@ -0,0 +1,49 @@
+# filename-reserved-regex [![Build Status](https://travis-ci.org/sindresorhus/filename-reserved-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/filename-reserved-regex)
+
+> Regular expression for matching reserved filename characters
+
+On Unix-like systems `/` is reserved and [`<>:"/\|?*`](http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29#naming_conventions) as well as non-printable characters `\x00-\x1F` on Windows.
+
+
+## Install
+
+```
+$ npm install --save filename-reserved-regex
+```
+
+
+## Usage
+
+```js
+const filenameReservedRegex = require('filename-reserved-regex');
+
+filenameReservedRegex().test('foo/bar');
+//=> true
+
+filenameReservedRegex().test('foo-bar');
+//=> false
+
+'foo/bar'.replace(filenameReservedRegex(), '!');
+//=> 'foo!bar'
+
+filenameReservedRegex.windowsNames().test('aux');
+//=> true
+```
+
+## API
+
+### filenameReservedRegex()
+
+Returns a regex that matches all invalid characters.
+
+### filenameReservedRegex.windowsNames()
+
+Returns a exact-match case-insensitive regex that matches invalid Windows
+filenames. These include `CON`, `PRN`, `AUX`, `NUL`, `COM1`, `COM2`, `COM3`, `COM4`, `COM5`,
+`COM6`, `COM7`, `COM8`, `COM9`, `LPT1`, `LPT2`, `LPT3`, `LPT4`, `LPT5`, `LPT6`, `LPT7`, `LPT8`
+and `LPT9`.
+
+
+## License
+
+MIT © [Sindre Sorhus](https://sindresorhus.com)
