Demo for query storing

Change-Id: I947bcac841992c3f6cfd01ab337c265b0d01cb70
diff --git a/node_modules/object.getownpropertydescriptors/.editorconfig b/node_modules/object.getownpropertydescriptors/.editorconfig
new file mode 100644
index 0000000..eaa2141
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/.editorconfig
@@ -0,0 +1,13 @@
+root = true
+
+[*]
+indent_style = tab;
+insert_final_newline = true;
+quote_type = auto;
+space_after_anonymous_functions = true;
+space_after_control_statements = true;
+spaces_around_operators = true;
+trim_trailing_whitespace = true;
+spaces_in_brackets = false;
+end_of_line = lf;
+
diff --git a/node_modules/object.getownpropertydescriptors/.eslintignore b/node_modules/object.getownpropertydescriptors/.eslintignore
new file mode 100644
index 0000000..404abb2
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/.eslintignore
@@ -0,0 +1 @@
+coverage/
diff --git a/node_modules/object.getownpropertydescriptors/.eslintrc b/node_modules/object.getownpropertydescriptors/.eslintrc
new file mode 100644
index 0000000..e3a5450
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/.eslintrc
@@ -0,0 +1,20 @@
+{
+	"root": true,
+
+	"extends": "@ljharb",
+
+	"rules": {
+		"id-length": [2, { "min": 1, "max": 30 }],
+		"new-cap": [2, { "capIsNewExceptions": ["CreateDataProperty", "IsCallable", "RequireObjectCoercible", "ToObject"] }]
+	},
+
+	"overrides": [
+		{
+			"files": "test/**",
+			"rules": {
+				"max-lines-per-function": 0,
+				"no-invalid-this": 1
+			},
+		},
+	],
+}
diff --git a/node_modules/object.getownpropertydescriptors/.nycrc b/node_modules/object.getownpropertydescriptors/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/.nycrc
@@ -0,0 +1,13 @@
+{
+	"all": true,
+	"check-coverage": false,
+	"reporter": ["text-summary", "text", "html", "json"],
+	"lines": 86,
+	"statements": 85.93,
+	"functions": 82.43,
+	"branches": 76.06,
+	"exclude": [
+		"coverage",
+		"test"
+	]
+}
diff --git a/node_modules/object.getownpropertydescriptors/CHANGELOG.md b/node_modules/object.getownpropertydescriptors/CHANGELOG.md
new file mode 100644
index 0000000..56ec4db
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/CHANGELOG.md
@@ -0,0 +1,88 @@
+2.1.2 / 2021-02-20
+=================
+  * [Deps] update `call-bind`, `es-abstract`
+  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `functions-have-names`, `has-strict-mode`, `tape`
+  * [meta] do not publish github action workflow files
+  * [meta] gitignore coverage output
+  * [actions] update workflows
+
+2.1.1 / 2020-11-26
+=================
+  * [Fix] do not mutate the native function when present
+  * [Deps] update `es-abstract`; use `call-bind` where applicable
+  * [meta] remove unused Makefile and associated utilities
+  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `functions-have-names`; add `aud`
+  * [actions] add Require Allow Edits workflow
+  * [actions] switch Automatic Rebase workflow to `pull_request_target` event
+  * [Tests] migrate tests to Github Actions
+  * [Tests] run `nyc` on all tests
+  * [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner
+  * [Tests] only audit prod deps
+
+2.1.0 / 2019-12-12
+=================
+  * [New] add auto entry point
+  * [Refactor] use split-up `es-abstract` (78% bundle size decrease)
+  * [readme] fix repo URLs, remove testling
+  * [Docs] Fix formatting in the README (#30)
+  * [Deps] update `define-properties`, `es-abstract`
+  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `covert`, `replace`, `semver`, `tape`, `@es-shims/api`; add `safe-publish-latest`
+  * [meta] add `funding` field
+  * [meta] Only apps should have lockfiles.
+  * [Tests] use shared travis-ci configs
+  * [Tests] use `functions-have-names`
+  * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops
+  * [Tests] remove `jscs`
+  * [actions] add automatic rebasing / merge commit blocking
+
+2.0.3 / 2016-07-26
+=================
+  * [Fix] Update implementation to not return `undefined` descriptors
+  * [Deps] update `es-abstract`
+  * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `jscs`, `nsp`, `tape`, `semver`
+  * [Dev Deps] remove unused eccheck script + dep
+  * [Tests] up to `node` `v6.3`, `v5.12`, `v4.4`
+  * [Tests] use pretest/posttest for linting/security
+  * Update to stage 4
+
+2.0.2 / 2016-01-27
+=================
+  * [Fix] ensure that `Object.getOwnPropertyDescriptors` does not fail when `Object.prototype` has a poisoned setter (#1, #2)
+
+2.0.1 / 2016-01-27
+=================
+  * [Deps] move `@es-shims/api` to dev deps
+
+2.0.0 / 2016-01-27
+=================
+  * [Breaking] implement the es-shims API
+  * [Deps] update `define-properties`, `es-abstract`
+  * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`
+  * [Tests] fix npm upgrades in older nodes
+  * [Tests] up to `node` `v5.5`
+  * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG
+
+1.0.4 / 2015-07-20
+=================
+  * [Tests] Test on `io.js` `v2.4`
+  * [Deps, Dev Deps] Update `define-properties`, `tape`, `eslint`, `semver`
+
+1.0.3 / 2015-06-28
+=================
+  * Increase robustness by caching `Array#{concat, reduce}`
+  * [Deps] Update `define_properties`
+  * [Dev Deps] Update `eslint`, `semver`, `nsp`
+  * [Tests] Test up to `io.js` `v2.3`
+
+1.0.2 / 2015-05-23
+=================
+  * Update `es-abstract`, `tape`, `eslint`, `jscs`, `semver`, `covert`
+  * Test up to `io.js` `v2.0`
+
+1.0.1 / 2015-03-20
+=================
+  * Update `es-abstract`, `editorconfig-tools`, `nsp`, `eslint`, `semver`, `replace`
+
+1.0.0 / 2015-02-17
+=================
+  * v1.0.0
diff --git a/node_modules/object.getownpropertydescriptors/LICENSE b/node_modules/object.getownpropertydescriptors/LICENSE
new file mode 100644
index 0000000..b43df44
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Jordan Harband
+
+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/object.getownpropertydescriptors/README.md b/node_modules/object.getownpropertydescriptors/README.md
new file mode 100644
index 0000000..41f7f86
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/README.md
@@ -0,0 +1,95 @@
+# Object.getOwnPropertyDescriptors <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
+
+[![Build Status][travis-svg]][travis-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+An ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.
+Invoke its "shim" method to shim `Object.getOwnPropertyDescriptors` if it is unavailable, and if `Object.getOwnPropertyDescriptor` is available.
+
+This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://github.com/tc39/ecma262/pull/582).
+
+## Example
+
+```js
+var getDescriptors = require('object.getownpropertydescriptors');
+var assert = require('assert');
+var obj = { normal: Infinity };
+var enumDescriptor = {
+	enumerable: false,
+	writable: false,
+	configurable: true,
+	value: true
+};
+var writableDescriptor = {
+	enumerable: true,
+	writable: true,
+	configurable: true,
+	value: 42
+};
+var symbol = Symbol();
+var symDescriptor = {
+	enumerable: true,
+	writable: true,
+	configurable: false,
+	value: [symbol]
+};
+
+Object.defineProperty(obj, 'enumerable', enumDescriptor);
+Object.defineProperty(obj, 'writable', writableDescriptor);
+Object.defineProperty(obj, 'symbol', symDescriptor);
+
+var descriptors = getDescriptors(obj);
+
+assert.deepEqual(descriptors, {
+	normal: {
+		enumerable: true,
+		writable: true,
+		configurable: true,
+		value: Infinity
+	},
+	enumerable: enumDescriptor,
+	writable: writableDescriptor,
+	symbol: symDescriptor
+});
+```
+
+```js
+var getDescriptors = require('object.getownpropertydescriptors');
+var assert = require('assert');
+/* when Object.getOwnPropertyDescriptors is not present */
+delete Object.getOwnPropertyDescriptors;
+var shimmedDescriptors = getDescriptors.shim();
+assert.equal(shimmedDescriptors, getDescriptors);
+assert.deepEqual(shimmedDescriptors(obj), getDescriptors(obj));
+```
+
+```js
+var getDescriptors = require('object.getownpropertydescriptors');
+var assert = require('assert');
+/* when Object.getOwnPropertyDescriptors is present */
+var shimmedDescriptors = getDescriptors.shim();
+assert.notEqual(shimmedDescriptors, getDescriptors);
+assert.deepEqual(shimmedDescriptors(obj), getDescriptors(obj));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+[package-url]: https://npmjs.org/package/object.getownpropertydescriptors
+[npm-version-svg]: http://versionbadg.es/es-shims/object.getownpropertydescriptors.svg
+[travis-svg]: https://travis-ci.org/es-shims/Object.getOwnPropertyDescriptors.svg
+[travis-url]: https://travis-ci.org/es-shims/Object.getOwnPropertyDescriptors
+[deps-svg]: https://david-dm.org/es-shims/object.getownpropertydescriptors.svg
+[deps-url]: https://david-dm.org/es-shims/object.getownpropertydescriptors
+[dev-deps-svg]: https://david-dm.org/es-shims/object.getownpropertydescriptors/dev-status.svg
+[dev-deps-url]: https://david-dm.org/es-shims/object.getownpropertydescriptors#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/object.getownpropertydescriptors.png?downloads=true&stars=true
+[license-image]: http://img.shields.io/npm/l/object.getownpropertydescriptors.svg
+[license-url]: LICENSE
+[downloads-image]: http://img.shields.io/npm/dm/object.getownpropertydescriptors.svg
+[downloads-url]: http://npm-stat.com/charts.html?package=object.getownpropertydescriptors
diff --git a/node_modules/object.getownpropertydescriptors/auto.js b/node_modules/object.getownpropertydescriptors/auto.js
new file mode 100644
index 0000000..8ebf606
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/auto.js
@@ -0,0 +1,3 @@
+'use strict';
+
+require('./shim')();
diff --git a/node_modules/object.getownpropertydescriptors/implementation.js b/node_modules/object.getownpropertydescriptors/implementation.js
new file mode 100644
index 0000000..9a39c8d
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/implementation.js
@@ -0,0 +1,38 @@
+'use strict';
+
+var CreateDataProperty = require('es-abstract/2020/CreateDataProperty');
+var IsCallable = require('es-abstract/2020/IsCallable');
+var RequireObjectCoercible = require('es-abstract/2020/RequireObjectCoercible');
+var ToObject = require('es-abstract/2020/ToObject');
+var callBound = require('call-bind/callBound');
+
+var $gOPD = Object.getOwnPropertyDescriptor;
+var $getOwnNames = Object.getOwnPropertyNames;
+var $getSymbols = Object.getOwnPropertySymbols;
+var $concat = callBound('Array.prototype.concat');
+var $reduce = callBound('Array.prototype.reduce');
+var getAll = $getSymbols ? function (obj) {
+	return $concat($getOwnNames(obj), $getSymbols(obj));
+} : $getOwnNames;
+
+var isES5 = IsCallable($gOPD) && IsCallable($getOwnNames);
+
+module.exports = function getOwnPropertyDescriptors(value) {
+	RequireObjectCoercible(value);
+	if (!isES5) {
+		throw new TypeError('getOwnPropertyDescriptors requires Object.getOwnPropertyDescriptor');
+	}
+
+	var O = ToObject(value);
+	return $reduce(
+		getAll(O),
+		function (acc, key) {
+			var descriptor = $gOPD(O, key);
+			if (typeof descriptor !== 'undefined') {
+				CreateDataProperty(acc, key, descriptor);
+			}
+			return acc;
+		},
+		{}
+	);
+};
diff --git a/node_modules/object.getownpropertydescriptors/index.js b/node_modules/object.getownpropertydescriptors/index.js
new file mode 100644
index 0000000..dfc1e8b
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+var define = require('define-properties');
+var callBind = require('call-bind');
+
+var implementation = require('./implementation');
+var getPolyfill = require('./polyfill');
+var shim = require('./shim');
+
+var bound = callBind(getPolyfill(), Object);
+
+define(bound, {
+	getPolyfill: getPolyfill,
+	implementation: implementation,
+	shim: shim
+});
+
+module.exports = bound;
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.eslintignore b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.eslintignore
new file mode 100644
index 0000000..404abb2
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.eslintignore
@@ -0,0 +1 @@
+coverage/
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.eslintrc b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.eslintrc
new file mode 100644
index 0000000..e5d3c9a
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.eslintrc
@@ -0,0 +1,17 @@
+{
+	"root": true,
+
+	"extends": "@ljharb",
+
+	"rules": {
+		"func-name-matching": 0,
+		"id-length": 0,
+		"new-cap": [2, {
+			"capIsNewExceptions": [
+				"GetIntrinsic",
+			],
+		}],
+		"no-magic-numbers": 0,
+		"operator-linebreak": [2, "before"],
+	},
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.github/FUNDING.yml b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.github/FUNDING.yml
new file mode 100644
index 0000000..c70c2ec
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/call-bind
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.nycrc b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/.nycrc
@@ -0,0 +1,13 @@
+{
+	"all": true,
+	"check-coverage": false,
+	"reporter": ["text-summary", "text", "html", "json"],
+	"lines": 86,
+	"statements": 85.93,
+	"functions": 82.43,
+	"branches": 76.06,
+	"exclude": [
+		"coverage",
+		"test"
+	]
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/CHANGELOG.md b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/CHANGELOG.md
new file mode 100644
index 0000000..62a3727
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/CHANGELOG.md
@@ -0,0 +1,42 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11
+
+### Commits
+
+- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d)
+
+## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1)
+- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e)
+- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb)
+- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71)
+- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee)
+- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2)
+- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8)
+- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532)
+- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6)
+
+## v1.0.0 - 2020-10-30
+
+### Commits
+
+- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50)
+- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df)
+- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65)
+- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249)
+- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13)
+- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4)
+- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717)
+- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af)
+- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650)
+- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f)
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/LICENSE b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/LICENSE
new file mode 100644
index 0000000..48f05d0
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Jordan Harband
+
+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/object.getownpropertydescriptors/node_modules/call-bind/README.md b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/README.md
new file mode 100644
index 0000000..53649eb
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/README.md
@@ -0,0 +1,2 @@
+# call-bind
+Robustly `.call.bind()` a function.
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/callBound.js b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/callBound.js
new file mode 100644
index 0000000..8374adf
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/callBound.js
@@ -0,0 +1,15 @@
+'use strict';
+
+var GetIntrinsic = require('get-intrinsic');
+
+var callBind = require('./');
+
+var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));
+
+module.exports = function callBoundIntrinsic(name, allowMissing) {
+	var intrinsic = GetIntrinsic(name, !!allowMissing);
+	if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {
+		return callBind(intrinsic);
+	}
+	return intrinsic;
+};
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/index.js b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/index.js
new file mode 100644
index 0000000..6fa3e4a
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/index.js
@@ -0,0 +1,47 @@
+'use strict';
+
+var bind = require('function-bind');
+var GetIntrinsic = require('get-intrinsic');
+
+var $apply = GetIntrinsic('%Function.prototype.apply%');
+var $call = GetIntrinsic('%Function.prototype.call%');
+var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);
+
+var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);
+var $defineProperty = GetIntrinsic('%Object.defineProperty%', true);
+var $max = GetIntrinsic('%Math.max%');
+
+if ($defineProperty) {
+	try {
+		$defineProperty({}, 'a', { value: 1 });
+	} catch (e) {
+		// IE 8 has a broken defineProperty
+		$defineProperty = null;
+	}
+}
+
+module.exports = function callBind(originalFunction) {
+	var func = $reflectApply(bind, $call, arguments);
+	if ($gOPD && $defineProperty) {
+		var desc = $gOPD(func, 'length');
+		if (desc.configurable) {
+			// original length, plus the receiver, minus any additional arguments (after the receiver)
+			$defineProperty(
+				func,
+				'length',
+				{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }
+			);
+		}
+	}
+	return func;
+};
+
+var applyBind = function applyBind() {
+	return $reflectApply(bind, $apply, arguments);
+};
+
+if ($defineProperty) {
+	$defineProperty(module.exports, 'apply', { value: applyBind });
+} else {
+	module.exports.apply = applyBind;
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/package.json b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/package.json
new file mode 100644
index 0000000..ab7a2a9
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/package.json
@@ -0,0 +1,108 @@
+{
+  "_from": "call-bind@^1.0.2",
+  "_id": "call-bind@1.0.2",
+  "_inBundle": false,
+  "_integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+  "_location": "/object.getownpropertydescriptors/call-bind",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "call-bind@^1.0.2",
+    "name": "call-bind",
+    "escapedName": "call-bind",
+    "rawSpec": "^1.0.2",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.2"
+  },
+  "_requiredBy": [
+    "/object.getownpropertydescriptors"
+  ],
+  "_resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+  "_shasum": "b1d4e89e688119c3c9a903ad30abb2f6a919be3c",
+  "_spec": "call-bind@^1.0.2",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\object.getownpropertydescriptors",
+  "author": {
+    "name": "Jordan Harband",
+    "email": "ljharb@gmail.com"
+  },
+  "auto-changelog": {
+    "output": "CHANGELOG.md",
+    "template": "keepachangelog",
+    "unreleased": false,
+    "commitLimit": false,
+    "backfillLimit": false,
+    "hideCredit": true
+  },
+  "bugs": {
+    "url": "https://github.com/ljharb/call-bind/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "function-bind": "^1.1.1",
+    "get-intrinsic": "^1.0.2"
+  },
+  "deprecated": false,
+  "description": "Robustly `.call.bind()` a function",
+  "devDependencies": {
+    "@ljharb/eslint-config": "^17.3.0",
+    "aud": "^1.1.3",
+    "auto-changelog": "^2.2.1",
+    "eslint": "^7.17.0",
+    "nyc": "^10.3.2",
+    "safe-publish-latest": "^1.1.4",
+    "tape": "^5.1.1"
+  },
+  "exports": {
+    ".": [
+      {
+        "default": "./index.js"
+      },
+      "./index.js"
+    ],
+    "./callBound": [
+      {
+        "default": "./callBound.js"
+      },
+      "./callBound.js"
+    ],
+    "./package.json": "./package.json"
+  },
+  "funding": {
+    "url": "https://github.com/sponsors/ljharb"
+  },
+  "homepage": "https://github.com/ljharb/call-bind#readme",
+  "keywords": [
+    "javascript",
+    "ecmascript",
+    "es",
+    "js",
+    "callbind",
+    "callbound",
+    "call",
+    "bind",
+    "bound",
+    "call-bind",
+    "call-bound",
+    "function",
+    "es-abstract"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "call-bind",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/ljharb/call-bind.git"
+  },
+  "scripts": {
+    "lint": "eslint --ext=.js,.mjs .",
+    "posttest": "aud --production",
+    "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+    "prepublish": "safe-publish-latest",
+    "pretest": "npm run lint",
+    "test": "npm run tests-only",
+    "tests-only": "nyc tape 'test/*'",
+    "version": "auto-changelog && git add CHANGELOG.md"
+  },
+  "version": "1.0.2"
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/test/callBound.js b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/test/callBound.js
new file mode 100644
index 0000000..209ce3c
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/test/callBound.js
@@ -0,0 +1,55 @@
+'use strict';
+
+var test = require('tape');
+
+var callBound = require('../callBound');
+
+test('callBound', function (t) {
+	// static primitive
+	t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself');
+	t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself');
+
+	// static non-function object
+	t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself');
+	t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself');
+	t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself');
+	t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself');
+
+	// static function
+	t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself');
+	t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself');
+
+	// prototype primitive
+	t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself');
+	t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself');
+
+	// prototype function
+	t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself');
+	t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself');
+	t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original');
+	t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original');
+
+	t['throws'](
+		function () { callBound('does not exist'); },
+		SyntaxError,
+		'nonexistent intrinsic throws'
+	);
+	t['throws'](
+		function () { callBound('does not exist', true); },
+		SyntaxError,
+		'allowMissing arg still throws for unknown intrinsic'
+	);
+
+	/* globals WeakRef: false */
+	t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) {
+		st['throws'](
+			function () { callBound('WeakRef'); },
+			TypeError,
+			'real but absent intrinsic throws'
+		);
+		st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception');
+		st.end();
+	});
+
+	t.end();
+});
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/call-bind/test/index.js b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/test/index.js
new file mode 100644
index 0000000..bf6769c
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/call-bind/test/index.js
@@ -0,0 +1,66 @@
+'use strict';
+
+var callBind = require('../');
+var bind = require('function-bind');
+
+var test = require('tape');
+
+/*
+ * older engines have length nonconfigurable
+ * in io.js v3, it is configurable except on bound functions, hence the .bind()
+ */
+var functionsHaveConfigurableLengths = !!(
+	Object.getOwnPropertyDescriptor
+	&& Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable
+);
+
+test('callBind', function (t) {
+	var sentinel = { sentinel: true };
+	var func = function (a, b) {
+		// eslint-disable-next-line no-invalid-this
+		return [this, a, b];
+	};
+	t.equal(func.length, 2, 'original function length is 2');
+	t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args');
+	t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args');
+	t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args');
+
+	var bound = callBind(func);
+	t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
+	t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args');
+	t.deepEqual(bound(1, 2), [1, 2, undefined], 'bound func with right args');
+	t.deepEqual(bound(1, 2, 3), [1, 2, 3], 'bound func with too many args');
+
+	var boundR = callBind(func, sentinel);
+	t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
+	t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args');
+	t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args');
+	t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args');
+
+	var boundArg = callBind(func, sentinel, 1);
+	t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths });
+	t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args');
+	t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg');
+	t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args');
+
+	t.test('callBind.apply', function (st) {
+		var aBound = callBind.apply(func);
+		st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args');
+		st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
+		st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
+
+		var aBoundArg = callBind.apply(func);
+		st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args');
+		st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args');
+		st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args');
+
+		var aBoundR = callBind.apply(func, sentinel);
+		st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args');
+		st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args');
+		st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args');
+
+		st.end();
+	});
+
+	t.end();
+});
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.eslintignore b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.eslintignore
new file mode 100644
index 0000000..404abb2
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.eslintignore
@@ -0,0 +1 @@
+coverage/
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.eslintrc b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.eslintrc
new file mode 100644
index 0000000..d04e483
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.eslintrc
@@ -0,0 +1,43 @@
+{
+	"root": true,
+
+	"extends": "@ljharb",
+
+	"env": {
+		"es6": true,
+		"es2017": true,
+		"es2020": true,
+		"es2021": true,
+	},
+
+	"globals": {
+		"AggregateError": false,
+	},
+
+	"rules": {
+		"array-bracket-newline": 0,
+		"array-element-newline": 0,
+		"complexity": 0,
+		"eqeqeq": [2, "allow-null"],
+		"func-name-matching": 0,
+		"id-length": 0,
+		"max-lines-per-function": [2, 80],
+		"max-params": [2, 4],
+		"max-statements": 0,
+		"max-statements-per-line": [2, { "max": 2 }],
+		"multiline-comment-style": 0,
+		"no-magic-numbers": 0,
+		"operator-linebreak": [2, "before"],
+		"sort-keys": 0,
+	},
+
+	"overrides": [
+		{
+			"files": "test/**",
+			"rules": {
+				"max-lines-per-function": 0,
+				"new-cap": 0,
+			},
+		},
+	],
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.github/FUNDING.yml b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.github/FUNDING.yml
new file mode 100644
index 0000000..8e8da0d
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.github/FUNDING.yml
@@ -0,0 +1,12 @@
+# These are supported funding model platforms
+
+github: [ljharb]
+patreon: # Replace with a single Patreon username
+open_collective: # Replace with a single Open Collective username
+ko_fi: # Replace with a single Ko-fi username
+tidelift: npm/get-intrinsic
+community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
+liberapay: # Replace with a single Liberapay username
+issuehunt: # Replace with a single IssueHunt username
+otechie: # Replace with a single Otechie username
+custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.nycrc b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.nycrc
new file mode 100644
index 0000000..1826526
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/.nycrc
@@ -0,0 +1,13 @@
+{
+	"all": true,
+	"check-coverage": false,
+	"reporter": ["text-summary", "text", "html", "json"],
+	"lines": 86,
+	"statements": 85.93,
+	"functions": 82.43,
+	"branches": 76.06,
+	"exclude": [
+		"coverage",
+		"test"
+	]
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/CHANGELOG.md
new file mode 100644
index 0000000..32502ec
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/CHANGELOG.md
@@ -0,0 +1,64 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [v1.1.1](https://github.com/ljharb/get-intrinsic/compare/v1.1.0...v1.1.1) - 2021-02-03
+
+### Fixed
+
+- [meta] export `./package.json` [`#9`](https://github.com/ljharb/get-intrinsic/issues/9)
+
+### Commits
+
+- [readme] flesh out the readme; use `evalmd` [`d12f12c`](https://github.com/ljharb/get-intrinsic/commit/d12f12c15345a0a0772cc65a7c64369529abd614)
+- [eslint] set up proper globals config [`5a8c098`](https://github.com/ljharb/get-intrinsic/commit/5a8c0984e3319d1ac0e64b102f8ec18b64e79f36)
+- [Dev Deps] update `eslint` [`7b9a5c0`](https://github.com/ljharb/get-intrinsic/commit/7b9a5c0d31a90ca1a1234181c74988fb046701cd)
+
+## [v1.1.0](https://github.com/ljharb/get-intrinsic/compare/v1.0.2...v1.1.0) - 2021-01-25
+
+### Fixed
+
+- [Refactor] delay `Function` eval until syntax-derived values are requested [`#3`](https://github.com/ljharb/get-intrinsic/issues/3)
+
+### Commits
+
+- [Tests] migrate tests to Github Actions [`2ab762b`](https://github.com/ljharb/get-intrinsic/commit/2ab762b48164aea8af37a40ba105bbc8246ab8c4)
+- [meta] do not publish github action workflow files [`5e7108e`](https://github.com/ljharb/get-intrinsic/commit/5e7108e4768b244d48d9567ba4f8a6cab9c65b8e)
+- [Tests] add some coverage [`01ac7a8`](https://github.com/ljharb/get-intrinsic/commit/01ac7a87ac29738567e8524cd8c9e026b1fa8cb3)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `call-bind`, `es-abstract`, `tape`; add `call-bind` [`911b672`](https://github.com/ljharb/get-intrinsic/commit/911b672fbffae433a96924c6ce013585e425f4b7)
+- [Refactor] rearrange evalled constructors a bit [`7e7e4bf`](https://github.com/ljharb/get-intrinsic/commit/7e7e4bf583f3799c8ac1c6c5e10d2cb553957347)
+- [meta] add Automatic Rebase and Require Allow Edits workflows [`0199968`](https://github.com/ljharb/get-intrinsic/commit/01999687a263ffce0a3cb011dfbcb761754aedbc)
+
+## [v1.0.2](https://github.com/ljharb/get-intrinsic/compare/v1.0.1...v1.0.2) - 2020-12-17
+
+### Commits
+
+- [Fix] Throw for non‑existent intrinsics [`68f873b`](https://github.com/ljharb/get-intrinsic/commit/68f873b013c732a05ad6f5fc54f697e55515461b)
+- [Fix] Throw for non‑existent segments in the intrinsic path [`8325dee`](https://github.com/ljharb/get-intrinsic/commit/8325deee43128f3654d3399aa9591741ebe17b21)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-bigints`, `object-inspect` [`0c227a7`](https://github.com/ljharb/get-intrinsic/commit/0c227a7d8b629166f25715fd242553892e458525)
+- [meta] do not lint coverage output [`70d2419`](https://github.com/ljharb/get-intrinsic/commit/70d24199b620043cd9110fc5f426d214ebe21dc9)
+
+## [v1.0.1](https://github.com/ljharb/get-intrinsic/compare/v1.0.0...v1.0.1) - 2020-10-30
+
+### Commits
+
+- [Tests] gather coverage data on every job [`d1d280d`](https://github.com/ljharb/get-intrinsic/commit/d1d280dec714e3f0519cc877dbcb193057d9cac6)
+- [Fix] add missing dependencies [`5031771`](https://github.com/ljharb/get-intrinsic/commit/5031771bb1095b38be88ce7c41d5de88718e432e)
+- [Tests] use `es-value-fixtures` [`af48765`](https://github.com/ljharb/get-intrinsic/commit/af48765a23c5323fb0b6b38dbf00eb5099c7bebc)
+
+## v1.0.0 - 2020-10-29
+
+### Commits
+
+- Implementation [`bbce57c`](https://github.com/ljharb/get-intrinsic/commit/bbce57c6f33d05b2d8d3efa273ceeb3ee01127bb)
+- Tests [`17b4f0d`](https://github.com/ljharb/get-intrinsic/commit/17b4f0d56dea6b4059b56fc30ef3ee4d9500ebc2)
+- Initial commit [`3153294`](https://github.com/ljharb/get-intrinsic/commit/31532948de363b0a27dd9fd4649e7b7028ec4b44)
+- npm init [`fb326c4`](https://github.com/ljharb/get-intrinsic/commit/fb326c4d2817c8419ec31de1295f06bb268a7902)
+- [meta] add Automatic Rebase and Require Allow Edits workflows [`48862fb`](https://github.com/ljharb/get-intrinsic/commit/48862fb2508c8f6a57968e6d08b7c883afc9d550)
+- [meta] add `auto-changelog` [`5f28ad0`](https://github.com/ljharb/get-intrinsic/commit/5f28ad019e060a353d8028f9f2591a9cc93074a1)
+- [meta] add "funding"; create `FUNDING.yml` [`c2bbdde`](https://github.com/ljharb/get-intrinsic/commit/c2bbddeba73a875be61484ee4680b129a6d4e0a1)
+- [Tests] add `npm run lint` [`0a84b98`](https://github.com/ljharb/get-intrinsic/commit/0a84b98b22b7cf7a748666f705b0003a493c35fd)
+- Only apps should have lockfiles [`9586c75`](https://github.com/ljharb/get-intrinsic/commit/9586c75866c1ee678e4d5d4dbbdef6997e511b05)
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/LICENSE b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/LICENSE
new file mode 100644
index 0000000..48f05d0
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2020 Jordan Harband
+
+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/object.getownpropertydescriptors/node_modules/get-intrinsic/README.md b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/README.md
new file mode 100644
index 0000000..335a3b4
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/README.md
@@ -0,0 +1,65 @@
+# get-intrinsic <sup>[![Version Badge][npm-version-svg]][package-url]</sup>
+
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+[![License][license-image]][license-url]
+[![Downloads][downloads-image]][downloads-url]
+
+[![npm badge][npm-badge-png]][package-url]
+
+Get and robustly cache all JS language-level intrinsics at first require time.
+
+See the syntax described [in the JS spec](https://tc39.es/ecma262/#sec-well-known-intrinsic-objects) for reference.
+
+## Example
+
+```js
+var GetIntrinsic = require('get-intrinsic');
+var assert = require('assert');
+
+// static methods
+assert.equal(GetIntrinsic('%Math.pow%'), Math.pow);
+assert.equal(Math.pow(2, 3), 8);
+assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
+delete Math.pow;
+assert.equal(GetIntrinsic('%Math.pow%')(2, 3), 8);
+
+// instance methods
+var arr = [1];
+assert.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push);
+assert.deepEqual(arr, [1]);
+
+arr.push(2);
+assert.deepEqual(arr, [1, 2]);
+
+GetIntrinsic('%Array.prototype.push%').call(arr, 3);
+assert.deepEqual(arr, [1, 2, 3]);
+
+delete Array.prototype.push;
+GetIntrinsic('%Array.prototype.push%').call(arr, 4);
+assert.deepEqual(arr, [1, 2, 3, 4]);
+
+// missing features
+delete JSON.parse; // to simulate a real intrinsic that is missing in the environment
+assert.throws(() => GetIntrinsic('%JSON.parse%'));
+assert.equal(undefined, GetIntrinsic('%JSON.parse%', true));
+```
+
+## Tests
+Simply clone the repo, `npm install`, and run `npm test`
+
+## Security
+
+Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report.
+
+[package-url]: https://npmjs.org/package/get-intrinsic
+[npm-version-svg]: http://versionbadg.es/ljharb/get-intrinsic.svg
+[deps-svg]: https://david-dm.org/ljharb/get-intrinsic.svg
+[deps-url]: https://david-dm.org/ljharb/get-intrinsic
+[dev-deps-svg]: https://david-dm.org/ljharb/get-intrinsic/dev-status.svg
+[dev-deps-url]: https://david-dm.org/ljharb/get-intrinsic#info=devDependencies
+[npm-badge-png]: https://nodei.co/npm/get-intrinsic.png?downloads=true&stars=true
+[license-image]: https://img.shields.io/npm/l/get-intrinsic.svg
+[license-url]: LICENSE
+[downloads-image]: https://img.shields.io/npm/dm/get-intrinsic.svg
+[downloads-url]: https://npm-stat.com/charts.html?package=get-intrinsic
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/index.js b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/index.js
new file mode 100644
index 0000000..d6c06c2
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/index.js
@@ -0,0 +1,330 @@
+'use strict';
+
+var undefined;
+
+var $SyntaxError = SyntaxError;
+var $Function = Function;
+var $TypeError = TypeError;
+
+// eslint-disable-next-line consistent-return
+var getEvalledConstructor = function (expressionSyntax) {
+	try {
+		return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')();
+	} catch (e) {}
+};
+
+var $gOPD = Object.getOwnPropertyDescriptor;
+if ($gOPD) {
+	try {
+		$gOPD({}, '');
+	} catch (e) {
+		$gOPD = null; // this is IE 8, which has a broken gOPD
+	}
+}
+
+var throwTypeError = function () {
+	throw new $TypeError();
+};
+var ThrowTypeError = $gOPD
+	? (function () {
+		try {
+			// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties
+			arguments.callee; // IE 8 does not throw here
+			return throwTypeError;
+		} catch (calleeThrows) {
+			try {
+				// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')
+				return $gOPD(arguments, 'callee').get;
+			} catch (gOPDthrows) {
+				return throwTypeError;
+			}
+		}
+	}())
+	: throwTypeError;
+
+var hasSymbols = require('has-symbols')();
+
+var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto
+
+var needsEval = {};
+
+var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);
+
+var INTRINSICS = {
+	'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,
+	'%Array%': Array,
+	'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,
+	'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,
+	'%AsyncFromSyncIteratorPrototype%': undefined,
+	'%AsyncFunction%': needsEval,
+	'%AsyncGenerator%': needsEval,
+	'%AsyncGeneratorFunction%': needsEval,
+	'%AsyncIteratorPrototype%': needsEval,
+	'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,
+	'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,
+	'%Boolean%': Boolean,
+	'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,
+	'%Date%': Date,
+	'%decodeURI%': decodeURI,
+	'%decodeURIComponent%': decodeURIComponent,
+	'%encodeURI%': encodeURI,
+	'%encodeURIComponent%': encodeURIComponent,
+	'%Error%': Error,
+	'%eval%': eval, // eslint-disable-line no-eval
+	'%EvalError%': EvalError,
+	'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,
+	'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,
+	'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,
+	'%Function%': $Function,
+	'%GeneratorFunction%': needsEval,
+	'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,
+	'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,
+	'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,
+	'%isFinite%': isFinite,
+	'%isNaN%': isNaN,
+	'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,
+	'%JSON%': typeof JSON === 'object' ? JSON : undefined,
+	'%Map%': typeof Map === 'undefined' ? undefined : Map,
+	'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),
+	'%Math%': Math,
+	'%Number%': Number,
+	'%Object%': Object,
+	'%parseFloat%': parseFloat,
+	'%parseInt%': parseInt,
+	'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,
+	'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,
+	'%RangeError%': RangeError,
+	'%ReferenceError%': ReferenceError,
+	'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,
+	'%RegExp%': RegExp,
+	'%Set%': typeof Set === 'undefined' ? undefined : Set,
+	'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),
+	'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,
+	'%String%': String,
+	'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,
+	'%Symbol%': hasSymbols ? Symbol : undefined,
+	'%SyntaxError%': $SyntaxError,
+	'%ThrowTypeError%': ThrowTypeError,
+	'%TypedArray%': TypedArray,
+	'%TypeError%': $TypeError,
+	'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,
+	'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,
+	'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,
+	'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,
+	'%URIError%': URIError,
+	'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,
+	'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,
+	'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet
+};
+
+var doEval = function doEval(name) {
+	var value;
+	if (name === '%AsyncFunction%') {
+		value = getEvalledConstructor('async function () {}');
+	} else if (name === '%GeneratorFunction%') {
+		value = getEvalledConstructor('function* () {}');
+	} else if (name === '%AsyncGeneratorFunction%') {
+		value = getEvalledConstructor('async function* () {}');
+	} else if (name === '%AsyncGenerator%') {
+		var fn = doEval('%AsyncGeneratorFunction%');
+		if (fn) {
+			value = fn.prototype;
+		}
+	} else if (name === '%AsyncIteratorPrototype%') {
+		var gen = doEval('%AsyncGenerator%');
+		if (gen) {
+			value = getProto(gen.prototype);
+		}
+	}
+
+	INTRINSICS[name] = value;
+
+	return value;
+};
+
+var LEGACY_ALIASES = {
+	'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],
+	'%ArrayPrototype%': ['Array', 'prototype'],
+	'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],
+	'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],
+	'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],
+	'%ArrayProto_values%': ['Array', 'prototype', 'values'],
+	'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],
+	'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],
+	'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],
+	'%BooleanPrototype%': ['Boolean', 'prototype'],
+	'%DataViewPrototype%': ['DataView', 'prototype'],
+	'%DatePrototype%': ['Date', 'prototype'],
+	'%ErrorPrototype%': ['Error', 'prototype'],
+	'%EvalErrorPrototype%': ['EvalError', 'prototype'],
+	'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],
+	'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],
+	'%FunctionPrototype%': ['Function', 'prototype'],
+	'%Generator%': ['GeneratorFunction', 'prototype'],
+	'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],
+	'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],
+	'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],
+	'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],
+	'%JSONParse%': ['JSON', 'parse'],
+	'%JSONStringify%': ['JSON', 'stringify'],
+	'%MapPrototype%': ['Map', 'prototype'],
+	'%NumberPrototype%': ['Number', 'prototype'],
+	'%ObjectPrototype%': ['Object', 'prototype'],
+	'%ObjProto_toString%': ['Object', 'prototype', 'toString'],
+	'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],
+	'%PromisePrototype%': ['Promise', 'prototype'],
+	'%PromiseProto_then%': ['Promise', 'prototype', 'then'],
+	'%Promise_all%': ['Promise', 'all'],
+	'%Promise_reject%': ['Promise', 'reject'],
+	'%Promise_resolve%': ['Promise', 'resolve'],
+	'%RangeErrorPrototype%': ['RangeError', 'prototype'],
+	'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],
+	'%RegExpPrototype%': ['RegExp', 'prototype'],
+	'%SetPrototype%': ['Set', 'prototype'],
+	'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],
+	'%StringPrototype%': ['String', 'prototype'],
+	'%SymbolPrototype%': ['Symbol', 'prototype'],
+	'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],
+	'%TypedArrayPrototype%': ['TypedArray', 'prototype'],
+	'%TypeErrorPrototype%': ['TypeError', 'prototype'],
+	'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],
+	'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],
+	'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],
+	'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],
+	'%URIErrorPrototype%': ['URIError', 'prototype'],
+	'%WeakMapPrototype%': ['WeakMap', 'prototype'],
+	'%WeakSetPrototype%': ['WeakSet', 'prototype']
+};
+
+var bind = require('function-bind');
+var hasOwn = require('has');
+var $concat = bind.call(Function.call, Array.prototype.concat);
+var $spliceApply = bind.call(Function.apply, Array.prototype.splice);
+var $replace = bind.call(Function.call, String.prototype.replace);
+var $strSlice = bind.call(Function.call, String.prototype.slice);
+
+/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */
+var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g;
+var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */
+var stringToPath = function stringToPath(string) {
+	var first = $strSlice(string, 0, 1);
+	var last = $strSlice(string, -1);
+	if (first === '%' && last !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');
+	} else if (last === '%' && first !== '%') {
+		throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');
+	}
+	var result = [];
+	$replace(string, rePropName, function (match, number, quote, subString) {
+		result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;
+	});
+	return result;
+};
+/* end adaptation */
+
+var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {
+	var intrinsicName = name;
+	var alias;
+	if (hasOwn(LEGACY_ALIASES, intrinsicName)) {
+		alias = LEGACY_ALIASES[intrinsicName];
+		intrinsicName = '%' + alias[0] + '%';
+	}
+
+	if (hasOwn(INTRINSICS, intrinsicName)) {
+		var value = INTRINSICS[intrinsicName];
+		if (value === needsEval) {
+			value = doEval(intrinsicName);
+		}
+		if (typeof value === 'undefined' && !allowMissing) {
+			throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');
+		}
+
+		return {
+			alias: alias,
+			name: intrinsicName,
+			value: value
+		};
+	}
+
+	throw new $SyntaxError('intrinsic ' + name + ' does not exist!');
+};
+
+module.exports = function GetIntrinsic(name, allowMissing) {
+	if (typeof name !== 'string' || name.length === 0) {
+		throw new $TypeError('intrinsic name must be a non-empty string');
+	}
+	if (arguments.length > 1 && typeof allowMissing !== 'boolean') {
+		throw new $TypeError('"allowMissing" argument must be a boolean');
+	}
+
+	var parts = stringToPath(name);
+	var intrinsicBaseName = parts.length > 0 ? parts[0] : '';
+
+	var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);
+	var intrinsicRealName = intrinsic.name;
+	var value = intrinsic.value;
+	var skipFurtherCaching = false;
+
+	var alias = intrinsic.alias;
+	if (alias) {
+		intrinsicBaseName = alias[0];
+		$spliceApply(parts, $concat([0, 1], alias));
+	}
+
+	for (var i = 1, isOwn = true; i < parts.length; i += 1) {
+		var part = parts[i];
+		var first = $strSlice(part, 0, 1);
+		var last = $strSlice(part, -1);
+		if (
+			(
+				(first === '"' || first === "'" || first === '`')
+				|| (last === '"' || last === "'" || last === '`')
+			)
+			&& first !== last
+		) {
+			throw new $SyntaxError('property names with quotes must have matching quotes');
+		}
+		if (part === 'constructor' || !isOwn) {
+			skipFurtherCaching = true;
+		}
+
+		intrinsicBaseName += '.' + part;
+		intrinsicRealName = '%' + intrinsicBaseName + '%';
+
+		if (hasOwn(INTRINSICS, intrinsicRealName)) {
+			value = INTRINSICS[intrinsicRealName];
+		} else if (value != null) {
+			if (!(part in value)) {
+				if (!allowMissing) {
+					throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');
+				}
+				return void undefined;
+			}
+			if ($gOPD && (i + 1) >= parts.length) {
+				var desc = $gOPD(value, part);
+				isOwn = !!desc;
+
+				// By convention, when a data property is converted to an accessor
+				// property to emulate a data property that does not suffer from
+				// the override mistake, that accessor's getter is marked with
+				// an `originalValue` property. Here, when we detect this, we
+				// uphold the illusion by pretending to see that original data
+				// property, i.e., returning the value rather than the getter
+				// itself.
+				if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {
+					value = desc.get;
+				} else {
+					value = value[part];
+				}
+			} else {
+				isOwn = hasOwn(value, part);
+				value = value[part];
+			}
+
+			if (isOwn && !skipFurtherCaching) {
+				INTRINSICS[intrinsicRealName] = value;
+			}
+		}
+	}
+	return value;
+};
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/package.json b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/package.json
new file mode 100644
index 0000000..a247f87
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/package.json
@@ -0,0 +1,106 @@
+{
+  "_from": "get-intrinsic@^1.0.2",
+  "_id": "get-intrinsic@1.1.1",
+  "_inBundle": false,
+  "_integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
+  "_location": "/object.getownpropertydescriptors/get-intrinsic",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "get-intrinsic@^1.0.2",
+    "name": "get-intrinsic",
+    "escapedName": "get-intrinsic",
+    "rawSpec": "^1.0.2",
+    "saveSpec": null,
+    "fetchSpec": "^1.0.2"
+  },
+  "_requiredBy": [
+    "/object.getownpropertydescriptors/call-bind"
+  ],
+  "_resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
+  "_shasum": "15f59f376f855c446963948f0d24cd3637b4abc6",
+  "_spec": "get-intrinsic@^1.0.2",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\object.getownpropertydescriptors\\node_modules\\call-bind",
+  "author": {
+    "name": "Jordan Harband",
+    "email": "ljharb@gmail.com"
+  },
+  "auto-changelog": {
+    "output": "CHANGELOG.md",
+    "template": "keepachangelog",
+    "unreleased": false,
+    "commitLimit": false,
+    "backfillLimit": false,
+    "hideCredit": true
+  },
+  "bugs": {
+    "url": "https://github.com/ljharb/get-intrinsic/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "function-bind": "^1.1.1",
+    "has": "^1.0.3",
+    "has-symbols": "^1.0.1"
+  },
+  "deprecated": false,
+  "description": "Get and robustly cache all JS language-level intrinsics at first require time",
+  "devDependencies": {
+    "@ljharb/eslint-config": "^17.5.0",
+    "aud": "^1.1.3",
+    "auto-changelog": "^2.2.1",
+    "call-bind": "^1.0.2",
+    "es-abstract": "^1.18.0-next.2",
+    "es-value-fixtures": "^1.0.0",
+    "eslint": "^7.19.0",
+    "evalmd": "^0.0.19",
+    "foreach": "^2.0.5",
+    "has-bigints": "^1.0.1",
+    "make-async-function": "^1.0.0",
+    "make-async-generator-function": "^1.0.0",
+    "make-generator-function": "^2.0.0",
+    "nyc": "^10.3.2",
+    "object-inspect": "^1.9.0",
+    "tape": "^5.1.1"
+  },
+  "exports": {
+    ".": [
+      {
+        "default": "./index.js"
+      },
+      "./index.js"
+    ],
+    "./package.json": "./package.json"
+  },
+  "funding": {
+    "url": "https://github.com/sponsors/ljharb"
+  },
+  "homepage": "https://github.com/ljharb/get-intrinsic#readme",
+  "keywords": [
+    "javascript",
+    "ecmascript",
+    "es",
+    "js",
+    "intrinsic",
+    "getintrinsic",
+    "es-abstract"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "get-intrinsic",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/ljharb/get-intrinsic.git"
+  },
+  "scripts": {
+    "lint": "eslint --ext=.js,.mjs .",
+    "posttest": "aud --production",
+    "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"",
+    "prelint": "evalmd README.md",
+    "pretest": "npm run lint",
+    "test": "npm run tests-only",
+    "tests-only": "nyc tape 'test/**/*.js'",
+    "version": "auto-changelog && git add CHANGELOG.md"
+  },
+  "version": "1.1.1"
+}
diff --git a/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/test/GetIntrinsic.js b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/test/GetIntrinsic.js
new file mode 100644
index 0000000..695e3ad
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/node_modules/get-intrinsic/test/GetIntrinsic.js
@@ -0,0 +1,260 @@
+'use strict';
+
+var GetIntrinsic = require('../');
+
+var test = require('tape');
+var forEach = require('foreach');
+var debug = require('object-inspect');
+var generatorFns = require('make-generator-function')();
+var asyncFns = require('make-async-function').list();
+var asyncGenFns = require('make-async-generator-function')();
+
+var callBound = require('call-bind/callBound');
+var v = require('es-value-fixtures');
+var $gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');
+var defineProperty = require('es-abstract/test/helpers/defineProperty');
+
+var $isProto = callBound('%Object.prototype.isPrototypeOf%');
+
+test('export', function (t) {
+	t.equal(typeof GetIntrinsic, 'function', 'it is a function');
+	t.equal(GetIntrinsic.length, 2, 'function has length of 2');
+
+	t.end();
+});
+
+test('throws', function (t) {
+	t['throws'](
+		function () { GetIntrinsic('not an intrinsic'); },
+		SyntaxError,
+		'nonexistent intrinsic throws a syntax error'
+	);
+
+	t['throws'](
+		function () { GetIntrinsic(''); },
+		TypeError,
+		'empty string intrinsic throws a type error'
+	);
+
+	t['throws'](
+		function () { GetIntrinsic('.'); },
+		SyntaxError,
+		'"just a dot" intrinsic throws a syntax error'
+	);
+
+	t['throws'](
+		function () { GetIntrinsic('%String'); },
+		SyntaxError,
+		'Leading % without trailing % throws a syntax error'
+	);
+
+	t['throws'](
+		function () { GetIntrinsic('String%'); },
+		SyntaxError,
+		'Trailing % without leading % throws a syntax error'
+	);
+
+	t['throws'](
+		function () { GetIntrinsic("String['prototype]"); },
+		SyntaxError,
+		'Dynamic property access is disallowed for intrinsics (unterminated string)'
+	);
+
+	t['throws'](
+		function () { GetIntrinsic('%Proxy.prototype.undefined%'); },
+		TypeError,
+		"Throws when middle part doesn't exist (%Proxy.prototype.undefined%)"
+	);
+
+	forEach(v.nonStrings, function (nonString) {
+		t['throws'](
+			function () { GetIntrinsic(nonString); },
+			TypeError,
+			debug(nonString) + ' is not a String'
+		);
+	});
+
+	forEach(v.nonBooleans, function (nonBoolean) {
+		t['throws'](
+			function () { GetIntrinsic('%', nonBoolean); },
+			TypeError,
+			debug(nonBoolean) + ' is not a Boolean'
+		);
+	});
+
+	forEach([
+		'toString',
+		'propertyIsEnumerable',
+		'hasOwnProperty'
+	], function (objectProtoMember) {
+		t['throws'](
+			function () { GetIntrinsic(objectProtoMember); },
+			SyntaxError,
+			debug(objectProtoMember) + ' is not an intrinsic'
+		);
+	});
+
+	t.end();
+});
+
+test('base intrinsics', function (t) {
+	t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object');
+	t.equal(GetIntrinsic('Object'), Object, 'Object yields Object');
+	t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array');
+	t.equal(GetIntrinsic('Array'), Array, 'Array yields Array');
+
+	t.end();
+});
+
+test('dotted paths', function (t) {
+	t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString');
+	t.equal(GetIntrinsic('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString yields Object.prototype.toString');
+	t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push');
+	t.equal(GetIntrinsic('Array.prototype.push'), Array.prototype.push, 'Array.prototype.push yields Array.prototype.push');
+
+	test('underscore paths are aliases for dotted paths', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) {
+		var original = GetIntrinsic('%ObjProto_toString%');
+
+		forEach([
+			'%Object.prototype.toString%',
+			'Object.prototype.toString',
+			'%ObjectPrototype.toString%',
+			'ObjectPrototype.toString',
+			'%ObjProto_toString%',
+			'ObjProto_toString'
+		], function (name) {
+			defineProperty(Object.prototype, 'toString', {
+				value: function toString() {
+					return original.apply(this, arguments);
+				}
+			});
+			st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString');
+		});
+
+		defineProperty(Object.prototype, 'toString', { value: original });
+		st.end();
+	});
+
+	test('dotted paths cache', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) {
+		var original = GetIntrinsic('%Object.prototype.propertyIsEnumerable%');
+
+		forEach([
+			'%Object.prototype.propertyIsEnumerable%',
+			'Object.prototype.propertyIsEnumerable',
+			'%ObjectPrototype.propertyIsEnumerable%',
+			'ObjectPrototype.propertyIsEnumerable'
+		], function (name) {
+			// eslint-disable-next-line no-extend-native
+			Object.prototype.propertyIsEnumerable = function propertyIsEnumerable() {
+				return original.apply(this, arguments);
+			};
+			st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable');
+		});
+
+		// eslint-disable-next-line no-extend-native
+		Object.prototype.propertyIsEnumerable = original;
+		st.end();
+	});
+
+	test('dotted path reports correct error', function (st) {
+		st['throws'](function () {
+			GetIntrinsic('%NonExistentIntrinsic.prototype.property%');
+		}, /%NonExistentIntrinsic%/, 'The base intrinsic of %NonExistentIntrinsic.prototype.property% is %NonExistentIntrinsic%');
+
+		st['throws'](function () {
+			GetIntrinsic('%NonExistentIntrinsicPrototype.property%');
+		}, /%NonExistentIntrinsicPrototype%/, 'The base intrinsic of %NonExistentIntrinsicPrototype.property% is %NonExistentIntrinsicPrototype%');
+
+		st.end();
+	});
+
+	t.end();
+});
+
+test('accessors', { skip: !$gOPD || typeof Map !== 'function' }, function (t) {
+	var actual = $gOPD(Map.prototype, 'size');
+	t.ok(actual, 'Map.prototype.size has a descriptor');
+	t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function');
+	t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it');
+	t.equal(GetIntrinsic('Map.prototype.size'), actual.get, 'Map.prototype.size yields the getter for it');
+
+	t.end();
+});
+
+test('generator functions', { skip: !generatorFns.length }, function (t) {
+	var $GeneratorFunction = GetIntrinsic('%GeneratorFunction%');
+	var $GeneratorFunctionPrototype = GetIntrinsic('%Generator%');
+	var $GeneratorPrototype = GetIntrinsic('%GeneratorPrototype%');
+
+	forEach(generatorFns, function (genFn) {
+		var fnName = genFn.name;
+		fnName = fnName ? "'" + fnName + "'" : 'genFn';
+
+		t.ok(genFn instanceof $GeneratorFunction, fnName + ' instanceof %GeneratorFunction%');
+		t.ok($isProto($GeneratorFunctionPrototype, genFn), '%Generator% is prototype of ' + fnName);
+		t.ok($isProto($GeneratorPrototype, genFn.prototype), '%GeneratorPrototype% is prototype of ' + fnName + '.prototype');
+	});
+
+	t.end();
+});
+
+test('async functions', { skip: !asyncFns.length }, function (t) {
+	var $AsyncFunction = GetIntrinsic('%AsyncFunction%');
+	var $AsyncFunctionPrototype = GetIntrinsic('%AsyncFunctionPrototype%');
+
+	forEach(asyncFns, function (asyncFn) {
+		var fnName = asyncFn.name;
+		fnName = fnName ? "'" + fnName + "'" : 'asyncFn';
+
+		t.ok(asyncFn instanceof $AsyncFunction, fnName + ' instanceof %AsyncFunction%');
+		t.ok($isProto($AsyncFunctionPrototype, asyncFn), '%AsyncFunctionPrototype% is prototype of ' + fnName);
+	});
+
+	t.end();
+});
+
+test('async generator functions', { skip: asyncGenFns.length === 0 }, function (t) {
+	var $AsyncGeneratorFunction = GetIntrinsic('%AsyncGeneratorFunction%');
+	var $AsyncGeneratorFunctionPrototype = GetIntrinsic('%AsyncGenerator%');
+	var $AsyncGeneratorPrototype = GetIntrinsic('%AsyncGeneratorPrototype%');
+
+	forEach(asyncGenFns, function (asyncGenFn) {
+		var fnName = asyncGenFn.name;
+		fnName = fnName ? "'" + fnName + "'" : 'asyncGenFn';
+
+		t.ok(asyncGenFn instanceof $AsyncGeneratorFunction, fnName + ' instanceof %AsyncGeneratorFunction%');
+		t.ok($isProto($AsyncGeneratorFunctionPrototype, asyncGenFn), '%AsyncGenerator% is prototype of ' + fnName);
+		t.ok($isProto($AsyncGeneratorPrototype, asyncGenFn.prototype), '%AsyncGeneratorPrototype% is prototype of ' + fnName + '.prototype');
+	});
+
+	t.end();
+});
+
+test('%ThrowTypeError%', function (t) {
+	var $ThrowTypeError = GetIntrinsic('%ThrowTypeError%');
+
+	t.equal(typeof $ThrowTypeError, 'function', 'is a function');
+	t['throws'](
+		$ThrowTypeError,
+		TypeError,
+		'%ThrowTypeError% throws a TypeError'
+	);
+
+	t.end();
+});
+
+test('allowMissing', { skip: asyncGenFns.length > 0 }, function (t) {
+	t['throws'](
+		function () { GetIntrinsic('%AsyncGeneratorPrototype%'); },
+		TypeError,
+		'throws when missing'
+	);
+
+	t.equal(
+		GetIntrinsic('%AsyncGeneratorPrototype%', true),
+		undefined,
+		'does not throw when allowMissing'
+	);
+
+	t.end();
+});
diff --git a/node_modules/object.getownpropertydescriptors/package.json b/node_modules/object.getownpropertydescriptors/package.json
new file mode 100644
index 0000000..79ff4f5
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/package.json
@@ -0,0 +1,111 @@
+{
+  "_from": "object.getownpropertydescriptors@^2.1.0",
+  "_id": "object.getownpropertydescriptors@2.1.2",
+  "_inBundle": false,
+  "_integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==",
+  "_location": "/object.getownpropertydescriptors",
+  "_phantomChildren": {
+    "function-bind": "1.1.1",
+    "has": "1.0.3",
+    "has-symbols": "1.0.1"
+  },
+  "_requested": {
+    "type": "range",
+    "registry": true,
+    "raw": "object.getownpropertydescriptors@^2.1.0",
+    "name": "object.getownpropertydescriptors",
+    "escapedName": "object.getownpropertydescriptors",
+    "rawSpec": "^2.1.0",
+    "saveSpec": null,
+    "fetchSpec": "^2.1.0"
+  },
+  "_requiredBy": [
+    "/util.promisify"
+  ],
+  "_resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz",
+  "_shasum": "1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7",
+  "_spec": "object.getownpropertydescriptors@^2.1.0",
+  "_where": "C:\\Users\\marcr\\Desktop\\KorAp\\Git\\Kalamar\\node_modules\\util.promisify",
+  "author": {
+    "name": "Jordan Harband",
+    "email": "ljharb@gmail.com"
+  },
+  "bugs": {
+    "url": "https://github.com/es-shims/object.getownpropertydescriptors/issues"
+  },
+  "bundleDependencies": false,
+  "dependencies": {
+    "call-bind": "^1.0.2",
+    "define-properties": "^1.1.3",
+    "es-abstract": "^1.18.0-next.2"
+  },
+  "deprecated": false,
+  "description": "ES2017 spec-compliant shim for `Object.getOwnPropertyDescriptors` that works in ES5.",
+  "devDependencies": {
+    "@es-shims/api": "^2.1.2",
+    "@ljharb/eslint-config": "^17.5.1",
+    "aud": "^1.1.4",
+    "eslint": "^7.20.0",
+    "functions-have-names": "^1.2.2",
+    "has-strict-mode": "^1.0.1",
+    "nyc": "^10.3.2",
+    "safe-publish-latest": "^1.1.4",
+    "tape": "^5.2.0"
+  },
+  "engines": {
+    "node": ">= 0.8"
+  },
+  "funding": {
+    "url": "https://github.com/sponsors/ljharb"
+  },
+  "homepage": "https://github.com/es-shims/object.getownpropertydescriptors#readme",
+  "keywords": [
+    "Object.getOwnPropertyDescriptors",
+    "descriptor",
+    "property descriptor",
+    "ES8",
+    "ES2017",
+    "shim",
+    "polyfill",
+    "getOwnPropertyDescriptor",
+    "es-shim API"
+  ],
+  "license": "MIT",
+  "main": "index.js",
+  "name": "object.getownpropertydescriptors",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/es-shims/object.getownpropertydescriptors.git"
+  },
+  "scripts": {
+    "lint": "eslint .",
+    "postlint": "es-shim-api --bound",
+    "posttest": "npx aud --production",
+    "prepublish": "safe-publish-latest",
+    "pretest": "npm run --silent lint",
+    "test": "npm run --silent tests-only",
+    "tests-only": "nyc tape 'test/**/*.js'"
+  },
+  "testling": {
+    "files": [
+      "test/index.js",
+      "test/shimmed.js"
+    ],
+    "browsers": [
+      "iexplore/9.0..latest",
+      "firefox/4.0..6.0",
+      "firefox/15.0..latest",
+      "firefox/nightly",
+      "chrome/5.0..10.0",
+      "chrome/20.0..latest",
+      "chrome/canary",
+      "opera/12.0..latest",
+      "opera/next",
+      "safari/5.0..latest",
+      "ipad/6.0..latest",
+      "iphone/6.0..latest",
+      "android-browser/4.2"
+    ]
+  },
+  "version": "2.1.2"
+}
diff --git a/node_modules/object.getownpropertydescriptors/polyfill.js b/node_modules/object.getownpropertydescriptors/polyfill.js
new file mode 100644
index 0000000..0424acf
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/polyfill.js
@@ -0,0 +1,7 @@
+'use strict';
+
+var implementation = require('./implementation');
+
+module.exports = function getPolyfill() {
+	return typeof Object.getOwnPropertyDescriptors === 'function' ? Object.getOwnPropertyDescriptors : implementation;
+};
diff --git a/node_modules/object.getownpropertydescriptors/shim.js b/node_modules/object.getownpropertydescriptors/shim.js
new file mode 100644
index 0000000..799c7d3
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/shim.js
@@ -0,0 +1,14 @@
+'use strict';
+
+var getPolyfill = require('./polyfill');
+var define = require('define-properties');
+
+module.exports = function shimGetOwnPropertyDescriptors() {
+	var polyfill = getPolyfill();
+	define(
+		Object,
+		{ getOwnPropertyDescriptors: polyfill },
+		{ getOwnPropertyDescriptors: function () { return Object.getOwnPropertyDescriptors !== polyfill; } }
+	);
+	return polyfill;
+};
diff --git a/node_modules/object.getownpropertydescriptors/test/implementation.js b/node_modules/object.getownpropertydescriptors/test/implementation.js
new file mode 100644
index 0000000..e3a1e46
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/test/implementation.js
@@ -0,0 +1,20 @@
+'use strict';
+
+var implementation = require('../implementation');
+var callBind = require('call-bind');
+var test = require('tape');
+var hasStrictMode = require('has-strict-mode')();
+var runTests = require('./tests');
+
+test('as a function', function (t) {
+	t.test('bad array/this value', { skip: !hasStrictMode }, function (st) {
+		/* eslint no-useless-call: 0 */
+		st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object');
+		st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object');
+		st.end();
+	});
+
+	runTests(callBind(implementation, Object), t);
+
+	t.end();
+});
diff --git a/node_modules/object.getownpropertydescriptors/test/index.js b/node_modules/object.getownpropertydescriptors/test/index.js
new file mode 100644
index 0000000..01c43f0
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/test/index.js
@@ -0,0 +1,17 @@
+'use strict';
+
+var getDescriptors = require('../');
+var test = require('tape');
+var runTests = require('./tests');
+
+test('as a function', function (t) {
+	t.test('bad object/this value', function (st) {
+		st['throws'](function () { return getDescriptors(undefined); }, TypeError, 'undefined is not an object');
+		st['throws'](function () { return getDescriptors(null); }, TypeError, 'null is not an object');
+		st.end();
+	});
+
+	runTests(getDescriptors, t);
+
+	t.end();
+});
diff --git a/node_modules/object.getownpropertydescriptors/test/shimmed.js b/node_modules/object.getownpropertydescriptors/test/shimmed.js
new file mode 100644
index 0000000..2ef4b14
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/test/shimmed.js
@@ -0,0 +1,36 @@
+'use strict';
+
+require('../auto');
+
+var getDescriptors = require('../');
+
+var test = require('tape');
+var defineProperties = require('define-properties');
+var runTests = require('./tests');
+var isEnumerable = Object.prototype.propertyIsEnumerable;
+var functionsHaveNames = require('functions-have-names')();
+
+test('shimmed', function (t) {
+	t.equal(Object.getOwnPropertyDescriptors.length, 1, 'Object.getOwnPropertyDescriptors has a length of 1');
+	t.test('Function name', { skip: !functionsHaveNames }, function (st) {
+		st.equal(Object.getOwnPropertyDescriptors.name, 'getOwnPropertyDescriptors', 'Object.getOwnPropertyDescriptors has name "getOwnPropertyDescriptors"');
+		st.end();
+	});
+
+	t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) {
+		et.equal(false, isEnumerable.call(Object, 'getOwnPropertyDescriptors'), 'Object.getOwnPropertyDescriptors is not enumerable');
+		et.end();
+	});
+
+	var supportsStrictMode = (function () { return typeof this === 'undefined'; }());
+
+	t.test('bad object/this value', { skip: !supportsStrictMode }, function (st) {
+		st['throws'](function () { return getDescriptors(undefined, 'a'); }, TypeError, 'undefined is not an object');
+		st['throws'](function () { return getDescriptors(null, 'a'); }, TypeError, 'null is not an object');
+		st.end();
+	});
+
+	runTests(Object.getOwnPropertyDescriptors, t);
+
+	t.end();
+});
diff --git a/node_modules/object.getownpropertydescriptors/test/tests.js b/node_modules/object.getownpropertydescriptors/test/tests.js
new file mode 100644
index 0000000..357f296
--- /dev/null
+++ b/node_modules/object.getownpropertydescriptors/test/tests.js
@@ -0,0 +1,122 @@
+'use strict';
+
+module.exports = function (getDescriptors, t) {
+	var enumDescriptor = {
+		configurable: true,
+		enumerable: false,
+		value: true,
+		writable: false
+	};
+	var writableDescriptor = {
+		configurable: true,
+		enumerable: true,
+		value: 42,
+		writable: true
+	};
+
+	t.test('works with Object.prototype poisoned setter', { skip: !Object.defineProperty }, function (st) {
+		var key = 'foo';
+
+		var obj = {};
+		obj[key] = 42;
+
+		var expected = {};
+		expected[key] = {
+			configurable: true,
+			enumerable: true,
+			value: 42,
+			writable: true
+		};
+
+		/* eslint-disable no-extend-native, accessor-pairs */
+		Object.defineProperty(Object.prototype, key, { configurable: true, set: function (v) { throw new Error(v); } });
+		/* eslint-enable no-extend-native, accessor-pairs */
+
+		var hasOwnNamesBug = false;
+		try {
+			Object.getOwnPropertyNames(obj);
+		} catch (e) {
+			// v8 in node 0.6 - 0.12 has a bug :-(
+			hasOwnNamesBug = true;
+			st.comment('SKIP: this engine has a bug with Object.getOwnPropertyNames: it can not handle a throwing setter on Object.prototype.');
+		}
+
+		if (!hasOwnNamesBug) {
+			st.doesNotThrow(function () {
+				var result = getDescriptors(obj);
+				st.deepEqual(result, expected, 'got expected descriptors');
+			});
+		}
+
+		delete Object.prototype[key];
+		st.end();
+	});
+
+	t.test('gets all expected non-Symbol descriptors', function (st) {
+		var obj = { normal: Infinity };
+		Object.defineProperty(obj, 'enumerable', enumDescriptor);
+		Object.defineProperty(obj, 'writable', writableDescriptor);
+
+		var descriptors = getDescriptors(obj);
+
+		st.deepEqual(descriptors, {
+			enumerable: enumDescriptor,
+			normal: {
+				configurable: true,
+				enumerable: true,
+				value: Infinity,
+				writable: true
+			},
+			writable: writableDescriptor
+		});
+		st.end();
+	});
+
+	var supportsSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';
+	t.test('gets Symbol descriptors too', { skip: !supportsSymbols }, function (st) {
+		var symbol = Symbol('sym');
+		var symDescriptor = {
+			configurable: false,
+			enumerable: true,
+			value: [symbol],
+			writable: true
+		};
+		var obj = { normal: Infinity };
+		Object.defineProperty(obj, 'enumerable', enumDescriptor);
+		Object.defineProperty(obj, 'writable', writableDescriptor);
+		Object.defineProperty(obj, 'symbol', symDescriptor);
+
+		var descriptors = getDescriptors(obj);
+
+		st.deepEqual(descriptors, {
+			enumerable: enumDescriptor,
+			normal: {
+				configurable: true,
+				enumerable: true,
+				value: Infinity,
+				writable: true
+			},
+			symbol: symDescriptor,
+			writable: writableDescriptor
+		});
+		st.end();
+	});
+
+	/* global Proxy */
+	var supportsProxy = typeof Proxy === 'function';
+	t.test('Proxies that return an undefined descriptor', { skip: !supportsProxy }, function (st) {
+		var obj = { foo: true };
+		var fooDescriptor = Object.getOwnPropertyDescriptor(obj, 'foo');
+
+		var proxy = new Proxy(obj, {
+			getOwnPropertyDescriptor: function (target, key) {
+				return Object.getOwnPropertyDescriptor(target, key);
+			},
+			ownKeys: function () {
+				return ['foo', 'bar'];
+			}
+		});
+		st.deepEqual(getDescriptors(proxy), { foo: fooDescriptor }, 'object has no descriptors');
+		st.end();
+	});
+};