diff --git a/node_modules/path-root/LICENSE b/node_modules/path-root/LICENSE
new file mode 100644
index 0000000..e28e603
--- /dev/null
+++ b/node_modules/path-root/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016, Jon Schlinkert.
+
+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/path-root/README.md b/node_modules/path-root/README.md
new file mode 100644
index 0000000..aa3c861
--- /dev/null
+++ b/node_modules/path-root/README.md
@@ -0,0 +1,94 @@
+# path-root [![NPM version](https://img.shields.io/npm/v/path-root.svg?style=flat)](https://www.npmjs.com/package/path-root) [![NPM downloads](https://img.shields.io/npm/dm/path-root.svg?style=flat)](https://npmjs.org/package/path-root) [![Build Status](https://img.shields.io/travis/jonschlinkert/path-root.svg?style=flat)](https://travis-ci.org/jonschlinkert/path-root)
+
+> Get the root of a posix or windows filepath.
+
+You might also be interested in [parse-filepath](https://github.com/jonschlinkert/parse-filepath).
+
+## Install
+
+Install with [npm](https://www.npmjs.com/):
+
+```sh
+$ npm install path-root --save
+```
+
+## Usage
+
+```js
+var pathRoot = require('path-root');
+```
+
+**Examples**
+
+```js
+pathRoot('\\\\server\\share\\abc');
+//=> '\\\\server\\share\\'
+
+pathRoot('\\\\server foo\\some folder\\base-file.js');
+//=> '\\\\server foo\\some folder\\'
+
+pathRoot('\\\\?\\UNC\\server\\share');
+//=> '\\\\?\\UNC\\'
+
+pathRoot('foo/bar/baz.js');
+//=> ''
+
+pathRoot('c:\\foo\\bar\\baz.js');
+//=> 'c:\\'
+
+pathRoot('\\\\slslslsl\\admin$\\system32');
+//=> '\\\\slslslsl\\admin$\\'
+
+pathRoot('/foo/bar/baz.js');
+//=> '/'
+```
+
+## Related projects
+
+You might also be interested in these projects:
+
+* [is-absolute](https://www.npmjs.com/package/is-absolute): Polyfill for node.js `path.isAbolute`. Returns true if a file path is absolute. | [homepage](https://github.com/jonschlinkert/is-absolute)
+* [parse-filepath](https://www.npmjs.com/package/parse-filepath): Parse a filepath into an object. Falls back on the native node.js `path.parse` method if… [more](https://www.npmjs.com/package/parse-filepath) | [homepage](https://github.com/jonschlinkert/parse-filepath)
+* [path-root-regex](https://www.npmjs.com/package/path-root-regex): Regular expression for getting the root of a posix or windows filepath. | [homepage](https://github.com/regexhq/path-root-regex)
+
+## Contributing
+
+Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/path-root/issues/new).
+
+## Building docs
+
+Generate readme and API documentation with [verb](https://github.com/verbose/verb):
+
+```sh
+$ npm install verb && npm run docs
+```
+
+Or, if [verb](https://github.com/verbose/verb) is installed globally:
+
+```sh
+$ verb
+```
+
+## Running tests
+
+Install dev dependencies:
+
+```sh
+$ npm install -d && npm test
+```
+
+## Author
+
+**Jon Schlinkert**
+
+* [github/jonschlinkert](https://github.com/jonschlinkert)
+* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
+
+## License
+
+Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
+Released under the [MIT license](https://github.com/jonschlinkert/path-root/blob/master/LICENSE).
+
+***
+
+_This file was generated by [verb](https://github.com/verbose/verb), v, on March 29, 2016._
\ No newline at end of file
diff --git a/node_modules/path-root/index.js b/node_modules/path-root/index.js
new file mode 100644
index 0000000..8e141ba
--- /dev/null
+++ b/node_modules/path-root/index.js
@@ -0,0 +1,21 @@
+/*!
+ * path-root <https://github.com/jonschlinkert/path-root>
+ *
+ * Copyright (c) 2016, Jon Schlinkert.
+ * Licensed under the MIT License.
+ */
+
+'use strict';
+
+var pathRootRegex = require('path-root-regex');
+
+module.exports = function(filepath) {
+  if (typeof filepath !== 'string') {
+    throw new TypeError('expected a string');
+  }
+
+  var match = pathRootRegex().exec(filepath);
+  if (match) {
+    return match[0];
+  }
+};
diff --git a/node_modules/path-root/package.json b/node_modules/path-root/package.json
new file mode 100644
index 0000000..b7454ce
--- /dev/null
+++ b/node_modules/path-root/package.json
@@ -0,0 +1,89 @@
+{
+  "_from": "path-root@^0.1.1",
+  "_id": "path-root@0.1.1",
+  "_inBundle": false,
+  "_integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=",
+  "_location": "/path-root",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "path-root@^0.1.1",
+    "name": "path-root",
+    "escapedName": "path-root",
+    "rawSpec": "^0.1.1",
+    "saveSpec": null,
+    "fetchSpec": "^0.1.1"
+  },
+  "_requiredBy": [
+    "/parse-filepath"
+  ],
+  "_resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+  "_shasum": "9a4a6814cac1c0cd73360a95f32083c8ea4745b7",
+  "_spec": "path-root@^0.1.1",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\parse-filepath",
+  "author": {
+    "name": "Jon Schlinkert",
+    "url": "https://github.com/jonschlinkert"
+  },
+  "bugs": {
+    "url": "https://github.com/jonschlinkert/path-root/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "path-root-regex": "^0.1.0"
+  },
+  "deprecated": false,
+  "description": "Get the root of a posix or windows filepath.",
+  "devDependencies": {
+    "gulp-format-md": "^0.1.7",
+    "mocha": "^2.4.5"
+  },
+  "engines": {
+    "node": ">=0.10.0"
+  },
+  "files": [
+    "index.js"
+  ],
+  "homepage": "https://github.com/jonschlinkert/path-root",
+  "keywords": [
+    "path",
+    "root"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "path-root",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/jonschlinkert/path-root.git"
+  },
+  "scripts": {
+    "test": "mocha"
+  },
+  "verb": {
+    "run": true,
+    "toc": false,
+    "layout": "default",
+    "tasks": [
+      "readme"
+    ],
+    "plugins": [
+      "gulp-format-md"
+    ],
+    "related": {
+      "highlight": "parse-filepath",
+      "list": [
+        "path-root-regex",
+        "parse-filepath",
+        "is-absolute"
+      ]
+    },
+    "reflinks": [
+      "verb"
+    ],
+    "lint": {
+      "reflinks": true
+    }
+  },
+  "version": "0.1.1"
+}
