diff --git a/node_modules/unquote/.npmignore b/node_modules/unquote/.npmignore
new file mode 100644
index 0000000..f05b1f2
--- /dev/null
+++ b/node_modules/unquote/.npmignore
@@ -0,0 +1,2 @@
+node_modules
+test
diff --git a/node_modules/unquote/LICENSE b/node_modules/unquote/LICENSE
new file mode 100644
index 0000000..be9c1a0
--- /dev/null
+++ b/node_modules/unquote/LICENSE
@@ -0,0 +1,24 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Cameron Lakenen
+
+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, sub-license, 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/unquote/README.md b/node_modules/unquote/README.md
new file mode 100644
index 0000000..47ae30b
--- /dev/null
+++ b/node_modules/unquote/README.md
@@ -0,0 +1,33 @@
+# unquote
+
+Remove wrapping quotes from a string. Returns an empty string if the first arg is falsey.
+
+## Installation
+
+```
+npm install unquote
+```
+
+
+## Usage
+
+Example
+```js
+var unquote = require('unquote')
+
+unquote('"hello, world"') // 'hello, world'
+unquote('\'hello, world\'') // 'hello, world'
+```
+
+
+## Running Tests
+
+```
+npm test
+```
+
+## License
+
+([The MIT License](LICENSE))
+
+Copyright 2017 Cameron Lakenen
diff --git a/node_modules/unquote/index.js b/node_modules/unquote/index.js
new file mode 100644
index 0000000..016a782
--- /dev/null
+++ b/node_modules/unquote/index.js
@@ -0,0 +1,14 @@
+var reg = /[\'\"]/
+
+module.exports = function unquote(str) {
+  if (!str) {
+    return ''
+  }
+  if (reg.test(str.charAt(0))) {
+    str = str.substr(1)
+  }
+  if (reg.test(str.charAt(str.length - 1))) {
+    str = str.substr(0, str.length - 1)
+  }
+  return str
+}
diff --git a/node_modules/unquote/package.json b/node_modules/unquote/package.json
new file mode 100644
index 0000000..f4454d1
--- /dev/null
+++ b/node_modules/unquote/package.json
@@ -0,0 +1,58 @@
+{
+  "_from": "unquote@~1.1.1",
+  "_id": "unquote@1.1.1",
+  "_inBundle": false,
+  "_integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=",
+  "_location": "/unquote",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "unquote@~1.1.1",
+    "name": "unquote",
+    "escapedName": "unquote",
+    "rawSpec": "~1.1.1",
+    "saveSpec": null,
+    "fetchSpec": "~1.1.1"
+  },
+  "_requiredBy": [
+    "/svgo"
+  ],
+  "_resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+  "_shasum": "8fded7324ec6e88a0ff8b905e7c098cdc086d544",
+  "_spec": "unquote@~1.1.1",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\svgo",
+  "author": {
+    "name": "Cameron Lakenen",
+    "email": "cameron@lakenen.com"
+  },
+  "bugs": {
+    "url": "https://github.com/lakenen/node-unquote/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Remove wrapping quotes from a string.",
+  "devDependencies": {
+    "tape": "^2.13.4"
+  },
+  "directories": {
+    "test": "test"
+  },
+  "homepage": "https://github.com/lakenen/node-unquote",
+  "keywords": [
+    "string",
+    "unquote",
+    "quotes"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "unquote",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/lakenen/node-unquote.git"
+  },
+  "scripts": {
+    "test": "node test/*"
+  },
+  "version": "1.1.1"
+}
